Index: patches/bash-4.2-branch_update-1.patch
===================================================================
--- patches/bash-4.2-branch_update-1.patch	(revision 7d97f36d6c68f7a3e42aeabc0732ea935a9c68d5)
+++ 	(revision )
@@ -1,422 +1,0 @@
-Submitted By: Joe Ciccone <jciccone@gmail.com>
-Date: 04-16-2011
-Initial Package Version: 4.2
-Origin: Upstream
-Upstream Status: From Upstream
-Description: Contains all upstream patches up to 4.2-008
-
-diff -Naur bash-4.2.orig/builtins/printf.def bash-4.2/builtins/printf.def
---- bash-4.2.orig/builtins/printf.def	2010-11-23 10:02:55.000000000 -0500
-+++ bash-4.2/builtins/printf.def	2011-04-16 16:50:36.379215007 -0400
-@@ -465,6 +465,9 @@
- 		  secs = shell_start_time;	/* roughly $SECONDS */
- 		else
- 		  secs = arg;
-+#if defined (HAVE_TZSET)
-+		sv_tz ("TZ");		/* XXX -- just make sure */
-+#endif
- 		tm = localtime (&secs);
- 		n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
- 		free (timefmt);
-diff -Naur bash-4.2.orig/lib/glob/gmisc.c bash-4.2/lib/glob/gmisc.c
---- bash-4.2.orig/lib/glob/gmisc.c	2011-02-05 16:11:17.000000000 -0500
-+++ bash-4.2/lib/glob/gmisc.c	2011-04-16 16:50:36.371215007 -0400
-@@ -77,8 +77,8 @@
-      wchar_t *wpat;
-      size_t wmax;
- {
--  wchar_t wc, *wbrack;
--  int matlen, t, in_cclass, in_collsym, in_equiv;
-+  wchar_t wc;
-+  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
- 
-   if (*wpat == 0)
-     return (0);
-@@ -118,58 +118,80 @@
- 	  break;
- 	case L'[':
- 	  /* scan for ending `]', skipping over embedded [:...:] */
--	  wbrack = wpat;
-+	  bracklen = 1;
- 	  wc = *wpat++;
- 	  do
- 	    {
- 	      if (wc == 0)
- 		{
--	          matlen += wpat - wbrack - 1;	/* incremented below */
--	          break;
-+		  wpat--;			/* back up to NUL */
-+	          matlen += bracklen;
-+	          goto bad_bracket;
- 	        }
- 	      else if (wc == L'\\')
- 		{
--		  wc = *wpat++;
--		  if (*wpat == 0)
--		    break;
-+		  /* *wpat == backslash-escaped character */
-+		  bracklen++;
-+		  /* If the backslash or backslash-escape ends the string,
-+		     bail.  The ++wpat skips over the backslash escape */
-+		  if (*wpat == 0 || *++wpat == 0)
-+		    {
-+		      matlen += bracklen;
-+		      goto bad_bracket;
-+		    }
- 		}
- 	      else if (wc == L'[' && *wpat == L':')	/* character class */
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  in_cclass = 1;
- 		}
- 	      else if (in_cclass && wc == L':' && *wpat == L']')
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  in_cclass = 0;
- 		}
- 	      else if (wc == L'[' && *wpat == L'.')	/* collating symbol */
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  if (*wpat == L']')	/* right bracket can appear as collating symbol */
--		    wpat++;
-+		    {
-+		      wpat++;
-+		      bracklen++;
-+		    }
- 		  in_collsym = 1;
- 		}
- 	      else if (in_collsym && wc == L'.' && *wpat == L']')
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  in_collsym = 0;
- 		}
- 	      else if (wc == L'[' && *wpat == L'=')	/* equivalence class */
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  if (*wpat == L']')	/* right bracket can appear as equivalence class */
--		    wpat++;
-+		    {
-+		      wpat++;
-+		      bracklen++;
-+		    }
- 		  in_equiv = 1;
- 		}
- 	      else if (in_equiv && wc == L'=' && *wpat == L']')
- 		{
- 		  wpat++;
-+		  bracklen++;
- 		  in_equiv = 0;
- 		}
-+	      else
-+		bracklen++;
- 	    }
- 	  while ((wc = *wpat++) != L']');
- 	  matlen++;		/* bracket expression can only match one char */
-+bad_bracket:
- 	  break;
- 	}
-     }
-@@ -213,8 +235,8 @@
-      char *pat;
-      size_t max;
- {
--  char c, *brack;
--  int matlen, t, in_cclass, in_collsym, in_equiv;
-+  char c;
-+  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
- 
-   if (*pat == 0)
-     return (0);
-@@ -254,58 +276,80 @@
- 	  break;
- 	case '[':
- 	  /* scan for ending `]', skipping over embedded [:...:] */
--	  brack = pat;
-+	  bracklen = 1;
- 	  c = *pat++;
- 	  do
- 	    {
- 	      if (c == 0)
- 		{
--	          matlen += pat - brack - 1;	/* incremented below */
--	          break;
-+		  pat--;			/* back up to NUL */
-+		  matlen += bracklen;
-+		  goto bad_bracket;
- 	        }
- 	      else if (c == '\\')
- 		{
--		  c = *pat++;
--		  if (*pat == 0)
--		    break;
-+		  /* *pat == backslash-escaped character */
-+		  bracklen++;
-+		  /* If the backslash or backslash-escape ends the string,
-+		     bail.  The ++pat skips over the backslash escape */
-+		  if (*pat == 0 || *++pat == 0)
-+		    {
-+		      matlen += bracklen;
-+		      goto bad_bracket;
-+		    }
- 		}
- 	      else if (c == '[' && *pat == ':')	/* character class */
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  in_cclass = 1;
- 		}
- 	      else if (in_cclass && c == ':' && *pat == ']')
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  in_cclass = 0;
- 		}
- 	      else if (c == '[' && *pat == '.')	/* collating symbol */
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  if (*pat == ']')	/* right bracket can appear as collating symbol */
--		    pat++;
-+		    {
-+		      pat++;
-+		      bracklen++;
-+		    }
- 		  in_collsym = 1;
- 		}
- 	      else if (in_collsym && c == '.' && *pat == ']')
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  in_collsym = 0;
- 		}
- 	      else if (c == '[' && *pat == '=')	/* equivalence class */
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  if (*pat == ']')	/* right bracket can appear as equivalence class */
--		    pat++;
-+		    {
-+		      pat++;
-+		      bracklen++;
-+		    }
- 		  in_equiv = 1;
- 		}
- 	      else if (in_equiv && c == '=' && *pat == ']')
- 		{
- 		  pat++;
-+		  bracklen++;
- 		  in_equiv = 0;
- 		}
-+	      else
-+		bracklen++;
- 	    }
- 	  while ((c = *pat++) != ']');
- 	  matlen++;		/* bracket expression can only match one char */
-+bad_bracket:
- 	  break;
- 	}
-     }
-diff -Naur bash-4.2.orig/lib/readline/callback.c bash-4.2/lib/readline/callback.c
---- bash-4.2.orig/lib/readline/callback.c	2010-06-06 12:18:58.000000000 -0400
-+++ bash-4.2/lib/readline/callback.c	2011-04-16 16:50:36.359215007 -0400
-@@ -148,6 +148,9 @@
- 	  eof = _rl_vi_domove_callback (_rl_vimvcxt);
- 	  /* Should handle everything, including cleanup, numeric arguments,
- 	     and turning off RL_STATE_VIMOTION */
-+	  if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
-+	    _rl_internal_char_cleanup ();
-+
- 	  return;
- 	}
- #endif
-diff -Naur bash-4.2.orig/lib/readline/vi_mode.c bash-4.2/lib/readline/vi_mode.c
---- bash-4.2.orig/lib/readline/vi_mode.c	2010-11-20 19:51:39.000000000 -0500
-+++ bash-4.2/lib/readline/vi_mode.c	2011-04-16 16:50:36.359215007 -0400
-@@ -1114,7 +1114,7 @@
-       rl_beg_of_line (1, c);
-       _rl_vi_last_motion = c;
-       RL_UNSETSTATE (RL_STATE_VIMOTION);
--      return (0);
-+      return (vidomove_dispatch (m));
-     }
- #if defined (READLINE_CALLBACKS)
-   /* XXX - these need to handle rl_universal_argument bindings */
-diff -Naur bash-4.2.orig/parse.y bash-4.2/parse.y
---- bash-4.2.orig/parse.y	2011-01-02 15:48:11.000000000 -0500
-+++ bash-4.2/parse.y	2011-04-16 16:50:36.379215007 -0400
-@@ -5135,6 +5135,9 @@
- 	    case 'A':
- 	      /* Make the current time/date into a string. */
- 	      (void) time (&the_time);
-+#if defined (HAVE_TZSET)
-+	      sv_tz ("TZ");		/* XXX -- just make sure */
-+#endif
- 	      tm = localtime (&the_time);
- 
- 	      if (c == 'd')
-diff -Naur bash-4.2.orig/patchlevel.h bash-4.2/patchlevel.h
---- bash-4.2.orig/patchlevel.h	2010-06-12 20:14:48.000000000 -0400
-+++ bash-4.2/patchlevel.h	2011-04-16 16:50:36.387215007 -0400
-@@ -25,6 +25,6 @@
-    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
-    looks for to find the patch level (for the sccs version string). */
- 
--#define PATCHLEVEL 0
-+#define PATCHLEVEL 8
- 
- #endif /* _PATCHLEVEL_H_ */
-diff -Naur bash-4.2.orig/sig.c bash-4.2/sig.c
---- bash-4.2.orig/sig.c	2010-11-23 08:21:22.000000000 -0500
-+++ bash-4.2/sig.c	2011-04-16 16:50:36.387215007 -0400
-@@ -46,6 +46,7 @@
- 
- #if defined (READLINE)
- #  include "bashline.h"
-+#  include <readline/readline.h>
- #endif
- 
- #if defined (HISTORY)
-@@ -62,6 +63,7 @@
- #if defined (HISTORY)
- extern int history_lines_this_session;
- #endif
-+extern int no_line_editing;
- 
- extern void initialize_siglist ();
- 
-@@ -505,7 +507,10 @@
-     {
- #if defined (HISTORY)
-       /* XXX - will inhibit history file being written */
--      history_lines_this_session = 0;
-+#  if defined (READLINE)
-+      if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
-+#  endif
-+        history_lines_this_session = 0;
- #endif
-       terminate_immediately = 0;
-       termsig_handler (sig);
-diff -Naur bash-4.2.orig/subst.c bash-4.2/subst.c
---- bash-4.2.orig/subst.c	2011-01-02 16:12:51.000000000 -0500
-+++ bash-4.2/subst.c	2011-04-16 16:50:36.383215007 -0400
-@@ -1379,10 +1379,12 @@
-   slen = strlen (string + *sindex) + *sindex;
- 
-   /* The handling of dolbrace_state needs to agree with the code in parse.y:
--     parse_matched_pair() */
--  dolbrace_state = 0;
--  if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
--    dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
-+     parse_matched_pair().  The different initial value is to handle the
-+     case where this function is called to parse the word in
-+     ${param op word} (SX_WORD). */
-+  dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
-+  if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
-+    dolbrace_state = DOLBRACE_QUOTE;
- 
-   i = *sindex;
-   while (c = string[i])
-@@ -3371,7 +3373,7 @@
-   if (string == 0 || *string == '\0')
-     return (WORD_LIST *)NULL;
- 
--  td.flags = 0;
-+  td.flags = W_NOSPLIT2;		/* no splitting, remove "" and '' */
-   td.word = string;
-   tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
-   return (tresult);
-@@ -4607,6 +4609,7 @@
-   if (ifs_firstc == 0)
- #endif
-     word->flags |= W_NOSPLIT;
-+  word->flags |= W_NOSPLIT2;
-   result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
-   expand_no_split_dollar_star = 0;
- 
-@@ -7176,7 +7179,7 @@
-     {
-       /* Extract the contents of the ${ ... } expansion
- 	 according to the Posix.2 rules. */
--      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
-+      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
-       if (string[sindex] == RBRACE)
- 	sindex++;
-       else
-diff -Naur bash-4.2.orig/subst.h bash-4.2/subst.h
---- bash-4.2.orig/subst.h	2010-12-02 20:21:29.000000000 -0500
-+++ bash-4.2/subst.h	2011-04-16 16:50:36.359215007 -0400
-@@ -56,6 +56,7 @@
- #define SX_NOLONGJMP	0x0040	/* don't longjmp on fatal error */
- #define SX_ARITHSUB	0x0080	/* extracting $(( ... )) (currently unused) */
- #define SX_POSIXEXP	0x0100	/* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
-+#define SX_WORD		0x0200	/* extracting word in ${param op word} */
- 
- /* Remove backslashes which are quoting backquotes from STRING.  Modifies
-    STRING, and returns a pointer to it. */
-diff -Naur bash-4.2.orig/variables.c bash-4.2/variables.c
---- bash-4.2.orig/variables.c	2011-01-24 20:07:48.000000000 -0500
-+++ bash-4.2/variables.c	2011-04-16 16:50:36.379215007 -0400
-@@ -3653,6 +3653,22 @@
-   return n;
- }
- 
-+int
-+chkexport (name)
-+     char *name;
-+{
-+  SHELL_VAR *v;
-+
-+  v = find_variable (name);
-+  if (v && exported_p (v))
-+    {
-+      array_needs_making = 1;
-+      maybe_make_export_env ();
-+      return 1;
-+    }
-+  return 0;
-+}
-+
- void
- maybe_make_export_env ()
- {
-@@ -4214,7 +4230,7 @@
-   { "TEXTDOMAIN", sv_locale },
-   { "TEXTDOMAINDIR", sv_locale },
- 
--#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
-+#if defined (HAVE_TZSET)
-   { "TZ", sv_tz },
- #endif
- 
-@@ -4558,12 +4574,13 @@
- }
- #endif /* HISTORY */
- 
--#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
-+#if defined (HAVE_TZSET)
- void
- sv_tz (name)
-      char *name;
- {
--  tzset ();
-+  if (chkexport (name))
-+    tzset ();
- }
- #endif
- 
-diff -Naur bash-4.2.orig/variables.h bash-4.2/variables.h
---- bash-4.2.orig/variables.h	2010-12-02 20:22:01.000000000 -0500
-+++ bash-4.2/variables.h	2011-04-16 16:50:36.375215007 -0400
-@@ -313,6 +313,7 @@
- 
- extern void sort_variables __P((SHELL_VAR **));
- 
-+extern int chkexport __P((char *));
- extern void maybe_make_export_env __P((void));
- extern void update_export_env_inplace __P((char *, int, char *));
- extern void put_command_name_into_env __P((char *));
Index: patches/bash-4.2-branch_update-2.patch
===================================================================
--- patches/bash-4.2-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
+++ patches/bash-4.2-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
@@ -0,0 +1,487 @@
+Submitted By: Jonathan Norman (jonathan at bluesquarelinux.co.uk)
+Date: 2011-05-16
+Initial Package Version: 4.2
+Origin: Upstream
+Upstream Status: Applied
+Description: Contains all upstream patches up to 4.2-010
+
+diff -Naur bash-4.2.orig/builtins/fc.def bash-4.2/builtins/fc.def
+--- bash-4.2.orig/builtins/fc.def	2010-05-30 22:25:38.000000000 +0000
++++ bash-4.2/builtins/fc.def	2011-05-16 23:42:00.796961011 +0000
+@@ -304,7 +304,7 @@
+   last_hist = i - rh - hist_last_line_added;
+ 
+   /* XXX */
+-  if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
++  if (i == last_hist && hlist[last_hist] == 0)
+     while (last_hist >= 0 && hlist[last_hist] == 0)
+       last_hist--;
+   if (last_hist < 0)
+@@ -475,7 +475,7 @@
+      HIST_ENTRY **hlist;
+ {
+   int sign, n, clen, rh;
+-  register int i, j;
++  register int i, j, last_hist;
+   register char *s;
+ 
+   sign = 1;
+@@ -495,7 +495,15 @@
+      has been enabled (interactive or not) should use it in the last_hist
+      calculation as if it were on. */
+   rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
+-  i -= rh + hist_last_line_added;
++  last_hist = i - rh - hist_last_line_added;
++
++  if (i == last_hist && hlist[last_hist] == 0)
++    while (last_hist >= 0 && hlist[last_hist] == 0)
++      last_hist--;
++  if (last_hist < 0)
++    return (-1);
++
++  i = last_hist;
+ 
+   /* No specification defaults to most recent command. */
+   if (command == NULL)
+diff -Naur bash-4.2.orig/builtins/printf.def bash-4.2/builtins/printf.def
+--- bash-4.2.orig/builtins/printf.def	2010-11-23 15:02:55.000000000 +0000
++++ bash-4.2/builtins/printf.def	2011-05-16 23:41:55.617535899 +0000
+@@ -465,6 +465,9 @@
+ 		  secs = shell_start_time;	/* roughly $SECONDS */
+ 		else
+ 		  secs = arg;
++#if defined (HAVE_TZSET)
++		sv_tz ("TZ");		/* XXX -- just make sure */
++#endif
+ 		tm = localtime (&secs);
+ 		n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+ 		free (timefmt);
+diff -Naur bash-4.2.orig/lib/glob/gmisc.c bash-4.2/lib/glob/gmisc.c
+--- bash-4.2.orig/lib/glob/gmisc.c	2011-02-05 21:11:17.000000000 +0000
++++ bash-4.2/lib/glob/gmisc.c	2011-05-16 23:41:53.037822234 +0000
+@@ -77,8 +77,8 @@
+      wchar_t *wpat;
+      size_t wmax;
+ {
+-  wchar_t wc, *wbrack;
+-  int matlen, t, in_cclass, in_collsym, in_equiv;
++  wchar_t wc;
++  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+ 
+   if (*wpat == 0)
+     return (0);
+@@ -118,58 +118,80 @@
+ 	  break;
+ 	case L'[':
+ 	  /* scan for ending `]', skipping over embedded [:...:] */
+-	  wbrack = wpat;
++	  bracklen = 1;
+ 	  wc = *wpat++;
+ 	  do
+ 	    {
+ 	      if (wc == 0)
+ 		{
+-	          matlen += wpat - wbrack - 1;	/* incremented below */
+-	          break;
++		  wpat--;			/* back up to NUL */
++	          matlen += bracklen;
++	          goto bad_bracket;
+ 	        }
+ 	      else if (wc == L'\\')
+ 		{
+-		  wc = *wpat++;
+-		  if (*wpat == 0)
+-		    break;
++		  /* *wpat == backslash-escaped character */
++		  bracklen++;
++		  /* If the backslash or backslash-escape ends the string,
++		     bail.  The ++wpat skips over the backslash escape */
++		  if (*wpat == 0 || *++wpat == 0)
++		    {
++		      matlen += bracklen;
++		      goto bad_bracket;
++		    }
+ 		}
+ 	      else if (wc == L'[' && *wpat == L':')	/* character class */
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  in_cclass = 1;
+ 		}
+ 	      else if (in_cclass && wc == L':' && *wpat == L']')
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  in_cclass = 0;
+ 		}
+ 	      else if (wc == L'[' && *wpat == L'.')	/* collating symbol */
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  if (*wpat == L']')	/* right bracket can appear as collating symbol */
+-		    wpat++;
++		    {
++		      wpat++;
++		      bracklen++;
++		    }
+ 		  in_collsym = 1;
+ 		}
+ 	      else if (in_collsym && wc == L'.' && *wpat == L']')
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  in_collsym = 0;
+ 		}
+ 	      else if (wc == L'[' && *wpat == L'=')	/* equivalence class */
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  if (*wpat == L']')	/* right bracket can appear as equivalence class */
+-		    wpat++;
++		    {
++		      wpat++;
++		      bracklen++;
++		    }
+ 		  in_equiv = 1;
+ 		}
+ 	      else if (in_equiv && wc == L'=' && *wpat == L']')
+ 		{
+ 		  wpat++;
++		  bracklen++;
+ 		  in_equiv = 0;
+ 		}
++	      else
++		bracklen++;
+ 	    }
+ 	  while ((wc = *wpat++) != L']');
+ 	  matlen++;		/* bracket expression can only match one char */
++bad_bracket:
+ 	  break;
+ 	}
+     }
+@@ -213,8 +235,8 @@
+      char *pat;
+      size_t max;
+ {
+-  char c, *brack;
+-  int matlen, t, in_cclass, in_collsym, in_equiv;
++  char c;
++  int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+ 
+   if (*pat == 0)
+     return (0);
+@@ -254,58 +276,80 @@
+ 	  break;
+ 	case '[':
+ 	  /* scan for ending `]', skipping over embedded [:...:] */
+-	  brack = pat;
++	  bracklen = 1;
+ 	  c = *pat++;
+ 	  do
+ 	    {
+ 	      if (c == 0)
+ 		{
+-	          matlen += pat - brack - 1;	/* incremented below */
+-	          break;
++		  pat--;			/* back up to NUL */
++		  matlen += bracklen;
++		  goto bad_bracket;
+ 	        }
+ 	      else if (c == '\\')
+ 		{
+-		  c = *pat++;
+-		  if (*pat == 0)
+-		    break;
++		  /* *pat == backslash-escaped character */
++		  bracklen++;
++		  /* If the backslash or backslash-escape ends the string,
++		     bail.  The ++pat skips over the backslash escape */
++		  if (*pat == 0 || *++pat == 0)
++		    {
++		      matlen += bracklen;
++		      goto bad_bracket;
++		    }
+ 		}
+ 	      else if (c == '[' && *pat == ':')	/* character class */
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  in_cclass = 1;
+ 		}
+ 	      else if (in_cclass && c == ':' && *pat == ']')
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  in_cclass = 0;
+ 		}
+ 	      else if (c == '[' && *pat == '.')	/* collating symbol */
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  if (*pat == ']')	/* right bracket can appear as collating symbol */
+-		    pat++;
++		    {
++		      pat++;
++		      bracklen++;
++		    }
+ 		  in_collsym = 1;
+ 		}
+ 	      else if (in_collsym && c == '.' && *pat == ']')
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  in_collsym = 0;
+ 		}
+ 	      else if (c == '[' && *pat == '=')	/* equivalence class */
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  if (*pat == ']')	/* right bracket can appear as equivalence class */
+-		    pat++;
++		    {
++		      pat++;
++		      bracklen++;
++		    }
+ 		  in_equiv = 1;
+ 		}
+ 	      else if (in_equiv && c == '=' && *pat == ']')
+ 		{
+ 		  pat++;
++		  bracklen++;
+ 		  in_equiv = 0;
+ 		}
++	      else
++		bracklen++;
+ 	    }
+ 	  while ((c = *pat++) != ']');
+ 	  matlen++;		/* bracket expression can only match one char */
++bad_bracket:
+ 	  break;
+ 	}
+     }
+diff -Naur bash-4.2.orig/lib/readline/callback.c bash-4.2/lib/readline/callback.c
+--- bash-4.2.orig/lib/readline/callback.c	2010-06-06 16:18:58.000000000 +0000
++++ bash-4.2/lib/readline/callback.c	2011-05-16 23:41:51.689971838 +0000
+@@ -148,6 +148,9 @@
+ 	  eof = _rl_vi_domove_callback (_rl_vimvcxt);
+ 	  /* Should handle everything, including cleanup, numeric arguments,
+ 	     and turning off RL_STATE_VIMOTION */
++	  if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
++	    _rl_internal_char_cleanup ();
++
+ 	  return;
+ 	}
+ #endif
+diff -Naur bash-4.2.orig/lib/readline/vi_mode.c bash-4.2/lib/readline/vi_mode.c
+--- bash-4.2.orig/lib/readline/vi_mode.c	2010-11-21 00:51:39.000000000 +0000
++++ bash-4.2/lib/readline/vi_mode.c	2011-05-16 23:41:51.689971838 +0000
+@@ -1114,7 +1114,7 @@
+       rl_beg_of_line (1, c);
+       _rl_vi_last_motion = c;
+       RL_UNSETSTATE (RL_STATE_VIMOTION);
+-      return (0);
++      return (vidomove_dispatch (m));
+     }
+ #if defined (READLINE_CALLBACKS)
+   /* XXX - these need to handle rl_universal_argument bindings */
+diff -Naur bash-4.2.orig/parse.y bash-4.2/parse.y
+--- bash-4.2.orig/parse.y	2011-01-02 20:48:11.000000000 +0000
++++ bash-4.2/parse.y	2011-05-16 23:41:55.613536343 +0000
+@@ -5135,6 +5135,9 @@
+ 	    case 'A':
+ 	      /* Make the current time/date into a string. */
+ 	      (void) time (&the_time);
++#if defined (HAVE_TZSET)
++	      sv_tz ("TZ");		/* XXX -- just make sure */
++#endif
+ 	      tm = localtime (&the_time);
+ 
+ 	      if (c == 'd')
+diff -Naur bash-4.2.orig/patchlevel.h bash-4.2/patchlevel.h
+--- bash-4.2.orig/patchlevel.h	2010-06-13 00:14:48.000000000 +0000
++++ bash-4.2/patchlevel.h	2011-05-16 23:42:02.092817179 +0000
+@@ -25,6 +25,6 @@
+    regexp `^#define[ 	]*PATCHLEVEL', since that's what support/mkversion.sh
+    looks for to find the patch level (for the sccs version string). */
+ 
+-#define PATCHLEVEL 0
++#define PATCHLEVEL 10
+ 
+ #endif /* _PATCHLEVEL_H_ */
+diff -Naur bash-4.2.orig/print_cmd.c bash-4.2/print_cmd.c
+--- bash-4.2.orig/print_cmd.c	2010-05-30 22:34:08.000000000 +0000
++++ bash-4.2/print_cmd.c	2011-05-16 23:42:02.092817179 +0000
+@@ -315,6 +315,7 @@
+ 	  cprintf ("( ");
+ 	  skip_this_indent++;
+ 	  make_command_string_internal (command->value.Subshell->command);
++	  PRINT_DEFERRED_HEREDOCS ("");
+ 	  cprintf (" )");
+ 	  break;
+ 
+@@ -592,6 +593,7 @@
+   newline ("do\n");
+   indentation += indentation_amount;
+   make_command_string_internal (arith_for_command->action);
++  PRINT_DEFERRED_HEREDOCS ("");
+   semicolon ();
+   indentation -= indentation_amount;
+   newline ("done");
+@@ -653,6 +655,7 @@
+     }
+ 
+   make_command_string_internal (group_command->command);
++  PRINT_DEFERRED_HEREDOCS ("");
+ 
+   if (inside_function_def)
+     {
+diff -Naur bash-4.2.orig/sig.c bash-4.2/sig.c
+--- bash-4.2.orig/sig.c	2010-11-23 13:21:22.000000000 +0000
++++ bash-4.2/sig.c	2011-05-16 23:41:59.501104844 +0000
+@@ -46,6 +46,7 @@
+ 
+ #if defined (READLINE)
+ #  include "bashline.h"
++#  include <readline/readline.h>
+ #endif
+ 
+ #if defined (HISTORY)
+@@ -62,6 +63,7 @@
+ #if defined (HISTORY)
+ extern int history_lines_this_session;
+ #endif
++extern int no_line_editing;
+ 
+ extern void initialize_siglist ();
+ 
+@@ -505,7 +507,10 @@
+     {
+ #if defined (HISTORY)
+       /* XXX - will inhibit history file being written */
+-      history_lines_this_session = 0;
++#  if defined (READLINE)
++      if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
++#  endif
++        history_lines_this_session = 0;
+ #endif
+       terminate_immediately = 0;
+       termsig_handler (sig);
+diff -Naur bash-4.2.orig/subst.c bash-4.2/subst.c
+--- bash-4.2.orig/subst.c	2011-01-02 21:12:51.000000000 +0000
++++ bash-4.2/subst.c	2011-05-16 23:41:58.205248678 +0000
+@@ -1379,10 +1379,12 @@
+   slen = strlen (string + *sindex) + *sindex;
+ 
+   /* The handling of dolbrace_state needs to agree with the code in parse.y:
+-     parse_matched_pair() */
+-  dolbrace_state = 0;
+-  if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+-    dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
++     parse_matched_pair().  The different initial value is to handle the
++     case where this function is called to parse the word in
++     ${param op word} (SX_WORD). */
++  dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
++  if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
++    dolbrace_state = DOLBRACE_QUOTE;
+ 
+   i = *sindex;
+   while (c = string[i])
+@@ -3371,7 +3373,7 @@
+   if (string == 0 || *string == '\0')
+     return (WORD_LIST *)NULL;
+ 
+-  td.flags = 0;
++  td.flags = W_NOSPLIT2;		/* no splitting, remove "" and '' */
+   td.word = string;
+   tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+   return (tresult);
+@@ -4607,6 +4609,7 @@
+   if (ifs_firstc == 0)
+ #endif
+     word->flags |= W_NOSPLIT;
++  word->flags |= W_NOSPLIT2;
+   result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+   expand_no_split_dollar_star = 0;
+ 
+@@ -7176,7 +7179,7 @@
+     {
+       /* Extract the contents of the ${ ... } expansion
+ 	 according to the Posix.2 rules. */
+-      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
++      value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
+       if (string[sindex] == RBRACE)
+ 	sindex++;
+       else
+diff -Naur bash-4.2.orig/subst.h bash-4.2/subst.h
+--- bash-4.2.orig/subst.h	2010-12-03 01:21:29.000000000 +0000
++++ bash-4.2/subst.h	2011-05-16 23:41:50.378117447 +0000
+@@ -56,6 +56,7 @@
+ #define SX_NOLONGJMP	0x0040	/* don't longjmp on fatal error */
+ #define SX_ARITHSUB	0x0080	/* extracting $(( ... )) (currently unused) */
+ #define SX_POSIXEXP	0x0100	/* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
++#define SX_WORD		0x0200	/* extracting word in ${param op word} */
+ 
+ /* Remove backslashes which are quoting backquotes from STRING.  Modifies
+    STRING, and returns a pointer to it. */
+diff -Naur bash-4.2.orig/variables.c bash-4.2/variables.c
+--- bash-4.2.orig/variables.c	2011-01-25 01:07:48.000000000 +0000
++++ bash-4.2/variables.c	2011-05-16 23:41:56.917391622 +0000
+@@ -3653,6 +3653,22 @@
+   return n;
+ }
+ 
++int
++chkexport (name)
++     char *name;
++{
++  SHELL_VAR *v;
++
++  v = find_variable (name);
++  if (v && exported_p (v))
++    {
++      array_needs_making = 1;
++      maybe_make_export_env ();
++      return 1;
++    }
++  return 0;
++}
++
+ void
+ maybe_make_export_env ()
+ {
+@@ -4214,7 +4230,7 @@
+   { "TEXTDOMAIN", sv_locale },
+   { "TEXTDOMAINDIR", sv_locale },
+ 
+-#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
++#if defined (HAVE_TZSET)
+   { "TZ", sv_tz },
+ #endif
+ 
+@@ -4558,12 +4574,13 @@
+ }
+ #endif /* HISTORY */
+ 
+-#if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
++#if defined (HAVE_TZSET)
+ void
+ sv_tz (name)
+      char *name;
+ {
+-  tzset ();
++  if (chkexport (name))
++    tzset ();
+ }
+ #endif
+ 
+diff -Naur bash-4.2.orig/variables.h bash-4.2/variables.h
+--- bash-4.2.orig/variables.h	2010-12-03 01:22:01.000000000 +0000
++++ bash-4.2/variables.h	2011-05-16 23:41:55.613536343 +0000
+@@ -313,6 +313,7 @@
+ 
+ extern void sort_variables __P((SHELL_VAR **));
+ 
++extern int chkexport __P((char *));
+ extern void maybe_make_export_env __P((void));
+ extern void update_export_env_inplace __P((char *, int, char *));
+ extern void put_command_name_into_env __P((char *));
Index: patches/gcc-4.6.0-branch_update-1.patch
===================================================================
--- patches/gcc-4.6.0-branch_update-1.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
+++ patches/gcc-4.6.0-branch_update-1.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
@@ -0,0 +1,23026 @@
+Submitted By: Jonathan Norman (jonathan at bluesquarelinux.co.uk)
+Date: 2011-05-17
+Initial Package Version: 4.6.0
+Origin: Upstream
+Upstream Status: Applied
+Description: This is a branch update for gcc-4.6.0, and should be
+             rechecked periodically.
+
+This patch was made from Revision # 173825.
+
+diff -Naur gcc-4.6.0.orig/config/bootstrap-lto.mk gcc-4.6.0/config/bootstrap-lto.mk
+--- gcc-4.6.0.orig/config/bootstrap-lto.mk	2011-01-10 23:43:54.000000000 +0000
++++ gcc-4.6.0/config/bootstrap-lto.mk	2011-04-20 09:25:33.860374000 +0000
+@@ -1,6 +1,5 @@
+-# This option enables LTO for stage2 and stage3.  It requires lto to
+-# be enabled for stage1 with --enable-stage1-languages.
++# This option enables LTO for stage2 and stage3.
+ 
+ STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1
+ STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1
+-STAGEprofile_CFLAGS +=  -fno-lto
++STAGEprofile_CFLAGS += -fno-lto
+diff -Naur gcc-4.6.0.orig/gcc/DATESTAMP gcc-4.6.0/gcc/DATESTAMP
+--- gcc-4.6.0.orig/gcc/DATESTAMP	2011-03-25 00:18:25.000000000 +0000
++++ gcc-4.6.0/gcc/DATESTAMP	2011-05-17 00:19:26.750332000 +0000
+@@ -1 +1 @@
+-20110325
++20110517
+diff -Naur gcc-4.6.0.orig/gcc/Makefile.in gcc-4.6.0/gcc/Makefile.in
+--- gcc-4.6.0.orig/gcc/Makefile.in	2011-01-26 04:19:58.000000000 +0000
++++ gcc-4.6.0/gcc/Makefile.in	2011-03-26 09:20:34.263941000 +0000
+@@ -3070,7 +3070,7 @@
+    $(TREE_H) $(TM_P_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) insn-config.h \
+    $(RECOG_H) $(EXPR_H) $(DF_H) cselib.h $(DBGCNT_H) $(TIMEVAR_H) \
+    $(TREE_PASS_H) alloc-pool.h $(ALIAS_H) dse.h $(OPTABS_H) $(TARGET_H) \
+-   $(BITMAP_H)
++   $(BITMAP_H) $(PARAMS_H)
+ fwprop.o : fwprop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
+    $(DIAGNOSTIC_CORE_H) insn-config.h $(RECOG_H) $(FLAGS_H) $(OBSTACK_H) $(BASIC_BLOCK_H) \
+    output.h $(DF_H) alloc-pool.h $(TIMEVAR_H) $(TREE_PASS_H) $(TARGET_H) \
+diff -Naur gcc-4.6.0.orig/gcc/ada/gcc-interface/Make-lang.in gcc-4.6.0/gcc/ada/gcc-interface/Make-lang.in
+--- gcc-4.6.0.orig/gcc/ada/gcc-interface/Make-lang.in	2011-01-26 11:53:51.000000000 +0000
++++ gcc-4.6.0/gcc/ada/gcc-interface/Make-lang.in	2011-04-17 22:29:13.989536000 +0000
+@@ -485,7 +485,7 @@
+ 	$(RM) stamp-gnatlib2-rts stamp-tools
+ 
+ gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS)
+-	$(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) $(ALL_CFLAGS) $(LIBS) $(SYSLIBS)
++	$(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) $(LIBS) $(SYSLIBS) $(CFLAGS)
+ 
+ # use cross-gcc
+ gnat-cross: force
+diff -Naur gcc-4.6.0.orig/gcc/ada/gcc-interface/decl.c gcc-4.6.0/gcc/ada/gcc-interface/decl.c
+--- gcc-4.6.0.orig/gcc/ada/gcc-interface/decl.c	2011-01-04 11:33:39.000000000 +0000
++++ gcc-4.6.0/gcc/ada/gcc-interface/decl.c	2011-05-05 16:27:03.722146000 +0000
+@@ -177,7 +177,6 @@
+ static tree create_field_decl_from (tree, tree, tree, tree, tree,
+ 				    VEC(subst_pair,heap) *);
+ static tree get_rep_part (tree);
+-static tree get_variant_part (tree);
+ static tree create_variant_part_from (tree, VEC(variant_desc,heap) *, tree,
+ 				      tree, VEC(subst_pair,heap) *);
+ static void copy_and_substitute_in_size (tree, tree, VEC(subst_pair,heap) *);
+@@ -8400,7 +8399,7 @@
+ 
+ /* Return the variant part of RECORD_TYPE, if any.  Otherwise return NULL.  */
+ 
+-static tree
++tree
+ get_variant_part (tree record_type)
+ {
+   tree field;
+diff -Naur gcc-4.6.0.orig/gcc/ada/gcc-interface/gigi.h gcc-4.6.0/gcc/ada/gcc-interface/gigi.h
+--- gcc-4.6.0.orig/gcc/ada/gcc-interface/gigi.h	2011-02-03 13:19:38.000000000 +0000
++++ gcc-4.6.0/gcc/ada/gcc-interface/gigi.h	2011-05-05 16:27:03.722146000 +0000
+@@ -151,6 +151,9 @@
+ extern void annotate_object (Entity_Id gnat_entity, tree gnu_type, tree size,
+ 			     bool by_ref, bool by_double_ref);
+ 
++/* Return the variant part of RECORD_TYPE, if any.  Otherwise return NULL.  */
++extern tree get_variant_part (tree record_type);
++
+ /* Given a type T, a FIELD_DECL F, and a replacement value R, return a new
+    type with all size expressions that contain F updated by replacing F
+    with R.  If F is NULL_TREE, always make a new RECORD_TYPE, even if
+diff -Naur gcc-4.6.0.orig/gcc/ada/gcc-interface/utils2.c gcc-4.6.0/gcc/ada/gcc-interface/utils2.c
+--- gcc-4.6.0.orig/gcc/ada/gcc-interface/utils2.c	2011-02-03 13:19:38.000000000 +0000
++++ gcc-4.6.0/gcc/ada/gcc-interface/utils2.c	2011-05-05 16:27:03.722146000 +0000
+@@ -193,15 +193,21 @@
+      calling into build_binary_op), some others are really expected and we
+      have to be careful.  */
+ 
+-  /* We must prevent writing more than what the target may hold if this is for
++  /* We must avoid writing more than what the target can hold if this is for
+      an assignment and the case of tagged types is handled in build_binary_op
+-     so use the lhs type if it is known to be smaller, or of constant size and
+-     the rhs type is not, whatever the modes.  We also force t1 in case of
++     so we use the lhs type if it is known to be smaller or of constant size
++     and the rhs type is not, whatever the modes.  We also force t1 in case of
+      constant size equality to minimize occurrences of view conversions on the
+-     lhs of assignments.  */
++     lhs of an assignment, except for the case of record types with a variant
++     part on the lhs but not on the rhs to make the conversion simpler.  */
+   if (TREE_CONSTANT (TYPE_SIZE (t1))
+       && (!TREE_CONSTANT (TYPE_SIZE (t2))
+-          || !tree_int_cst_lt (TYPE_SIZE (t2), TYPE_SIZE (t1))))
++	  || tree_int_cst_lt (TYPE_SIZE (t1), TYPE_SIZE (t2))
++	  || (TYPE_SIZE (t1) == TYPE_SIZE (t2)
++	      && !(TREE_CODE (t1) == RECORD_TYPE
++		   && TREE_CODE (t2) == RECORD_TYPE
++		   && get_variant_part (t1) != NULL_TREE
++		   && get_variant_part (t2) == NULL_TREE))))
+     return t1;
+ 
+   /* Otherwise, if the lhs type is non-BLKmode, use it.  Note that we know
+diff -Naur gcc-4.6.0.orig/gcc/c-family/c-common.c gcc-4.6.0/gcc/c-family/c-common.c
+--- gcc-4.6.0.orig/gcc/c-family/c-common.c	2011-03-11 22:38:58.000000000 +0000
++++ gcc-4.6.0/gcc/c-family/c-common.c	2011-04-08 15:01:50.477968000 +0000
+@@ -3300,6 +3300,20 @@
+   primop0 = get_narrower (op0, &unsignedp0);
+   primop1 = get_narrower (op1, &unsignedp1);
+ 
++  /* If primopN is first sign-extended from primopN's precision to opN's
++     precision, then zero-extended from opN's precision to
++     *restype_ptr precision, shortenings might be invalid.  */
++  if (TYPE_PRECISION (TREE_TYPE (primop0)) < TYPE_PRECISION (TREE_TYPE (op0))
++      && TYPE_PRECISION (TREE_TYPE (op0)) < TYPE_PRECISION (*restype_ptr)
++      && !unsignedp0
++      && TYPE_UNSIGNED (TREE_TYPE (op0)))
++    primop0 = op0;
++  if (TYPE_PRECISION (TREE_TYPE (primop1)) < TYPE_PRECISION (TREE_TYPE (op1))
++      && TYPE_PRECISION (TREE_TYPE (op1)) < TYPE_PRECISION (*restype_ptr)
++      && !unsignedp1
++      && TYPE_UNSIGNED (TREE_TYPE (op1)))
++    primop1 = op1;
++
+   /* Handle the case that OP0 does not *contain* a conversion
+      but it *requires* conversion to FINAL_TYPE.  */
+ 
+@@ -3924,16 +3938,25 @@
+ 	}
+ 
+     CASE_CONVERT:
+-      /* Don't cancel the effect of a CONVERT_EXPR from a REFERENCE_TYPE,
+-	 since that affects how `default_conversion' will behave.  */
+-      if (TREE_CODE (TREE_TYPE (expr)) == REFERENCE_TYPE
+-	  || TREE_CODE (TREE_TYPE (TREE_OPERAND (expr, 0))) == REFERENCE_TYPE)
+-	break;
+-      /* If this is widening the argument, we can ignore it.  */
+-      if (TYPE_PRECISION (TREE_TYPE (expr))
+-	  >= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (expr, 0))))
+-	return c_common_truthvalue_conversion (location,
+-					       TREE_OPERAND (expr, 0));
++      {
++	tree totype = TREE_TYPE (expr);
++	tree fromtype = TREE_TYPE (TREE_OPERAND (expr, 0));
++
++	/* Don't cancel the effect of a CONVERT_EXPR from a REFERENCE_TYPE,
++	   since that affects how `default_conversion' will behave.  */
++	if (TREE_CODE (totype) == REFERENCE_TYPE
++	    || TREE_CODE (fromtype) == REFERENCE_TYPE)
++	  break;
++	/* Don't strip a conversion from C++0x scoped enum, since they
++	   don't implicitly convert to other types.  */
++	if (TREE_CODE (fromtype) == ENUMERAL_TYPE
++	    && ENUM_IS_SCOPED (fromtype))
++	  break;
++	/* If this isn't narrowing the argument, we can ignore it.  */
++	if (TYPE_PRECISION (totype) >= TYPE_PRECISION (fromtype))
++	  return c_common_truthvalue_conversion (location,
++						 TREE_OPERAND (expr, 0));
++      }
+       break;
+ 
+     case MODIFY_EXPR:
+diff -Naur gcc-4.6.0.orig/gcc/c-family/c-ppoutput.c gcc-4.6.0/gcc/c-family/c-ppoutput.c
+--- gcc-4.6.0.orig/gcc/c-family/c-ppoutput.c	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/c-family/c-ppoutput.c	2011-04-19 09:14:05.861558000 +0000
+@@ -36,6 +36,7 @@
+   int src_line;			/* Line number currently being written.  */
+   unsigned char printed;	/* Nonzero if something output at line.  */
+   bool first_time;		/* pp_file_change hasn't been called yet.  */
++  const char *src_file;		/* Current source file.  */
+ } print;
+ 
+ /* Defined and undefined macros being queued for output with -dU at
+@@ -153,6 +154,7 @@
+   print.prev = 0;
+   print.outf = out_stream;
+   print.first_time = 1;
++  print.src_file = "";
+ }
+ 
+ /* Writes out the preprocessed file, handling spacing and paste
+@@ -312,7 +314,9 @@
+       print.printed = 0;
+     }
+ 
+-  if (src_line >= print.src_line && src_line < print.src_line + 8)
++  if (src_line >= print.src_line
++      && src_line < print.src_line + 8
++      && (flag_no_line_commands || strcmp (map->to_file, print.src_file) == 0))
+     {
+       while (src_line > print.src_line)
+ 	{
+@@ -344,6 +348,7 @@
+       unsigned char *p;
+ 
+       print.src_line = SOURCE_LINE (map, src_loc);
++      print.src_file = map->to_file;
+ 
+       /* cpp_quote_string does not nul-terminate, so we have to do it
+ 	 ourselves.  */
+diff -Naur gcc-4.6.0.orig/gcc/c-family/c.opt gcc-4.6.0/gcc/c-family/c.opt
+--- gcc-4.6.0.orig/gcc/c-family/c.opt	2011-02-17 21:34:10.000000000 +0000
++++ gcc-4.6.0/gcc/c-family/c.opt	2011-03-29 14:24:42.977146000 +0000
+@@ -719,6 +719,10 @@
+ ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
+ -fconst-string-class=<name>	Use class <name> for constant strings
+ 
++fconstexpr-depth=
++C++ ObjC++ Joined RejectNegative UInteger Var(max_constexpr_depth) Init(512)
++-fconstexpr-depth=<number>	Specify maximum constexpr recursion depth
++
+ fdeduce-init-list
+ C++ ObjC++ Var(flag_deduce_init_list) Init(1)
+ -fno-deduce-init-list	disable deduction of std::initializer_list for a template type parameter from a brace-enclosed initializer-list
+@@ -1133,7 +1137,11 @@
+ 
+ std=c++98
+ C++ ObjC++
+-Conform to the ISO 1998 C++ standard
++Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
++
++std=c++03
++C++ ObjC++ Alias(std=c++98)
++Conform to the ISO 1998 C++ standard revised by the 2003 technical corrigendum
+ 
+ std=c++0x
+ C++ ObjC++
+diff -Naur gcc-4.6.0.orig/gcc/c-typeck.c gcc-4.6.0/gcc/c-typeck.c
+--- gcc-4.6.0.orig/gcc/c-typeck.c	2011-01-27 02:09:13.000000000 +0000
++++ gcc-4.6.0/gcc/c-typeck.c	2011-04-27 07:05:54.304227000 +0000
+@@ -5773,11 +5773,13 @@
+ 	      /* For int foo[] = (int [3]){1}; we need to set array size
+ 		 now since later on array initializer will be just the
+ 		 brace enclosed list of the compound literal.  */
++	      tree etype = strip_array_types (TREE_TYPE (decl));
+ 	      type = build_distinct_type_copy (TYPE_MAIN_VARIANT (type));
+-	      TREE_TYPE (decl) = type;
+ 	      TYPE_DOMAIN (type) = TYPE_DOMAIN (TREE_TYPE (cldecl));
+ 	      layout_type (type);
+ 	      layout_decl (cldecl, 0);
++	      TREE_TYPE (decl)
++		= c_build_qualified_type (type, TYPE_QUALS (etype));
+ 	    }
+ 	}
+     }
+@@ -10176,7 +10178,7 @@
+ 		warn_for_sign_compare (location, orig_op0_folded,
+ 				       orig_op1_folded, op0, op1,
+ 				       result_type, resultcode);
+-	      if (!in_late_binary_op)
++	      if (!in_late_binary_op && !int_operands)
+ 		{
+ 		  if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)
+ 		    op0 = c_wrap_maybe_const (op0, !op0_maybe_const);
+diff -Naur gcc-4.6.0.orig/gcc/cfgexpand.c gcc-4.6.0/gcc/cfgexpand.c
+--- gcc-4.6.0.orig/gcc/cfgexpand.c	2011-03-03 16:06:33.000000000 +0000
++++ gcc-4.6.0/gcc/cfgexpand.c	2011-04-20 11:18:50.658757000 +0000
+@@ -2492,6 +2492,7 @@
+ 	      || !TREE_STATIC (exp)
+ 	      || !DECL_NAME (exp)
+ 	      || DECL_HARD_REGISTER (exp)
++	      || DECL_IN_CONSTANT_POOL (exp)
+ 	      || mode == VOIDmode)
+ 	    return NULL;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/combine.c gcc-4.6.0/gcc/combine.c
+--- gcc-4.6.0.orig/gcc/combine.c	2011-02-15 19:46:26.000000000 +0000
++++ gcc-4.6.0/gcc/combine.c	2011-04-12 13:44:33.209292000 +0000
+@@ -387,7 +387,7 @@
+ static int can_combine_p (rtx, rtx, rtx, rtx, rtx, rtx, rtx *, rtx *);
+ static int combinable_i3pat (rtx, rtx *, rtx, rtx, rtx, int, int, rtx *);
+ static int contains_muldiv (rtx);
+-static rtx try_combine (rtx, rtx, rtx, rtx, int *);
++static rtx try_combine (rtx, rtx, rtx, rtx, int *, rtx);
+ static void undo_all (void);
+ static void undo_commit (void);
+ static rtx *find_split_point (rtx *, rtx, bool);
+@@ -1159,6 +1159,7 @@
+ 
+   FOR_EACH_BB (this_basic_block)
+     {
++      rtx last_combined_insn = NULL_RTX;
+       optimize_this_for_speed_p = optimize_bb_for_speed_p (this_basic_block);
+       last_call_luid = 0;
+       mem_last_set = -1;
+@@ -1177,6 +1178,15 @@
+ 	  next = 0;
+ 	  if (NONDEBUG_INSN_P (insn))
+ 	    {
++	      while (last_combined_insn
++		     && INSN_DELETED_P (last_combined_insn))
++		last_combined_insn = PREV_INSN (last_combined_insn);
++	      if (last_combined_insn == NULL_RTX
++		  || BARRIER_P (last_combined_insn)
++		  || BLOCK_FOR_INSN (last_combined_insn) != this_basic_block
++		  || DF_INSN_LUID (last_combined_insn) <= DF_INSN_LUID (insn))
++		last_combined_insn = insn;
++
+ 	      /* See if we know about function return values before this
+ 		 insn based upon SUBREG flags.  */
+ 	      check_promoted_subreg (insn, PATTERN (insn));
+@@ -1190,7 +1200,8 @@
+ 
+ 	      for (links = LOG_LINKS (insn); links; links = XEXP (links, 1))
+ 		if ((next = try_combine (insn, XEXP (links, 0), NULL_RTX,
+-					 NULL_RTX, &new_direct_jump_p)) != 0)
++					 NULL_RTX, &new_direct_jump_p,
++					 last_combined_insn)) != 0)
+ 		  goto retry;
+ 
+ 	      /* Try each sequence of three linked insns ending with this one.  */
+@@ -1208,8 +1219,8 @@
+ 		       nextlinks;
+ 		       nextlinks = XEXP (nextlinks, 1))
+ 		    if ((next = try_combine (insn, link, XEXP (nextlinks, 0),
+-					     NULL_RTX,
+-					     &new_direct_jump_p)) != 0)
++					     NULL_RTX, &new_direct_jump_p,
++					     last_combined_insn)) != 0)
+ 		      goto retry;
+ 		}
+ 
+@@ -1227,14 +1238,15 @@
+ 		  && sets_cc0_p (PATTERN (prev)))
+ 		{
+ 		  if ((next = try_combine (insn, prev, NULL_RTX, NULL_RTX,
+-					   &new_direct_jump_p)) != 0)
++					   &new_direct_jump_p,
++					   last_combined_insn)) != 0)
+ 		    goto retry;
+ 
+ 		  for (nextlinks = LOG_LINKS (prev); nextlinks;
+ 		       nextlinks = XEXP (nextlinks, 1))
+ 		    if ((next = try_combine (insn, prev, XEXP (nextlinks, 0),
+-					     NULL_RTX,
+-					     &new_direct_jump_p)) != 0)
++					     NULL_RTX, &new_direct_jump_p,
++					     last_combined_insn)) != 0)
+ 		      goto retry;
+ 		}
+ 
+@@ -1247,14 +1259,15 @@
+ 		  && reg_mentioned_p (cc0_rtx, SET_SRC (PATTERN (insn))))
+ 		{
+ 		  if ((next = try_combine (insn, prev, NULL_RTX, NULL_RTX,
+-					   &new_direct_jump_p)) != 0)
++					   &new_direct_jump_p,
++					   last_combined_insn)) != 0)
+ 		    goto retry;
+ 
+ 		  for (nextlinks = LOG_LINKS (prev); nextlinks;
+ 		       nextlinks = XEXP (nextlinks, 1))
+ 		    if ((next = try_combine (insn, prev, XEXP (nextlinks, 0),
+-					     NULL_RTX,
+-					     &new_direct_jump_p)) != 0)
++					     NULL_RTX, &new_direct_jump_p,
++					     last_combined_insn)) != 0)
+ 		      goto retry;
+ 		}
+ 
+@@ -1269,8 +1282,8 @@
+ 		    && NONJUMP_INSN_P (prev)
+ 		    && sets_cc0_p (PATTERN (prev))
+ 		    && (next = try_combine (insn, XEXP (links, 0),
+-					    prev, NULL_RTX,
+-					    &new_direct_jump_p)) != 0)
++					    prev, NULL_RTX, &new_direct_jump_p,
++					    last_combined_insn)) != 0)
+ 		  goto retry;
+ #endif
+ 
+@@ -1281,7 +1294,8 @@
+ 		     nextlinks = XEXP (nextlinks, 1))
+ 		  if ((next = try_combine (insn, XEXP (links, 0),
+ 					   XEXP (nextlinks, 0), NULL_RTX,
+-					   &new_direct_jump_p)) != 0)
++					   &new_direct_jump_p,
++					   last_combined_insn)) != 0)
+ 		    goto retry;
+ 
+ 	      /* Try four-instruction combinations.  */
+@@ -1305,14 +1319,16 @@
+ 			   nextlinks = XEXP (nextlinks, 1))
+ 			if ((next = try_combine (insn, link, link1,
+ 						 XEXP (nextlinks, 0),
+-						 &new_direct_jump_p)) != 0)
++						 &new_direct_jump_p,
++						 last_combined_insn)) != 0)
+ 			  goto retry;
+ 		      /* I0, I1 -> I2, I2 -> I3.  */
+ 		      for (nextlinks = XEXP (next1, 1); nextlinks;
+ 			   nextlinks = XEXP (nextlinks, 1))
+ 			if ((next = try_combine (insn, link, link1,
+ 						 XEXP (nextlinks, 0),
+-						 &new_direct_jump_p)) != 0)
++						 &new_direct_jump_p,
++						 last_combined_insn)) != 0)
+ 			  goto retry;
+ 		    }
+ 
+@@ -1326,14 +1342,16 @@
+ 			   nextlinks = XEXP (nextlinks, 1))
+ 			if ((next = try_combine (insn, link, link1,
+ 						 XEXP (nextlinks, 0),
+-						 &new_direct_jump_p)) != 0)
++						 &new_direct_jump_p,
++						 last_combined_insn)) != 0)
+ 			  goto retry;
+ 		      /* I0 -> I1; I1, I2 -> I3.  */
+ 		      for (nextlinks = LOG_LINKS (link1); nextlinks;
+ 			   nextlinks = XEXP (nextlinks, 1))
+ 			if ((next = try_combine (insn, link, link1,
+ 						 XEXP (nextlinks, 0),
+-						 &new_direct_jump_p)) != 0)
++						 &new_direct_jump_p,
++						 last_combined_insn)) != 0)
+ 			  goto retry;
+ 		    }
+ 		}
+@@ -1362,7 +1380,8 @@
+ 		      i2mod_old_rhs = copy_rtx (orig);
+ 		      i2mod_new_rhs = copy_rtx (note);
+ 		      next = try_combine (insn, i2mod, NULL_RTX, NULL_RTX,
+-					  &new_direct_jump_p);
++					  &new_direct_jump_p,
++					  last_combined_insn);
+ 		      i2mod = NULL_RTX;
+ 		      if (next)
+ 			goto retry;
+@@ -2421,19 +2440,21 @@
+ }
+ 
+ /* Replace all the occurrences of DEST with SRC in DEBUG_INSNs between INSN
+-   and LAST.  */
++   and LAST, not including INSN, but including LAST.  Also stop at the end
++   of THIS_BASIC_BLOCK.  */
+ 
+ static void
+ propagate_for_debug (rtx insn, rtx last, rtx dest, rtx src)
+ {
+-  rtx next, loc;
++  rtx next, loc, end = NEXT_INSN (BB_END (this_basic_block));
+ 
+   struct rtx_subst_pair p;
+   p.to = src;
+   p.adjusted = false;
+ 
+   next = NEXT_INSN (insn);
+-  while (next != last)
++  last = NEXT_INSN (last);
++  while (next != last && next != end)
+     {
+       insn = next;
+       next = NEXT_INSN (insn);
+@@ -2501,10 +2522,15 @@
+    resume scanning.
+ 
+    Set NEW_DIRECT_JUMP_P to a nonzero value if try_combine creates a
+-   new direct jump instruction.  */
++   new direct jump instruction.
++
++   LAST_COMBINED_INSN is either I3, or some insn after I3 that has
++   been I3 passed to an earlier try_combine within the same basic
++   block.  */
+ 
+ static rtx
+-try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p)
++try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p,
++	     rtx last_combined_insn)
+ {
+   /* New patterns for I3 and I2, respectively.  */
+   rtx newpat, newi2pat = 0;
+@@ -3853,7 +3879,7 @@
+ 		   i2src while its original mode is temporarily
+ 		   restored, and then clear i2scratch so that we don't
+ 		   do it again later.  */
+-		propagate_for_debug (i2, i3, reg, i2src);
++		propagate_for_debug (i2, last_combined_insn, reg, i2src);
+ 		i2scratch = false;
+ 		/* Put back the new mode.  */
+ 		adjust_reg_mode (reg, new_mode);
+@@ -3866,13 +3892,16 @@
+ 		if (reg == i2dest)
+ 		  {
+ 		    first = i2;
+-		    last = i3;
++		    last = last_combined_insn;
+ 		  }
+ 		else
+ 		  {
+ 		    first = i3;
+ 		    last = undobuf.other_insn;
+ 		    gcc_assert (last);
++		    if (DF_INSN_LUID (last)
++			< DF_INSN_LUID (last_combined_insn))
++		      last = last_combined_insn;
+ 		  }
+ 
+ 		/* We're dealing with a reg that changed mode but not
+@@ -4101,14 +4130,14 @@
+     if (newi2pat)
+       {
+ 	if (MAY_HAVE_DEBUG_INSNS && i2scratch)
+-	  propagate_for_debug (i2, i3, i2dest, i2src);
++	  propagate_for_debug (i2, last_combined_insn, i2dest, i2src);
+ 	INSN_CODE (i2) = i2_code_number;
+ 	PATTERN (i2) = newi2pat;
+       }
+     else
+       {
+ 	if (MAY_HAVE_DEBUG_INSNS && i2src)
+-	  propagate_for_debug (i2, i3, i2dest, i2src);
++	  propagate_for_debug (i2, last_combined_insn, i2dest, i2src);
+ 	SET_INSN_DELETED (i2);
+       }
+ 
+@@ -4117,7 +4146,7 @@
+ 	LOG_LINKS (i1) = 0;
+ 	REG_NOTES (i1) = 0;
+ 	if (MAY_HAVE_DEBUG_INSNS)
+-	  propagate_for_debug (i1, i3, i1dest, i1src);
++	  propagate_for_debug (i1, last_combined_insn, i1dest, i1src);
+ 	SET_INSN_DELETED (i1);
+       }
+ 
+@@ -4126,7 +4155,7 @@
+ 	LOG_LINKS (i0) = 0;
+ 	REG_NOTES (i0) = 0;
+ 	if (MAY_HAVE_DEBUG_INSNS)
+-	  propagate_for_debug (i0, i3, i0dest, i0src);
++	  propagate_for_debug (i0, last_combined_insn, i0dest, i0src);
+ 	SET_INSN_DELETED (i0);
+       }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/common.opt gcc-4.6.0/gcc/common.opt
+--- gcc-4.6.0.orig/gcc/common.opt	2011-03-06 00:38:13.000000000 +0000
++++ gcc-4.6.0/gcc/common.opt	2011-04-11 15:26:47.458600000 +0000
+@@ -456,12 +456,21 @@
+ Tbss
+ Driver Separate
+ 
++Tbss=
++Driver Joined
++
+ Tdata
+ Driver Separate
+ 
++Tdata=
++Driver Joined
++
+ Ttext
+ Driver Separate
+ 
++Ttext=
++Driver Joined
++
+ W
+ Common RejectNegative Warning Alias(Wextra)
+ This switch is deprecated; use -Wextra instead
+diff -Naur gcc-4.6.0.orig/gcc/config/alpha/alpha.c gcc-4.6.0/gcc/config/alpha/alpha.c
+--- gcc-4.6.0.orig/gcc/config/alpha/alpha.c	2010-12-01 13:46:36.000000000 +0000
++++ gcc-4.6.0/gcc/config/alpha/alpha.c	2011-03-29 18:24:02.622508000 +0000
+@@ -94,10 +94,6 @@
+ 
+ static int alpha_function_needs_gp;
+ 
+-/* The alias set for prologue/epilogue register save/restore.  */
+-
+-static GTY(()) alias_set_type alpha_sr_alias_set;
+-
+ /* The assembler name of the current function.  */
+ 
+ static const char *alpha_fnname;
+@@ -510,9 +506,6 @@
+   if (align_functions <= 0)
+     align_functions = 16;
+ 
+-  /* Acquire a unique set number for our register saves and restores.  */
+-  alpha_sr_alias_set = new_alias_set ();
+-
+   /* Register variables and functions with the garbage collector.  */
+ 
+   /* Set up function hooks.  */
+@@ -7715,8 +7708,7 @@
+   rtx addr, mem, insn;
+ 
+   addr = plus_constant (base_reg, base_ofs);
+-  mem = gen_rtx_MEM (DImode, addr);
+-  set_mem_alias_set (mem, alpha_sr_alias_set);
++  mem = gen_frame_mem (DImode, addr);
+ 
+   insn = emit_move_insn (mem, value);
+   RTX_FRAME_RELATED_P (insn) = 1;
+@@ -8391,9 +8383,7 @@
+ 
+       /* Restore registers in order, excepting a true frame pointer.  */
+ 
+-      mem = gen_rtx_MEM (DImode, plus_constant (sa_reg, reg_offset));
+-      if (! eh_ofs)
+-        set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (sa_reg, reg_offset));
+       reg = gen_rtx_REG (DImode, REG_RA);
+       emit_move_insn (reg, mem);
+       cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores);
+@@ -8408,8 +8398,8 @@
+ 	      fp_offset = reg_offset;
+ 	    else
+ 	      {
+-		mem = gen_rtx_MEM (DImode, plus_constant(sa_reg, reg_offset));
+-		set_mem_alias_set (mem, alpha_sr_alias_set);
++		mem = gen_frame_mem (DImode,
++				     plus_constant (sa_reg, reg_offset));
+ 		reg = gen_rtx_REG (DImode, i);
+ 		emit_move_insn (reg, mem);
+ 		cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg,
+@@ -8421,8 +8411,7 @@
+       for (i = 0; i < 31; ++i)
+ 	if (fmask & (1UL << i))
+ 	  {
+-	    mem = gen_rtx_MEM (DFmode, plus_constant(sa_reg, reg_offset));
+-	    set_mem_alias_set (mem, alpha_sr_alias_set);
++	    mem = gen_frame_mem (DFmode, plus_constant (sa_reg, reg_offset));
+ 	    reg = gen_rtx_REG (DFmode, i+32);
+ 	    emit_move_insn (reg, mem);
+ 	    cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores);
+@@ -8438,9 +8427,9 @@
+       for (i = 9; i < 15; i++)
+ 	if (imask & (1UL << i))
+ 	  {
+-	    mem = gen_rtx_MEM (DImode, plus_constant(hard_frame_pointer_rtx,
+-						     reg_offset));
+-	    set_mem_alias_set (mem, alpha_sr_alias_set);
++	    mem = gen_frame_mem (DImode,
++				 plus_constant (hard_frame_pointer_rtx,
++						reg_offset));
+ 	    reg = gen_rtx_REG (DImode, i);
+ 	    emit_move_insn (reg, mem);
+ 	    cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores);
+@@ -8450,9 +8439,9 @@
+       for (i = 2; i < 10; i++)
+ 	if (fmask & (1UL << i))
+ 	  {
+-	    mem = gen_rtx_MEM (DFmode, plus_constant(hard_frame_pointer_rtx,
+-						     reg_offset));
+-	    set_mem_alias_set (mem, alpha_sr_alias_set);
++	    mem = gen_frame_mem (DFmode,
++				 plus_constant (hard_frame_pointer_rtx,
++						reg_offset));
+ 	    reg = gen_rtx_REG (DFmode, i+32);
+ 	    emit_move_insn (reg, mem);
+ 	    cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores);
+@@ -8460,8 +8449,7 @@
+ 	  }
+ 
+       /* Restore the return address from the DSIB.  */
+-      mem = gen_rtx_MEM (DImode, plus_constant (hard_frame_pointer_rtx, -8));
+-      set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (hard_frame_pointer_rtx, -8));
+       reg = gen_rtx_REG (DImode, REG_RA);
+       emit_move_insn (reg, mem);
+       cfa_restores = alloc_reg_note (REG_CFA_RESTORE, reg, cfa_restores);
+@@ -8524,9 +8512,8 @@
+       if (TARGET_ABI_UNICOSMK)
+ 	{
+ 	  emit_insn (gen_blockage ());
+-	  mem = gen_rtx_MEM (DImode,
+-			     plus_constant (hard_frame_pointer_rtx, -16));
+-	  set_mem_alias_set (mem, alpha_sr_alias_set);
++	  mem = gen_frame_mem (DImode,
++			       plus_constant (hard_frame_pointer_rtx, -16));
+ 	  emit_move_insn (hard_frame_pointer_rtx, mem);
+ 	  cfa_restores = alloc_reg_note (REG_CFA_RESTORE,
+ 					 hard_frame_pointer_rtx, cfa_restores);
+@@ -8534,8 +8521,7 @@
+       else if (fp_is_frame_pointer)
+ 	{
+ 	  emit_insn (gen_blockage ());
+-	  mem = gen_rtx_MEM (DImode, plus_constant (sa_reg, fp_offset));
+-	  set_mem_alias_set (mem, alpha_sr_alias_set);
++	  mem = gen_frame_mem (DImode, plus_constant (sa_reg, fp_offset));
+ 	  emit_move_insn (hard_frame_pointer_rtx, mem);
+ 	  cfa_restores = alloc_reg_note (REG_CFA_RESTORE,
+ 					 hard_frame_pointer_rtx, cfa_restores);
+@@ -10515,15 +10501,13 @@
+ 
+       /* Save the return address.  */
+ 
+-      mem = gen_rtx_MEM (DImode, plus_constant (stack_pointer_rtx, 56));
+-      set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (stack_pointer_rtx, 56));
+       FRP (emit_move_insn (mem, gen_rtx_REG (DImode, REG_RA)));
+       (*imaskP) &= ~(1UL << REG_RA);
+ 
+       /* Save the old frame pointer.  */
+ 
+-      mem = gen_rtx_MEM (DImode, plus_constant (stack_pointer_rtx, 48));
+-      set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (stack_pointer_rtx, 48));
+       FRP (emit_move_insn (mem, hard_frame_pointer_rtx));
+       (*imaskP) &= ~(1UL << HARD_FRAME_POINTER_REGNUM);
+ 
+@@ -10532,8 +10516,7 @@
+       /* Store the SSIB pointer.  */
+ 
+       ssib_name = ggc_strdup (unicosmk_ssib_name ());
+-      mem = gen_rtx_MEM (DImode, plus_constant (stack_pointer_rtx, 32));
+-      set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (stack_pointer_rtx, 32));
+ 
+       FRP (emit_move_insn (gen_rtx_REG (DImode, 5),
+                            gen_rtx_SYMBOL_REF (Pmode, ssib_name)));
+@@ -10541,8 +10524,7 @@
+ 
+       /* Save the CIW index.  */
+ 
+-      mem = gen_rtx_MEM (DImode, plus_constant (stack_pointer_rtx, 24));
+-      set_mem_alias_set (mem, alpha_sr_alias_set);
++      mem = gen_frame_mem (DImode, plus_constant (stack_pointer_rtx, 24));
+       FRP (emit_move_insn (mem, gen_rtx_REG (DImode, 25)));
+ 
+       emit_insn (gen_blockage ());
+diff -Naur gcc-4.6.0.orig/gcc/config/alpha/osf5.h gcc-4.6.0/gcc/config/alpha/osf5.h
+--- gcc-4.6.0.orig/gcc/config/alpha/osf5.h	2010-11-21 00:54:14.000000000 +0000
++++ gcc-4.6.0/gcc/config/alpha/osf5.h	2011-04-11 10:42:23.126775000 +0000
+@@ -1,7 +1,7 @@
+ /* Definitions of target machine for GNU compiler, for DEC Alpha on
+    Tru64 UNIX V5.1.
+    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
+-   2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
++   2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
+ 
+@@ -223,6 +223,10 @@
+ #define LD_INIT_SWITCH "-init"
+ #define LD_FINI_SWITCH "-fini"
+ 
++/* From Tru64 UNIX Object File and Symbol Table Format Specification,
++   2.3.5 Alignment, p.19.  */
++#define MAX_OFILE_ALIGNMENT (64 * 1024 * BITS_PER_UNIT)
++
+ /* Select a format to encode pointers in exception handling data.  CODE
+    is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is
+    true if the symbol may be affected by dynamic relocations.
+diff -Naur gcc-4.6.0.orig/gcc/config/arm/arm.c gcc-4.6.0/gcc/config/arm/arm.c
+--- gcc-4.6.0.orig/gcc/config/arm/arm.c	2011-01-29 03:20:57.000000000 +0000
++++ gcc-4.6.0/gcc/config/arm/arm.c	2011-05-05 08:39:40.220991000 +0000
+@@ -19564,7 +19564,7 @@
+   rtx tmp1 = gen_reg_rtx (mode);
+   rtx tmp2 = gen_reg_rtx (mode);
+ 
+-  emit_insn (intfn (tmp1, op1, tmp2, op2));
++  emit_insn (intfn (tmp1, op1, op2, tmp2));
+ 
+   emit_move_insn (mem, tmp1);
+   mem = adjust_address (mem, mode, GET_MODE_SIZE (mode));
+diff -Naur gcc-4.6.0.orig/gcc/config/arm/arm.md gcc-4.6.0/gcc/config/arm/arm.md
+--- gcc-4.6.0.orig/gcc/config/arm/arm.md	2011-03-15 19:59:25.000000000 +0000
++++ gcc-4.6.0/gcc/config/arm/arm.md	2011-04-13 07:41:08.655425000 +0000
+@@ -3690,7 +3690,7 @@
+ ;; The constraints here are to prevent a *partial* overlap (where %Q0 == %R1).
+ ;; The first alternative allows the common case of a *full* overlap.
+ (define_insn "*arm_negdi2"
+-  [(set (match_operand:DI         0 "s_register_operand" "=&r,r")
++  [(set (match_operand:DI         0 "s_register_operand" "=r,&r")
+ 	(neg:DI (match_operand:DI 1 "s_register_operand"  "0,r")))
+    (clobber (reg:CC CC_REGNUM))]
+   "TARGET_ARM"
+diff -Naur gcc-4.6.0.orig/gcc/config/arm/neon.md gcc-4.6.0/gcc/config/arm/neon.md
+--- gcc-4.6.0.orig/gcc/config/arm/neon.md	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/arm/neon.md	2011-05-06 10:21:26.426798000 +0000
+@@ -425,7 +425,7 @@
+           (match_operand:SI 2 "immediate_operand" "i")))]
+   "TARGET_NEON"
+ {
+-  int elt = ffs ((int) INTVAL (operands[2]) - 1);
++  int elt = ffs ((int) INTVAL (operands[2])) - 1;
+   if (BYTES_BIG_ENDIAN)
+     elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
+   operands[2] = GEN_INT (elt);
+@@ -4079,13 +4079,14 @@
+ 
+ (define_insn "neon_vtrn<mode>_internal"
+   [(set (match_operand:VDQW 0 "s_register_operand" "=w")
+-	(unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
+-		     UNSPEC_VTRN1))
+-   (set (match_operand:VDQW 2 "s_register_operand" "=w")
+-        (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
+-		     UNSPEC_VTRN2))]
++        (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
++                      (match_operand:VDQW 2 "s_register_operand" "w")]
++                     UNSPEC_VTRN1))
++   (set (match_operand:VDQW 3 "s_register_operand" "=2")
++         (unspec:VDQW [(match_dup 1) (match_dup 2)]
++                     UNSPEC_VTRN2))]
+   "TARGET_NEON"
+-  "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++  "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+   [(set (attr "neon_type")
+       (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+                     (const_string "neon_bp_simple")
+@@ -4105,13 +4106,14 @@
+ 
+ (define_insn "neon_vzip<mode>_internal"
+   [(set (match_operand:VDQW 0 "s_register_operand" "=w")
+-	(unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
+-		     UNSPEC_VZIP1))
+-   (set (match_operand:VDQW 2 "s_register_operand" "=w")
+-        (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
+-		     UNSPEC_VZIP2))]
++        (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
++                      (match_operand:VDQW 2 "s_register_operand" "w")]
++                     UNSPEC_VZIP1))
++   (set (match_operand:VDQW 3 "s_register_operand" "=2")
++        (unspec:VDQW [(match_dup 1) (match_dup 2)]
++                     UNSPEC_VZIP2))]
+   "TARGET_NEON"
+-  "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++  "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+   [(set (attr "neon_type")
+       (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+                     (const_string "neon_bp_simple")
+@@ -4131,13 +4133,14 @@
+ 
+ (define_insn "neon_vuzp<mode>_internal"
+   [(set (match_operand:VDQW 0 "s_register_operand" "=w")
+-	(unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
++        (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
++                      (match_operand:VDQW 2 "s_register_operand" "w")]
+                      UNSPEC_VUZP1))
+-   (set (match_operand:VDQW 2 "s_register_operand" "=w")
+-        (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
+-		     UNSPEC_VUZP2))]
++   (set (match_operand:VDQW 3 "s_register_operand" "=2")
++        (unspec:VDQW [(match_dup 1) (match_dup 2)]
++                     UNSPEC_VUZP2))]
+   "TARGET_NEON"
+-  "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
++  "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
+   [(set (attr "neon_type")
+       (if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
+                     (const_string "neon_bp_simple")
+diff -Naur gcc-4.6.0.orig/gcc/config/arm/predicates.md gcc-4.6.0/gcc/config/arm/predicates.md
+--- gcc-4.6.0.orig/gcc/config/arm/predicates.md	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/arm/predicates.md	2011-03-28 10:22:57.435118000 +0000
+@@ -610,7 +610,7 @@
+ ;; TODO: We could check lane numbers more precisely based on the mode.
+ (define_predicate "neon_lane_number"
+   (and (match_code "const_int")
+-       (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 7")))
++       (match_test "INTVAL (op) >= 0 && INTVAL (op) <= 15")))
+ ;; Predicates for named expanders that overlap multiple ISAs.
+ 
+ (define_predicate "cmpdi_operand"
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/constraints.md gcc-4.6.0/gcc/config/i386/constraints.md
+--- gcc-4.6.0.orig/gcc/config/i386/constraints.md	2009-07-08 16:41:23.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/constraints.md	2011-05-16 20:29:20.002343000 +0000
+@@ -149,7 +149,7 @@
+ (define_constraint "G"
+   "Standard 80387 floating point constant."
+   (and (match_code "const_double")
+-       (match_test "standard_80387_constant_p (op)")))
++       (match_test "standard_80387_constant_p (op) > 0")))
+ 
+ ;; This can theoretically be any mode's CONST0_RTX.
+ (define_constraint "C"
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/i386.c gcc-4.6.0/gcc/config/i386/i386.c
+--- gcc-4.6.0.orig/gcc/config/i386/i386.c	2011-03-04 17:56:39.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/i386.c	2011-05-16 20:29:20.002343000 +0000
+@@ -9981,7 +9981,7 @@
+      probe that many bytes past the specified size to maintain a protection
+      area at the botton of the stack.  */
+   const int dope = 4 * UNITS_PER_WORD;
+-  rtx size_rtx = GEN_INT (size);
++  rtx size_rtx = GEN_INT (size), last;
+ 
+   /* See if we have a constant small number of probes to generate.  If so,
+      that's the easy case.  The run-time loop is made up of 11 insns in the
+@@ -10021,9 +10021,9 @@
+       emit_stack_probe (stack_pointer_rtx);
+ 
+       /* Adjust back to account for the additional first interval.  */
+-      emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx,
+-			      plus_constant (stack_pointer_rtx,
+-					     PROBE_INTERVAL + dope)));
++      last = emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++				     plus_constant (stack_pointer_rtx,
++						    PROBE_INTERVAL + dope)));
+     }
+ 
+   /* Otherwise, do the same as above, but in a loop.  Note that we must be
+@@ -10084,15 +10084,33 @@
+ 	}
+ 
+       /* Adjust back to account for the additional first interval.  */
+-      emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx,
+-			      plus_constant (stack_pointer_rtx,
+-					     PROBE_INTERVAL + dope)));
++      last = emit_insn (gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++				     plus_constant (stack_pointer_rtx,
++						    PROBE_INTERVAL + dope)));
+ 
+       release_scratch_register_on_entry (&sr);
+     }
+ 
+   gcc_assert (cfun->machine->fs.cfa_reg != stack_pointer_rtx);
+-  cfun->machine->fs.sp_offset += size;
++
++  /* Even if the stack pointer isn't the CFA register, we need to correctly
++     describe the adjustments made to it, in particular differentiate the
++     frame-related ones from the frame-unrelated ones.  */
++  if (size > 0)
++    {
++      rtx expr = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (2));
++      XVECEXP (expr, 0, 0)
++	= gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++		       plus_constant (stack_pointer_rtx, -size));
++      XVECEXP (expr, 0, 1)
++	= gen_rtx_SET (VOIDmode, stack_pointer_rtx,
++		       plus_constant (stack_pointer_rtx,
++				      PROBE_INTERVAL + dope + size));
++      add_reg_note (last, REG_FRAME_RELATED_EXPR, expr);
++      RTX_FRAME_RELATED_P (last) = 1;
++
++      cfun->machine->fs.sp_offset += size;
++    }
+ 
+   /* Make sure nothing is scheduled before we are done.  */
+   emit_insn (gen_blockage ());
+@@ -10548,8 +10566,8 @@
+     }
+ 
+   /* The stack has already been decremented by the instruction calling us
+-     so we need to probe unconditionally to preserve the protection area.  */
+-  if (flag_stack_check == STATIC_BUILTIN_STACK_CHECK)
++     so probe if the size is non-negative to preserve the protection area.  */
++  if (allocate >= 0 && flag_stack_check == STATIC_BUILTIN_STACK_CHECK)
+     {
+       /* We expect the registers to be saved when probes are used.  */
+       gcc_assert (int_registers_saved);
+@@ -14389,17 +14407,21 @@
+ 	fprintf (file, "0x%08x", (unsigned int) l);
+     }
+ 
+-  /* These float cases don't actually occur as immediate operands.  */
+   else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == DFmode)
+     {
+-      char dstr[30];
++      REAL_VALUE_TYPE r;
++      long l[2];
+ 
+-      real_to_decimal (dstr, CONST_DOUBLE_REAL_VALUE (x), sizeof (dstr), 0, 1);
+-      fputs (dstr, file);
++      REAL_VALUE_FROM_CONST_DOUBLE (r, x);
++      REAL_VALUE_TO_TARGET_DOUBLE (r, l);
++
++      if (ASSEMBLER_DIALECT == ASM_ATT)
++	putc ('$', file);
++      fprintf (file, "0x%lx%08lx", l[1] & 0xffffffff, l[0] & 0xffffffff);
+     }
+ 
+-  else if (GET_CODE (x) == CONST_DOUBLE
+-	   && GET_MODE (x) == XFmode)
++  /* These float cases don't actually occur as immediate operands.  */
++  else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == XFmode)
+     {
+       char dstr[30];
+ 
+@@ -17172,11 +17194,15 @@
+       if (req_mode == CCZmode)
+ 	return false;
+       /* FALLTHRU */
++    case CCZmode:
++      break;
++
+     case CCAmode:
+     case CCCmode:
+     case CCOmode:
+     case CCSmode:
+-    case CCZmode:
++      if (set_mode != req_mode)
++	return false;
+       break;
+ 
+     default:
+@@ -28226,7 +28252,7 @@
+ 	 zero above.  We only want to wind up preferring 80387 registers if
+ 	 we plan on doing computation with them.  */
+       if (TARGET_80387
+-	  && standard_80387_constant_p (x))
++	  && standard_80387_constant_p (x) > 0)
+ 	{
+ 	  /* Limit class to non-sse.  */
+ 	  if (regclass == FLOAT_SSE_REGS)
+@@ -31191,10 +31217,19 @@
+       break;
+ 
+     case V2DImode:
+-      use_vec_merge = TARGET_SSE4_1;
++      use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT;
+       if (use_vec_merge)
+ 	break;
+ 
++      tmp = gen_reg_rtx (GET_MODE_INNER (mode));
++      ix86_expand_vector_extract (false, tmp, target, 1 - elt);
++      if (elt == 0)
++	tmp = gen_rtx_VEC_CONCAT (mode, tmp, val);
++      else
++	tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);
++      emit_insn (gen_rtx_SET (VOIDmode, target, tmp));
++      return;
++
+     case V2DFmode:
+       {
+ 	rtx op0, op1;
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/i386.h gcc-4.6.0/gcc/config/i386/i386.h
+--- gcc-4.6.0.orig/gcc/config/i386/i386.h	2011-01-14 21:03:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/i386.h	2011-03-30 10:43:55.372186000 +0000
+@@ -1272,7 +1272,7 @@
+ { 0xe0000000,    0x1f },		/* MMX_REGS */			\
+ { 0x1fe00100,0x1fe000 },		/* FP_TOP_SSE_REG */		\
+ { 0x1fe00200,0x1fe000 },		/* FP_SECOND_SSE_REG */		\
+-{ 0x1fe0ff00,0x3fe000 },		/* FLOAT_SSE_REGS */		\
++{ 0x1fe0ff00,0x1fe000 },		/* FLOAT_SSE_REGS */		\
+    { 0x1ffff,  0x1fe0 },		/* FLOAT_INT_REGS */		\
+ { 0x1fe100ff,0x1fffe0 },		/* INT_SSE_REGS */		\
+ { 0x1fe1ffff,0x1fffe0 },		/* FLOAT_INT_SSE_REGS */	\
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/i386.md gcc-4.6.0/gcc/config/i386/i386.md
+--- gcc-4.6.0.orig/gcc/config/i386/i386.md	2011-02-19 11:23:02.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/i386.md	2011-05-16 20:29:20.002343000 +0000
+@@ -1974,21 +1974,15 @@
+ 	return "movdq2q\t{%1, %0|%0, %1}";
+ 
+     case TYPE_SSEMOV:
+-      if (TARGET_AVX)
+-	{
+-	  if (get_attr_mode (insn) == MODE_TI)
+-	    return "vmovdqa\t{%1, %0|%0, %1}";
+-	  else
+-	    return "vmovq\t{%1, %0|%0, %1}";
+-	}
+-
+       if (get_attr_mode (insn) == MODE_TI)
+-	return "movdqa\t{%1, %0|%0, %1}";
+-      /* FALLTHRU */
++	return "%vmovdqa\t{%1, %0|%0, %1}";
++      /* Handle broken assemblers that require movd instead of movq.  */
++      if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
++	return "%vmovd\t{%1, %0|%0, %1}";
++      return "%vmovq\t{%1, %0|%0, %1}";
+ 
+     case TYPE_MMXMOV:
+-      /* Moves from and into integer register is done using movd
+-	 opcode with REX prefix.  */
++      /* Handle broken assemblers that require movd instead of movq.  */
+       if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
+ 	return "movd\t{%1, %0|%0, %1}";
+       return "movq\t{%1, %0|%0, %1}";
+@@ -2108,7 +2102,7 @@
+   [(set_attr "type" "*,*,mmx,mmxmov,mmxmov,sselog1,ssemov,ssemov,ssemov,sselog1,ssemov,ssemov,ssemov")
+    (set (attr "prefix")
+      (if_then_else (eq_attr "alternative" "5,6,7,8")
+-       (const_string "vex")
++       (const_string "maybe_vex")
+        (const_string "orig")))
+    (set_attr "mode" "DI,DI,DI,DI,DI,TI,DI,TI,DI,V4SF,V2SF,V4SF,V2SF")])
+ 
+@@ -2408,6 +2402,9 @@
+ {
+   if (TARGET_PARTIAL_REG_STALL && optimize_function_for_speed_p (cfun))
+     FAIL;
++  if (GET_CODE (operands[0]) == SUBREG
++      && GET_MODE_CLASS (GET_MODE (SUBREG_REG (operands[0]))) != MODE_INT)
++    FAIL;
+   /* Don't generate memory->memory moves, go through a register */
+   if (MEM_P (operands[0]) && MEM_P (operands[1]))
+     operands[1] = force_reg (<MODE>mode, operands[1]);
+@@ -2839,6 +2836,7 @@
+   "optimize_function_for_speed_p (cfun)
+    && !(MEM_P (operands[0]) && MEM_P (operands[1]))
+    && (reload_in_progress || reload_completed
++       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || memory_operand (operands[0], XFmode))"
+ {
+@@ -2868,7 +2866,8 @@
+   "optimize_function_for_size_p (cfun)
+    && !(MEM_P (operands[0]) && MEM_P (operands[1]))
+    && (reload_in_progress || reload_completed
+-       || standard_80387_constant_p (operands[1])
++       || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
++       || standard_80387_constant_p (operands[1]) > 0
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || memory_operand (operands[0], XFmode))"
+ {
+@@ -2906,15 +2905,15 @@
+ 
+ (define_insn "*movdf_internal_rex64"
+   [(set (match_operand:DF 0 "nonimmediate_operand"
+-		"=f,m,f,r  ,m ,Y2*x,Y2*x,Y2*x,m   ,Yi,r ")
++		"=f,m,f,r ,m,!r,!m,Y2*x,Y2*x,Y2*x,m   ,Yi,r ")
+ 	(match_operand:DF 1 "general_operand"
+-		"fm,f,G,rmF,Fr,C   ,Y2*x,m   ,Y2*x,r ,Yi"))]
++		"fm,f,G,rm,r,F ,F ,C   ,Y2*x,m   ,Y2*x,r ,Yi"))]
+   "TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))
+    && (reload_in_progress || reload_completed
+        || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+        || (!(TARGET_SSE2 && TARGET_SSE_MATH)
+            && optimize_function_for_size_p (cfun)
+-	   && standard_80387_constant_p (operands[1]))
++	   && standard_80387_constant_p (operands[1]) > 0)
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || memory_operand (operands[0], DFmode))"
+ {
+@@ -2929,9 +2928,15 @@
+ 
+     case 3:
+     case 4:
+-      return "#";
++      return "mov{q}\t{%1, %0|%0, %1}";
+ 
+     case 5:
++      return "movabs{q}\t{%1, %0|%0, %1}";
++
++    case 6:
++      return "#";
++
++    case 7:
+       switch (get_attr_mode (insn))
+ 	{
+ 	case MODE_V4SF:
+@@ -2949,9 +2954,9 @@
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+-    case 6:
+-    case 7:
+     case 8:
++    case 9:
++    case 10:
+       switch (get_attr_mode (insn))
+ 	{
+ 	case MODE_V4SF:
+@@ -2986,17 +2991,28 @@
+ 	  gcc_unreachable ();
+ 	}
+ 
+-    case 9:
+-    case 10:
+-    return "%vmovd\t{%1, %0|%0, %1}";
++    case 11:
++    case 12:
++      /* Handle broken assemblers that require movd instead of movq.  */
++      return "%vmovd\t{%1, %0|%0, %1}";
+ 
+     default:
+       gcc_unreachable();
+     }
+ }
+-  [(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov,ssemov,ssemov")
++  [(set_attr "type" "fmov,fmov,fmov,imov,imov,imov,multi,sselog1,ssemov,ssemov,ssemov,ssemov,ssemov")
++   (set (attr "modrm")
++     (if_then_else
++       (and (eq_attr "alternative" "5") (eq_attr "type" "imov"))
++	 (const_string "0")
++	 (const_string "*")))
++   (set (attr "length_immediate")
++     (if_then_else
++       (and (eq_attr "alternative" "5") (eq_attr "type" "imov"))
++	 (const_string "8")
++	 (const_string "*")))
+    (set (attr "prefix")
+-     (if_then_else (eq_attr "alternative" "0,1,2,3,4")
++     (if_then_else (eq_attr "alternative" "0,1,2,3,4,5,6")
+        (const_string "orig")
+        (const_string "maybe_vex")))
+    (set (attr "prefix_data16")
+@@ -3006,18 +3022,18 @@
+    (set (attr "mode")
+         (cond [(eq_attr "alternative" "0,1,2")
+ 		 (const_string "DF")
+-	       (eq_attr "alternative" "3,4,9,10")
++	       (eq_attr "alternative" "3,4,5,6,11,12")
+ 		 (const_string "DI")
+ 
+ 	       /* For SSE1, we have many fewer alternatives.  */
+ 	       (eq (symbol_ref "TARGET_SSE2") (const_int 0))
+-		 (cond [(eq_attr "alternative" "5,6")
++		 (cond [(eq_attr "alternative" "7,8")
+ 			  (const_string "V4SF")
+ 		       ]
+ 		   (const_string "V2SF"))
+ 
+ 	       /* xorps is one byte shorter.  */
+-	       (eq_attr "alternative" "5")
++	       (eq_attr "alternative" "7")
+ 		 (cond [(ne (symbol_ref "optimize_function_for_size_p (cfun)")
+ 			    (const_int 0))
+ 			  (const_string "V4SF")
+@@ -3032,7 +3048,7 @@
+ 		  chains, otherwise use short move to avoid extra work.
+ 
+ 		  movaps encodes one byte shorter.  */
+-	       (eq_attr "alternative" "6")
++	       (eq_attr "alternative" "8")
+ 		 (cond
+ 		   [(ne (symbol_ref "optimize_function_for_size_p (cfun)")
+ 		        (const_int 0))
+@@ -3045,7 +3061,7 @@
+ 	       /* For architectures resolving dependencies on register
+ 		  parts we may avoid extra work to zero out upper part
+ 		  of register.  */
+-	       (eq_attr "alternative" "7")
++	       (eq_attr "alternative" "9")
+ 		 (if_then_else
+ 		   (ne (symbol_ref "TARGET_SSE_SPLIT_REGS")
+ 		       (const_int 0))
+@@ -3059,14 +3075,11 @@
+ 		"=f,m,f,r  ,o ,Y2*x,Y2*x,Y2*x,m   ")
+ 	(match_operand:DF 1 "general_operand"
+ 		"fm,f,G,roF,Fr,C   ,Y2*x,m   ,Y2*x"))]
+-  "!(MEM_P (operands[0]) && MEM_P (operands[1]))
++  "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))
+    && optimize_function_for_speed_p (cfun)
+    && TARGET_INTEGER_DFMODE_MOVES
+    && (reload_in_progress || reload_completed
+        || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+-       || (!(TARGET_SSE2 && TARGET_SSE_MATH)
+-           && optimize_function_for_size_p (cfun)
+-	   && standard_80387_constant_p (operands[1]))
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || memory_operand (operands[0], DFmode))"
+ {
+@@ -3087,17 +3100,17 @@
+       switch (get_attr_mode (insn))
+ 	{
+ 	case MODE_V4SF:
+-	  return "xorps\t%0, %0";
++	  return "%vxorps\t%0, %d0";
+ 	case MODE_V2DF:
+ 	  if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+-	    return "xorps\t%0, %0";
++	    return "%vxorps\t%0, %d0";
+ 	  else
+-	    return "xorpd\t%0, %0";
++	    return "%vxorpd\t%0, %d0";
+ 	case MODE_TI:
+ 	  if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+-	    return "xorps\t%0, %0";
++	    return "%vxorps\t%0, %d0";
+ 	  else
+-	    return "pxor\t%0, %0";
++	    return "%vpxor\t%0, %d0";
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+@@ -3107,34 +3120,62 @@
+       switch (get_attr_mode (insn))
+ 	{
+ 	case MODE_V4SF:
+-	  return "movaps\t{%1, %0|%0, %1}";
++	  return "%vmovaps\t{%1, %0|%0, %1}";
+ 	case MODE_V2DF:
+ 	  if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+-	    return "movaps\t{%1, %0|%0, %1}";
++	    return "%vmovaps\t{%1, %0|%0, %1}";
+ 	  else
+-	    return "movapd\t{%1, %0|%0, %1}";
++	    return "%vmovapd\t{%1, %0|%0, %1}";
+ 	case MODE_TI:
+ 	  if (TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL)
+-	    return "movaps\t{%1, %0|%0, %1}";
++	    return "%vmovaps\t{%1, %0|%0, %1}";
+ 	  else
+-	    return "movdqa\t{%1, %0|%0, %1}";
++	    return "%vmovdqa\t{%1, %0|%0, %1}";
+ 	case MODE_DI:
+-	  return "movq\t{%1, %0|%0, %1}";
++	  return "%vmovq\t{%1, %0|%0, %1}";
+ 	case MODE_DF:
+-	  return "movsd\t{%1, %0|%0, %1}";
++	  if (TARGET_AVX)
++	    {
++	      if (REG_P (operands[0]) && REG_P (operands[1]))
++		return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
++	      else
++		return "vmovsd\t{%1, %0|%0, %1}";
++	    }
++	  else
++	    return "movsd\t{%1, %0|%0, %1}";
+ 	case MODE_V1DF:
+-	  return "movlpd\t{%1, %0|%0, %1}";
++	  if (TARGET_AVX)
++	    {
++	      if (REG_P (operands[0]))
++		return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
++	      else
++		return "vmovlpd\t{%1, %0|%0, %1}";
++	    }
++	  else
++	    return "movlpd\t{%1, %0|%0, %1}";
+ 	case MODE_V2SF:
+-	  return "movlps\t{%1, %0|%0, %1}";
++	  if (TARGET_AVX)
++	    {
++	      if (REG_P (operands[0]))
++		return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
++	      else
++		return "vmovlps\t{%1, %0|%0, %1}";
++	    }
++	  else
++	    return "movlps\t{%1, %0|%0, %1}";
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+ 
+     default:
+-      gcc_unreachable();
++      gcc_unreachable ();
+     }
+ }
+   [(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov")
++   (set (attr "prefix")
++     (if_then_else (eq_attr "alternative" "0,1,2,3,4")
++       (const_string "orig")
++       (const_string "maybe_vex")))
+    (set (attr "prefix_data16")
+      (if_then_else (eq_attr "mode" "V1DF")
+        (const_string "1")
+@@ -3198,20 +3239,19 @@
+   [(set (match_operand:DF 0 "nonimmediate_operand"
+ 			"=f,m,f,*r  ,o  ,Y2*x,Y2*x,Y2*x ,m  ")
+ 	(match_operand:DF 1 "general_operand"
+-			"fm,f,G,*roF,*Fr,C   ,Y2*x,mY2*x,Y2*x"))]
+-  "!(MEM_P (operands[0]) && MEM_P (operands[1]))
+-   && ((optimize_function_for_size_p (cfun)
+-       || !TARGET_INTEGER_DFMODE_MOVES) && !TARGET_64BIT)
++			"fm,f,G,*roF,F*r,C   ,Y2*x,mY2*x,Y2*x"))]
++  "!TARGET_64BIT && !(MEM_P (operands[0]) && MEM_P (operands[1]))
++   && (optimize_function_for_size_p (cfun)
++       || !TARGET_INTEGER_DFMODE_MOVES)
+    && (reload_in_progress || reload_completed
+        || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+        || (!(TARGET_SSE2 && TARGET_SSE_MATH)
+            && optimize_function_for_size_p (cfun)
+            && !memory_operand (operands[0], DFmode)
+-	   && standard_80387_constant_p (operands[1]))
++	   && standard_80387_constant_p (operands[1]) > 0)
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || ((optimize_function_for_size_p (cfun)
+-            || !TARGET_MEMORY_MISMATCH_STALL
+-	    || reload_in_progress || reload_completed)
++            || !TARGET_MEMORY_MISMATCH_STALL)
+  	   && memory_operand (operands[0], DFmode)))"
+ {
+   switch (which_alternative)
+@@ -3385,7 +3425,7 @@
+    && (reload_in_progress || reload_completed
+        || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+        || (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun)
+-	   && standard_80387_constant_p (operands[1]))
++	   && standard_80387_constant_p (operands[1]) > 0)
+        || GET_CODE (operands[1]) != CONST_DOUBLE
+        || memory_operand (operands[0], SFmode))"
+ {
+@@ -3422,12 +3462,13 @@
+ 
+     case 9: case 10: case 14: case 15:
+       return "movd\t{%1, %0|%0, %1}";
+-    case 12: case 13:
+-      return "%vmovd\t{%1, %0|%0, %1}";
+ 
+     case 11:
+       return "movq\t{%1, %0|%0, %1}";
+ 
++    case 12: case 13:
++      return "%vmovd\t{%1, %0|%0, %1}";
++
+     default:
+       gcc_unreachable ();
+     }
+@@ -3497,7 +3538,7 @@
+     }
+   else if (FP_REG_P (r))
+     {
+-      if (!standard_80387_constant_p (c))
++      if (standard_80387_constant_p (c) < 1)
+ 	FAIL;
+     }
+   else if (MMX_REG_P (r))
+@@ -3529,7 +3570,7 @@
+     }
+   else if (FP_REG_P (r))
+     {
+-      if (!standard_80387_constant_p (c))
++      if (standard_80387_constant_p (c) < 1)
+ 	FAIL;
+     }
+   else if (MMX_REG_P (r))
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/mmx.md gcc-4.6.0/gcc/config/i386/mmx.md
+--- gcc-4.6.0.orig/gcc/config/i386/mmx.md	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/mmx.md	2011-05-04 17:01:43.174413000 +0000
+@@ -63,6 +63,7 @@
+   DONE;
+ })
+ 
++;; movd instead of movq is required to handle broken assemblers.
+ (define_insn "*mov<mode>_internal_rex64"
+   [(set (match_operand:MMXMODEI8 0 "nonimmediate_operand"
+ 	 "=rm,r,!?y,!y,!?y,m  ,!y ,*Y2,x,x ,m,r ,Yi")
+@@ -196,6 +197,7 @@
+        (const_string "orig")))
+    (set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
+ 
++;; movd instead of movq is required to handle broken assemblers.
+ (define_insn "*movv2sf_internal_rex64"
+   [(set (match_operand:V2SF 0 "nonimmediate_operand"
+ 	 "=rm,r,!?y,!y,!?y,m  ,!y ,*Y2,x,x,x,m,r ,Yi")
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/predicates.md gcc-4.6.0/gcc/config/i386/predicates.md
+--- gcc-4.6.0.orig/gcc/config/i386/predicates.md	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/predicates.md	2011-04-07 20:46:50.015612000 +0000
+@@ -969,13 +969,8 @@
+ ;; Return true if OP is a comparison that can be used in the CMPSS/CMPPS insns.
+ ;; The first set are supported directly; the second set can't be done with
+ ;; full IEEE support, i.e. NaNs.
+-;;
+-;; ??? It would seem that we have a lot of uses of this predicate that pass
+-;; it the wrong mode.  We got away with this because the old function didn't
+-;; check the mode at all.  Mirror that for now by calling this a special
+-;; predicate.
+ 
+-(define_special_predicate "sse_comparison_operator"
++(define_predicate "sse_comparison_operator"
+   (match_code "eq,lt,le,unordered,ne,unge,ungt,ordered"))
+ 
+ ;; Return true if OP is a comparison operator that can be issued by
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/sse.md gcc-4.6.0/gcc/config/i386/sse.md
+--- gcc-4.6.0.orig/gcc/config/i386/sse.md	2011-03-03 19:56:56.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/sse.md	2011-05-04 17:01:43.174413000 +0000
+@@ -1,5 +1,5 @@
+ ;; GCC machine description for SSE instructions
+-;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ ;; Free Software Foundation, Inc.
+ ;;
+ ;; This file is part of GCC.
+@@ -1557,7 +1557,7 @@
+    (set_attr "mode" "<MODE>")])
+ 
+ (define_insn "avx_cmp<ssescalarmodesuffix><mode>3"
+-  [(set (match_operand:SSEMODEF2P 0 "register_operand" "")
++  [(set (match_operand:SSEMODEF2P 0 "register_operand" "=x")
+ 	(vec_merge:SSEMODEF2P
+ 	  (unspec:SSEMODEF2P
+ 	    [(match_operand:SSEMODEF2P 1 "register_operand" "x")
+@@ -2715,6 +2715,7 @@
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "TI")
+    (set_attr "amdfam10_decode" "double")
++   (set_attr "athlon_decode" "vector")
+    (set_attr "bdver1_decode" "double")])
+ 
+ (define_insn "avx_cvttpd2dq256"
+@@ -2746,6 +2747,7 @@
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "TI")
+    (set_attr "amdfam10_decode" "double")
++   (set_attr "athlon_decode" "vector")
+    (set_attr "bdver1_decode" "double")])
+ 
+ (define_insn "*avx_cvtsd2ss"
+@@ -2806,6 +2808,7 @@
+   "cvtss2sd\t{%2, %0|%0, %2}"
+   [(set_attr "type" "ssecvt")
+    (set_attr "amdfam10_decode" "vector,double")
++   (set_attr "athlon_decode" "direct,direct")
+    (set_attr "bdver1_decode" "direct,direct")
+    (set_attr "mode" "DF")])
+ 
+@@ -2842,6 +2845,7 @@
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "V4SF")
+    (set_attr "amdfam10_decode" "double")
++   (set_attr "athlon_decode" "vector")
+    (set_attr "bdver1_decode" "double")])
+ 
+ (define_insn "avx_cvtps2pd256"
+@@ -2879,6 +2883,7 @@
+    (set_attr "mode" "V2DF")
+    (set_attr "prefix_data16" "0")
+    (set_attr "amdfam10_decode" "direct")
++   (set_attr "athlon_decode" "double")
+    (set_attr "bdver1_decode" "double")])
+ 
+ (define_expand "vec_unpacks_hi_v4sf"
+@@ -3841,7 +3846,7 @@
+ (define_insn "*vec_concatv2sf_avx"
+   [(set (match_operand:V2SF 0 "register_operand"     "=x,x,x,*y ,*y")
+ 	(vec_concat:V2SF
+-	  (match_operand:SF 1 "nonimmediate_operand" " x,x,m, x , m")
++	  (match_operand:SF 1 "nonimmediate_operand" " x,x,m, 0 , m")
+ 	  (match_operand:SF 2 "vector_move_operand"  " x,m,C,*ym, C")))]
+   "TARGET_AVX"
+   "@
+@@ -3930,13 +3935,15 @@
+   DONE;
+ })
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "*vec_set<mode>_0_avx"
+-  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x, x,x,  x,m")
++  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x, x,x,  x,m, m,m")
+ 	(vec_merge:SSEMODE4S
+ 	  (vec_duplicate:SSEMODE4S
+ 	    (match_operand:<ssescalarmode> 2
+-	      "general_operand"                            " x,m,*r,x,*rm,x*rfF"))
+-	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,C, C,x,  x,0")
++	      "general_operand"                            " x,m,*r,x,*rm,x,*r,fF"))
++	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,C, C,x,  x,0, 0,0")
+ 	  (const_int 1)))]
+   "TARGET_AVX"
+   "@
+@@ -3945,20 +3952,24 @@
+    vmovd\t{%2, %0|%0, %2}
+    vmovss\t{%2, %1, %0|%0, %1, %2}
+    vpinsrd\t{$0, %2, %1, %0|%0, %1, %2, 0}
++   #
++   #
+    #"
+-  [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,*")
+-   (set_attr "prefix_extra" "*,*,*,*,1,*")
+-   (set_attr "length_immediate" "*,*,*,*,1,*")
++  [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,*,*,*")
++   (set_attr "prefix_extra" "*,*,*,*,1,*,*,*")
++   (set_attr "length_immediate" "*,*,*,*,1,*,*,*")
+    (set_attr "prefix" "vex")
+-   (set_attr "mode" "SF,<ssescalarmode>,SI,SF,TI,*")])
++   (set_attr "mode" "SF,<ssescalarmode>,SI,SF,TI,*,*,*")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "*vec_set<mode>_0_sse4_1"
+-  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x, x,x,  x,m")
++  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x, x,x,  x, m,m")
+ 	(vec_merge:SSEMODE4S
+ 	  (vec_duplicate:SSEMODE4S
+ 	    (match_operand:<ssescalarmode> 2
+-	      "general_operand"                            " x,m,*r,x,*rm,*rfF"))
+-	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,C, C,0,  0,0")
++	      "general_operand"                            " x,m,*r,x,*rm,*r,fF"))
++	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,C, C,0,  0, 0,0")
+ 	  (const_int 1)))]
+   "TARGET_SSE4_1"
+   "@
+@@ -3967,44 +3978,53 @@
+    movd\t{%2, %0|%0, %2}
+    movss\t{%2, %0|%0, %2}
+    pinsrd\t{$0, %2, %0|%0, %2, 0}
++   #
+    #"
+-  [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,*")
+-   (set_attr "prefix_extra" "*,*,*,*,1,*")
+-   (set_attr "length_immediate" "*,*,*,*,1,*")
+-   (set_attr "mode" "SF,<ssescalarmode>,SI,SF,TI,*")])
++  [(set_attr "type" "sselog,ssemov,ssemov,ssemov,sselog,*,*")
++   (set_attr "prefix_extra" "*,*,*,*,1,*,*")
++   (set_attr "length_immediate" "*,*,*,*,1,*,*")
++   (set_attr "mode" "SF,<ssescalarmode>,SI,SF,TI,*,*")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "*vec_set<mode>_0_sse2"
+-  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x, x,x,m")
++  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x, x,x,m, m,m")
+ 	(vec_merge:SSEMODE4S
+ 	  (vec_duplicate:SSEMODE4S
+ 	    (match_operand:<ssescalarmode> 2
+-	      "general_operand"                            " m,*r,x,x*rfF"))
+-	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C, C,0,0")
++	      "general_operand"                            " m,*r,x,x,*r,fF"))
++	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C, C,0,0, 0,0")
+ 	  (const_int 1)))]
+   "TARGET_SSE2"
+   "@
+    mov<ssescalarmodesuffix>\t{%2, %0|%0, %2}
+    movd\t{%2, %0|%0, %2}
+    movss\t{%2, %0|%0, %2}
++   #
++   #
+    #"
+   [(set_attr "type" "ssemov")
+-   (set_attr "mode" "<ssescalarmode>,SI,SF,*")])
++   (set_attr "mode" "<ssescalarmode>,SI,SF,*,*,*")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "vec_set<mode>_0"
+-  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x,m")
++  [(set (match_operand:SSEMODE4S 0 "nonimmediate_operand"  "=x,x,m, m,m")
+ 	(vec_merge:SSEMODE4S
+ 	  (vec_duplicate:SSEMODE4S
+ 	    (match_operand:<ssescalarmode> 2
+-	      "general_operand"                            " m,x,x*rfF"))
+-	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,0,0")
++	      "general_operand"                            " m,x,x,*r,fF"))
++	  (match_operand:SSEMODE4S 1 "vector_move_operand" " C,0,0, 0,0")
+ 	  (const_int 1)))]
+   "TARGET_SSE"
+   "@
+    movss\t{%2, %0|%0, %2}
+    movss\t{%2, %0|%0, %2}
++   #
++   #
+    #"
+   [(set_attr "type" "ssemov")
+-   (set_attr "mode" "SF,SF,*")])
++   (set_attr "mode" "SF,SF,*,*,*")])
+ 
+ ;; A subset is vec_setv4sf.
+ (define_insn "*vec_setv4sf_avx"
+@@ -4050,7 +4070,16 @@
+ 		      (match_operand:SI 3 "const_0_to_255_operand" "n")]
+ 		     UNSPEC_INSERTPS))]
+   "TARGET_AVX"
+-  "vinsertps\t{%3, %2, %1, %0|%0, %1, %2, %3}";
++{
++  if (MEM_P (operands[2]))
++    {
++      unsigned count_s = INTVAL (operands[3]) >> 6;
++      if (count_s)
++	operands[3] = GEN_INT (INTVAL (operands[3]) & 0x3f);
++      operands[2] = adjust_address_nv (operands[2], SFmode, count_s * 4);
++    }
++  return "vinsertps\t{%3, %2, %1, %0|%0, %1, %2, %3}";
++}
+   [(set_attr "type" "sselog")
+    (set_attr "prefix" "vex")
+    (set_attr "prefix_extra" "1")
+@@ -4059,12 +4088,21 @@
+ 
+ (define_insn "sse4_1_insertps"
+   [(set (match_operand:V4SF 0 "register_operand" "=x")
+-	(unspec:V4SF [(match_operand:V4SF 2 "register_operand" "x")
++	(unspec:V4SF [(match_operand:V4SF 2 "nonimmediate_operand" "xm")
+ 		      (match_operand:V4SF 1 "register_operand" "0")
+ 		      (match_operand:SI 3 "const_0_to_255_operand" "n")]
+ 		     UNSPEC_INSERTPS))]
+   "TARGET_SSE4_1"
+-  "insertps\t{%3, %2, %0|%0, %2, %3}";
++{
++  if (MEM_P (operands[2]))
++    {
++      unsigned count_s = INTVAL (operands[3]) >> 6;
++      if (count_s)
++	operands[3] = GEN_INT (INTVAL (operands[3]) & 0x3f);
++      operands[2] = adjust_address_nv (operands[2], SFmode, count_s * 4);
++    }
++  return "insertps\t{%3, %2, %0|%0, %2, %3}";
++}
+   [(set_attr "type" "sselog")
+    (set_attr "prefix_data16" "1")
+    (set_attr "prefix_extra" "1")
+@@ -4806,6 +4844,8 @@
+    (set_attr "prefix" "vex")
+    (set_attr "mode" "V1DF,V2DF,DF,DF,DF")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "sse2_storehpd"
+   [(set (match_operand:DF 0 "nonimmediate_operand"     "=m,x,x,*f,r")
+ 	(vec_select:DF
+@@ -4907,6 +4947,8 @@
+    (set_attr "prefix" "vex")
+    (set_attr "mode" "V1DF,V2DF,DF,DF,DF")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "sse2_loadhpd"
+   [(set (match_operand:V2DF 0 "nonimmediate_operand"     "=x,x,x,o,o,o")
+ 	(vec_concat:V2DF
+@@ -4978,6 +5020,8 @@
+    (set_attr "prefix" "vex")
+    (set_attr "mode" "DF,V1DF,V1DF,V1DF,DF,DF,DF")])
+ 
++;; Avoid combining registers from different units in a single alternative,
++;; see comment above inline_secondary_memory_needed function in i386.c
+ (define_insn "sse2_loadlpd"
+   [(set (match_operand:V2DF 0 "nonimmediate_operand"    "=x,x,x,x,x,m,m,m")
+ 	(vec_concat:V2DF
+@@ -7390,9 +7434,8 @@
+   "@
+    #
+    #
+-   %vmov{q}\t{%1, %0|%0, %1}"
++   mov{q}\t{%1, %0|%0, %1}"
+   [(set_attr "type" "*,*,imov")
+-   (set_attr "prefix" "*,*,maybe_vex")
+    (set_attr "mode" "*,*,DI")])
+ 
+ (define_insn "*sse2_storeq"
+@@ -7428,11 +7471,11 @@
+    vmovhps\t{%1, %0|%0, %1}
+    vpsrldq\t{$8, %1, %0|%0, %1, 8}
+    vmovq\t{%H1, %0|%0, %H1}
+-   vmov{q}\t{%H1, %0|%0, %H1}"
++   mov{q}\t{%H1, %0|%0, %H1}"
+   [(set_attr "type" "ssemov,sseishft1,ssemov,imov")
+    (set_attr "length_immediate" "*,1,*,*")
+    (set_attr "memory" "*,none,*,*")
+-   (set_attr "prefix" "vex")
++   (set_attr "prefix" "vex,vex,vex,orig")
+    (set_attr "mode" "V2SF,TI,TI,DI")])
+ 
+ (define_insn "*vec_extractv2di_1_rex64"
+@@ -7710,6 +7753,7 @@
+        (const_string "vex")))
+    (set_attr "mode" "TI,TI,TI,TI,TI,V2SF")])
+ 
++;; movd instead of movq is required to handle broken assemblers.
+ (define_insn "*vec_concatv2di_rex64_sse4_1"
+   [(set (match_operand:V2DI 0 "register_operand"     "=x ,x ,Yi,!x,x,x,x")
+ 	(vec_concat:V2DI
+@@ -7730,6 +7774,7 @@
+    (set_attr "length_immediate" "1,*,*,*,*,*,*")
+    (set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF")])
+ 
++;; movd instead of movq is required to handle broken assemblers.
+ (define_insn "*vec_concatv2di_rex64_sse"
+   [(set (match_operand:V2DI 0 "register_operand"     "=Y2 ,Yi,!Y2,Y2,x,x")
+ 	(vec_concat:V2DI
+diff -Naur gcc-4.6.0.orig/gcc/config/i386/sync.md gcc-4.6.0/gcc/config/i386/sync.md
+--- gcc-4.6.0.orig/gcc/config/i386/sync.md	2010-05-17 20:28:56.000000000 +0000
++++ gcc-4.6.0/gcc/config/i386/sync.md	2011-05-17 07:42:30.110077000 +0000
+@@ -1,5 +1,5 @@
+ ;; GCC machine description for i386 synchronization instructions.
+-;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ ;; Free Software Foundation, Inc.
+ ;;
+ ;; This file is part of GCC.
+@@ -164,13 +164,16 @@
+   "!TARGET_64BIT && TARGET_CMPXCHG8B && flag_pic"
+   "xchg{l}\t%%ebx, %3\;lock{%;} cmpxchg8b\t%1\;xchg{l}\t%%ebx, %3")
+ 
++;; For operand 2 nonmemory_operand predicate is used instead of
++;; register_operand to allow combiner to better optimize atomic
++;; additions of constants.
+ (define_insn "sync_old_add<mode>"
+   [(set (match_operand:SWI 0 "register_operand" "=<r>")
+ 	(unspec_volatile:SWI
+ 	  [(match_operand:SWI 1 "memory_operand" "+m")] UNSPECV_XCHG))
+    (set (match_dup 1)
+ 	(plus:SWI (match_dup 1)
+-		  (match_operand:SWI 2 "register_operand" "0")))
++		  (match_operand:SWI 2 "nonmemory_operand" "0")))
+    (clobber (reg:CC FLAGS_REG))]
+   "TARGET_XADD"
+   "lock{%;} xadd{<imodesuffix>}\t{%0, %1|%1, %0}")
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/pa-protos.h gcc-4.6.0/gcc/config/pa/pa-protos.h
+--- gcc-4.6.0.orig/gcc/config/pa/pa-protos.h	2010-10-09 14:21:10.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/pa-protos.h	2011-04-20 23:36:20.127349000 +0000
+@@ -80,7 +80,6 @@
+ extern int prefetch_cc_operand (rtx, enum machine_mode);
+ extern int prefetch_nocc_operand (rtx, enum machine_mode);
+ extern int and_operand (rtx, enum machine_mode);
+-extern int ior_operand (rtx, enum machine_mode);
+ extern int arith32_operand (rtx, enum machine_mode);
+ extern int uint32_operand (rtx, enum machine_mode);
+ extern int reg_before_reload_operand (rtx, enum machine_mode);
+@@ -95,7 +94,6 @@
+ extern int fmpyaddoperands (rtx *);
+ extern int fmpysuboperands (rtx *);
+ extern int call_operand_address (rtx, enum machine_mode);
+-extern int ior_operand (rtx, enum machine_mode);
+ extern void emit_bcond_fp (rtx[]);
+ extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
+ extern int emit_hpdiv_const (rtx *, int);
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/pa.c gcc-4.6.0/gcc/config/pa/pa.c
+--- gcc-4.6.0.orig/gcc/config/pa/pa.c	2011-01-18 21:53:47.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/pa.c	2011-04-13 22:36:59.547676000 +0000
+@@ -1467,6 +1467,8 @@
+ {
+   if (from == SHIFT_REGS)
+     return 0x100;
++  else if (to == SHIFT_REGS && FP_REG_CLASS_P (from))
++    return 18;
+   else if ((FP_REG_CLASS_P (from) && ! FP_REG_CLASS_P (to))
+            || (FP_REG_CLASS_P (to) && ! FP_REG_CLASS_P (from)))
+     return 16;
+@@ -1810,15 +1812,12 @@
+       return 1;
+     }
+   /* Handle secondary reloads for SAR.  These occur when trying to load
+-     the SAR from memory, FP register, or with a constant.  */
++     the SAR from memory or a constant.  */
+   else if (scratch_reg
+ 	   && GET_CODE (operand0) == REG
+ 	   && REGNO (operand0) < FIRST_PSEUDO_REGISTER
+ 	   && REGNO_REG_CLASS (REGNO (operand0)) == SHIFT_REGS
+-	   && (GET_CODE (operand1) == MEM
+-	       || GET_CODE (operand1) == CONST_INT
+-	       || (GET_CODE (operand1) == REG
+-		   && FP_REG_CLASS_P (REGNO_REG_CLASS (REGNO (operand1))))))
++	   && (GET_CODE (operand1) == MEM || GET_CODE (operand1) == CONST_INT))
+     {
+       /* D might not fit in 14 bits either; for such cases load D into
+ 	 scratch reg.  */
+@@ -5883,6 +5882,10 @@
+   fputc ('\n', asm_out_file);
+ }
+ 
+
++/* Inform reload about cases where moving X with a mode MODE to a register in
++   RCLASS requires an extra scratch or immediate register.  Return the class
++   needed for the immediate register.  */
++
+ static reg_class_t
+ pa_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i,
+ 		     enum machine_mode mode, secondary_reload_info *sri)
+@@ -5985,24 +5988,29 @@
+       return NO_REGS;
+     }
+ 
+-  /* We need a secondary register (GPR) for copies between the SAR
+-     and anything other than a general register.  */
+-  if (rclass == SHIFT_REGS && (regno <= 0 || regno >= 32))
+-    {
+-      sri->icode = (in_p
+-		    ? direct_optab_handler (reload_in_optab, mode)
+-		    : direct_optab_handler (reload_out_optab, mode));
+-      return NO_REGS;
++  /* A SAR<->FP register copy requires an intermediate general register
++     and secondary memory.  We need a secondary reload with a general
++     scratch register for spills.  */
++  if (rclass == SHIFT_REGS)
++    {
++      /* Handle spill.  */
++      if (regno >= FIRST_PSEUDO_REGISTER || regno < 0)
++	{
++	  sri->icode = (in_p
++			? direct_optab_handler (reload_in_optab, mode)
++			: direct_optab_handler (reload_out_optab, mode));
++	  return NO_REGS;
++	}
++
++      /* Handle FP copy.  */
++      if (FP_REG_CLASS_P (REGNO_REG_CLASS (regno)))
++	return GENERAL_REGS;
+     }
+ 
+-  /* A SAR<->FP register copy requires a secondary register (GPR) as
+-     well as secondary memory.  */
+   if (regno >= 0 && regno < FIRST_PSEUDO_REGISTER
+-      && (REGNO_REG_CLASS (regno) == SHIFT_REGS
+-      && FP_REG_CLASS_P (rclass)))
+-    sri->icode = (in_p
+-		  ? direct_optab_handler (reload_in_optab, mode)
+-		  : direct_optab_handler (reload_out_optab, mode));
++      && REGNO_REG_CLASS (regno) == SHIFT_REGS
++      && FP_REG_CLASS_P (rclass))
++    return GENERAL_REGS;
+ 
+   return NO_REGS;
+ }
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/pa.md gcc-4.6.0/gcc/config/pa/pa.md
+--- gcc-4.6.0.orig/gcc/config/pa/pa.md	2011-03-03 21:56:58.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/pa.md	2011-04-20 23:36:20.127349000 +0000
+@@ -5686,7 +5686,7 @@
+ (define_expand "iordi3"
+   [(set (match_operand:DI 0 "register_operand" "")
+ 	(ior:DI (match_operand:DI 1 "register_operand" "")
+-		(match_operand:DI 2 "ior_operand" "")))]
++		(match_operand:DI 2 "reg_or_cint_ior_operand" "")))]
+   ""
+   "
+ {
+@@ -5707,7 +5707,7 @@
+ (define_insn ""
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+ 	(ior:DI (match_operand:DI 1 "register_operand" "0,0")
+-		(match_operand:DI 2 "ior_operand" "M,i")))]
++		(match_operand:DI 2 "cint_ior_operand" "M,i")))]
+   "TARGET_64BIT"
+   "* return output_64bit_ior (operands); "
+   [(set_attr "type" "binary,shift")
+@@ -5726,19 +5726,14 @@
+ (define_expand "iorsi3"
+   [(set (match_operand:SI 0 "register_operand" "")
+ 	(ior:SI (match_operand:SI 1 "register_operand" "")
+-		(match_operand:SI 2 "arith32_operand" "")))]
++		(match_operand:SI 2 "reg_or_cint_ior_operand" "")))]
+   ""
+-  "
+-{
+-  if (! (ior_operand (operands[2], SImode)
+-         || register_operand (operands[2], SImode)))
+-    operands[2] = force_reg (SImode, operands[2]);
+-}")
++  "")
+ 
+ (define_insn ""
+   [(set (match_operand:SI 0 "register_operand" "=r,r")
+ 	(ior:SI (match_operand:SI 1 "register_operand" "0,0")
+-		(match_operand:SI 2 "ior_operand" "M,i")))]
++		(match_operand:SI 2 "cint_ior_operand" "M,i")))]
+   ""
+   "* return output_ior (operands); "
+   [(set_attr "type" "binary,shift")
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/pa32-regs.h gcc-4.6.0/gcc/config/pa/pa32-regs.h
+--- gcc-4.6.0.orig/gcc/config/pa/pa32-regs.h	2010-11-22 01:57:50.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/pa32-regs.h	2011-04-13 22:36:59.547676000 +0000
+@@ -209,6 +209,7 @@
+    registers.  */
+ #define HARD_REGNO_MODE_OK(REGNO, MODE) \
+   ((REGNO) == 0 ? (MODE) == CCmode || (MODE) == CCFPmode		\
++   : (REGNO) == 88 ? SCALAR_INT_MODE_P (MODE)				\
+    : !TARGET_PA_11 && FP_REGNO_P (REGNO)				\
+      ? (VALID_FP_MODE_P (MODE)						\
+ 	&& (GET_MODE_SIZE (MODE) <= 8					\
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/pa64-regs.h gcc-4.6.0/gcc/config/pa/pa64-regs.h
+--- gcc-4.6.0.orig/gcc/config/pa/pa64-regs.h	2010-11-22 01:57:50.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/pa64-regs.h	2011-04-13 22:36:59.547676000 +0000
+@@ -149,10 +149,11 @@
+ 
+ /* Value is 1 if hard register REGNO can hold a value of machine-mode MODE.
+    On the HP-PA, the cpu registers can hold any mode.  We
+-   force this to be an even register is it cannot hold the full mode.  */
++   force this to be an even register if it cannot hold the full mode.  */
+ #define HARD_REGNO_MODE_OK(REGNO, MODE) \
+   ((REGNO) == 0								\
+    ? (MODE) == CCmode || (MODE) == CCFPmode				\
++   : (REGNO) == 60 ? SCALAR_INT_MODE_P (MODE)				\
+    /* Make wide modes be in aligned registers.  */			\
+    : FP_REGNO_P (REGNO)							\
+      ? (VALID_FP_MODE_P (MODE)						\
+diff -Naur gcc-4.6.0.orig/gcc/config/pa/predicates.md gcc-4.6.0/gcc/config/pa/predicates.md
+--- gcc-4.6.0.orig/gcc/config/pa/predicates.md	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/config/pa/predicates.md	2011-04-20 23:36:20.127349000 +0000
+@@ -411,11 +411,15 @@
+ 
+ ;; True iff depi can be used to compute (reg | OP).
+ 
+-(define_predicate "ior_operand"
+-  (match_code "const_int")
+-{
+-  return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op)));
+-})
++(define_predicate "cint_ior_operand"
++  (and (match_code "const_int")
++       (match_test "ior_mask_p (INTVAL (op))")))
++
++;; True iff OP can be used to compute (reg | OP).
++
++(define_predicate "reg_or_cint_ior_operand"
++  (ior (match_operand 0 "register_operand")
++       (match_operand 0 "cint_ior_operand")))
+ 
+ ;; True iff OP is a CONST_INT of the forms 0...0xxxx or
+ ;; 0...01...1xxxx. Such values can be the left hand side x in (x <<
+diff -Naur gcc-4.6.0.orig/gcc/config/rs6000/altivec.md gcc-4.6.0/gcc/config/rs6000/altivec.md
+--- gcc-4.6.0.orig/gcc/config/rs6000/altivec.md	2011-02-03 05:42:19.000000000 +0000
++++ gcc-4.6.0/gcc/config/rs6000/altivec.md	2011-04-28 22:39:59.485927000 +0000
+@@ -2430,7 +2430,7 @@
+ 
+ (define_expand "vec_extract_evenv4si"
+  [(set (match_operand:V4SI 0 "register_operand" "")
+-        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "")
++        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "")
+                       (match_operand:V4SI 2 "register_operand" "")]
+ 		      UNSPEC_EXTEVEN_V4SI))]
+   "TARGET_ALTIVEC"
+@@ -2463,7 +2463,7 @@
+ 
+ (define_expand "vec_extract_evenv4sf"
+  [(set (match_operand:V4SF 0 "register_operand" "")
+-        (unspec:V8HI [(match_operand:V4SF 1 "register_operand" "")
++        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "")
+                       (match_operand:V4SF 2 "register_operand" "")]
+                       UNSPEC_EXTEVEN_V4SF))]
+   "TARGET_ALTIVEC"
+@@ -2495,7 +2495,7 @@
+ }")
+ 
+ (define_expand "vec_extract_evenv8hi"
+- [(set (match_operand:V4SI 0 "register_operand" "")
++ [(set (match_operand:V8HI 0 "register_operand" "")
+         (unspec:V8HI [(match_operand:V8HI 1 "register_operand" "")
+                       (match_operand:V8HI 2 "register_operand" "")]
+                       UNSPEC_EXTEVEN_V8HI))]
+@@ -2528,9 +2528,9 @@
+ }")
+ 
+ (define_expand "vec_extract_evenv16qi"
+- [(set (match_operand:V4SI 0 "register_operand" "")
+-        (unspec:V8HI [(match_operand:V16QI 1 "register_operand" "")
+-                      (match_operand:V16QI 2 "register_operand" "")]
++ [(set (match_operand:V16QI 0 "register_operand" "")
++        (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "")
++                       (match_operand:V16QI 2 "register_operand" "")]
+                       UNSPEC_EXTEVEN_V16QI))]
+   "TARGET_ALTIVEC"
+   "
+@@ -2562,7 +2562,7 @@
+ 
+ (define_expand "vec_extract_oddv4si"
+  [(set (match_operand:V4SI 0 "register_operand" "")
+-        (unspec:V8HI [(match_operand:V4SI 1 "register_operand" "")
++        (unspec:V4SI [(match_operand:V4SI 1 "register_operand" "")
+                       (match_operand:V4SI 2 "register_operand" "")]
+                       UNSPEC_EXTODD_V4SI))]
+   "TARGET_ALTIVEC"
+@@ -2595,7 +2595,7 @@
+ 
+ (define_expand "vec_extract_oddv4sf"
+  [(set (match_operand:V4SF 0 "register_operand" "")
+-        (unspec:V8HI [(match_operand:V4SF 1 "register_operand" "")
++        (unspec:V4SF [(match_operand:V4SF 1 "register_operand" "")
+                       (match_operand:V4SF 2 "register_operand" "")]
+                       UNSPEC_EXTODD_V4SF))]
+   "TARGET_ALTIVEC"
+diff -Naur gcc-4.6.0.orig/gcc/config/rs6000/rs6000.c gcc-4.6.0/gcc/config/rs6000/rs6000.c
+--- gcc-4.6.0.orig/gcc/config/rs6000/rs6000.c	2011-03-15 12:57:37.000000000 +0000
++++ gcc-4.6.0/gcc/config/rs6000/rs6000.c	2011-05-10 19:59:20.426663000 +0000
+@@ -4630,6 +4630,7 @@
+         target_flags_explicit |= MASK_SOFT_FLOAT;
+         rs6000_single_float = rs6000_double_float = 0;
+       }
++      break;
+ 
+     case OPT_mrecip:
+       rs6000_recip_name = (value) ? "default" : "none";
+@@ -6544,10 +6545,11 @@
+ 
+       if (model == TLS_MODEL_GLOBAL_DYNAMIC)
+ 	{
+-	  r3 = gen_rtx_REG (Pmode, 3);
+ 	  tga = rs6000_tls_get_addr ();
+-	  emit_library_call_value (tga, dest, LCT_CONST, Pmode, 1, r3, Pmode);
++	  emit_library_call_value (tga, dest, LCT_CONST, Pmode,
++				   1, const0_rtx, Pmode);
+ 
++	  r3 = gen_rtx_REG (Pmode, 3);
+ 	  if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
+ 	    insn = gen_tls_gd_aix64 (r3, got, addr, tga, const0_rtx);
+ 	  else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
+@@ -6564,11 +6566,12 @@
+ 	}
+       else if (model == TLS_MODEL_LOCAL_DYNAMIC)
+ 	{
+-	  r3 = gen_rtx_REG (Pmode, 3);
+ 	  tga = rs6000_tls_get_addr ();
+ 	  tmp1 = gen_reg_rtx (Pmode);
+-	  emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, 1, r3, Pmode);
++	  emit_library_call_value (tga, tmp1, LCT_CONST, Pmode,
++				   1, const0_rtx, Pmode);
+ 
++	  r3 = gen_rtx_REG (Pmode, 3);
+ 	  if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
+ 	    insn = gen_tls_ld_aix64 (r3, got, tga, const0_rtx);
+ 	  else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
+@@ -7888,7 +7891,7 @@
+ 
+ /* Nonzero if we can use an AltiVec register to pass this arg.  */
+ #define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED)		\
+-  ((ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE))	\
++  (ALTIVEC_OR_VSX_VECTOR_MODE (MODE)				\
+    && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG			\
+    && TARGET_ALTIVEC_ABI					\
+    && (NAMED))
+@@ -8088,8 +8091,7 @@
+ 	    }
+ 	  if (SCALAR_FLOAT_MODE_P (return_mode))
+ 	    rs6000_passes_float = true;
+-	  else if (ALTIVEC_VECTOR_MODE (return_mode)
+-		   || VSX_VECTOR_MODE (return_mode)
++	  else if (ALTIVEC_OR_VSX_VECTOR_MODE (return_mode)
+ 		   || SPE_VECTOR_MODE (return_mode))
+ 	    rs6000_passes_vector = true;
+ 	}
+@@ -8187,7 +8189,7 @@
+    existing library interfaces.
+ 
+    Doubleword align SPE vectors.
+-   Quadword align Altivec vectors.
++   Quadword align Altivec/VSX vectors.
+    Quadword align large synthetic vector types.   */
+ 
+ static unsigned int
+@@ -8204,7 +8206,7 @@
+ 	       && int_size_in_bytes (type) >= 8
+ 	       && int_size_in_bytes (type) < 16))
+     return 64;
+-  else if ((ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode))
++  else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
+ 	   || (type && TREE_CODE (type) == VECTOR_TYPE
+ 	       && int_size_in_bytes (type) >= 16))
+     return 128;
+@@ -8424,7 +8426,7 @@
+     {
+       if (SCALAR_FLOAT_MODE_P (mode))
+ 	rs6000_passes_float = true;
+-      else if (named && (ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode)))
++      else if (named && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
+ 	rs6000_passes_vector = true;
+       else if (SPE_VECTOR_MODE (mode)
+ 	       && !cum->stdarg
+@@ -8434,8 +8436,7 @@
+ #endif
+ 
+   if (TARGET_ALTIVEC_ABI
+-      && (ALTIVEC_VECTOR_MODE (mode)
+-	  || VSX_VECTOR_MODE (mode)
++      && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
+ 	  || (type && TREE_CODE (type) == VECTOR_TYPE
+ 	      && int_size_in_bytes (type) == 16)))
+     {
+@@ -9053,8 +9054,7 @@
+     else
+       return gen_rtx_REG (mode, cum->vregno);
+   else if (TARGET_ALTIVEC_ABI
+-	   && (ALTIVEC_VECTOR_MODE (mode)
+-	       || VSX_VECTOR_MODE (mode)
++	   && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
+ 	       || (type && TREE_CODE (type) == VECTOR_TYPE
+ 		   && int_size_in_bytes (type) == 16)))
+     {
+@@ -19980,7 +19980,7 @@
+ 
+   /* Some cases that need register indexed addressing.  */
+   if ((TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode))
+-      || (TARGET_VSX && VSX_VECTOR_MODE (mode))
++      || (TARGET_VSX && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
+       || (TARGET_E500_DOUBLE && mode == DFmode)
+       || (TARGET_SPE_ABI
+ 	  && SPE_VECTOR_MODE (mode)
+@@ -27263,13 +27263,12 @@
+   else if (TREE_CODE (valtype) == COMPLEX_TYPE
+ 	   && targetm.calls.split_complex_arg)
+     return rs6000_complex_function_value (mode);
++  /* VSX is a superset of Altivec and adds V2DImode/V2DFmode.  Since the same
++     return register is used in both cases, and we won't see V2DImode/V2DFmode
++     for pure altivec, combine the two cases.  */
+   else if (TREE_CODE (valtype) == VECTOR_TYPE
+ 	   && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI
+-	   && ALTIVEC_VECTOR_MODE (mode))
+-    regno = ALTIVEC_ARG_RETURN;
+-  else if (TREE_CODE (valtype) == VECTOR_TYPE
+-	   && TARGET_VSX && TARGET_ALTIVEC_ABI
+-	   && VSX_VECTOR_MODE (mode))
++	   && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
+     regno = ALTIVEC_ARG_RETURN;
+   else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
+ 	   && (mode == DFmode || mode == DCmode
+@@ -27309,12 +27308,12 @@
+ 	   && TARGET_HARD_FLOAT && TARGET_FPRS
+            && ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT))
+     regno = FP_ARG_RETURN;
+-  else if (ALTIVEC_VECTOR_MODE (mode)
++  /* VSX is a superset of Altivec and adds V2DImode/V2DFmode.  Since the same
++     return register is used in both cases, and we won't see V2DImode/V2DFmode
++     for pure altivec, combine the two cases.  */
++  else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
+ 	   && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)
+     regno = ALTIVEC_ARG_RETURN;
+-  else if (VSX_VECTOR_MODE (mode)
+-	   && TARGET_VSX && TARGET_ALTIVEC_ABI)
+-    regno = ALTIVEC_ARG_RETURN;
+   else if (COMPLEX_MODE_P (mode) && targetm.calls.split_complex_arg)
+     return rs6000_complex_function_value (mode);
+   else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
+diff -Naur gcc-4.6.0.orig/gcc/config/rs6000/rs6000.h gcc-4.6.0/gcc/config/rs6000/rs6000.h
+--- gcc-4.6.0.orig/gcc/config/rs6000/rs6000.h	2011-03-07 19:27:09.000000000 +0000
++++ gcc-4.6.0/gcc/config/rs6000/rs6000.h	2011-05-10 19:59:20.426663000 +0000
+@@ -1007,10 +1007,9 @@
+ 
+ /* When setting up caller-save slots (MODE == VOIDmode) ensure we allocate
+    enough space to account for vectors in FP regs. */
+-#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE)	\
+-  (TARGET_VSX						\
+-   && ((MODE) == VOIDmode || VSX_VECTOR_MODE (MODE)	\
+-       || ALTIVEC_VECTOR_MODE (MODE))			\
++#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE)			\
++  (TARGET_VSX								\
++   && ((MODE) == VOIDmode || ALTIVEC_OR_VSX_VECTOR_MODE (MODE))		\
+    && FP_REGNO_P (REGNO)				\
+    ? V2DFmode						\
+    : choose_hard_reg_mode ((REGNO), (NREGS), false))
+@@ -1026,25 +1025,16 @@
+ 	 ((MODE) == V4SFmode		\
+ 	  || (MODE) == V2DFmode)	\
+ 
+-#define VSX_SCALAR_MODE(MODE)		\
+-	((MODE) == DFmode)
+-
+-#define VSX_MODE(MODE)			\
+-	(VSX_VECTOR_MODE (MODE)		\
+-	 || VSX_SCALAR_MODE (MODE))
+-
+-#define VSX_MOVE_MODE(MODE)		\
+-	(VSX_VECTOR_MODE (MODE)		\
+-	 || VSX_SCALAR_MODE (MODE)	\
+-	 || ALTIVEC_VECTOR_MODE (MODE)	\
+-	 || (MODE) == TImode)
+-
+ #define ALTIVEC_VECTOR_MODE(MODE)	\
+ 	 ((MODE) == V16QImode		\
+ 	  || (MODE) == V8HImode		\
+ 	  || (MODE) == V4SFmode		\
+ 	  || (MODE) == V4SImode)
+ 
++#define ALTIVEC_OR_VSX_VECTOR_MODE(MODE)				\
++  (ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)			\
++   || (MODE) == V2DImode)
++
+ #define SPE_VECTOR_MODE(MODE)		\
+ 	((MODE) == V4HImode          	\
+          || (MODE) == V2SFmode          \
+@@ -1080,10 +1070,10 @@
+    ? ALTIVEC_VECTOR_MODE (MODE2)		\
+    : ALTIVEC_VECTOR_MODE (MODE2)		\
+    ? ALTIVEC_VECTOR_MODE (MODE1)		\
+-   : VSX_VECTOR_MODE (MODE1)			\
+-   ? VSX_VECTOR_MODE (MODE2)			\
+-   : VSX_VECTOR_MODE (MODE2)			\
+-   ? VSX_VECTOR_MODE (MODE1)			\
++   : ALTIVEC_OR_VSX_VECTOR_MODE (MODE1)		\
++   ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE2)		\
++   : ALTIVEC_OR_VSX_VECTOR_MODE (MODE2)		\
++   ? ALTIVEC_OR_VSX_VECTOR_MODE (MODE1)		\
+    : 1)
+ 
+ /* Post-reload, we can't use any new AltiVec registers, as we already
+diff -Naur gcc-4.6.0.orig/gcc/config/rs6000/vector.md gcc-4.6.0/gcc/config/rs6000/vector.md
+--- gcc-4.6.0.orig/gcc/config/rs6000/vector.md	2011-02-03 05:42:19.000000000 +0000
++++ gcc-4.6.0/gcc/config/rs6000/vector.md	2011-04-28 22:39:59.485927000 +0000
+@@ -872,8 +872,8 @@
+ ;; Under VSX, vectors of 4/8 byte alignments do not need to be aligned
+ ;; since the load already handles it.
+ (define_expand "movmisalign<mode>"
+- [(set (match_operand:VEC_N 0 "vfloat_operand" "")
+-       (match_operand:VEC_N 1 "vfloat_operand" ""))]
++ [(set (match_operand:VEC_N 0 "nonimmediate_operand" "")
++       (match_operand:VEC_N 1 "any_operand" ""))]
+  "VECTOR_MEM_VSX_P (<MODE>mode) && TARGET_ALLOW_MOVMISALIGN"
+  "")
+ 
+diff -Naur gcc-4.6.0.orig/gcc/config/rx/predicates.md gcc-4.6.0/gcc/config/rx/predicates.md
+--- gcc-4.6.0.orig/gcc/config/rx/predicates.md	2011-02-10 16:03:48.000000000 +0000
++++ gcc-4.6.0/gcc/config/rx/predicates.md	2011-03-29 12:27:07.579849000 +0000
+@@ -284,7 +284,7 @@
+ )
+ 
+ (define_predicate "rx_zs_comparison_operator"
+-  (match_code "eq,ne,lt,ge")
++  (match_code "eq,ne")
+ )
+ 
+ ;; GT and LE omitted due to operand swap required.
+diff -Naur gcc-4.6.0.orig/gcc/config/rx/rx-protos.h gcc-4.6.0/gcc/config/rx/rx-protos.h
+--- gcc-4.6.0.orig/gcc/config/rx/rx-protos.h	2011-02-14 21:31:41.000000000 +0000
++++ gcc-4.6.0/gcc/config/rx/rx-protos.h	2011-05-10 10:34:44.270243000 +0000
+@@ -30,16 +30,17 @@
+ extern int		rx_initial_elimination_offset (int, int);
+ 
+ #ifdef RTX_CODE
++extern int 		rx_align_for_label (rtx, int);
+ extern void             rx_emit_stack_popm (rtx *, bool);
+ extern void             rx_emit_stack_pushm (rtx *);
+ extern void		rx_expand_epilogue (bool);
+ extern char *		rx_gen_move_template (rtx *, bool);
+ extern bool		rx_is_legitimate_constant (rtx);
+ extern bool		rx_is_restricted_memory_address (rtx, Mmode);
+-extern void		rx_notice_update_cc (rtx body, rtx insn);
++extern bool		rx_match_ccmode (rtx, Mmode);
++extern void		rx_notice_update_cc (rtx, rtx);
+ extern void		rx_split_cbranch (Mmode, Rcode, rtx, rtx, rtx);
+ extern Mmode		rx_select_cc_mode (Rcode, rtx, rtx);
+-extern bool		rx_match_ccmode (rtx, Mmode);
+ #endif
+ 
+ #endif /* GCC_RX_PROTOS_H */
+diff -Naur gcc-4.6.0.orig/gcc/config/rx/rx.c gcc-4.6.0/gcc/config/rx/rx.c
+--- gcc-4.6.0.orig/gcc/config/rx/rx.c	2011-02-14 21:31:41.000000000 +0000
++++ gcc-4.6.0/gcc/config/rx/rx.c	2011-05-17 08:59:10.966263000 +0000
+@@ -57,7 +57,7 @@
+ #define CC_FLAG_Z	(1 << 1)
+ #define CC_FLAG_O	(1 << 2)
+ #define CC_FLAG_C	(1 << 3)
+-#define CC_FLAG_FP	(1 << 4)	/* fake, to differentiate CC_Fmode */
++#define CC_FLAG_FP	(1 << 4)	/* Fake, to differentiate CC_Fmode.  */
+ 
+ static unsigned int flags_from_mode (enum machine_mode mode);
+ static unsigned int flags_from_code (enum rtx_code code);
+@@ -85,7 +85,9 @@
+     /* Register Indirect.  */
+     return true;
+ 
+-  if (GET_MODE_SIZE (mode) == 4
++  if ((GET_MODE_SIZE (mode) == 4
++       || GET_MODE_SIZE (mode) == 2
++       || GET_MODE_SIZE (mode) == 1)
+       && (GET_CODE (x) == PRE_DEC || GET_CODE (x) == POST_INC))
+     /* Pre-decrement Register Indirect or
+        Post-increment Register Indirect.  */
+@@ -187,7 +189,10 @@
+       base = XEXP (mem, 0);
+       index = XEXP (mem, 1);
+ 
+-      return RX_REG_P (base) && CONST_INT_P (index);
++      if (! RX_REG_P (base) || ! CONST_INT_P (index))
++	  return false;
++
++      return IN_RANGE (INTVAL (index), 0, (0x10000 * GET_MODE_SIZE (mode)) - 1);
+ 
+     case SYMBOL_REF:
+       /* Can happen when small data is being supported.
+@@ -386,11 +391,14 @@
+      %L  Print low part of a DImode register, integer or address.
+      %N  Print the negation of the immediate value.
+      %Q  If the operand is a MEM, then correctly generate
+-         register indirect or register relative addressing.  */
++         register indirect or register relative addressing.
++     %R  Like %Q but for zero-extending loads.  */
+ 
+ static void
+ rx_print_operand (FILE * file, rtx op, int letter)
+ {
++  bool unsigned_load = false;
++
+   switch (letter)
+     {
+     case 'A':
+@@ -450,6 +458,7 @@
+ 	else
+ 	  {
+ 	    unsigned int flags = flags_from_mode (mode);
++
+ 	    switch (code)
+ 	      {
+ 	      case LT:
+@@ -588,10 +597,15 @@
+       rx_print_integer (file, - INTVAL (op));
+       break;
+ 
++    case 'R':
++      gcc_assert (GET_MODE_SIZE (GET_MODE (op)) < 4);
++      unsigned_load = true;
++      /* Fall through.  */
+     case 'Q':
+       if (MEM_P (op))
+ 	{
+ 	  HOST_WIDE_INT offset;
++	  rtx mem = op;
+ 
+ 	  op = XEXP (op, 0);
+ 
+@@ -626,22 +640,24 @@
+ 	  rx_print_operand (file, op, 0);
+ 	  fprintf (file, "].");
+ 
+-	  switch (GET_MODE_SIZE (GET_MODE (op)))
++	  switch (GET_MODE_SIZE (GET_MODE (mem)))
+ 	    {
+ 	    case 1:
+-	      gcc_assert (offset < 65535 * 1);
+-	      fprintf (file, "B");
++	      gcc_assert (offset <= 65535 * 1);
++	      fprintf (file, unsigned_load ? "UB" : "B");
+ 	      break;
+ 	    case 2:
+ 	      gcc_assert (offset % 2 == 0);
+-	      gcc_assert (offset < 65535 * 2);
+-	      fprintf (file, "W");
++	      gcc_assert (offset <= 65535 * 2);
++	      fprintf (file, unsigned_load ? "UW" : "W");
+ 	      break;
+-	    default:
++	    case 4:
+ 	      gcc_assert (offset % 4 == 0);
+-	      gcc_assert (offset < 65535 * 4);
++	      gcc_assert (offset <= 65535 * 4);
+ 	      fprintf (file, "L");
+ 	      break;
++	    default:
++	      gcc_unreachable ();
+ 	    }
+ 	  break;
+ 	}
+@@ -2336,6 +2352,13 @@
+     flag_strict_volatile_bitfields = 1;
+ 
+   rx_override_options_after_change ();
++
++  if (align_jumps == 0 && ! optimize_size)
++    align_jumps = 3;
++  if (align_loops == 0 && ! optimize_size)
++    align_loops = 3;
++  if (align_labels == 0 && ! optimize_size)
++    align_labels = 3;
+ }
+ 
+ /* Implement TARGET_OPTION_OPTIMIZATION_TABLE.  */
+@@ -2428,8 +2451,7 @@
+ 
+ 	default:
+ 	  /* FIXME: Can this ever happen ?  */
+-	  abort ();
+-	  return false;
++	  gcc_unreachable ();
+ 	}
+       break;
+       
+@@ -2570,9 +2592,11 @@
+ }
+ 
+
+ static int
+-rx_memory_move_cost (enum machine_mode mode, reg_class_t regclass, bool in)
++rx_memory_move_cost (enum machine_mode mode ATTRIBUTE_UNUSED,
++		     reg_class_t regclass ATTRIBUTE_UNUSED,
++		     bool in)
+ {
+-  return 2 + memory_move_secondary_cost (mode, regclass, in);
++  return (in ? 2 : 0) + REGISTER_MOVE_COST (mode, regclass, regclass);
+ }
+ 
+ /* Convert a CC_MODE to the set of flags that it represents.  */
+@@ -2728,6 +2752,52 @@
+ }
+ 
+ 
+
++int
++rx_align_for_label (rtx lab, int uses_threshold)
++{
++  /* This is a simple heuristic to guess when an alignment would not be useful
++     because the delay due to the inserted NOPs would be greater than the delay
++     due to the misaligned branch.  If uses_threshold is zero then the alignment
++     is always useful.  */
++  if (LABEL_P (lab) && LABEL_NUSES (lab) < uses_threshold)
++    return 0;
++
++  return optimize_size ? 1 : 3;
++}
++
++static int
++rx_max_skip_for_label (rtx lab)
++{
++  int opsize;
++  rtx op;
++
++  if (lab == NULL_RTX)
++    return 0;
++  op = lab;
++  do
++    {
++      op = next_nonnote_nondebug_insn (op);
++    }
++  while (op && (LABEL_P (op)
++		|| (INSN_P (op) && GET_CODE (PATTERN (op)) == USE)));
++  if (!op)
++    return 0;
++
++  opsize = get_attr_length (op);
++  if (opsize >= 0 && opsize < 8)
++    return opsize - 1;
++  return 0;
++}
++
+
++#undef  TARGET_ASM_JUMP_ALIGN_MAX_SKIP
++#define TARGET_ASM_JUMP_ALIGN_MAX_SKIP			rx_max_skip_for_label
++#undef  TARGET_ASM_LOOP_ALIGN_MAX_SKIP
++#define TARGET_ASM_LOOP_ALIGN_MAX_SKIP			rx_max_skip_for_label
++#undef  TARGET_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP
++#define TARGET_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP	rx_max_skip_for_label
++#undef  TARGET_ASM_LABEL_ALIGN_MAX_SKIP
++#define TARGET_ASM_LABEL_ALIGN_MAX_SKIP			rx_max_skip_for_label
++
+ #undef  TARGET_FUNCTION_VALUE
+ #define TARGET_FUNCTION_VALUE		rx_function_value
+ 
+diff -Naur gcc-4.6.0.orig/gcc/config/rx/rx.h gcc-4.6.0/gcc/config/rx/rx.h
+--- gcc-4.6.0.orig/gcc/config/rx/rx.h	2011-02-17 17:51:02.000000000 +0000
++++ gcc-4.6.0/gcc/config/rx/rx.h	2011-05-12 09:44:14.691413000 +0000
+@@ -155,7 +155,7 @@
+ 
+ #define LEGITIMATE_CONSTANT_P(X) 	rx_is_legitimate_constant (X)
+ 
+-#define HAVE_PRE_DECCREMENT		1
++#define HAVE_PRE_DECREMENT		1
+ #define HAVE_POST_INCREMENT		1
+ 
+ #define MOVE_RATIO(SPEED) 		((SPEED) ? 4 : 2)
+@@ -615,4 +615,29 @@
+ #define BRANCH_COST(SPEED,PREDICT)       1
+ #define REGISTER_MOVE_COST(MODE,FROM,TO) 2
+ 
+-#define SELECT_CC_MODE(OP,X,Y)  rx_select_cc_mode(OP, X, Y)
++#define SELECT_CC_MODE(OP,X,Y)  rx_select_cc_mode((OP), (X), (Y))
++
++/* Compute the alignment needed for label X in various situations.
++   If the user has specified an alignment then honour that, otherwise
++   use rx_align_for_label.  */
++#define JUMP_ALIGN(x)				(align_jumps ? align_jumps : rx_align_for_label (x, 0))
++#define LABEL_ALIGN(x)				(align_labels ? align_labels : rx_align_for_label (x, 3))
++#define LOOP_ALIGN(x)				(align_loops ? align_loops : rx_align_for_label (x, 2))
++#define LABEL_ALIGN_AFTER_BARRIER(x)		rx_align_for_label (x, 0)
++
++#define ASM_OUTPUT_MAX_SKIP_ALIGN(STREAM, LOG, MAX_SKIP)	\
++  do						\
++    {						\
++      if ((LOG) == 0 || (MAX_SKIP) == 0)	\
++        break;					\
++      if (TARGET_AS100_SYNTAX)			\
++	{					\
++	  if ((LOG) >= 2)			\
++	    fprintf (STREAM, "\t.ALIGN 4\t; %d alignment actually requested\n", 1 << (LOG)); \
++	  else					\
++	    fprintf (STREAM, "\t.ALIGN 2\n");	\
++	}					\
++      else					\
++	fprintf (STREAM, "\t.balign %d,3,%d\n", 1 << (LOG), (MAX_SKIP));	\
++    }						\
++  while (0)
+diff -Naur gcc-4.6.0.orig/gcc/config/rx/rx.md gcc-4.6.0/gcc/config/rx/rx.md
+--- gcc-4.6.0.orig/gcc/config/rx/rx.md	2011-03-10 11:30:33.000000000 +0000
++++ gcc-4.6.0/gcc/config/rx/rx.md	2011-05-17 08:46:51.876914000 +0000
+@@ -904,6 +904,39 @@
+    (set_attr "length"   "3,4,5,6,7,6")]
+ )
+ 
++;; Peepholes to match:
++;;   (set (reg A) (reg B))
++;;   (set (CC) (compare:CC (reg A/reg B) (const_int 0)))
++;; and replace them with the addsi3_flags pattern, using an add
++;; of zero to copy the register and set the condition code bits.
++(define_peephole2
++  [(set (match_operand:SI 0 "register_operand")
++        (match_operand:SI 1 "register_operand"))
++   (set (reg:CC CC_REG)
++        (compare:CC (match_dup 0)
++                    (const_int 0)))]
++  ""
++  [(parallel [(set (match_dup 0)
++		   (plus:SI (match_dup 1) (const_int 0)))
++	      (set (reg:CC_ZSC CC_REG)
++		   (compare:CC_ZSC (plus:SI (match_dup 1) (const_int 0))
++				   (const_int 0)))])]
++)
++
++(define_peephole2
++  [(set (match_operand:SI 0 "register_operand")
++        (match_operand:SI 1 "register_operand"))
++   (set (reg:CC CC_REG)
++        (compare:CC (match_dup 1)
++                    (const_int 0)))]
++  ""
++  [(parallel [(set (match_dup 0)
++		   (plus:SI (match_dup 1) (const_int 0)))
++	      (set (reg:CC_ZSC CC_REG)
++		   (compare:CC_ZSC (plus:SI (match_dup 1) (const_int 0))
++				   (const_int 0)))])]
++)
++
+ (define_expand "adddi3"
+   [(set (match_operand:DI          0 "register_operand")
+ 	(plus:DI (match_operand:DI 1 "register_operand")
+@@ -1545,6 +1578,168 @@
+    (set_attr "length" "3,4,5,6,7,6")]
+ )
+ 
+
++;; A set of peepholes to catch extending loads followed by arithmetic operations.
++;; We use iterators where possible to reduce the amount of typing and hence the
++;; possibilities for typos.
++
++(define_code_iterator extend_types [(zero_extend "") (sign_extend "")])
++(define_code_attr     letter       [(zero_extend "R") (sign_extend "Q")])
++
++(define_code_iterator memex_commutative [(plus "") (and "") (ior "") (xor "")])
++(define_code_iterator memex_noncomm     [(div "") (udiv "") (minus "")])
++(define_code_iterator memex_nocc        [(smax "") (smin "") (mult "")])
++
++(define_code_attr     op                [(plus "add") (and "and") (div "div") (udiv "divu") (smax "max") (smin "min") (mult "mul") (ior "or") (minus "sub") (xor "xor")])
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (parallel [(set (match_operand:SI                    2 "register_operand")
++		   (memex_commutative:SI (match_dup 0)
++					 (match_dup 2)))
++	      (clobber (reg:CC CC_REG))])]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(parallel [(set:SI (match_dup 2)
++		      (memex_commutative:SI (match_dup 2)
++					    (extend_types:SI (match_dup 1))))
++	      (clobber (reg:CC CC_REG))])]
++)
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (parallel [(set (match_operand:SI                    2 "register_operand")
++		   (memex_commutative:SI (match_dup 2)
++					 (match_dup 0)))
++	      (clobber (reg:CC CC_REG))])]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(parallel [(set:SI (match_dup 2)
++		      (memex_commutative:SI (match_dup 2)
++					    (extend_types:SI (match_dup 1))))
++	      (clobber (reg:CC CC_REG))])]
++)
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (parallel [(set (match_operand:SI                    2 "register_operand")
++		   (memex_noncomm:SI (match_dup 2)
++				     (match_dup 0)))
++	      (clobber (reg:CC CC_REG))])]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(parallel [(set:SI (match_dup 2)
++		      (memex_noncomm:SI (match_dup 2)
++					(extend_types:SI (match_dup 1))))
++	      (clobber (reg:CC CC_REG))])]
++)
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (set (match_operand:SI                               2 "register_operand")
++	(memex_nocc:SI (match_dup 0)
++		       (match_dup 2)))]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(set:SI (match_dup 2)
++	   (memex_nocc:SI (match_dup 2)
++			  (extend_types:SI (match_dup 1))))]
++)
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (set (match_operand:SI                               2 "register_operand")
++	(memex_nocc:SI (match_dup 2)
++		       (match_dup 0)))]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(set:SI (match_dup 2)
++	   (memex_nocc:SI (match_dup 2)
++			  (extend_types:SI (match_dup 1))))]
++)
++
++(define_insn "*<memex_commutative:code>si3_<extend_types:code><small_int_modes:mode>"
++  [(set (match_operand:SI                                                     0 "register_operand" "=r")
++	(memex_commutative:SI (match_operand:SI                               1 "register_operand" "%0")
++ 		              (extend_types:SI (match_operand:small_int_modes 2 "rx_restricted_mem_operand" "Q"))))
++   (clobber (reg:CC CC_REG))]
++  ""
++  "<memex_commutative:op>\t%<extend_types:letter>2, %0"
++  [(set_attr "timings" "33")
++   (set_attr "length"  "5")] ;; Worst case sceanario.  FIXME: If we defined separate patterns 
++)                            ;; rather than using iterators we could specify exact sizes.
++
++(define_insn "*<memex_noncomm:code>si3_<extend_types:code><small_int_modes:mode>"
++  [(set (match_operand:SI                                                 0 "register_operand" "=r")
++	(memex_noncomm:SI (match_operand:SI                               1 "register_operand" "0")
++                          (extend_types:SI (match_operand:small_int_modes 2 "rx_restricted_mem_operand" "Q"))))
++   (clobber (reg:CC CC_REG))]
++  ""
++  "<memex_noncomm:op>\t%<extend_types:letter>2, %0"
++  [(set_attr "timings" "33")
++   (set_attr "length"  "5")] ;; Worst case sceanario.  FIXME: If we defined separate patterns 
++)                            ;; rather than using iterators we could specify exact sizes.
++
++(define_insn "*<memex_nocc:code>si3_<extend_types:code><small_int_modes:mode>"
++  [(set (match_operand:SI                                              0 "register_operand" "=r")
++	(memex_nocc:SI (match_operand:SI                               1 "register_operand" "%0")
++		       (extend_types:SI (match_operand:small_int_modes 2 "rx_restricted_mem_operand" "Q"))))]
++  ""
++  "<memex_nocc:op>\t%<extend_types:letter>2, %0"
++  [(set_attr "timings" "33")
++   (set_attr "length"  "5")] ;; Worst case sceanario.  FIXME: If we defined separate patterns 
++)                            ;; rather than using iterators we could specify exact sizes.
++
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand")))
++   (set (reg:CC CC_REG)
++	(compare:CC (match_operand:SI                   2 "register_operand")
++		    (match_dup 0)))]
++  "peep2_regno_dead_p (2, REGNO (operands[0]))"
++  [(set (reg:CC CC_REG)
++	(compare:CC (match_dup 2)
++		    (extend_types:SI (match_dup 1))))]
++)
++
++;; Convert:
++;;   (set (reg1) (sign_extend (mem))
++;;   (set (reg2) (zero_extend (reg1))
++;; into
++;;   (set (reg2) (zero_extend (mem)))
++(define_peephole2
++  [(set (match_operand:SI                              0 "register_operand")
++	(sign_extend:SI (match_operand:small_int_modes 1 "memory_operand")))
++   (set (match_operand:SI                              2 "register_operand")
++	(zero_extend:SI (match_operand:small_int_modes 3 "register_operand")))]
++  "REGNO (operands[0]) == REGNO (operands[3])
++   && (REGNO (operands[0]) == REGNO (operands[2])
++       || peep2_regno_dead_p (2, REGNO (operands[0])))"
++  [(set (match_dup 2)
++	(zero_extend:SI (match_dup 1)))]
++)
++
++;; Remove the redundant sign extension from:
++;;   (set (reg) (extend (mem)))
++;;   (set (reg) (extend (reg)))
++(define_peephole2
++  [(set (match_operand:SI                               0 "register_operand")
++	(extend_types:SI (match_operand:small_int_modes 1 "memory_operand")))
++   (set (match_dup 0)
++	(extend_types:SI (match_operand:small_int_modes 2 "register_operand")))]
++  "REGNO (operands[0]) == REGNO (operands[2])"
++  [(set (match_dup 0) (extend_types:SI (match_dup 1)))]
++)
++
++(define_insn "*comparesi3_<extend_types:code><small_int_modes:mode>"
++  [(set (reg:CC CC_REG)
++	(compare:CC (match_operand:SI                               0 "register_operand" "=r")
++		    (extend_types:SI (match_operand:small_int_modes 1 "rx_restricted_mem_operand" "Q"))))]
++  ""
++  "cmp\t%<extend_types:letter>1, %0"
++  [(set_attr "timings" "33")
++   (set_attr "length"  "5")] ;; Worst case sceanario.  FIXME: If we defined separate patterns 
++)                            ;; rather than using iterators we could specify exact sizes.
++
+
+ ;; Floating Point Instructions
+ 
+ (define_insn "addsf3"
+@@ -1636,7 +1831,7 @@
+ )
+ 
+ (define_insn "*bitset_in_memory"
+-  [(set (match_operand:QI                    0 "memory_operand" "+Q")
++  [(set (match_operand:QI                    0 "rx_restricted_mem_operand" "+Q")
+ 	(ior:QI (ashift:QI (const_int 1)
+ 			   (match_operand:QI 1 "nonmemory_operand" "ri"))
+ 		(match_dup 0)))]
+@@ -1657,7 +1852,7 @@
+ )
+ 
+ (define_insn "*bitinvert_in_memory"
+-  [(set (match_operand:QI 0 "memory_operand" "+Q")
++  [(set (match_operand:QI 0 "rx_restricted_mem_operand" "+Q")
+ 	(xor:QI (ashift:QI (const_int 1)
+ 			   (match_operand:QI 1 "nonmemory_operand" "ri"))
+ 		(match_dup 0)))]
+@@ -1680,7 +1875,7 @@
+ )
+ 
+ (define_insn "*bitclr_in_memory"
+-  [(set (match_operand:QI 0 "memory_operand" "+Q")
++  [(set (match_operand:QI 0 "rx_restricted_mem_operand" "+Q")
+ 	(and:QI (not:QI
+ 		  (ashift:QI
+ 		    (const_int 1)
+diff -Naur gcc-4.6.0.orig/gcc/config/s390/s390.c gcc-4.6.0/gcc/config/s390/s390.c
+--- gcc-4.6.0.orig/gcc/config/s390/s390.c	2011-03-21 09:27:28.000000000 +0000
++++ gcc-4.6.0/gcc/config/s390/s390.c	2011-05-06 11:10:13.285425000 +0000
+@@ -3011,14 +3011,20 @@
+ 	 it is most likely being used as an address, so
+ 	 prefer ADDR_REGS.  If 'class' is not a superset
+ 	 of ADDR_REGS, e.g. FP_REGS, reject this reload.  */
+-      case PLUS:
+       case LABEL_REF:
+       case SYMBOL_REF:
+       case CONST:
+-	if (reg_class_subset_p (ADDR_REGS, rclass))
++	if (reg_class_subset_p (ADDR_REGS, rclass)
++	    && legitimate_reload_constant_p (op))
+           return ADDR_REGS;
+ 	else
+ 	  return NO_REGS;
++      case PLUS:
++	/* load address will be used for this reload.  */
++	if (reg_class_subset_p (ADDR_REGS, rclass))
++	  return ADDR_REGS;
++	else
++	  return NO_REGS;
+ 
+       default:
+ 	break;
+@@ -3134,12 +3140,16 @@
+ 
+   if (TARGET_Z10)
+     {
++      HOST_WIDE_INT offset;
++      rtx symref;
++
+       /* On z10 several optimizer steps may generate larl operands with
+ 	 an odd addend.  */
+       if (in_p
+-	  && s390_symref_operand_p (x, NULL, NULL)
++	  && s390_symref_operand_p (x, &symref, &offset)
+ 	  && mode == Pmode
+-	  && !s390_check_symref_alignment (x, 2))
++	  && !SYMBOL_REF_ALIGN1_P (symref)
++	  && (offset & 1) == 1)
+ 	sri->icode = ((mode == DImode) ? CODE_FOR_reloaddi_larl_odd_addend_z10
+ 		      : CODE_FOR_reloadsi_larl_odd_addend_z10);
+ 
+@@ -9271,16 +9281,16 @@
+ 
+   if (TARGET_64BIT)
+     {
+-      output_asm_insn ("basr\t%1,0", op);
+-      output_asm_insn ("lmg\t%0,%1,14(%1)", op);
+-      output_asm_insn ("br\t%1", op);
++      output_asm_insn ("basr\t%1,0", op);         /* 2 byte */
++      output_asm_insn ("lmg\t%0,%1,14(%1)", op);  /* 6 byte */
++      output_asm_insn ("br\t%1", op);             /* 2 byte */
+       ASM_OUTPUT_SKIP (file, (HOST_WIDE_INT)(TRAMPOLINE_SIZE - 10));
+     }
+   else
+     {
+-      output_asm_insn ("basr\t%1,0", op);
+-      output_asm_insn ("lm\t%0,%1,6(%1)", op);
+-      output_asm_insn ("br\t%1", op);
++      output_asm_insn ("basr\t%1,0", op);         /* 2 byte */
++      output_asm_insn ("lm\t%0,%1,6(%1)", op);    /* 4 byte */
++      output_asm_insn ("br\t%1", op);             /* 2 byte */
+       ASM_OUTPUT_SKIP (file, (HOST_WIDE_INT)(TRAMPOLINE_SIZE - 8));
+     }
+ }
+@@ -9296,11 +9306,11 @@
+   rtx mem;
+ 
+   emit_block_move (m_tramp, assemble_trampoline_template (),
+-		   GEN_INT (2*UNITS_PER_WORD), BLOCK_OP_NORMAL);
++		   GEN_INT (2 * UNITS_PER_LONG), BLOCK_OP_NORMAL);
+ 
+-  mem = adjust_address (m_tramp, Pmode, 2*UNITS_PER_WORD);
++  mem = adjust_address (m_tramp, Pmode, 2 * UNITS_PER_LONG);
+   emit_move_insn (mem, cxt);
+-  mem = adjust_address (m_tramp, Pmode, 3*UNITS_PER_WORD);
++  mem = adjust_address (m_tramp, Pmode, 3 * UNITS_PER_LONG);
+   emit_move_insn (mem, fnaddr);
+ }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/config/s390/s390.md gcc-4.6.0/gcc/config/s390/s390.md
+--- gcc-4.6.0.orig/gcc/config/s390/s390.md	2010-12-09 08:41:21.000000000 +0000
++++ gcc-4.6.0/gcc/config/s390/s390.md	2011-05-09 14:38:22.695745000 +0000
+@@ -2026,6 +2026,7 @@
+   [(set (match_dup 0) (match_dup 1))]
+ {
+   rtx addr = operand_subword (operands[0], 1, 0, <MODE>mode);
++  addr = gen_lowpart (Pmode, addr);
+   s390_load_address (addr, XEXP (operands[1], 0));
+   operands[1] = replace_equiv_address (operands[1], addr);
+ })
+@@ -9330,7 +9331,7 @@
+    (parallel [(set (match_dup 0) (plus:DI (match_dup 0) (match_dup 2)))
+ 	      (clobber (reg:CC CC_REGNUM))])
+    ; sllg op2, op0, 16
+-   (set (match_operand:DI 2 "register_operand" "")
++   (set (match_dup 2)
+ 	(ashift:DI (match_dup 0) (const_int 16)))
+    ; agr op0, op2
+    (parallel [(set (match_dup 0) (plus:DI (match_dup 0) (match_dup 2)))
+@@ -9352,7 +9353,7 @@
+ 			      UNSPEC_POPCNT))
+ 	      (clobber (reg:CC CC_REGNUM))])
+    ; sllk op2, op0, 16
+-   (set (match_operand:SI 2 "register_operand" "")
++   (set (match_dup 2)
+ 	(ashift:SI (match_dup 0) (const_int 16)))
+    ; ar op0, op2
+    (parallel [(set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))
+@@ -9374,7 +9375,7 @@
+ 			      UNSPEC_POPCNT))
+ 	      (clobber (reg:CC CC_REGNUM))])
+    ; sllk op2, op0, 8
+-   (set (match_operand:SI 2 "register_operand" "")
++   (set (match_dup 2)
+ 	(ashift:SI (match_dup 0) (const_int 8)))
+    ; ar op0, op2
+    (parallel [(set (match_dup 0) (plus:SI (match_dup 0) (match_dup 2)))
+diff -Naur gcc-4.6.0.orig/gcc/config/sparc/freebsd.h gcc-4.6.0/gcc/config/sparc/freebsd.h
+--- gcc-4.6.0.orig/gcc/config/sparc/freebsd.h	2011-02-06 18:23:06.000000000 +0000
++++ gcc-4.6.0/gcc/config/sparc/freebsd.h	2011-04-17 21:34:29.443887000 +0000
+@@ -24,11 +24,19 @@
+   { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
+ 
+ /* FreeBSD needs the platform name (sparc64) defined.
+-   Emacs needs to know if the arch is 64 or 32-bits.  */
++   Emacs etc needs to know if the arch is 64 or 32-bits.
++   This also selects which targets are available via -mcpu.  */
+ 
+-#undef  CPP_CPU64_DEFAULT_SPEC
+-#define CPP_CPU64_DEFAULT_SPEC \
+-  "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
++#undef  FBSD_TARGET_CPU_CPP_BUILTINS
++#define FBSD_TARGET_CPU_CPP_BUILTINS()		\
++  do						\
++    {						\
++      builtin_define ("__sparc64__");		\
++      builtin_define ("__sparc__");		\
++      builtin_define ("__sparc_v9__");		\
++      builtin_define ("__sparcv9");		\
++    }						\
++  while (0)
+ 
+ #undef ASM_SPEC
+ #define ASM_SPEC "%{fpic|fPIC|fpie|fPIE:-K PIC} %(asm_cpu)"
+@@ -152,6 +160,13 @@
+ 
+ /* #define DWARF_OFFSET_SIZE PTR_SIZE */
+ 
++#ifdef HAVE_AS_TLS
++#undef TARGET_SUN_TLS
++#undef TARGET_GNU_TLS
++#define TARGET_SUN_TLS 0
++#define TARGET_GNU_TLS 1
++#endif
++
+ #undef ENDFILE_SPEC
+ #define ENDFILE_SPEC						\
+   "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} "	\
+diff -Naur gcc-4.6.0.orig/gcc/config/spu/t-spu-elf gcc-4.6.0/gcc/config/spu/t-spu-elf
+--- gcc-4.6.0.orig/gcc/config/spu/t-spu-elf	2010-12-17 14:10:02.000000000 +0000
++++ gcc-4.6.0/gcc/config/spu/t-spu-elf	2011-04-01 17:17:59.394038000 +0000
+@@ -1,4 +1,5 @@
+-#  Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++#  Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
++#  Free Software Foundation, Inc.
+ #
+ #  This file is free software; you can redistribute it and/or modify it under
+ #  the terms of the GNU General Public License as published by the Free
+@@ -55,7 +56,7 @@
+ DPBIT = dp-bit.c
+ 
+ dp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf
+-	cat $(srcdir)/config/fp-bit.c >> dp-bit.c
++	cat $(srcdir)/config/fp-bit.c > dp-bit.c
+ 
+ fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf
+ 	echo '#define FLOAT' > fp-bit.c
+diff -Naur gcc-4.6.0.orig/gcc/config/v850/v850.c gcc-4.6.0/gcc/config/v850/v850.c
+--- gcc-4.6.0.orig/gcc/config/v850/v850.c	2010-12-01 13:46:36.000000000 +0000
++++ gcc-4.6.0/gcc/config/v850/v850.c	2011-04-12 11:33:07.800058000 +0000
+@@ -1686,7 +1686,7 @@
+   /* Save/setup global registers for interrupt functions right now.  */
+   if (interrupt_handler)
+     {
+-      if (! TARGET_DISABLE_CALLT)
++      if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+ 	emit_insn (gen_callt_save_interrupt ());
+       else
+ 	emit_insn (gen_save_interrupt ());
+@@ -1768,7 +1768,7 @@
+       /* Special case interrupt functions that save all registers for a call.  */
+       if (interrupt_handler && ((1L << LINK_POINTER_REGNUM) & reg_saved) != 0)
+ 	{
+-	  if (! TARGET_DISABLE_CALLT)
++	  if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+ 	    emit_insn (gen_callt_save_all_interrupt ());
+ 	  else
+ 	    emit_insn (gen_save_all_interrupt ());
+@@ -2019,7 +2019,7 @@
+       /* And return or use reti for interrupt handlers.  */
+       if (interrupt_handler)
+         {
+-          if (! TARGET_DISABLE_CALLT)
++          if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+             emit_insn (gen_callt_return_interrupt ());
+           else
+             emit_jump_insn (gen_return_interrupt ());
+diff -Naur gcc-4.6.0.orig/gcc/config.gcc gcc-4.6.0/gcc/config.gcc
+--- gcc-4.6.0.orig/gcc/config.gcc	2011-03-14 06:05:29.000000000 +0000
++++ gcc-4.6.0/gcc/config.gcc	2011-04-08 21:41:35.738880000 +0000
+@@ -1212,6 +1212,7 @@
+ 	;;
+ i[34567]86-*-freebsd*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
++	tmake_file="${tmake_file} i386/t-crtstuff"
+ 	;;
+ x86_64-*-freebsd*)
+ 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
+diff -Naur gcc-4.6.0.orig/gcc/cp/call.c gcc-4.6.0/gcc/cp/call.c
+--- gcc-4.6.0.orig/gcc/cp/call.c	2011-03-16 20:03:01.000000000 +0000
++++ gcc-4.6.0/gcc/cp/call.c	2011-04-26 23:42:50.605125000 +0000
+@@ -801,6 +801,53 @@
+   return c;
+ }
+ 
++/* Represent a conversion from CTOR, a braced-init-list, to TYPE, an
++   array type, if such a conversion is possible.  */
++
++static conversion *
++build_array_conv (tree type, tree ctor, int flags)
++{
++  conversion *c;
++  unsigned HOST_WIDE_INT len = CONSTRUCTOR_NELTS (ctor);
++  tree elttype = TREE_TYPE (type);
++  unsigned i;
++  tree val;
++  bool bad = false;
++  bool user = false;
++  enum conversion_rank rank = cr_exact;
++
++  if (TYPE_DOMAIN (type))
++    {
++      unsigned HOST_WIDE_INT alen = tree_low_cst (array_type_nelts_top (type), 1);
++      if (alen < len)
++	return NULL;
++    }
++
++  FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val)
++    {
++      conversion *sub
++	= implicit_conversion (elttype, TREE_TYPE (val), val,
++			       false, flags);
++      if (sub == NULL)
++	return NULL;
++
++      if (sub->rank > rank)
++	rank = sub->rank;
++      if (sub->user_conv_p)
++	user = true;
++      if (sub->bad_p)
++	bad = true;
++    }
++
++  c = alloc_conversion (ck_aggr);
++  c->type = type;
++  c->rank = rank;
++  c->user_conv_p = user;
++  c->bad_p = bad;
++  c->u.next = NULL;
++  return c;
++}
++
+ /* Build a representation of the identity conversion from EXPR to
+    itself.  The TYPE should match the type of EXPR, if EXPR is non-NULL.  */
+ 
+@@ -1429,7 +1476,9 @@
+ 	  || (((CP_TYPE_CONST_NON_VOLATILE_P (to)
+ 		&& !(flags & LOOKUP_NO_TEMP_BIND))
+ 	       || TYPE_REF_IS_RVALUE (rto))
+-	      && (CLASS_TYPE_P (from) || (expr && lvalue_p (expr))))))
++	      && (CLASS_TYPE_P (from)
++		  || TREE_CODE (from) == ARRAY_TYPE
++		  || (expr && lvalue_p (expr))))))
+     {
+       /* [dcl.init.ref]
+ 
+@@ -1621,6 +1670,8 @@
+ 	      return conv;
+ 	    }
+ 	}
++      else if (TREE_CODE (to) == ARRAY_TYPE)
++	return build_array_conv (to, expr, flags);
+     }
+ 
+   if (expr != NULL_TREE
+@@ -5430,6 +5481,8 @@
+ 	    if (!BRACE_ENCLOSED_INITIALIZER_P (val))
+ 	      check_narrowing (TREE_TYPE (sub), val);
+ 	    CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (new_ctor), NULL_TREE, sub);
++	    if (!TREE_CONSTANT (sub))
++	      TREE_CONSTANT (new_ctor) = false;
+ 	  }
+ 	/* Build up the array.  */
+ 	elttype = cp_build_qualified_type
+diff -Naur gcc-4.6.0.orig/gcc/cp/class.c gcc-4.6.0/gcc/cp/class.c
+--- gcc-4.6.0.orig/gcc/cp/class.c	2011-02-28 21:41:21.000000000 +0000
++++ gcc-4.6.0/gcc/cp/class.c	2011-05-09 12:34:19.714405000 +0000
+@@ -4547,6 +4547,8 @@
+ static void
+ finalize_literal_type_property (tree t)
+ {
++  tree fn;
++
+   if (cxx_dialect < cxx0x
+       || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (t)
+       /* FIXME These constraints seem unnecessary; remove from standard.
+@@ -4557,18 +4559,10 @@
+ 	   && !TYPE_HAS_CONSTEXPR_CTOR (t))
+     CLASSTYPE_LITERAL_P (t) = false;
+ 
+-  if (!CLASSTYPE_LITERAL_P (t) && !CLASSTYPE_TEMPLATE_INSTANTIATION (t))
+-    {
+-      tree fn;
+-      for (fn = TYPE_METHODS (t); fn; fn = DECL_CHAIN (fn))
+-	if (DECL_DECLARED_CONSTEXPR_P (fn)
+-	    && DECL_NONSTATIC_MEMBER_FUNCTION_P (fn)
+-	    && !DECL_CONSTRUCTOR_P (fn))
+-	  {
+-	    error ("enclosing class of %q+D is not a literal type", fn);
+-	    DECL_DECLARED_CONSTEXPR_P (fn) = false;
+-	  }
+-    }
++  for (fn = TYPE_METHODS (t); fn; fn = DECL_CHAIN (fn))
++    if (DECL_DECLARED_CONSTEXPR_P (fn)
++	&& TREE_CODE (fn) != TEMPLATE_DECL)
++      validate_constexpr_fundecl (fn);
+ }
+ 
+ /* Check the validity of the bases and members declared in T.  Add any
+@@ -5943,6 +5937,7 @@
+ 	     itself.  */
+ 	  if (TREE_CODE (instance) == VAR_DECL
+ 	      && DECL_INITIAL (instance)
++	      && !type_dependent_expression_p_push (DECL_INITIAL (instance))
+ 	      && !htab_find (ht, instance))
+ 	    {
+ 	      tree type;
+@@ -5983,7 +5978,17 @@
+ {
+   tree t = TREE_TYPE (instance);
+   int cdtorp = 0;
+-  tree fixed = fixed_type_or_null (instance, nonnull, &cdtorp);
++  tree fixed;
++
++  if (processing_template_decl)
++    {
++      /* In a template we only care about the type of the result.  */
++      if (nonnull)
++	*nonnull = true;
++      return true;
++    }
++
++  fixed = fixed_type_or_null (instance, nonnull, &cdtorp);
+   if (fixed == NULL_TREE)
+     return 0;
+   if (POINTER_TYPE_P (t))
+diff -Naur gcc-4.6.0.orig/gcc/cp/cp-tree.h gcc-4.6.0/gcc/cp/cp-tree.h
+--- gcc-4.6.0.orig/gcc/cp/cp-tree.h	2011-03-03 02:49:19.000000000 +0000
++++ gcc-4.6.0/gcc/cp/cp-tree.h	2011-05-06 21:58:30.234668000 +0000
+@@ -4958,6 +4958,7 @@
+ extern tree build_new				(VEC(tree,gc) **, tree, tree,
+ 						 VEC(tree,gc) **, int,
+                                                  tsubst_flags_t);
++extern tree get_temp_regvar			(tree, tree);
+ extern tree build_vec_init			(tree, tree, tree, bool, int,
+                                                  tsubst_flags_t);
+ extern tree build_delete			(tree, tree,
+@@ -5344,7 +5345,7 @@
+ extern void finish_static_assert                (tree, tree, location_t,
+                                                  bool);
+ extern tree describable_type			(tree);
+-extern tree finish_decltype_type                (tree, bool);
++extern tree finish_decltype_type                (tree, bool, tsubst_flags_t);
+ extern tree finish_trait_expr			(enum cp_trait_kind, tree, tree);
+ extern tree build_lambda_expr                   (void);
+ extern tree build_lambda_object			(tree);
+@@ -5409,6 +5410,7 @@
+ extern tree get_first_fn			(tree);
+ extern tree ovl_cons				(tree, tree);
+ extern tree build_overload			(tree, tree);
++extern bool non_static_member_function_p        (tree);
+ extern const char *cxx_printable_name		(tree, int);
+ extern const char *cxx_printable_name_translate	(tree, int);
+ extern tree build_exception_variant		(tree, tree);
+diff -Naur gcc-4.6.0.orig/gcc/cp/cvt.c gcc-4.6.0/gcc/cp/cvt.c
+--- gcc-4.6.0.orig/gcc/cp/cvt.c	2011-02-17 20:44:14.000000000 +0000
++++ gcc-4.6.0/gcc/cp/cvt.c	2011-04-12 00:20:32.250766000 +0000
+@@ -727,7 +727,13 @@
+ 	  return error_mark_node;
+ 	}
+       if (code == BOOLEAN_TYPE)
+-	return cp_truthvalue_conversion (e);
++	{
++	  /* We can't implicitly convert a scoped enum to bool, so convert
++	     to the underlying type first.  */
++	  if (SCOPED_ENUM_P (intype) && (convtype & CONV_STATIC))
++	    e = build_nop (ENUM_UNDERLYING_TYPE (intype), e);
++	  return cp_truthvalue_conversion (e);
++	}
+ 
+       converted = fold_if_not_in_template (convert_to_integer (type, e));
+ 
+diff -Naur gcc-4.6.0.orig/gcc/cp/decl.c gcc-4.6.0/gcc/cp/decl.c
+--- gcc-4.6.0.orig/gcc/cp/decl.c	2011-03-16 20:03:12.000000000 +0000
++++ gcc-4.6.0/gcc/cp/decl.c	2011-05-06 21:58:30.234668000 +0000
+@@ -4904,6 +4904,8 @@
+ 	return error_mark_node;
+       CONSTRUCTOR_APPEND_ELT (CONSTRUCTOR_ELTS (new_init),
+ 			      size_int (index), elt_init);
++      if (!TREE_CONSTANT (elt_init))
++	TREE_CONSTANT (new_init) = false;
+     }
+ 
+   return new_init;
+@@ -5793,7 +5795,10 @@
+ 	}
+     }
+ 
+-  if (TREE_CODE (decl) == FUNCTION_DECL)
++  if (TREE_CODE (decl) == FUNCTION_DECL
++      /* For members, defer until finalize_literal_type_property.  */
++      && (!DECL_CLASS_SCOPE_P (decl)
++	  || !TYPE_BEING_DEFINED (DECL_CONTEXT (decl))))
+     validate_constexpr_fundecl (decl);
+ 
+   else if (!ensure_literal_type_for_constexpr_object (decl))
+@@ -5859,11 +5864,9 @@
+ 	 then it can be used in future constant expressions, so its value
+ 	 must be available. */
+       if (!(init
+-	    && DECL_CLASS_SCOPE_P (decl)
+-	    /* We just set TREE_CONSTANT appropriately; see above.  */
+-	    && TREE_CONSTANT (decl)
++	    && init_const_expr_p
+ 	    && !type_dependent_p
+-	    /* FIXME non-value-dependent constant expression  */
++	    && decl_maybe_constant_var_p (decl)
+ 	    && !value_dependent_init_p (init)))
+ 	{
+ 	  if (init)
+@@ -5875,6 +5878,14 @@
+ 	  goto finish_end;
+ 	}
+ 
++      if (!DECL_CLASS_SCOPE_P (decl))
++	{
++	  tree init_code = check_initializer (decl, init, flags, &cleanup);
++	  if (init_code)
++	    DECL_INITIAL (decl) = init;
++	  goto finish_end;
++	}
++
+       if (TREE_CODE (init) == TREE_LIST)
+ 	{
+ 	  /* If the parenthesized-initializer form was used (e.g.,
+@@ -7488,6 +7499,39 @@
+   return 0;
+ }
+ 
++/* *expr_p is part of the TYPE_SIZE of a variably-sized array.  If any
++   SAVE_EXPRs in *expr_p wrap expressions with side-effects, break those
++   expressions out into temporary variables so that walk_tree doesn't
++   step into them (c++/15764).  */
++
++static tree
++stabilize_save_expr_r (tree *expr_p, int *walk_subtrees, void *data)
++{
++  struct pointer_set_t *pset = (struct pointer_set_t *)data;
++  tree expr = *expr_p;
++  if (TREE_CODE (expr) == SAVE_EXPR)
++    {
++      tree op = TREE_OPERAND (expr, 0);
++      cp_walk_tree (&op, stabilize_save_expr_r, data, pset);
++      if (TREE_SIDE_EFFECTS (op))
++	TREE_OPERAND (expr, 0) = get_temp_regvar (TREE_TYPE (op), op);
++      *walk_subtrees = 0;
++    }
++  else if (!EXPR_P (expr) || !TREE_SIDE_EFFECTS (expr))
++    *walk_subtrees = 0;
++  return NULL;
++}
++
++/* Entry point for the above.  */
++
++static void
++stabilize_vla_size (tree size)
++{
++  struct pointer_set_t *pset = pointer_set_create ();
++  /* Break out any function calls into temporary variables.  */
++  cp_walk_tree (&size, stabilize_save_expr_r, pset, pset);
++}
++
+ /* Given the SIZE (i.e., number of elements) in an array, compute an
+    appropriate index type for the array.  If non-NULL, NAME is the
+    name of the thing being declared.  */
+@@ -8940,7 +8984,12 @@
+ 	      && (decl_context == NORMAL || decl_context == FIELD)
+ 	      && at_function_scope_p ()
+ 	      && variably_modified_type_p (type, NULL_TREE))
+-	    finish_expr_stmt (TYPE_SIZE (type));
++	    {
++	      /* First break out any side-effects.  */
++	      stabilize_vla_size (TYPE_SIZE (type));
++	      /* And then force evaluation of the SAVE_EXPR.  */
++	      finish_expr_stmt (TYPE_SIZE (type));
++	    }
+ 
+ 	  if (declarator->kind == cdk_reference)
+ 	    {
+@@ -9015,6 +9064,14 @@
+ 	}
+     }
+ 
++  /* We need to stabilize side-effects in VLA sizes for regular array
++     declarations too, not just pointers to arrays.  */
++  if (type != error_mark_node && !TYPE_NAME (type)
++      && (decl_context == NORMAL || decl_context == FIELD)
++      && at_function_scope_p ()
++      && variably_modified_type_p (type, NULL_TREE))
++    stabilize_vla_size (TYPE_SIZE (type));
++
+   /* A `constexpr' specifier used in an object declaration declares
+      the object as `const'.  */
+   if (constexpr_p && innermost_code != cdk_function)
+@@ -13339,10 +13396,14 @@
+ void
+ revert_static_member_fn (tree decl)
+ {
+-  TREE_TYPE (decl) = static_fn_type (decl);
++  tree stype = static_fn_type (decl);
+ 
+-  if (cp_type_quals (TREE_TYPE (decl)) != TYPE_UNQUALIFIED)
+-    error ("static member function %q#D declared with type qualifiers", decl);
++  if (type_memfn_quals (stype) != TYPE_UNQUALIFIED)
++    {
++      error ("static member function %q#D declared with type qualifiers", decl);
++      stype = apply_memfn_quals (stype, TYPE_UNQUALIFIED);
++    }
++  TREE_TYPE (decl) = stype;
+ 
+   if (DECL_ARGUMENTS (decl))
+     DECL_ARGUMENTS (decl) = DECL_CHAIN (DECL_ARGUMENTS (decl));
+diff -Naur gcc-4.6.0.orig/gcc/cp/decl2.c gcc-4.6.0/gcc/cp/decl2.c
+--- gcc-4.6.0.orig/gcc/cp/decl2.c	2011-03-01 22:44:26.000000000 +0000
++++ gcc-4.6.0/gcc/cp/decl2.c	2011-04-21 03:03:08.760178000 +0000
+@@ -1264,6 +1264,25 @@
+   return cp_build_qualified_type (outer, cp_type_quals (type));
+ }
+ 
++/* Replaces any constexpr expression that may be into the attributes
++   arguments with their reduced value.  */
++
++static void
++cp_check_const_attributes (tree attributes)
++{
++  tree attr;
++  for (attr = attributes; attr; attr = TREE_CHAIN (attr))
++    {
++      tree arg;
++      for (arg = TREE_VALUE (attr); arg; arg = TREE_CHAIN (arg))
++	{
++	  tree expr = TREE_VALUE (arg);
++	  if (EXPR_P (expr))
++	    TREE_VALUE (arg) = maybe_constant_value (expr);
++	}
++    }
++}
++
+ /* Like decl_attributes, but handle C++ complexity.  */
+ 
+ void
+@@ -1284,6 +1303,8 @@
+ 	return;
+     }
+ 
++  cp_check_const_attributes (attributes);
++
+   if (TREE_CODE (*decl) == TEMPLATE_DECL)
+     decl = &DECL_TEMPLATE_RESULT (*decl);
+ 
+@@ -4059,9 +4080,12 @@
+ 	 because we depend on the form of FN.  */
+       make_args_non_dependent (*args);
+       object = build_non_dependent_expr (object);
+-      if (TREE_CODE (fn) == DOTSTAR_EXPR)
+-	object = cp_build_addr_expr (object, tf_warning_or_error);
+-      VEC_safe_insert (tree, gc, *args, 0, object);
++      if (TREE_CODE (TREE_TYPE (fn)) == METHOD_TYPE)
++	{
++	  if (TREE_CODE (fn) == DOTSTAR_EXPR)
++	    object = cp_build_addr_expr (object, tf_warning_or_error);
++	  VEC_safe_insert (tree, gc, *args, 0, object);
++	}
+       /* Now that the arguments are done, transform FN.  */
+       fn = build_non_dependent_expr (fn);
+     }
+@@ -4080,7 +4104,10 @@
+       VEC_safe_insert (tree, gc, *args, 0, object_addr);
+     }
+ 
+-  expr = cp_build_function_call_vec (fn, args, tf_warning_or_error);
++  if (CLASS_TYPE_P (TREE_TYPE (fn)))
++    expr = build_op_call (fn, args, tf_warning_or_error);
++  else
++    expr = cp_build_function_call_vec (fn, args, tf_warning_or_error);
+   if (processing_template_decl && expr != error_mark_node)
+     expr = build_min_non_dep_call_vec (expr, orig_fn, orig_args);
+ 
+diff -Naur gcc-4.6.0.orig/gcc/cp/except.c gcc-4.6.0/gcc/cp/except.c
+--- gcc-4.6.0.orig/gcc/cp/except.c	2010-11-30 11:41:24.000000000 +0000
++++ gcc-4.6.0/gcc/cp/except.c	2011-04-08 15:02:16.658686000 +0000
+@@ -1125,6 +1125,9 @@
+ {
+   tree fn;
+ 
++  if (expr == error_mark_node)
++    return error_mark_node;
++
+   if (processing_template_decl)
+     return build_min (NOEXCEPT_EXPR, boolean_type_node, expr);
+ 
+@@ -1203,15 +1206,17 @@
+      it until instantiation.  */
+   if (!processing_template_decl)
+     {
+-      expr = cxx_constant_value (expr);
+       expr = perform_implicit_conversion_flags (boolean_type_node, expr,
+ 						complain,
+ 						LOOKUP_NORMAL);
++      expr = cxx_constant_value (expr);
+     }
+   if (expr == boolean_true_node)
+     return noexcept_true_spec;
+   else if (expr == boolean_false_node)
+     return noexcept_false_spec;
++  else if (expr == error_mark_node)
++    return error_mark_node;
+   else
+     {
+       gcc_assert (processing_template_decl || expr == error_mark_node);
+diff -Naur gcc-4.6.0.orig/gcc/cp/init.c gcc-4.6.0/gcc/cp/init.c
+--- gcc-4.6.0.orig/gcc/cp/init.c	2011-03-11 15:43:37.000000000 +0000
++++ gcc-4.6.0/gcc/cp/init.c	2011-05-11 06:03:38.016847000 +0000
+@@ -45,7 +45,6 @@
+ static tree sort_mem_initializers (tree, tree);
+ static tree initializing_context (tree);
+ static void expand_cleanup_for_base (tree, tree);
+-static tree get_temp_regvar (tree, tree);
+ static tree dfs_initialize_vtbl_ptrs (tree, void *);
+ static tree build_dtor_call (tree, special_function_kind, int);
+ static tree build_field_list (tree, tree, int *);
+@@ -343,7 +342,7 @@
+ 	   build_special_member_call (NULL_TREE, complete_ctor_identifier,
+ 				      NULL, type, LOOKUP_NORMAL,
+ 				      complain));
+-      else if (TREE_CODE (type) != UNION_TYPE && TYPE_NEEDS_CONSTRUCTING (type))
++      else if (TYPE_NEEDS_CONSTRUCTING (type))
+ 	{
+ 	  /* This is a class that needs constructing, but doesn't have
+ 	     a user-provided constructor.  So we need to zero-initialize
+@@ -1905,6 +1904,9 @@
+ 
+       field_type = strip_array_types (TREE_TYPE (field));
+ 
++      if (type_has_user_provided_constructor (field_type))
++	continue;
++
+       if (TREE_CODE (field_type) == REFERENCE_TYPE)
+ 	{
+ 	  ++ error_count;
+@@ -2871,7 +2873,7 @@
+    things when it comes time to do final cleanups (which take place
+    "outside" the binding contour of the function).  */
+ 
+-static tree
++tree
+ get_temp_regvar (tree type, tree init)
+ {
+   tree decl;
+diff -Naur gcc-4.6.0.orig/gcc/cp/method.c gcc-4.6.0/gcc/cp/method.c
+--- gcc-4.6.0.orig/gcc/cp/method.c	2011-03-09 16:59:55.000000000 +0000
++++ gcc-4.6.0/gcc/cp/method.c	2011-03-31 20:33:07.952847000 +0000
+@@ -1594,6 +1594,12 @@
+ {
+   special_function_kind kind = sfk_none;
+ 
++  if (template_parm_scope_p ())
++    {
++      error ("a template cannot be defaulted");
++      return false;
++    }
++
+   if (DECL_CONSTRUCTOR_P (fn))
+     {
+       if (FUNCTION_FIRST_USER_PARMTYPE (fn) == void_list_node)
+diff -Naur gcc-4.6.0.orig/gcc/cp/parser.c gcc-4.6.0/gcc/cp/parser.c
+--- gcc-4.6.0.orig/gcc/cp/parser.c	2011-03-11 22:47:59.000000000 +0000
++++ gcc-4.6.0/gcc/cp/parser.c	2011-04-27 15:57:06.718966000 +0000
+@@ -2699,6 +2699,7 @@
+ 				      location_t location)
+ {
+   tree decl, old_scope;
++  cp_parser_commit_to_tentative_parse (parser);
+   /* Try to lookup the identifier.  */
+   old_scope = parser->scope;
+   parser->scope = scope;
+@@ -2792,7 +2793,6 @@
+       else
+ 	gcc_unreachable ();
+     }
+-  cp_parser_commit_to_tentative_parse (parser);
+ }
+ 
+ /* Check for a common situation where a type-name should be present,
+@@ -3696,6 +3696,12 @@
+ 	       `&A::B' might be a pointer-to-member, but `&(A::B)' is
+ 	       not.  */
+ 	    finish_parenthesized_expr (expr);
++	    /* DR 705: Wrapping an unqualified name in parentheses
++	       suppresses arg-dependent lookup.  We want to pass back
++	       CP_ID_KIND_QUALIFIED for suppressing vtable lookup
++	       (c++/37862), but none of the others.  */
++	    if (*idk != CP_ID_KIND_QUALIFIED)
++	      *idk = CP_ID_KIND_NONE;
+ 	  }
+ 	/* The `>' token might be the end of a template-id or
+ 	   template-parameter-list now.  */
+@@ -10457,7 +10463,8 @@
+       return error_mark_node;
+     }
+ 
+-  return finish_decltype_type (expr, id_expression_or_member_access_p);
++  return finish_decltype_type (expr, id_expression_or_member_access_p,
++			       tf_warning_or_error);
+ }
+ 
+ /* Special member functions [gram.special] */
+@@ -24631,7 +24638,8 @@
+ 	  /* If decl is an iterator, preserve the operator on decl
+ 	     until finish_omp_for.  */
+ 	  if (decl
+-	      && (type_dependent_expression_p (decl)
++	      && ((type_dependent_expression_p (decl)
++		   && !POINTER_TYPE_P (TREE_TYPE (decl)))
+ 		  || CLASS_TYPE_P (TREE_TYPE (decl))))
+ 	    incr = cp_parser_omp_for_incr (parser, decl);
+ 	  else
+diff -Naur gcc-4.6.0.orig/gcc/cp/pt.c gcc-4.6.0/gcc/cp/pt.c
+--- gcc-4.6.0.orig/gcc/cp/pt.c	2011-03-12 06:48:57.000000000 +0000
++++ gcc-4.6.0/gcc/cp/pt.c	2011-05-12 01:44:03.139018000 +0000
+@@ -11025,7 +11025,7 @@
+ 	  type = lambda_return_type (type);
+ 	else
+ 	  type = finish_decltype_type
+-	    (type, DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t));
++	    (type, DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P (t), complain);
+ 	return cp_build_qualified_type_real (type,
+ 					     cp_type_quals (t)
+ 					     | cp_type_quals (type),
+@@ -13936,7 +13936,10 @@
+       && TYPE_REF_IS_RVALUE (*parm)
+       && TREE_CODE (TREE_TYPE (*parm)) == TEMPLATE_TYPE_PARM
+       && cp_type_quals (TREE_TYPE (*parm)) == TYPE_UNQUALIFIED
+-      && arg_expr && real_lvalue_p (arg_expr))
++      && (arg_expr ? real_lvalue_p (arg_expr)
++	  /* try_one_overload doesn't provide an arg_expr, but
++	     functions are always lvalues.  */
++	  : TREE_CODE (*arg) == FUNCTION_TYPE))
+     *arg = build_reference_type (*arg);
+ 
+   /* [temp.deduct.call]
+@@ -18065,6 +18068,11 @@
+   if (DECL_P (expression) && type_dependent_expression_p (expression))
+     return true;
+ 
++  /* We shouldn't have gotten here for a type-dependent expression, but
++     let's handle it properly anyway.  */
++  if (TREE_TYPE (expression) == NULL_TREE)
++    return true;
++
+   switch (TREE_CODE (expression))
+     {
+     case IDENTIFIER_NODE:
+@@ -18082,10 +18090,10 @@
+       return value_dependent_expression_p (DECL_INITIAL (expression));
+ 
+     case VAR_DECL:
+-       /* A constant with integral or enumeration type and is initialized
++       /* A constant with literal type and is initialized
+ 	  with an expression that is value-dependent.  */
+       if (DECL_INITIAL (expression)
+-	  && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (expression))
++	  && decl_constant_var_p (expression)
+ 	  && value_dependent_expression_p (DECL_INITIAL (expression)))
+ 	return true;
+       return false;
+@@ -18217,6 +18225,11 @@
+ 	return false;
+       }
+ 
++    case TEMPLATE_ID_EXPR:
++      /* If a TEMPLATE_ID_EXPR involves a dependent name, it will be
++	 type-dependent.  */
++      return type_dependent_expression_p (expression);
++
+     default:
+       /* A constant expression is value-dependent if any subexpression is
+ 	 value-dependent.  */
+@@ -18797,10 +18810,6 @@
+ {
+   tree inner_expr;
+ 
+-  /* Preserve null pointer constants so that the type of things like
+-     "p == 0" where "p" is a pointer can be determined.  */
+-  if (null_ptr_cst_p (expr))
+-    return expr;
+   /* Preserve OVERLOADs; the functions must be available to resolve
+      types.  */
+   inner_expr = expr;
+@@ -18848,24 +18857,17 @@
+ 		   TREE_OPERAND (expr, 0),
+ 		   build_non_dependent_expr (TREE_OPERAND (expr, 1)));
+ 
++  /* Keep dereferences outside the NON_DEPENDENT_EXPR so lvalue_kind
++     doesn't need to look inside.  */
++  if (TREE_CODE (expr) == INDIRECT_REF && REFERENCE_REF_P (expr))
++    return convert_from_reference (build_non_dependent_expr
++				   (TREE_OPERAND (expr, 0)));
++
+   /* If the type is unknown, it can't really be non-dependent */
+   gcc_assert (TREE_TYPE (expr) != unknown_type_node);
+ 
+-  /* Otherwise, build a NON_DEPENDENT_EXPR.
+-
+-     REFERENCE_TYPEs are not stripped for expressions in templates
+-     because doing so would play havoc with mangling.  Consider, for
+-     example:
+-
+-       template <typename T> void f<T& g>() { g(); }
+-
+-     In the body of "f", the expression for "g" will have
+-     REFERENCE_TYPE, even though the standard says that it should
+-     not.  The reason is that we must preserve the syntactic form of
+-     the expression so that mangling (say) "f<g>" inside the body of
+-     "f" works out correctly.  Therefore, the REFERENCE_TYPE is
+-     stripped here.  */
+-  return build1 (NON_DEPENDENT_EXPR, non_reference (TREE_TYPE (expr)), expr);
++  /* Otherwise, build a NON_DEPENDENT_EXPR.  */
++  return build1 (NON_DEPENDENT_EXPR, TREE_TYPE (expr), expr);
+ }
+ 
+ /* ARGS is a vector of expressions as arguments to a function call.
+diff -Naur gcc-4.6.0.orig/gcc/cp/semantics.c gcc-4.6.0/gcc/cp/semantics.c
+--- gcc-4.6.0.orig/gcc/cp/semantics.c	2011-03-08 05:28:13.000000000 +0000
++++ gcc-4.6.0/gcc/cp/semantics.c	2011-05-06 21:58:44.977085000 +0000
+@@ -2041,7 +2041,7 @@
+ 	     is not included in *ARGS even though it is considered to
+ 	     be part of the list of arguments.  Note that this is
+ 	     related to CWG issues 515 and 1005.  */
+-	  || ((TREE_CODE (TREE_TYPE (fn)) == METHOD_TYPE)
++	  || (non_static_member_function_p (fn)
+ 	      && current_class_ref
+ 	      && type_dependent_expression_p (current_class_ref)))
+ 	{
+@@ -2150,11 +2150,14 @@
+     /* A call where the function is unknown.  */
+     result = cp_build_function_call_vec (fn, args, complain);
+ 
+-  if (processing_template_decl)
++  if (processing_template_decl && result != error_mark_node)
+     {
++      if (TREE_CODE (result) == INDIRECT_REF)
++	result = TREE_OPERAND (result, 0);
+       result = build_call_vec (TREE_TYPE (result), orig_fn, orig_args);
+       KOENIG_LOOKUP_P (result) = koenig_p;
+       release_tree_vector (orig_args);
++      result = convert_from_reference (result);
+     }
+ 
+   return result;
+@@ -2326,7 +2329,35 @@
+   if (TREE_CODE (type) == ARRAY_TYPE)
+     cp_complete_array_type (&type, compound_literal, false);
+   compound_literal = digest_init (type, compound_literal);
+-  return get_target_expr (compound_literal);
++  /* Put static/constant array temporaries in static variables, but always
++     represent class temporaries with TARGET_EXPR so we elide copies.  */
++  if ((!at_function_scope_p () || CP_TYPE_CONST_P (type))
++      && TREE_CODE (type) == ARRAY_TYPE
++      && !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)
++      && initializer_constant_valid_p (compound_literal, type))
++    {
++      tree decl = create_temporary_var (type);
++      DECL_INITIAL (decl) = compound_literal;
++      TREE_STATIC (decl) = 1;
++      if (literal_type_p (type) && CP_TYPE_CONST_NON_VOLATILE_P (type))
++	{
++	  /* 5.19 says that a constant expression can include an
++	     lvalue-rvalue conversion applied to "a glvalue of literal type
++	     that refers to a non-volatile temporary object initialized
++	     with a constant expression".  Rather than try to communicate
++	     that this VAR_DECL is a temporary, just mark it constexpr.  */
++	  DECL_DECLARED_CONSTEXPR_P (decl) = true;
++	  DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl) = true;
++	  TREE_CONSTANT (decl) = true;
++	}
++      cp_apply_type_quals_to_decl (cp_type_quals (type), decl);
++      decl = pushdecl_top_level (decl);
++      DECL_NAME (decl) = make_anon_name ();
++      SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl));
++      return decl;
++    }
++  else
++    return get_target_expr (compound_literal);
+ }
+ 
+ /* Return the declaration for the function-name variable indicated by
+@@ -4755,7 +4786,8 @@
+    a full expression.  */
+ 
+ tree
+-finish_decltype_type (tree expr, bool id_expression_or_member_access_p)
++finish_decltype_type (tree expr, bool id_expression_or_member_access_p,
++		      tsubst_flags_t complain)
+ {
+   tree orig_expr = expr;
+   tree type = NULL_TREE;
+@@ -4768,7 +4800,8 @@
+       || (TREE_CODE (expr) == BIT_NOT_EXPR
+ 	  && TYPE_P (TREE_OPERAND (expr, 0))))
+     {
+-      error ("argument to decltype must be an expression");
++      if (complain & tf_error)
++	error ("argument to decltype must be an expression");
+       return error_mark_node;
+     }
+ 
+@@ -4835,7 +4868,9 @@
+           if (OVL_CHAIN (expr)
+ 	      || TREE_CODE (OVL_FUNCTION (expr)) == TEMPLATE_DECL)
+             {
+-              error ("%qE refers to a set of overloaded functions", orig_expr);
++	      if (complain & tf_error)
++		error ("%qE refers to a set of overloaded functions",
++		       orig_expr);
+               return error_mark_node;
+             }
+           else
+@@ -4887,7 +4922,8 @@
+         default:
+ 	  gcc_assert (TYPE_P (expr) || DECL_P (expr)
+ 		      || TREE_CODE (expr) == SCOPE_REF);
+-          error ("argument to decltype must be an expression");
++	  if (complain & tf_error)
++	    error ("argument to decltype must be an expression");
+           return error_mark_node;
+         }
+     }
+@@ -4982,7 +5018,8 @@
+ 
+   if (!type || type == unknown_type_node)
+     {
+-      error ("type of %qE is unknown", expr);
++      if (complain & tf_error)
++	error ("type of %qE is unknown", expr);
+       return error_mark_node;
+     }
+ 
+@@ -5387,8 +5424,8 @@
+       {
+ 	ret = false;
+ 	if (complain)
+-	  error ("invalid type for parameter %q#D of constexpr function",
+-		 parm);
++	  error ("invalid type for parameter %d of constexpr "
++		 "function %q+#D", DECL_PARM_INDEX (parm), fun);
+       }
+ 
+   if (!DECL_CONSTRUCTOR_P (fun))
+@@ -5398,17 +5435,16 @@
+ 	{
+ 	  ret = false;
+ 	  if (complain)
+-	    error ("invalid return type %qT of constexpr function %qD",
++	    error ("invalid return type %qT of constexpr function %q+D",
+ 		   rettype, fun);
+ 	}
+ 
+       if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fun)
+-	  && COMPLETE_TYPE_P (DECL_CONTEXT (fun))
+-	  && !valid_type_in_constexpr_fundecl_p (DECL_CONTEXT (fun)))
++	  && !CLASSTYPE_LITERAL_P (DECL_CONTEXT (fun)))
+ 	{
+ 	  ret = false;
+ 	  if (complain)
+-	    error ("enclosing class of %q#D is not a literal type", fun);
++	    error ("enclosing class of %q+#D is not a literal type", fun);
+ 	}
+     }
+ 
+@@ -5668,11 +5704,11 @@
+       body = unshare_expr (TREE_OPERAND (body, 0));
+     }
+ 
+-  if (!potential_constant_expression (body))
++  if (!potential_rvalue_constant_expression (body))
+     {
+       DECL_DECLARED_CONSTEXPR_P (fun) = false;
+       if (!DECL_TEMPLATE_INSTANTIATION (fun))
+-	require_potential_constant_expression (body);
++	require_potential_rvalue_constant_expression (body);
+       return NULL;
+     }
+   fundef->body = body;
+@@ -5922,17 +5958,21 @@
+ /* Variables and functions to manage constexpr call expansion context.
+    These do not need to be marked for PCH or GC.  */
+ 
++/* FIXME remember and print actual constant arguments.  */
+ static VEC(tree,heap) *call_stack = NULL;
+ static int call_stack_tick;
+ static int last_cx_error_tick;
+ 
+-static void
++static bool
+ push_cx_call_context (tree call)
+ {
+   ++call_stack_tick;
+   if (!EXPR_HAS_LOCATION (call))
+     SET_EXPR_LOCATION (call, input_location);
+   VEC_safe_push (tree, heap, call_stack, call);
++  if (VEC_length (tree, call_stack) > (unsigned) max_constexpr_depth)
++    return false;
++  return true;
+ }
+ 
+ static void
+@@ -5967,6 +6007,9 @@
+   tree result;
+   constexpr_call new_call = { NULL, NULL, NULL, 0 };
+   constexpr_call **slot;
++  constexpr_call *entry;
++  bool depth_ok;
++
+   if (TREE_CODE (fun) != FUNCTION_DECL)
+     {
+       /* Might be a constexpr function pointer.  */
+@@ -6029,7 +6072,7 @@
+   if (*non_constant_p)
+     return t;
+ 
+-  push_cx_call_context (t);
++  depth_ok = push_cx_call_context (t);
+ 
+   new_call.hash
+     = iterative_hash_template_arg (new_call.bindings,
+@@ -6039,37 +6082,43 @@
+   maybe_initialize_constexpr_call_table ();
+   slot = (constexpr_call **)
+     htab_find_slot (constexpr_call_table, &new_call, INSERT);
+-  if (*slot != NULL)
+-    {
+-      /* Calls which are in progress have their result set to NULL
+-         so that we can detect circular dependencies.  */
+-      if ((*slot)->result == NULL)
+-        {
+-	  if (!allow_non_constant)
+-	    error ("call has circular dependency");
+-	  (*slot)->result = result = error_mark_node;
+-        }
+-      else
+-	{
+-	  result = (*slot)->result;
+-	  if (result == error_mark_node && !allow_non_constant)
+-	    /* Re-evaluate to get the error.  */
+-	    cxx_eval_constant_expression (&new_call, new_call.fundef->body,
+-					  allow_non_constant, addr,
+-					  non_constant_p);
+-	}
+-    }
+-  else
++  entry = *slot;
++  if (entry == NULL)
+     {
+       /* We need to keep a pointer to the entry, not just the slot, as the
+ 	 slot can move in the call to cxx_eval_builtin_function_call.  */
+-      constexpr_call *entry = ggc_alloc_constexpr_call ();
++      *slot = entry = ggc_alloc_constexpr_call ();
+       *entry = new_call;
+-      *slot = entry;
+-      result
+-	= cxx_eval_constant_expression (&new_call, new_call.fundef->body,
+-					allow_non_constant, addr,
+-					non_constant_p);
++    }
++  /* Calls which are in progress have their result set to NULL
++     so that we can detect circular dependencies.  */
++  else if (entry->result == NULL)
++    {
++      if (!allow_non_constant)
++	error ("call has circular dependency");
++      *non_constant_p = true;
++      entry->result = result = error_mark_node;
++    }
++
++  if (!depth_ok)
++    {
++      if (!allow_non_constant)
++	error ("constexpr evaluation depth exceeds maximum of %d (use "
++	       "-fconstexpr-depth= to increase the maximum)",
++	       max_constexpr_depth);
++      *non_constant_p = true;
++      entry->result = result = error_mark_node;
++    }
++  else
++    {
++      result = entry->result;
++      if (!result || (result == error_mark_node && !allow_non_constant))
++	result = (cxx_eval_constant_expression
++		  (&new_call, new_call.fundef->body,
++		   allow_non_constant, addr,
++		   non_constant_p));
++      if (result == error_mark_node)
++	*non_constant_p = true;
+       if (*non_constant_p)
+ 	entry->result = result = error_mark_node;
+       else
+@@ -6206,13 +6255,12 @@
+ 					   allow_non_constant, addr,
+ 					   non_constant_p);
+   VERIFY_CONSTANT (val);
+-  if (val == boolean_true_node)
+-    return cxx_eval_constant_expression (call, TREE_OPERAND (t, 1),
++  /* Don't VERIFY_CONSTANT the other operands.  */
++  if (integer_zerop (val))
++    return cxx_eval_constant_expression (call, TREE_OPERAND (t, 2),
+ 					 allow_non_constant, addr,
+ 					 non_constant_p);
+-  gcc_assert (val == boolean_false_node);
+-  /* Don't VERIFY_CONSTANT here.  */
+-  return cxx_eval_constant_expression (call, TREE_OPERAND (t, 2),
++  return cxx_eval_constant_expression (call, TREE_OPERAND (t, 1),
+ 				       allow_non_constant, addr,
+ 				       non_constant_p);
+ }
+@@ -6231,7 +6279,8 @@
+ 					   non_constant_p);
+   tree index, oldidx;
+   HOST_WIDE_INT i;
+-  unsigned len;
++  tree elem_type;
++  unsigned len, elem_nchars = 1;
+   if (*non_constant_p)
+     return t;
+   oldidx = TREE_OPERAND (t, 1);
+@@ -6243,11 +6292,27 @@
+     return t;
+   else if (addr)
+     return build4 (ARRAY_REF, TREE_TYPE (t), ary, index, NULL, NULL);
+-  len = (TREE_CODE (ary) == CONSTRUCTOR
+-	 ? CONSTRUCTOR_NELTS (ary)
+-	 : (unsigned)TREE_STRING_LENGTH (ary));
++  elem_type = TREE_TYPE (TREE_TYPE (ary));
++  if (TREE_CODE (ary) == CONSTRUCTOR)
++    len = CONSTRUCTOR_NELTS (ary);
++  else
++    {
++      elem_nchars = (TYPE_PRECISION (elem_type)
++		     / TYPE_PRECISION (char_type_node));
++      len = (unsigned) TREE_STRING_LENGTH (ary) / elem_nchars;
++    }
+   if (compare_tree_int (index, len) >= 0)
+     {
++      if (tree_int_cst_lt (index, array_type_nelts_top (TREE_TYPE (ary))))
++	{
++	  /* If it's within the array bounds but doesn't have an explicit
++	     initializer, it's value-initialized.  */
++	  tree val = build_value_init (elem_type, tf_warning_or_error);
++	  return cxx_eval_constant_expression (call, val,
++					       allow_non_constant, addr,
++					       non_constant_p);
++	}
++
+       if (!allow_non_constant)
+ 	error ("array subscript out of bound");
+       *non_constant_p = true;
+@@ -6256,9 +6321,16 @@
+   i = tree_low_cst (index, 0);
+   if (TREE_CODE (ary) == CONSTRUCTOR)
+     return VEC_index (constructor_elt, CONSTRUCTOR_ELTS (ary), i)->value;
+-  else
++  else if (elem_nchars == 1)
+     return build_int_cst (cv_unqualified (TREE_TYPE (TREE_TYPE (ary))),
+ 			  TREE_STRING_POINTER (ary)[i]);
++  else
++    {
++      tree type = cv_unqualified (TREE_TYPE (TREE_TYPE (ary)));
++      return native_interpret_expr (type, (const unsigned char *)
++					  TREE_STRING_POINTER (ary)
++					  + i * elem_nchars, elem_nchars);
++    }
+   /* Don't VERIFY_CONSTANT here.  */
+ }
+ 
+@@ -6717,6 +6789,9 @@
+   tree type = TREE_TYPE (r);
+   error ("the value of %qD is not usable in a constant "
+ 	 "expression", r);
++  /* Avoid error cascade.  */
++  if (DECL_INITIAL (r) == error_mark_node)
++    return;
+   if (DECL_DECLARED_CONSTEXPR_P (r))
+     inform (DECL_SOURCE_LOCATION (r),
+ 	    "%qD used in its own initializer", r);
+@@ -6896,7 +6971,13 @@
+ 	  r = cxx_eval_constant_expression (call, op0, allow_non_constant,
+ 					    addr, non_constant_p);
+ 	else
+-	  goto binary;
++	  {
++	    /* Check that the LHS is constant and then discard it.  */
++	    cxx_eval_constant_expression (call, op0, allow_non_constant,
++					  false, non_constant_p);
++	    r = cxx_eval_constant_expression (call, op1, allow_non_constant,
++					      addr, non_constant_p);
++	  }
+       }
+       break;
+ 
+@@ -6938,7 +7019,6 @@
+     case UNEQ_EXPR:
+     case RANGE_EXPR:
+     case COMPLEX_EXPR:
+-    binary:
+       r = cxx_eval_binary_expression (call, t, allow_non_constant, addr,
+ 				      non_constant_p);
+       break;
+@@ -7025,6 +7105,11 @@
+ 	     conversion.  */
+ 	  return fold (t);
+ 	r = fold_build1 (TREE_CODE (t), to, op);
++	/* Conversion of an out-of-range value has implementation-defined
++	   behavior; the language considers it different from arithmetic
++	   overflow, which is undefined.  */
++	if (TREE_OVERFLOW_P (r) && !TREE_OVERFLOW_P (op))
++	  TREE_OVERFLOW (r) = false;
+       }
+       break;
+ 
+@@ -7313,6 +7398,8 @@
+             class member access expression, including the result of the
+             implicit transformation in the body of the non-static
+             member function (9.3.1);  */
++      /* FIXME this restriction seems pointless since the standard dropped
++	 "potential constant expression".  */
+       if (is_this_parameter (t))
+         {
+           if (flags & tf_error)
+@@ -7328,51 +7415,63 @@
+       {
+         tree fun = get_function_named_in_call (t);
+         const int nargs = call_expr_nargs (t);
+-        if (TREE_CODE (fun) != FUNCTION_DECL)
+-          {
+-	    if (potential_constant_expression_1 (fun, rval, flags))
+-	      /* Might end up being a constant function pointer.  */
+-	      return true;
+-            if (flags & tf_error)
+-              error ("%qE is not a function name", fun);
+-            return false;
+-          }
+-	/* Skip initial arguments to base constructors.  */
+-	if (DECL_BASE_CONSTRUCTOR_P (fun))
+-	  i = num_artificial_parms_for (fun);
++	i = 0;
++
++	if (is_overloaded_fn (fun))
++	  {
++	    if (TREE_CODE (fun) == FUNCTION_DECL)
++	      {
++		if (builtin_valid_in_constant_expr_p (fun))
++		  return true;
++		if (!DECL_DECLARED_CONSTEXPR_P (fun)
++		    && !morally_constexpr_builtin_function_p (fun))
++		  {
++		    if (flags & tf_error)
++		      error ("%qD is not %<constexpr%>", fun);
++		    return false;
++		  }
++		/* A call to a non-static member function takes the address
++		   of the object as the first argument.  But in a constant
++		   expression the address will be folded away, so look
++		   through it now.  */
++		if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fun)
++		    && !DECL_CONSTRUCTOR_P (fun))
++		  {
++		    tree x = get_nth_callarg (t, 0);
++		    if (is_this_parameter (x))
++		      /* OK.  */;
++		    else if (!potential_constant_expression_1 (x, rval, flags))
++		      {
++			if (flags & tf_error)
++			  error ("object argument is not a potential "
++				 "constant expression");
++			return false;
++		      }
++		    i = 1;
++		  }
++	      }
++	    else
++	      fun = get_first_fn (fun);
++	    /* Skip initial arguments to base constructors.  */
++	    if (DECL_BASE_CONSTRUCTOR_P (fun))
++	      i = num_artificial_parms_for (fun);
++	    fun = DECL_ORIGIN (fun);
++	  }
+ 	else
+-	  i = 0;
+-	fun = DECL_ORIGIN (fun);
+-        if (builtin_valid_in_constant_expr_p (fun))
+-          return true;
+-        if (!DECL_DECLARED_CONSTEXPR_P (fun)
+-            && !morally_constexpr_builtin_function_p (fun))
+           {
+-            if (flags & tf_error)
+-              error ("%qD is not %<constexpr%>", fun);
+-            return false;
++	    if (potential_constant_expression_1 (fun, rval, flags))
++	      /* Might end up being a constant function pointer.  */;
++	    else
++	      {
++		if (flags & tf_error)
++		  error ("%qE is not a function name", fun);
++		return false;
++	      }
+           }
+         for (; i < nargs; ++i)
+           {
+             tree x = get_nth_callarg (t, i);
+-            /* A call to a non-static member function takes the
+-               address of the object as the first argument.
+-               But in a constant expression the address will be folded
+-	       away, so look through it now.  */
+-            if (i == 0 && DECL_NONSTATIC_MEMBER_P (fun)
+-                && !DECL_CONSTRUCTOR_P (fun))
+-	      {
+-		if (is_this_parameter (x))
+-		  /* OK.  */;
+-                else if (!potential_constant_expression_1 (x, rval, flags))
+-		  {
+-		    if (flags & tf_error)
+-		      error ("object argument is not a potential constant "
+-			     "expression");
+-		    return false;
+-		  }
+-              }
+-	    else if (!potential_constant_expression_1 (x, rval, flags))
++	    if (!potential_constant_expression_1 (x, rval, flags))
+ 	      {
+ 		if (flags & tf_error)
+ 		  error ("argument in position %qP is not a "
+@@ -7472,7 +7571,16 @@
+         tree x = TREE_OPERAND (t, 0);
+         STRIP_NOPS (x);
+         if (is_this_parameter (x))
+-	  return true;
++	  {
++	    if (DECL_CONSTRUCTOR_P (DECL_CONTEXT (x)) && want_rval)
++	      {
++		if (flags & tf_error)
++		  sorry ("use of the value of the object being constructed "
++			 "in a constant expression");
++		return false;
++	      }
++	    return true;
++	  }
+ 	return potential_constant_expression_1 (x, rval, flags);
+       }
+ 
+@@ -7689,6 +7797,8 @@
+     case BIT_XOR_EXPR:
+     case BIT_AND_EXPR:
+     case TRUTH_XOR_EXPR:
++    case UNORDERED_EXPR:
++    case ORDERED_EXPR:
+     case UNLT_EXPR:
+     case UNLE_EXPR:
+     case UNGT_EXPR:
+@@ -7717,12 +7827,12 @@
+       tmp = TREE_OPERAND (t, 0);
+       if (!potential_constant_expression_1 (tmp, rval, flags))
+ 	return false;
+-      else if (tmp == boolean_true_node)
+-	return potential_constant_expression_1 (TREE_OPERAND (t, 1),
+-						want_rval, flags);
+-      else if (tmp == boolean_false_node)
++      else if (integer_zerop (tmp))
+ 	return potential_constant_expression_1 (TREE_OPERAND (t, 2),
+ 						want_rval, flags);
++      else if (TREE_CODE (tmp) == INTEGER_CST)
++	return potential_constant_expression_1 (TREE_OPERAND (t, 1),
++						want_rval, flags);
+       for (i = 1; i < 3; ++i)
+ 	if (potential_constant_expression_1 (TREE_OPERAND (t, i),
+ 					     want_rval, tf_none))
+diff -Naur gcc-4.6.0.orig/gcc/cp/tree.c gcc-4.6.0/gcc/cp/tree.c
+--- gcc-4.6.0.orig/gcc/cp/tree.c	2011-03-03 02:49:19.000000000 +0000
++++ gcc-4.6.0/gcc/cp/tree.c	2011-05-06 08:34:10.904710000 +0000
+@@ -1465,6 +1465,34 @@
+   return ovl_cons (decl, chain);
+ }
+ 
++/* Return TRUE if FN is a non-static member function, FALSE otherwise.
++   This function looks into BASELINK and OVERLOAD nodes.  */
++
++bool
++non_static_member_function_p (tree fn)
++{
++  if (fn == NULL_TREE)
++    return false;
++
++  if (BASELINK_P (fn))
++    {
++      tree type = TREE_TYPE (fn);
++
++      if (type && TREE_CODE (type) == METHOD_TYPE)
++	return true;
++      else if (type && TREE_CODE (type) == FUNCTION_TYPE)
++	return false;
++      /* This is an overload.  Lets look into its current value.  */
++      fn = get_fns (BASELINK_FUNCTIONS (fn));
++    }
++
++  if (TREE_CODE (fn) == OVERLOAD)
++    fn = OVL_CURRENT (fn);
++
++  return (DECL_P (fn)
++	  && DECL_NONSTATIC_MEMBER_FUNCTION_P (fn));
++}
++
+ 
+
+ #define PRINT_RING_SIZE 4
+ 
+@@ -2421,7 +2449,7 @@
+   else if (current != current_class_type
+ 	   && context == nonlambda_method_basetype ())
+     /* In a lambda, need to go through 'this' capture.  */
+-    decl = (cp_build_indirect_ref
++    decl = (build_x_indirect_ref
+ 	    ((lambda_expr_this_capture
+ 	      (CLASSTYPE_LAMBDA_EXPR (current_class_type))),
+ 	     RO_NULL, tf_warning_or_error));
+diff -Naur gcc-4.6.0.orig/gcc/cp/typeck.c gcc-4.6.0/gcc/cp/typeck.c
+--- gcc-4.6.0.orig/gcc/cp/typeck.c	2011-03-16 20:03:01.000000000 +0000
++++ gcc-4.6.0/gcc/cp/typeck.c	2011-04-20 06:31:51.769604000 +0000
+@@ -4354,7 +4354,11 @@
+ 		  gcc_unreachable();
+ 		}
+ 	    }
+-	  return build2 (COMPLEX_EXPR, result_type, real, imag);
++	  real = fold_if_not_in_template (real);
++	  imag = fold_if_not_in_template (imag);
++	  result = build2 (COMPLEX_EXPR, result_type, real, imag);
++	  result = fold_if_not_in_template (result);
++	  return result;
+ 	}
+ 
+       /* For certain operations (which identify themselves by shorten != 0)
+@@ -5469,6 +5473,8 @@
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
++      else
++	return error_mark_node;
+ 
+       for (list = TREE_CHAIN (list); list; list = TREE_CHAIN (list))
+ 	expr = build_x_compound_expr (expr, TREE_VALUE (list), 
+@@ -7760,12 +7766,19 @@
+ 
+       /* Under C++0x [12.8/16 class.copy], a returned lvalue is sometimes
+ 	 treated as an rvalue for the purposes of overload resolution to
+-	 favor move constructors over copy constructors.  */
+-      if ((cxx_dialect != cxx98) 
+-          && named_return_value_okay_p
+-          /* The variable must not have the `volatile' qualifier.  */
+-	  && !CP_TYPE_VOLATILE_P (TREE_TYPE (retval))
+-	  /* The return type must be a class type.  */
++	 favor move constructors over copy constructors.
++
++         Note that these conditions are similar to, but not as strict as,
++	 the conditions for the named return value optimization.  */
++      if ((cxx_dialect != cxx98)
++          && (TREE_CODE (retval) == VAR_DECL
++	      || TREE_CODE (retval) == PARM_DECL)
++	  && DECL_CONTEXT (retval) == current_function_decl
++	  && !TREE_STATIC (retval)
++	  && same_type_p ((TYPE_MAIN_VARIANT (TREE_TYPE (retval))),
++			  (TYPE_MAIN_VARIANT
++			   (TREE_TYPE (TREE_TYPE (current_function_decl)))))
++	  /* This is only interesting for class type.  */
+ 	  && CLASS_TYPE_P (TREE_TYPE (TREE_TYPE (current_function_decl))))
+ 	flags = flags | LOOKUP_PREFER_RVALUE;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/cppspec.c gcc-4.6.0/gcc/cppspec.c
+--- gcc-4.6.0.orig/gcc/cppspec.c	2010-08-22 12:19:01.000000000 +0000
++++ gcc-4.6.0/gcc/cppspec.c	2011-05-16 21:23:14.820483000 +0000
+@@ -1,5 +1,5 @@
+ /* Specific flags and argument handling of the C preprocessor.
+-   Copyright (C) 1999, 2007, 2010 Free Software Foundation, Inc.
++   Copyright (C) 1999, 2007, 2010, 2011 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+@@ -158,7 +158,7 @@
+ 
+   new_decoded_options = XNEWVEC (struct cl_decoded_option, new_argc);
+ 
+-  new_decoded_options[0] = new_decoded_options[0];
++  new_decoded_options[0] = decoded_options[0];
+   j = 1;
+ 
+   if (need_E)
+diff -Naur gcc-4.6.0.orig/gcc/df-core.c gcc-4.6.0/gcc/df-core.c
+--- gcc-4.6.0.orig/gcc/df-core.c	2010-12-14 00:23:40.000000000 +0000
++++ gcc-4.6.0/gcc/df-core.c	2011-03-26 09:21:34.659334000 +0000
+@@ -1,6 +1,6 @@
+ /* Allocation for dataflow support routines.
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+-   2008, 2009, 2010 Free Software Foundation, Inc.
++   2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+    Originally contributed by Michael P. Hayes
+              (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com)
+    Major rewrite contributed by Danny Berlin (dberlin@dberlin.org)
+@@ -1400,10 +1400,9 @@
+ bool
+ df_get_bb_dirty (basic_block bb)
+ {
+-  if (df && df_live)
+-    return bitmap_bit_p (df_live->out_of_date_transfer_functions, bb->index);
+-  else
+-    return false;
++  return bitmap_bit_p ((df_live
++			? df_live : df_lr)->out_of_date_transfer_functions,
++		       bb->index);
+ }
+ 
+ 
+diff -Naur gcc-4.6.0.orig/gcc/doc/extend.texi gcc-4.6.0/gcc/doc/extend.texi
+--- gcc-4.6.0.orig/gcc/doc/extend.texi	2011-03-20 00:23:51.000000000 +0000
++++ gcc-4.6.0/gcc/doc/extend.texi	2011-04-24 09:43:29.870302000 +0000
+@@ -4180,42 +4180,6 @@
+ You can use the sequence @samp{\e} in a string or character constant to
+ stand for the ASCII character @key{ESC}.
+ 
+-@node Alignment
+-@section Inquiring on Alignment of Types or Variables
+-@cindex alignment
+-@cindex type alignment
+-@cindex variable alignment
+-
+-The keyword @code{__alignof__} allows you to inquire about how an object
+-is aligned, or the minimum alignment usually required by a type.  Its
+-syntax is just like @code{sizeof}.
+-
+-For example, if the target machine requires a @code{double} value to be
+-aligned on an 8-byte boundary, then @code{__alignof__ (double)} is 8.
+-This is true on many RISC machines.  On more traditional machine
+-designs, @code{__alignof__ (double)} is 4 or even 2.
+-
+-Some machines never actually require alignment; they allow reference to any
+-data type even at an odd address.  For these machines, @code{__alignof__}
+-reports the smallest alignment that GCC will give the data type, usually as
+-mandated by the target ABI.
+-
+-If the operand of @code{__alignof__} is an lvalue rather than a type,
+-its value is the required alignment for its type, taking into account
+-any minimum alignment specified with GCC's @code{__attribute__}
+-extension (@pxref{Variable Attributes}).  For example, after this
+-declaration:
+-
+-@smallexample
+-struct foo @{ int x; char y; @} foo1;
+-@end smallexample
+-
+-@noindent
+-the value of @code{__alignof__ (foo1.y)} is 1, even though its actual
+-alignment is probably 2 or 4, the same as @code{__alignof__ (int)}.
+-
+-It is an error to ask for the alignment of an incomplete type.
+-
+ @node Variable Attributes
+ @section Specifying Attributes of Variables
+ @cindex attribute of variables
+@@ -5224,6 +5188,42 @@
+ Language Extensions Specification.  It is intended to support the
+ @code{__vector} keyword.
+ 
++@node Alignment
++@section Inquiring on Alignment of Types or Variables
++@cindex alignment
++@cindex type alignment
++@cindex variable alignment
++
++The keyword @code{__alignof__} allows you to inquire about how an object
++is aligned, or the minimum alignment usually required by a type.  Its
++syntax is just like @code{sizeof}.
++
++For example, if the target machine requires a @code{double} value to be
++aligned on an 8-byte boundary, then @code{__alignof__ (double)} is 8.
++This is true on many RISC machines.  On more traditional machine
++designs, @code{__alignof__ (double)} is 4 or even 2.
++
++Some machines never actually require alignment; they allow reference to any
++data type even at an odd address.  For these machines, @code{__alignof__}
++reports the smallest alignment that GCC will give the data type, usually as
++mandated by the target ABI.
++
++If the operand of @code{__alignof__} is an lvalue rather than a type,
++its value is the required alignment for its type, taking into account
++any minimum alignment specified with GCC's @code{__attribute__}
++extension (@pxref{Variable Attributes}).  For example, after this
++declaration:
++
++@smallexample
++struct foo @{ int x; char y; @} foo1;
++@end smallexample
++
++@noindent
++the value of @code{__alignof__ (foo1.y)} is 1, even though its actual
++alignment is probably 2 or 4, the same as @code{__alignof__ (int)}.
++
++It is an error to ask for the alignment of an incomplete type.
++
+ 
+ @node Inline
+ @section An Inline Function is As Fast As a Macro
+@@ -14266,63 +14266,63 @@
+ false.  Otherwise if @code{__has_trivial_assign (type)} is true then the trait
+ is true, else if @code{type} is a cv class or union type with copy assignment
+ operators that are known not to throw an exception then the trait is true,
+-else it is false.  Requires: @code{type} shall be a complete type, an array
+-type of unknown bound, or is a @code{void} type.
++else it is false.  Requires: @code{type} shall be a complete type, 
++(possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __has_nothrow_copy (type)
+ If @code{__has_trivial_copy (type)} is true then the trait is true, else if
+ @code{type} is a cv class or union type with copy constructors that
+ are known not to throw an exception then the trait is true, else it is false.
+-Requires: @code{type} shall be a complete type, an array type of
+-unknown bound, or is a @code{void} type.
++Requires: @code{type} shall be a complete type, (possibly cv-qualified)
++@code{void}, or an array of unknown bound.
+ 
+ @item __has_nothrow_constructor (type)
+ If @code{__has_trivial_constructor (type)} is true then the trait is
+ true, else if @code{type} is a cv class or union type (or array
+ thereof) with a default constructor that is known not to throw an
+-exception then the trait is true, else it is false.  Requires:
+-@code{type} shall be a complete type, an array type of unknown bound,
+-or is a @code{void} type.
++exception then the trait is true, else it is false.  Requires: 
++@code{type} shall be a complete type, (possibly cv-qualified) 
++@code{void}, or an array of unknown bound.
+ 
+ @item __has_trivial_assign (type)
+ If @code{type} is const qualified or is a reference type then the trait is
+ false.  Otherwise if @code{__is_pod (type)} is true then the trait is
+ true, else if @code{type} is a cv class or union type with a trivial
+ copy assignment ([class.copy]) then the trait is true, else it is
+-false.  Requires: @code{type} shall be a complete type, an array type
+-of unknown bound, or is a @code{void} type.
++false.  Requires: @code{type} shall be a complete type, (possibly 
++cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __has_trivial_copy (type)
+ If @code{__is_pod (type)} is true or @code{type} is a reference type 
+ then the trait is true, else if @code{type} is a cv class or union type
+ with a trivial copy constructor ([class.copy]) then the trait
+ is true, else it is false.  Requires: @code{type} shall be a complete
+-type, an array type of unknown bound, or is a @code{void} type.
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __has_trivial_constructor (type)
+ If @code{__is_pod (type)} is true then the trait is true, else if
+ @code{type} is a cv class or union type (or array thereof) with a
+ trivial default constructor ([class.ctor]) then the trait is true,
+-else it is false.  Requires: @code{type} shall be a complete type, an
+-array type of unknown bound, or is a @code{void} type.
++else it is false.  Requires: @code{type} shall be a complete
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __has_trivial_destructor (type)
+ If @code{__is_pod (type)} is true or @code{type} is a reference type then
+ the trait is true, else if @code{type} is a cv class or union type (or
+ array thereof) with a trivial destructor ([class.dtor]) then the trait
+ is true, else it is false.  Requires: @code{type} shall be a complete
+-type, an array type of unknown bound, or is a @code{void} type.
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __has_virtual_destructor (type)
+ If @code{type} is a class type with a virtual destructor
+ ([class.dtor]) then the trait is true, else it is false.  Requires:
+-@code{type}  shall be a complete type, an array type of unknown bound,
+-or is a @code{void} type.
++@code{type} shall be a complete type, (possibly cv-qualified)
++@code{void}, or an array of unknown bound.
+ 
+ @item __is_abstract (type)
+ If @code{type} is an abstract class ([class.abstract]) then the trait
+ is true, else it is false.  Requires: @code{type} shall be a complete
+-type, an array type of unknown bound, or is a @code{void} type.
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __is_base_of (base_type, derived_type)
+ If @code{base_type} is a base class of @code{derived_type}
+@@ -14347,22 +14347,37 @@
+ members, and @code{type} has no virtual base classes, and @code{type}
+ has no base classes @code{base_type} for which 
+ @code{__is_empty (base_type)} is false.  Requires: @code{type} shall
+-be a complete type, an array type of unknown bound, or is a
+-@code{void} type.
++be a complete type, (possibly cv-qualified) @code{void}, or an array
++of unknown bound.
+ 
+ @item __is_enum (type)
+ If @code{type} is a cv enumeration type ([basic.compound]) the trait is
+ true, else it is false.
+ 
++@item __is_literal_type (type)
++If @code{type} is a literal type ([basic.types]) the trait is
++true, else it is false.  Requires: @code{type} shall be a complete type,
++(possibly cv-qualified) @code{void}, or an array of unknown bound.
++
+ @item __is_pod (type)
+ If @code{type} is a cv POD type ([basic.types]) then the trait is true,
+-else it is false.  Requires: @code{type} shall be a complete type, 
+-an array type of unknown bound, or is a @code{void} type.
++else it is false.  Requires: @code{type} shall be a complete type,
++(possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __is_polymorphic (type)
+ If @code{type} is a polymorphic class ([class.virtual]) then the trait
+ is true, else it is false.  Requires: @code{type} shall be a complete
+-type, an array type of unknown bound, or is a @code{void} type.
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
++
++@item __is_standard_layout (type)
++If @code{type} is a standard-layout type ([basic.types]) the trait is
++true, else it is false.  Requires: @code{type} shall be a complete
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
++
++@item __is_trivial (type)
++If @code{type} is a trivial type ([basic.types]) the trait is
++true, else it is false.  Requires: @code{type} shall be a complete
++type, (possibly cv-qualified) @code{void}, or an array of unknown bound.
+ 
+ @item __is_union (type)
+ If @code{type} is a cv union type ([basic.compound]) the trait is
+diff -Naur gcc-4.6.0.orig/gcc/doc/invoke.texi gcc-4.6.0/gcc/doc/invoke.texi
+--- gcc-4.6.0.orig/gcc/doc/invoke.texi	2011-03-18 14:34:52.000000000 +0000
++++ gcc-4.6.0/gcc/doc/invoke.texi	2011-03-29 14:24:42.977146000 +0000
+@@ -181,7 +181,7 @@
+ @item C++ Language Options
+ @xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
+ @gccoptlist{-fabi-version=@var{n}  -fno-access-control  -fcheck-new @gol
+--fconserve-space  -ffriend-injection @gol
++-fconserve-space  -fconstexpr-depth=@var{n}  -ffriend-injection @gol
+ -fno-elide-constructors @gol
+ -fno-enforce-eh-specs @gol
+ -ffor-scope  -fno-for-scope  -fno-gnu-keywords @gol
+@@ -237,7 +237,7 @@
+ -Wno-attributes -Wno-builtin-macro-redefined @gol
+ -Wc++-compat -Wc++0x-compat -Wcast-align  -Wcast-qual  @gol
+ -Wchar-subscripts -Wclobbered  -Wcomment @gol
+--Wconversion  -Wcoverage-mismatch  -Wcpp  -Wno-deprecated  @gol
++-Wconversion  -Wcoverage-mismatch  -Wno-cpp  -Wno-deprecated  @gol
+ -Wno-deprecated-declarations -Wdisabled-optimization  @gol
+ -Wno-div-by-zero -Wdouble-promotion -Wempty-body  -Wenum-compare @gol
+ -Wno-endif-labels -Werror  -Werror=* @gol
+@@ -613,6 +613,11 @@
+ -m32  -m64 -mlarge-data-threshold=@var{num} @gol
+ -msse2avx -mfentry -m8bit-idiv}
+ 
++@emph{i386 and x86-64 Windows Options}
++@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll
++-mnop-fun-dllimport -mthread @gol
++-municode -mwin32 -mwindows -fno-set-stack-executable}
++
+ @emph{IA-64 Options}
+ @gccoptlist{-mbig-endian  -mlittle-endian  -mgnu-as  -mgnu-ld  -mno-pic @gol
+ -mvolatile-asm-stop  -mregister-names  -msdata -mno-sdata @gol
+@@ -906,11 +911,6 @@
+ @emph{x86-64 Options}
+ See i386 and x86-64 Options.
+ 
+-@emph{i386 and x86-64 Windows Options}
+-@gccoptlist{-mconsole -mcygwin -mno-cygwin -mdll
+--mnop-fun-dllimport -mthread @gol
+--municode -mwin32 -mwindows -fno-set-stack-executable}
+-
+ @emph{Xstormy16 Options}
+ @gccoptlist{-msim}
+ 
+@@ -1881,6 +1881,13 @@
+ This option is no longer useful on most targets, now that support has
+ been added for putting variables into BSS without making them common.
+ 
++@item -fconstexpr-depth=@var{n}
++@opindex fconstexpr-depth
++Set the maximum nested evaluation depth for C++0x constexpr functions
++to @var{n}.  A limit is needed to detect endless recursion during
++constant expression evaluation.  The minimum specified by the standard
++is 512.
++
+ @item -fno-deduce-init-list
+ @opindex fno-deduce-init-list
+ Disable deduction of a template type parameter as
+@@ -3045,7 +3052,7 @@
+ comment, or whenever a Backslash-Newline appears in a @samp{//} comment.
+ This warning is enabled by @option{-Wall}.
+ 
+-@item -Wno-cpp \
++@item -Wno-cpp
+ @r{(C, Objective-C, C++, Objective-C++ and Fortran only)}
+ 
+ Suppress warning messages emitted by @code{#warning} directives.
+@@ -12815,6 +12822,78 @@
+ about addresses and sizes of sections.
+ @end table
+ 
++@node i386 and x86-64 Windows Options
++@subsection i386 and x86-64 Windows Options
++@cindex i386 and x86-64 Windows Options
++
++These additional options are available for Windows targets:
++
++@table @gcctabopt
++@item -mconsole
++@opindex mconsole
++This option is available for Cygwin and MinGW targets.  It
++specifies that a console application is to be generated, by
++instructing the linker to set the PE header subsystem type
++required for console applications.
++This is the default behavior for Cygwin and MinGW targets.
++
++@item -mdll
++@opindex mdll
++This option is available for Cygwin and MinGW targets.  It
++specifies that a DLL - a dynamic link library - is to be
++generated, enabling the selection of the required runtime
++startup object and entry point.
++
++@item -mnop-fun-dllimport
++@opindex mnop-fun-dllimport
++This option is available for Cygwin and MinGW targets.  It
++specifies that the dllimport attribute should be ignored.
++
++@item -mthread
++@opindex mthread
++This option is available for MinGW targets. It specifies
++that MinGW-specific thread support is to be used.
++
++@item -municode
++@opindex municode
++This option is available for mingw-w64 targets.  It specifies
++that the UNICODE macro is getting pre-defined and that the
++unicode capable runtime startup code is chosen.
++
++@item -mwin32
++@opindex mwin32
++This option is available for Cygwin and MinGW targets.  It
++specifies that the typical Windows pre-defined macros are to
++be set in the pre-processor, but does not influence the choice
++of runtime library/startup code.
++
++@item -mwindows
++@opindex mwindows
++This option is available for Cygwin and MinGW targets.  It
++specifies that a GUI application is to be generated by
++instructing the linker to set the PE header subsystem type
++appropriately.
++
++@item -fno-set-stack-executable
++@opindex fno-set-stack-executable
++This option is available for MinGW targets. It specifies that
++the executable flag for stack used by nested functions isn't
++set. This is necessary for binaries running in kernel mode of
++Windows, as there the user32 API, which is used to set executable
++privileges, isn't available.
++
++@item -mpe-aligned-commons
++@opindex mpe-aligned-commons
++This option is available for Cygwin and MinGW targets.  It
++specifies that the GNU extension to the PE file format that
++permits the correct alignment of COMMON variables should be
++used when generating code.  It will be enabled by default if
++GCC detects that the target assembler found during configuration
++supports the feature.
++@end table
++
++See also under @ref{i386 and x86-64 Options} for standard options.
++
+ @node IA-64 Options
+ @subsection IA-64 Options
+ @cindex IA-64 Options
+@@ -17541,78 +17620,6 @@
+ 
+ These are listed under @xref{i386 and x86-64 Options}.
+ 
+-@node i386 and x86-64 Windows Options
+-@subsection i386 and x86-64 Windows Options
+-@cindex i386 and x86-64 Windows Options
+-
+-These additional options are available for Windows targets:
+-
+-@table @gcctabopt
+-@item -mconsole
+-@opindex mconsole
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that a console application is to be generated, by
+-instructing the linker to set the PE header subsystem type
+-required for console applications.
+-This is the default behavior for Cygwin and MinGW targets.
+-
+-@item -mdll
+-@opindex mdll
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that a DLL - a dynamic link library - is to be
+-generated, enabling the selection of the required runtime
+-startup object and entry point.
+-
+-@item -mnop-fun-dllimport
+-@opindex mnop-fun-dllimport
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that the dllimport attribute should be ignored.
+-
+-@item -mthread
+-@opindex mthread
+-This option is available for MinGW targets. It specifies
+-that MinGW-specific thread support is to be used.
+-
+-@item -municode
+-@opindex municode
+-This option is available for mingw-w64 targets.  It specifies
+-that the UNICODE macro is getting pre-defined and that the
+-unicode capable runtime startup code is chosen.
+-
+-@item -mwin32
+-@opindex mwin32
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that the typical Windows pre-defined macros are to
+-be set in the pre-processor, but does not influence the choice
+-of runtime library/startup code.
+-
+-@item -mwindows
+-@opindex mwindows
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that a GUI application is to be generated by
+-instructing the linker to set the PE header subsystem type
+-appropriately.
+-
+-@item -fno-set-stack-executable
+-@opindex fno-set-stack-executable
+-This option is available for MinGW targets. It specifies that
+-the executable flag for stack used by nested functions isn't
+-set. This is necessary for binaries running in kernel mode of
+-Windows, as there the user32 API, which is used to set executable
+-privileges, isn't available.
+-
+-@item -mpe-aligned-commons
+-@opindex mpe-aligned-commons
+-This option is available for Cygwin and MinGW targets.  It
+-specifies that the GNU extension to the PE file format that
+-permits the correct alignment of COMMON variables should be
+-used when generating code.  It will be enabled by default if
+-GCC detects that the target assembler found during configuration
+-supports the feature.
+-@end table
+-
+-See also under @ref{i386 and x86-64 Options} for standard options.
+-
+ @node Xstormy16 Options
+ @subsection Xstormy16 Options
+ @cindex Xstormy16 Options
+diff -Naur gcc-4.6.0.orig/gcc/doc/passes.texi gcc-4.6.0/gcc/doc/passes.texi
+--- gcc-4.6.0.orig/gcc/doc/passes.texi	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/gcc/doc/passes.texi	2011-04-17 21:59:00.097691000 +0000
+@@ -1,4 +1,4 @@
+-@c markers: CROSSREF BUG TODO
++@c markers: BUG TODO
+ 
+ @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ @c 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@@ -32,7 +32,7 @@
+ The language front end is invoked only once, via
+ @code{lang_hooks.parse_file}, to parse the entire input.  The language
+ front end may use any intermediate language representation deemed
+-appropriate.  The C front end uses GENERIC trees (CROSSREF), plus
++appropriate.  The C front end uses GENERIC trees (@pxref{GENERIC}), plus
+ a double handful of language specific tree codes defined in
+ @file{c-common.def}.  The Fortran front end uses a completely different
+ private representation.
+@@ -46,10 +46,9 @@
+ At some point the front end must translate the representation used in the
+ front end to a representation understood by the language-independent
+ portions of the compiler.  Current practice takes one of two forms.
+-The C front end manually invokes the gimplifier (CROSSREF) on each function,
++The C front end manually invokes the gimplifier (@pxref{GIMPLE}) on each function,
+ and uses the gimplifier callbacks to convert the language-specific tree
+-nodes directly to GIMPLE (CROSSREF) before passing the function off to
+-be compiled.
++nodes directly to GIMPLE before passing the function off to be compiled.
+ The Fortran front end converts from a private representation to GENERIC,
+ which is later lowered to GIMPLE when the function is compiled.  Which
+ route to choose probably depends on how well GENERIC (plus extensions)
+@@ -111,11 +110,10 @@
+ @cindex GIMPLE
+ @dfn{Gimplification} is a whimsical term for the process of converting
+ the intermediate representation of a function into the GIMPLE language
+-(CROSSREF).  The term stuck, and so words like ``gimplification'',
++(@pxref{GIMPLE}).  The term stuck, and so words like ``gimplification'',
+ ``gimplify'', ``gimplifier'' and the like are sprinkled throughout this
+ section of code.
+ 
+-@cindex GENERIC
+ While a front end may certainly choose to generate GIMPLE directly if
+ it chooses, this can be a moderately complex process unless the
+ intermediate language used by the front end is already fairly simple.
+diff -Naur gcc-4.6.0.orig/gcc/dse.c gcc-4.6.0/gcc/dse.c
+--- gcc-4.6.0.orig/gcc/dse.c	2011-02-11 20:52:55.000000000 +0000
++++ gcc-4.6.0/gcc/dse.c	2011-03-26 09:20:34.263941000 +0000
+@@ -1,5 +1,5 @@
+ /* RTL dead store elimination.
+-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+ 
+    Contributed by Richard Sandiford <rsandifor@codesourcery.com>
+@@ -47,6 +47,7 @@
+ #include "optabs.h"
+ #include "dbgcnt.h"
+ #include "target.h"
++#include "params.h"
+ 
+ /* This file contains three techniques for performing Dead Store
+    Elimination (dse).
+@@ -387,6 +388,7 @@
+ /* The linked list of stores that are under consideration in this
+    basic block.  */
+ static insn_info_t active_local_stores;
++static int active_local_stores_len;
+ 
+ struct bb_info
+ {
+@@ -947,6 +949,7 @@
+     }
+   insn_info->wild_read = true;
+   active_local_stores = NULL;
++  active_local_stores_len = 0;
+ }
+ 
+ 
+@@ -1530,20 +1533,21 @@
+ 
+       /* An insn can be deleted if every position of every one of
+ 	 its s_infos is zero.  */
+-      if (any_positions_needed_p (s_info)
+-	  || ptr->cannot_delete)
++      if (any_positions_needed_p (s_info))
+ 	del = false;
+ 
+       if (del)
+ 	{
+ 	  insn_info_t insn_to_delete = ptr;
+ 
++	  active_local_stores_len--;
+ 	  if (last)
+ 	    last->next_local_store = ptr->next_local_store;
+ 	  else
+ 	    active_local_stores = ptr->next_local_store;
+ 
+-	  delete_dead_store_insn (insn_to_delete);
++	  if (!insn_to_delete->cannot_delete)
++	    delete_dead_store_insn (insn_to_delete);
+ 	}
+       else
+ 	last = ptr;
+@@ -2074,6 +2078,7 @@
+ 	      if (dump_file)
+ 		dump_insn_info ("removing from active", i_ptr);
+ 
++	      active_local_stores_len--;
+ 	      if (last)
+ 		last->next_local_store = i_ptr->next_local_store;
+ 	      else
+@@ -2163,6 +2168,7 @@
+ 	      if (dump_file)
+ 		dump_insn_info ("removing from active", i_ptr);
+ 
++	      active_local_stores_len--;
+ 	      if (last)
+ 		last->next_local_store = i_ptr->next_local_store;
+ 	      else
+@@ -2222,6 +2228,7 @@
+ 	      if (dump_file)
+ 		dump_insn_info ("removing from active", i_ptr);
+ 
++	      active_local_stores_len--;
+ 	      if (last)
+ 		last->next_local_store = i_ptr->next_local_store;
+ 	      else
+@@ -2426,6 +2433,7 @@
+ 		  if (dump_file)
+ 		    dump_insn_info ("removing from active", i_ptr);
+ 
++		  active_local_stores_len--;
+ 		  if (last)
+ 		    last->next_local_store = i_ptr->next_local_store;
+ 		  else
+@@ -2453,6 +2461,12 @@
+ 		    fprintf (dump_file, "handling memset as BLKmode store\n");
+ 		  if (mems_found == 1)
+ 		    {
++		      if (active_local_stores_len++
++			  >= PARAM_VALUE (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES))
++			{
++			  active_local_stores_len = 1;
++			  active_local_stores = NULL;
++			}
+ 		      insn_info->next_local_store = active_local_stores;
+ 		      active_local_stores = insn_info;
+ 		    }
+@@ -2496,6 +2510,12 @@
+      it as cannot delete.  This simplifies the processing later.  */
+   if (mems_found == 1)
+     {
++      if (active_local_stores_len++
++	  >= PARAM_VALUE (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES))
++	{
++	  active_local_stores_len = 1;
++	  active_local_stores = NULL;
++	}
+       insn_info->next_local_store = active_local_stores;
+       active_local_stores = insn_info;
+     }
+@@ -2534,6 +2554,7 @@
+ 
+       if (del)
+ 	{
++	  active_local_stores_len--;
+ 	  if (last)
+ 	    last->next_local_store = insn_info->next_local_store;
+ 	  else
+@@ -2584,6 +2605,7 @@
+ 	    = create_alloc_pool ("cse_store_info_pool",
+ 				 sizeof (struct store_info), 100);
+ 	  active_local_stores = NULL;
++	  active_local_stores_len = 0;
+ 	  cselib_clear_table ();
+ 
+ 	  /* Scan the insns.  */
+diff -Naur gcc-4.6.0.orig/gcc/dwarf2out.c gcc-4.6.0/gcc/dwarf2out.c
+--- gcc-4.6.0.orig/gcc/dwarf2out.c	2011-03-18 16:22:01.000000000 +0000
++++ gcc-4.6.0/gcc/dwarf2out.c	2011-04-18 17:37:55.217925000 +0000
+@@ -303,10 +303,8 @@
+   const char *dw_fde_end;
+   const char *dw_fde_vms_end_prologue;
+   const char *dw_fde_vms_begin_epilogue;
+-  const char *dw_fde_hot_section_label;
+-  const char *dw_fde_hot_section_end_label;
+-  const char *dw_fde_unlikely_section_label;
+-  const char *dw_fde_unlikely_section_end_label;
++  const char *dw_fde_second_begin;
++  const char *dw_fde_second_end;
+   dw_cfi_ref dw_fde_cfi;
+   dw_cfi_ref dw_fde_switch_cfi; /* Last CFI before switching sections.  */
+   HOST_WIDE_INT stack_realignment;
+@@ -325,13 +323,9 @@
+   unsigned drap_reg_saved: 1;
+   /* True iff dw_fde_begin label is in text_section or cold_text_section.  */
+   unsigned in_std_section : 1;
+-  /* True iff dw_fde_unlikely_section_label is in text_section or
++  /* True iff dw_fde_second_begin label is in text_section or
+      cold_text_section.  */
+-  unsigned cold_in_std_section : 1;
+-  /* True iff switched sections.  */
+-  unsigned dw_fde_switched_sections : 1;
+-  /* True iff switching from cold to hot section.  */
+-  unsigned dw_fde_switched_cold_to_hot : 1;
++  unsigned second_in_std_section : 1;
+ }
+ dw_fde_node;
+ 
+@@ -3625,28 +3619,8 @@
+     dw2_asm_output_offset (DWARF_OFFSET_SIZE, section_start_label,
+ 			   debug_frame_section, "FDE CIE offset");
+ 
+-  if (!fde->dw_fde_switched_sections)
+-    {
+-      begin = fde->dw_fde_begin;
+-      end = fde->dw_fde_end;
+-    }
+-  else
+-    {
+-      /* For the first section, prefer dw_fde_begin over
+-	 dw_fde_{hot,cold}_section_label, as the latter
+-	 might be separated from the real start of the
+-	 function by alignment padding.  */
+-      if (!second)
+-	begin = fde->dw_fde_begin;
+-      else if (fde->dw_fde_switched_cold_to_hot)
+-	begin = fde->dw_fde_hot_section_label;
+-      else
+-	begin = fde->dw_fde_unlikely_section_label;
+-      if (second ^ fde->dw_fde_switched_cold_to_hot)
+-	end = fde->dw_fde_unlikely_section_end_label;
+-      else
+-	end = fde->dw_fde_hot_section_end_label;
+-    }
++  begin = second ? fde->dw_fde_second_begin : fde->dw_fde_begin;
++  end = second ? fde->dw_fde_second_end : fde->dw_fde_end;
+ 
+   if (for_eh)
+     {
+@@ -3707,7 +3681,7 @@
+   /* Loop through the Call Frame Instructions associated with
+      this FDE.  */
+   fde->dw_fde_current_label = begin;
+-  if (!fde->dw_fde_switched_sections)
++  if (fde->dw_fde_second_begin == NULL)
+     for (cfi = fde->dw_fde_cfi; cfi != NULL; cfi = cfi->dw_cfi_next)
+       output_cfi (cfi, fde, for_eh);
+   else if (!second)
+@@ -3986,7 +3960,7 @@
+       if (for_eh && !fde_needed_for_eh_p (fde))
+ 	continue;
+ 
+-      for (k = 0; k < (fde->dw_fde_switched_sections ? 2 : 1); k++)
++      for (k = 0; k < (fde->dw_fde_second_begin ? 2 : 1); k++)
+ 	output_fde (fde, for_eh, k, section_start_label, fde_encoding,
+ 		    augmentation, any_lsda_needed, lsda_encoding);
+     }
+@@ -4104,14 +4078,10 @@
+   fde = &fde_table[fde_table_in_use++];
+   fde->decl = current_function_decl;
+   fde->dw_fde_begin = dup_label;
+-  fde->dw_fde_current_label = dup_label;
+-  fde->dw_fde_hot_section_label = NULL;
+-  fde->dw_fde_hot_section_end_label = NULL;
+-  fde->dw_fde_unlikely_section_label = NULL;
+-  fde->dw_fde_unlikely_section_end_label = NULL;
+-  fde->dw_fde_switched_sections = 0;
+-  fde->dw_fde_switched_cold_to_hot = 0;
+   fde->dw_fde_end = NULL;
++  fde->dw_fde_current_label = dup_label;
++  fde->dw_fde_second_begin = NULL;
++  fde->dw_fde_second_end = NULL;
+   fde->dw_fde_vms_end_prologue = NULL;
+   fde->dw_fde_vms_begin_epilogue = NULL;
+   fde->dw_fde_cfi = NULL;
+@@ -4122,27 +4092,9 @@
+   fde->nothrow = crtl->nothrow;
+   fde->drap_reg = INVALID_REGNUM;
+   fde->vdrap_reg = INVALID_REGNUM;
+-  if (flag_reorder_blocks_and_partition)
+-    {
+-      section *unlikelysec;
+-      if (first_function_block_is_cold)
+-	fde->in_std_section = 1;
+-      else
+-	fde->in_std_section
+-	  = (fnsec == text_section
+-	     || (cold_text_section && fnsec == cold_text_section));
+-      unlikelysec = unlikely_text_section ();
+-      fde->cold_in_std_section
+-	= (unlikelysec == text_section
+-	   || (cold_text_section && unlikelysec == cold_text_section));
+-    }
+-  else
+-    {
+-      fde->in_std_section
+-	= (fnsec == text_section
+-	   || (cold_text_section && fnsec == cold_text_section));
+-      fde->cold_in_std_section = 0;
+-    }
++  fde->in_std_section = (fnsec == text_section
++			 || (cold_text_section && fnsec == cold_text_section));
++  fde->second_in_std_section = 0;
+ 
+   args_size = old_args_size = 0;
+ 
+@@ -4238,7 +4190,8 @@
+   ASM_OUTPUT_LABEL (asm_out_file, label);
+   fde = current_fde ();
+   gcc_assert (fde != NULL);
+-  fde->dw_fde_end = xstrdup (label);
++  if (fde->dw_fde_second_begin == NULL)
++    fde->dw_fde_end = xstrdup (label);
+ }
+ 
+ void
+@@ -4285,20 +4238,29 @@
+     cold_text_section_used = true;
+ }
+ 
++static void var_location_switch_text_section (void);
++
+ void
+ dwarf2out_switch_text_section (void)
+ {
++  section *sect;
+   dw_fde_ref fde = current_fde ();
++  dw_cfi_ref cfi;
+ 
+-  gcc_assert (cfun && fde && !fde->dw_fde_switched_sections);
+-
+-  fde->dw_fde_switched_sections = 1;
+-  fde->dw_fde_switched_cold_to_hot = !in_cold_section_p;
++  gcc_assert (cfun && fde && fde->dw_fde_second_begin == NULL);
+ 
+-  fde->dw_fde_hot_section_label = crtl->subsections.hot_section_label;
+-  fde->dw_fde_hot_section_end_label = crtl->subsections.hot_section_end_label;
+-  fde->dw_fde_unlikely_section_label = crtl->subsections.cold_section_label;
+-  fde->dw_fde_unlikely_section_end_label = crtl->subsections.cold_section_end_label;
++  if (!in_cold_section_p)
++    {
++      fde->dw_fde_end = crtl->subsections.cold_section_end_label;
++      fde->dw_fde_second_begin = crtl->subsections.hot_section_label;
++      fde->dw_fde_second_end = crtl->subsections.hot_section_end_label;
++    }
++  else
++    {
++      fde->dw_fde_end = crtl->subsections.hot_section_end_label;
++      fde->dw_fde_second_begin = crtl->subsections.cold_section_label;
++      fde->dw_fde_second_end = crtl->subsections.cold_section_end_label;
++    }
+   have_multiple_function_sections = true;
+ 
+   /* Reset the current label on switching text sections, so that we
+@@ -4313,7 +4275,12 @@
+     fprintf (asm_out_file, "\t.cfi_endproc\n");
+ 
+   /* Now do the real section switch.  */
+-  switch_to_section (current_function_section ());
++  sect = current_function_section ();
++  switch_to_section (sect);
++
++  fde->second_in_std_section
++    = (sect == text_section
++       || (cold_text_section && sect == cold_text_section));
+ 
+   if (dwarf2out_do_cfi_asm ())
+     {
+@@ -4322,16 +4289,12 @@
+ 	 again.  */
+       output_cfis (fde->dw_fde_cfi, true, fde, true);
+     }
+-  else
+-    {
+-      dw_cfi_ref cfi = fde->dw_fde_cfi;
+-
+-      cfi = fde->dw_fde_cfi;
+-      if (cfi)
+-	while (cfi->dw_cfi_next != NULL)
+-	  cfi = cfi->dw_cfi_next;
+-      fde->dw_fde_switch_cfi = cfi;
+-    }
++  cfi = fde->dw_fde_cfi;
++  if (cfi)
++    while (cfi->dw_cfi_next != NULL)
++      cfi = cfi->dw_cfi_next;
++  fde->dw_fde_switch_cfi = cfi;
++  var_location_switch_text_section ();
+ }
+ 
+
+ /* And now, the subset of the debugging information support code necessary
+@@ -6110,6 +6073,11 @@
+      Do not mark it for GC because it is marked through the chain.  */
+   struct var_loc_node * GTY ((skip ("%h"))) last;
+ 
++  /* Pointer to the last element before section switch,
++     if NULL, either sections weren't switched or first
++     is after section switch.  */
++  struct var_loc_node * GTY ((skip ("%h"))) last_before_switch;
++
+   /* DECL_UID of the variable decl.  */
+   unsigned int decl_id;
+ };
+@@ -6177,19 +6145,6 @@
+    defines/undefines (and file start/end markers).  */
+ static GTY (()) VEC (macinfo_entry, gc) * macinfo_table;
+ 
+-/* Array of dies for which we should generate .debug_arange info.  */
+-static GTY((length ("arange_table_allocated"))) dw_die_ref *arange_table;
+-
+-/* Number of elements currently allocated for arange_table.  */
+-static GTY(()) unsigned arange_table_allocated;
+-
+-/* Number of elements in arange_table currently in use.  */
+-static GTY(()) unsigned arange_table_in_use;
+-
+-/* Size (in elements) of increments by which we may expand the
+-   arange_table.  */
+-#define ARANGE_TABLE_INCREMENT 64
+-
+ /* Array of dies for which we should generate .debug_ranges info.  */
+ static GTY ((length ("ranges_table_allocated"))) dw_ranges_ref ranges_table;
+ 
+@@ -6433,8 +6388,7 @@
+ static void add_pubname_string (const char *, dw_die_ref);
+ static void add_pubtype (tree, dw_die_ref);
+ static void output_pubnames (VEC (pubname_entry,gc) *);
+-static void add_arange (tree, dw_die_ref);
+-static void output_aranges (void);
++static void output_aranges (unsigned long);
+ static unsigned int add_ranges_num (int);
+ static unsigned int add_ranges (const_tree);
+ static void add_ranges_by_labels (dw_die_ref, const char *, const char *,
+@@ -6537,7 +6491,7 @@
+ static void gen_type_die (tree, dw_die_ref);
+ static void gen_block_die (tree, dw_die_ref, int);
+ static void decls_for_scope (tree, dw_die_ref, int);
+-static int is_redundant_typedef (const_tree);
++static inline int is_redundant_typedef (const_tree);
+ static bool is_naming_typedef_decl (const_tree);
+ static inline dw_die_ref get_context_die (tree);
+ static void gen_namespace_die (tree, dw_die_ref);
+@@ -10868,7 +10822,20 @@
+     size += 2 * DWARF2_ADDR_SIZE;
+   if (cold_text_section_used)
+     size += 2 * DWARF2_ADDR_SIZE;
+-  size += 2 * DWARF2_ADDR_SIZE * arange_table_in_use;
++  if (have_multiple_function_sections)
++    {
++      unsigned fde_idx = 0;
++
++      for (fde_idx = 0; fde_idx < fde_table_in_use; fde_idx++)
++	{
++	  dw_fde_ref fde = &fde_table[fde_idx];
++
++	  if (!fde->in_std_section)
++	    size += 2 * DWARF2_ADDR_SIZE;
++	  if (fde->dw_fde_second_begin && !fde->second_in_std_section)
++	    size += 2 * DWARF2_ADDR_SIZE;
++	}
++    }
+ 
+   /* Count the two zero words used to terminated the address range table.  */
+   size += 2 * DWARF2_ADDR_SIZE;
+@@ -11696,35 +11663,14 @@
+   dw2_asm_output_data (DWARF_OFFSET_SIZE, 0, NULL);
+ }
+ 
+-/* Add a new entry to .debug_aranges if appropriate.  */
+-
+-static void
+-add_arange (tree decl, dw_die_ref die)
+-{
+-  if (! DECL_SECTION_NAME (decl))
+-    return;
+-
+-  if (arange_table_in_use == arange_table_allocated)
+-    {
+-      arange_table_allocated += ARANGE_TABLE_INCREMENT;
+-      arange_table = GGC_RESIZEVEC (dw_die_ref, arange_table,
+-				    arange_table_allocated);
+-      memset (arange_table + arange_table_in_use, 0,
+-	      ARANGE_TABLE_INCREMENT * sizeof (dw_die_ref));
+-    }
+-
+-  arange_table[arange_table_in_use++] = die;
+-}
+-
+ /* Output the information that goes into the .debug_aranges table.
+    Namely, define the beginning and ending address range of the
+    text section generated for this compilation unit.  */
+ 
+ static void
+-output_aranges (void)
++output_aranges (unsigned long aranges_length)
+ {
+   unsigned i;
+-  unsigned long aranges_length = size_of_aranges ();
+ 
+   if (DWARF_INITIAL_LENGTH_SIZE - DWARF_OFFSET_SIZE == 4)
+     dw2_asm_output_data (4, 0xffffffff,
+@@ -11769,38 +11715,28 @@
+ 			    cold_text_section_label, "Length");
+     }
+ 
+-  for (i = 0; i < arange_table_in_use; i++)
++  if (have_multiple_function_sections)
+     {
+-      dw_die_ref die = arange_table[i];
+-
+-      /* We shouldn't see aranges for DIEs outside of the main CU.  */
+-      gcc_assert (die->die_mark);
++      unsigned fde_idx = 0;
+ 
+-      if (die->die_tag == DW_TAG_subprogram)
+-	{
+-	  dw2_asm_output_addr (DWARF2_ADDR_SIZE, get_AT_low_pc (die),
+-			       "Address");
+-	  dw2_asm_output_delta (DWARF2_ADDR_SIZE, get_AT_hi_pc (die),
+-				get_AT_low_pc (die), "Length");
+-	}
+-      else
++      for (fde_idx = 0; fde_idx < fde_table_in_use; fde_idx++)
+ 	{
+-	  /* A static variable; extract the symbol from DW_AT_location.
+-	     Note that this code isn't currently hit, as we only emit
+-	     aranges for functions (jason 9/23/99).  */
+-	  dw_attr_ref a = get_AT (die, DW_AT_location);
+-	  dw_loc_descr_ref loc;
+-
+-	  gcc_assert (a && AT_class (a) == dw_val_class_loc);
+-
+-	  loc = AT_loc (a);
+-	  gcc_assert (loc->dw_loc_opc == DW_OP_addr);
+-
+-	  dw2_asm_output_addr_rtx (DWARF2_ADDR_SIZE,
+-				   loc->dw_loc_oprnd1.v.val_addr, "Address");
+-	  dw2_asm_output_data (DWARF2_ADDR_SIZE,
+-			       get_AT_unsigned (die, DW_AT_byte_size),
+-			       "Length");
++	  dw_fde_ref fde = &fde_table[fde_idx];
++
++	  if (!fde->in_std_section)
++	    {
++	      dw2_asm_output_addr (DWARF2_ADDR_SIZE, fde->dw_fde_begin,
++				   "Address");
++	      dw2_asm_output_delta (DWARF2_ADDR_SIZE, fde->dw_fde_end,
++				    fde->dw_fde_begin, "Length");
++	    }
++	  if (fde->dw_fde_second_begin && !fde->second_in_std_section)
++	    {
++	      dw2_asm_output_addr (DWARF2_ADDR_SIZE, fde->dw_fde_second_begin,
++				   "Address");
++	      dw2_asm_output_delta (DWARF2_ADDR_SIZE, fde->dw_fde_second_end,
++				    fde->dw_fde_second_begin, "Length");
++	    }
+ 	}
+     }
+ 
+@@ -13609,7 +13545,7 @@
+ 	      int base_reg
+ 		= DWARF_FRAME_REGNUM ((fde && fde->drap_reg != INVALID_REGNUM)
+ 				      ? HARD_FRAME_POINTER_REGNUM
+-				      : STACK_POINTER_REGNUM);
++				      : REGNO (elim));
+ 	      return new_reg_loc_descr (base_reg, offset);
+ 	    }
+ 
+@@ -15210,9 +15146,23 @@
+ 	  }
+ 	if (descr)
+ 	  {
++	    bool range_across_switch = false;
++	    /* If section switch happens in between node->label
++	       and node->next->label (or end of function) and
++	       we can't emit it as a single entry list,
++	       emit two ranges, first one ending at the end
++	       of first partition and second one starting at the
++	       beginning of second partition.  */
++	    if (node == loc_list->last_before_switch
++		&& (node != loc_list->first || loc_list->first->next)
++		&& current_function_decl)
++	      {
++		endname = current_fde ()->dw_fde_end;
++		range_across_switch = true;
++	      }
+ 	    /* The variable has a location between NODE->LABEL and
+ 	       NODE->NEXT->LABEL.  */
+-	    if (node->next)
++	    else if (node->next)
+ 	      endname = node->next->label;
+ 	    /* If the variable has a location at the last label
+ 	       it keeps its location until the end of function.  */
+@@ -15227,6 +15177,30 @@
+ 
+ 	    *listp = new_loc_list (descr, node->label, endname, secname);
+ 	    listp = &(*listp)->dw_loc_next;
++
++	    if (range_across_switch)
++	      {
++		if (GET_CODE (node->loc) == EXPR_LIST)
++		  descr = dw_sra_loc_expr (decl, node->loc);
++		else
++		  {
++		    initialized = NOTE_VAR_LOCATION_STATUS (node->loc);
++		    varloc = NOTE_VAR_LOCATION (node->loc);
++		    descr = dw_loc_list_1 (decl, varloc, want_address,
++					   initialized);
++		  }
++		gcc_assert (descr);
++		/* The variable has a location between NODE->LABEL and
++		   NODE->NEXT->LABEL.  */
++		if (node->next)
++		  endname = node->next->label;
++		else
++		  endname = current_fde ()->dw_fde_second_end;
++		*listp = new_loc_list (descr,
++				       current_fde ()->dw_fde_second_begin,
++				       endname, secname);
++		listp = &(*listp)->dw_loc_next;
++	      }
+ 	  }
+       }
+ 
+@@ -17305,33 +17279,61 @@
+   last_cfa = next_cfa;
+   last_label = start_label;
+ 
++  if (fde->dw_fde_second_begin && fde->dw_fde_switch_cfi == NULL)
++    {
++      /* If the first partition contained no CFI adjustments, the
++	 CIE opcodes apply to the whole first partition.  */
++      *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
++				 fde->dw_fde_begin, fde->dw_fde_end, section);
++      list_tail =&(*list_tail)->dw_loc_next;
++      start_label = last_label = fde->dw_fde_second_begin;
++    }
++
+   for (cfi = fde->dw_fde_cfi; cfi; cfi = cfi->dw_cfi_next)
+-    switch (cfi->dw_cfi_opc)
+-      {
+-      case DW_CFA_set_loc:
+-      case DW_CFA_advance_loc1:
+-      case DW_CFA_advance_loc2:
+-      case DW_CFA_advance_loc4:
+-	if (!cfa_equal_p (&last_cfa, &next_cfa))
+-	  {
+-	    *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
+-				       start_label, last_label, section);
++    {
++      switch (cfi->dw_cfi_opc)
++	{
++	case DW_CFA_set_loc:
++	case DW_CFA_advance_loc1:
++	case DW_CFA_advance_loc2:
++	case DW_CFA_advance_loc4:
++	  if (!cfa_equal_p (&last_cfa, &next_cfa))
++	    {
++	      *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
++					 start_label, last_label, section);
+ 
+-	    list_tail = &(*list_tail)->dw_loc_next;
+-	    last_cfa = next_cfa;
+-	    start_label = last_label;
+-	  }
+-	last_label = cfi->dw_cfi_oprnd1.dw_cfi_addr;
+-	break;
++	      list_tail = &(*list_tail)->dw_loc_next;
++	      last_cfa = next_cfa;
++	      start_label = last_label;
++	    }
++	  last_label = cfi->dw_cfi_oprnd1.dw_cfi_addr;
++	  break;
+ 
+-      case DW_CFA_advance_loc:
+-	/* The encoding is complex enough that we should never emit this.  */
+-	gcc_unreachable ();
++	case DW_CFA_advance_loc:
++	  /* The encoding is complex enough that we should never emit this.  */
++	  gcc_unreachable ();
+ 
+-      default:
+-	lookup_cfa_1 (cfi, &next_cfa, &remember);
+-	break;
+-      }
++	default:
++	  lookup_cfa_1 (cfi, &next_cfa, &remember);
++	  break;
++	}
++      if (cfi == fde->dw_fde_switch_cfi)
++	{
++	  if (!cfa_equal_p (&last_cfa, &next_cfa))
++	    {
++	      *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
++					 start_label, last_label, section);
++
++	      list_tail = &(*list_tail)->dw_loc_next;
++	      last_cfa = next_cfa;
++	      start_label = last_label;
++	    }
++	  *list_tail = new_loc_list (build_cfa_loc (&last_cfa, offset),
++				     start_label, fde->dw_fde_end, section);
++	  list_tail = &(*list_tail)->dw_loc_next;
++	  start_label = last_label = fde->dw_fde_second_begin;
++	}
++    }
+ 
+   if (!cfa_equal_p (&last_cfa, &next_cfa))
+     {
+@@ -17342,7 +17344,10 @@
+     }
+ 
+   *list_tail = new_loc_list (build_cfa_loc (&next_cfa, offset),
+-			     start_label, fde->dw_fde_end, section);
++			     start_label,
++			     fde->dw_fde_second_begin
++			     ? fde->dw_fde_second_end : fde->dw_fde_end,
++			     section);
+ 
+   if (list && list->dw_loc_next)
+     gen_llsym (list);
+@@ -19213,14 +19218,13 @@
+ #endif
+ 
+ 	  add_pubname (decl, subr_die);
+-	  add_arange (decl, subr_die);
+ 	}
+       else
+ 	{  /* Generate pubnames entries for the split function code
+ 	      ranges.  */
+ 	  dw_fde_ref fde = &fde_table[current_funcdef_fde];
+ 
+-	  if (fde->dw_fde_switched_sections)
++	  if (fde->dw_fde_second_begin)
+ 	    {
+ 	      if (dwarf_version >= 3 || !dwarf_strict)
+ 		{
+@@ -19229,28 +19233,11 @@
+ 		     section, since the HOT/COLD labels might precede an 
+ 		     alignment offset.  */
+ 		  bool range_list_added = false;
+-		  if (fde->in_std_section)
+-		    {
+-		      add_ranges_by_labels (subr_die,
+-					    fde->dw_fde_begin,
+-					    fde->dw_fde_end,
+-					    &range_list_added);
+-		      add_ranges_by_labels (subr_die,
+-					    fde->dw_fde_unlikely_section_label,
+-					    fde->dw_fde_unlikely_section_end_label,
+-					    &range_list_added);
+-		    }
+-		  else
+-		    {
+-		      add_ranges_by_labels (subr_die,
+-					    fde->dw_fde_begin,
+-					    fde->dw_fde_end,
+-					    &range_list_added);
+-		      add_ranges_by_labels (subr_die,
+-					    fde->dw_fde_hot_section_label,
+-					    fde->dw_fde_hot_section_end_label,
+-					    &range_list_added);
+-		    }
++		  add_ranges_by_labels (subr_die, fde->dw_fde_begin,
++					fde->dw_fde_end, &range_list_added);
++		  add_ranges_by_labels (subr_die, fde->dw_fde_second_begin,
++					fde->dw_fde_second_end,
++					&range_list_added);
+ 		  add_pubname (decl, subr_die);
+ 		  if (range_list_added)
+ 		    add_ranges (NULL);
+@@ -19275,7 +19262,6 @@
+ 				 fde->dw_fde_end);
+ 		  /* Add it.   */
+ 		  add_pubname (decl, subr_die);
+-		  add_arange (decl, subr_die);
+ 
+ 		  /* Build a minimal DIE for the secondary section.  */
+ 		  seg_die = new_die (DW_TAG_subprogram,
+@@ -19293,30 +19279,18 @@
+ 
+ 		      add_linkage_name (seg_die, decl);
+ 		    }
+-		  gcc_assert (name!=NULL);
++		  gcc_assert (name != NULL);
+ 		  add_pure_or_virtual_attribute (seg_die, decl);
+ 		  if (DECL_ARTIFICIAL (decl))
+ 		    add_AT_flag (seg_die, DW_AT_artificial, 1);
+ 
+-		  if (fde->in_std_section)
+-		    {
+-		      name = concat ("__cold_sect_of_", name, NULL); 
+-		      add_AT_lbl_id (seg_die, DW_AT_low_pc,
+-				     fde->dw_fde_unlikely_section_label);
+-		      add_AT_lbl_id (seg_die, DW_AT_high_pc,
+-				     fde->dw_fde_unlikely_section_end_label); 
+-		    }
+-		  else 
+-		    {
+-		      name = concat ("__hot_sect_of_", name, NULL); 
+-		      add_AT_lbl_id (seg_die, DW_AT_low_pc,
+-				     fde->dw_fde_hot_section_label);
+-		      add_AT_lbl_id (seg_die, DW_AT_high_pc,
+-				     fde->dw_fde_hot_section_end_label); 
+-		    }
++		  name = concat ("__second_sect_of_", name, NULL); 
++		  add_AT_lbl_id (seg_die, DW_AT_low_pc,
++				 fde->dw_fde_second_begin);
++		  add_AT_lbl_id (seg_die, DW_AT_high_pc,
++				 fde->dw_fde_second_end);
+ 		  add_name_attribute (seg_die, name);
+ 		  add_pubname_string (name, seg_die);
+-		  add_arange (decl, seg_die);
+ 		}
+ 	    }
+ 	  else
+@@ -19324,7 +19298,6 @@
+ 	      add_AT_lbl_id (subr_die, DW_AT_low_pc, fde->dw_fde_begin);
+ 	      add_AT_lbl_id (subr_die, DW_AT_high_pc, fde->dw_fde_end);
+ 	      add_pubname (decl, subr_die);
+-	      add_arange (decl, subr_die);
+ 	    }
+ 	}
+ 
+@@ -21975,6 +21948,29 @@
+   last_in_cold_section_p = in_cold_section_p;
+ }
+ 
++/* Note in one location list that text section has changed.  */
++
++static int
++var_location_switch_text_section_1 (void **slot, void *data ATTRIBUTE_UNUSED)
++{
++  var_loc_list *list = (var_loc_list *) *slot;
++  if (list->first)
++    list->last_before_switch
++      = list->last->next ? list->last->next : list->last;
++  return 1;
++}
++
++/* Note in all location lists that text section has changed.  */
++
++static void
++var_location_switch_text_section (void)
++{
++  if (decl_loc_table == NULL)
++    return;
++
++  htab_traverse (decl_loc_table, var_location_switch_text_section_1, NULL);
++}
++
+ /* We need to reset the locations at the beginning of each
+    function. We can't do this in the end_function hook, because the
+    declarations that use the locations won't have been output when
+@@ -21985,7 +21981,7 @@
+ {
+   if (function_section (fun) != text_section)
+     have_multiple_function_sections = true;
+-  else if (flag_reorder_blocks_and_partition && !cold_text_section)
++  if (flag_reorder_blocks_and_partition && !cold_text_section)
+     {
+       gcc_assert (current_function_decl == fun);
+       cold_text_section = unlikely_text_section ();
+@@ -22702,11 +22698,9 @@
+     }
+ 
+   /* Also set the mark on nodes referenced from the
+-     pubname_table or arange_table.  */
++     pubname_table.  */
+   FOR_EACH_VEC_ELT (pubname_entry, pubname_table, i, pub)
+     prune_unused_types_mark (pub->die, 1);
+-  for (i = 0; i < arange_table_in_use; i++)
+-    prune_unused_types_mark (arange_table[i], 1);
+ 
+   /* Mark nodes referenced from the direct call table.  */
+   FOR_EACH_VEC_ELT (dcall_entry, dcall_table, i, dcall)
+@@ -23479,7 +23473,7 @@
+       if (text_section_used)
+ 	add_ranges_by_labels (comp_unit_die (), text_section_label,
+ 			      text_end_label, &range_list_added);
+-      if (flag_reorder_blocks_and_partition && cold_text_section_used)
++      if (cold_text_section_used)
+ 	add_ranges_by_labels (comp_unit_die (), cold_text_section_label,
+ 			      cold_end_label, &range_list_added);
+ 
+@@ -23487,22 +23481,12 @@
+ 	{
+ 	  dw_fde_ref fde = &fde_table[fde_idx];
+ 
+-	  if (fde->dw_fde_switched_sections)
+-	    {
+-	      if (!fde->in_std_section)
+-		add_ranges_by_labels (comp_unit_die (),
+-				      fde->dw_fde_hot_section_label,
+-				      fde->dw_fde_hot_section_end_label,
+-				      &range_list_added);
+-	      if (!fde->cold_in_std_section)
+-		add_ranges_by_labels (comp_unit_die (),
+-				      fde->dw_fde_unlikely_section_label,
+-				      fde->dw_fde_unlikely_section_end_label,
+-				      &range_list_added);
+-	    }
+-	  else if (!fde->in_std_section)
++	  if (!fde->in_std_section)
+ 	    add_ranges_by_labels (comp_unit_die (), fde->dw_fde_begin,
+ 				  fde->dw_fde_end, &range_list_added);
++	  if (fde->dw_fde_second_begin && !fde->second_in_std_section)
++	    add_ranges_by_labels (comp_unit_die (), fde->dw_fde_second_begin,
++				  fde->dw_fde_second_end, &range_list_added);
+ 	}
+ 
+       if (range_list_added)
+@@ -23614,13 +23598,21 @@
+       output_vcall_table ();
+     }
+ 
+-  /* Output the address range information.  We only put functions in the arange
+-     table, so don't write it out if we don't have any.  */
+-  if ((text_section_used || cold_text_section_used || arange_table_in_use)
+-      && info_section_emitted)
+-    {
+-      switch_to_section (debug_aranges_section);
+-      output_aranges ();
++  /* Output the address range information.  We only put functions in the
++     arange table, so don't write it out if we don't have any.  */
++  if (info_section_emitted)
++    {
++      unsigned long aranges_length = size_of_aranges ();
++
++      /* Empty .debug_aranges would contain just header and
++	 terminating 0,0.  */
++      if (aranges_length
++	  != (unsigned long) (DWARF_ARANGES_HEADER_SIZE
++			      + 2 * DWARF2_ADDR_SIZE))
++	{
++	  switch_to_section (debug_aranges_section);
++	  output_aranges (aranges_length);
++	}
+     }
+ 
+   /* Output ranges section if necessary.  */
+diff -Naur gcc-4.6.0.orig/gcc/expmed.c gcc-4.6.0/gcc/expmed.c
+--- gcc-4.6.0.orig/gcc/expmed.c	2011-03-04 10:31:33.000000000 +0000
++++ gcc-4.6.0/gcc/expmed.c	2011-04-06 20:39:20.887184000 +0000
+@@ -457,8 +457,10 @@
+       && bitsize == GET_MODE_BITSIZE (fieldmode)
+       && (!MEM_P (op0)
+ 	  ? ((GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD
+-	     || GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode))
+-	     && byte_offset % GET_MODE_SIZE (fieldmode) == 0)
++	      || GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode))
++	     && ((GET_MODE (op0) == fieldmode && byte_offset == 0)
++		 || validate_subreg (fieldmode, GET_MODE (op0), op0,
++				     byte_offset)))
+ 	  : (! SLOW_UNALIGNED_ACCESS (fieldmode, MEM_ALIGN (op0))
+ 	     || (offset * BITS_PER_UNIT % bitsize == 0
+ 		 && MEM_ALIGN (op0) % GET_MODE_BITSIZE (fieldmode) == 0))))
+@@ -519,6 +521,7 @@
+       rtx insn;
+       rtx start = get_last_insn ();
+       rtx arg0 = op0;
++      unsigned HOST_WIDE_INT subreg_off;
+ 
+       /* Get appropriate low part of the value being stored.  */
+       if (CONST_INT_P (value) || REG_P (value))
+@@ -542,15 +545,17 @@
+ 	  arg0 = SUBREG_REG (op0);
+ 	}
+ 
+-      insn = (GEN_FCN (icode)
+-		 (gen_rtx_SUBREG (fieldmode, arg0,
+-				  (bitnum % BITS_PER_WORD) / BITS_PER_UNIT
+-				  + (offset * UNITS_PER_WORD)),
+-				  value));
+-      if (insn)
+-	{
+-	  emit_insn (insn);
+-	  return true;
++      subreg_off = (bitnum % BITS_PER_WORD) / BITS_PER_UNIT
++		   + (offset * UNITS_PER_WORD);
++      if (validate_subreg (fieldmode, GET_MODE (arg0), arg0, subreg_off))
++	{
++	  insn = (GEN_FCN (icode) (gen_rtx_SUBREG (fieldmode, arg0,
++						   subreg_off), value));
++	  if (insn)
++	    {
++	      emit_insn (insn);
++	      return true;
++	    }
+ 	}
+       delete_insns_since (start);
+     }
+@@ -1106,22 +1111,32 @@
+       if (GET_CODE (op0) == SUBREG)
+ 	{
+ 	  int word_offset = (SUBREG_BYTE (op0) / UNITS_PER_WORD) + offset;
+-	  word = operand_subword_force (SUBREG_REG (op0), word_offset,
+-					GET_MODE (SUBREG_REG (op0)));
++	  enum machine_mode sub_mode = GET_MODE (SUBREG_REG (op0));
++	  if (sub_mode != BLKmode && GET_MODE_SIZE (sub_mode) < UNITS_PER_WORD)
++	    word = word_offset ? const0_rtx : op0;
++	  else
++	    word = operand_subword_force (SUBREG_REG (op0), word_offset,
++					  GET_MODE (SUBREG_REG (op0)));
+ 	  offset = 0;
+ 	}
+       else if (REG_P (op0))
+ 	{
+-	  word = operand_subword_force (op0, offset, GET_MODE (op0));
++	  enum machine_mode op0_mode = GET_MODE (op0);
++	  if (op0_mode != BLKmode && GET_MODE_SIZE (op0_mode) < UNITS_PER_WORD)
++	    word = offset ? const0_rtx : op0;
++	  else
++	    word = operand_subword_force (op0, offset, GET_MODE (op0));
+ 	  offset = 0;
+ 	}
+       else
+ 	word = op0;
+ 
+       /* OFFSET is in UNITs, and UNIT is in bits.
+-         store_fixed_bit_field wants offset in bytes.  */
+-      store_fixed_bit_field (word, offset * unit / BITS_PER_UNIT, thissize,
+-			     thispos, part);
++	 store_fixed_bit_field wants offset in bytes.  If WORD is const0_rtx,
++	 it is just an out-of-bounds access.  Ignore it.  */
++      if (word != const0_rtx)
++	store_fixed_bit_field (word, offset * unit / BITS_PER_UNIT, thissize,
++			       thispos, part);
+       bitsdone += thissize;
+     }
+ }
+diff -Naur gcc-4.6.0.orig/gcc/expr.c gcc-4.6.0/gcc/expr.c
+--- gcc-4.6.0.orig/gcc/expr.c	2011-03-18 09:04:31.000000000 +0000
++++ gcc-4.6.0/gcc/expr.c	2011-04-06 20:39:20.887184000 +0000
+@@ -4292,16 +4292,47 @@
+       /* Handle expand_expr of a complex value returning a CONCAT.  */
+       else if (GET_CODE (to_rtx) == CONCAT)
+ 	{
+-	  if (COMPLEX_MODE_P (TYPE_MODE (TREE_TYPE (from))))
++	  unsigned short mode_bitsize = GET_MODE_BITSIZE (GET_MODE (to_rtx));
++	  if (COMPLEX_MODE_P (TYPE_MODE (TREE_TYPE (from)))
++	      && bitpos == 0
++	      && bitsize == mode_bitsize)
++	    result = store_expr (from, to_rtx, false, nontemporal);
++	  else if (bitsize == mode_bitsize / 2
++		   && (bitpos == 0 || bitpos == mode_bitsize / 2))
++	    result = store_expr (from, XEXP (to_rtx, bitpos != 0), false,
++				 nontemporal);
++	  else if (bitpos + bitsize <= mode_bitsize / 2)
++	    result = store_field (XEXP (to_rtx, 0), bitsize, bitpos,
++				  mode1, from, TREE_TYPE (tem),
++				  get_alias_set (to), nontemporal);
++	  else if (bitpos >= mode_bitsize / 2)
++	    result = store_field (XEXP (to_rtx, 1), bitsize,
++				  bitpos - mode_bitsize / 2, mode1, from,
++				  TREE_TYPE (tem), get_alias_set (to),
++				  nontemporal);
++	  else if (bitpos == 0 && bitsize == mode_bitsize)
+ 	    {
+-	      gcc_assert (bitpos == 0);
+-	      result = store_expr (from, to_rtx, false, nontemporal);
++	      rtx from_rtx;
++	      result = expand_normal (from);
++	      from_rtx = simplify_gen_subreg (GET_MODE (to_rtx), result,
++					      TYPE_MODE (TREE_TYPE (from)), 0);
++	      emit_move_insn (XEXP (to_rtx, 0),
++			      read_complex_part (from_rtx, false));
++	      emit_move_insn (XEXP (to_rtx, 1),
++			      read_complex_part (from_rtx, true));
+ 	    }
+ 	  else
+ 	    {
+-	      gcc_assert (bitpos == 0 || bitpos == GET_MODE_BITSIZE (mode1));
+-	      result = store_expr (from, XEXP (to_rtx, bitpos != 0), false,
+-				   nontemporal);
++	      rtx temp = assign_stack_temp (GET_MODE (to_rtx),
++					    GET_MODE_SIZE (GET_MODE (to_rtx)),
++					    0);
++	      write_complex_part (temp, XEXP (to_rtx, 0), false);
++	      write_complex_part (temp, XEXP (to_rtx, 1), true);
++	      result = store_field (temp, bitsize, bitpos, mode1, from,
++				    TREE_TYPE (tem), get_alias_set (to),
++				    nontemporal);
++	      emit_move_insn (XEXP (to_rtx, 0), read_complex_part (temp, false));
++	      emit_move_insn (XEXP (to_rtx, 1), read_complex_part (temp, true));
+ 	    }
+ 	}
+       else
+diff -Naur gcc-4.6.0.orig/gcc/final.c gcc-4.6.0/gcc/final.c
+--- gcc-4.6.0.orig/gcc/final.c	2011-02-28 18:23:25.000000000 +0000
++++ gcc-4.6.0/gcc/final.c	2011-04-28 17:01:55.275457000 +0000
+@@ -2238,6 +2238,11 @@
+ 	    location_t loc;
+ 	    expanded_location expanded;
+ 
++	    /* Make sure we flush any queued register saves in case this
++	       clobbers affected registers.  */
++	    if (dwarf2out_do_frame ())
++	      dwarf2out_frame_debug (insn, false);
++
+ 	    /* There's no telling what that did to the condition codes.  */
+ 	    CC_STATUS_INIT;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/fold-const.c gcc-4.6.0/gcc/fold-const.c
+--- gcc-4.6.0.orig/gcc/fold-const.c	2011-03-08 10:43:10.000000000 +0000
++++ gcc-4.6.0/gcc/fold-const.c	2011-04-23 10:18:54.464278000 +0000
+@@ -2020,8 +2020,6 @@
+ 
+     case VOID_TYPE:
+       tem = fold_ignored_result (arg);
+-      if (TREE_CODE (tem) == MODIFY_EXPR)
+-	goto fold_convert_exit;
+       return fold_build1_loc (loc, NOP_EXPR, type, tem);
+ 
+     default:
+@@ -15554,12 +15552,17 @@
+ 	}
+       /* *(foo *)&fooarray => fooarray[0] */
+       else if (TREE_CODE (optype) == ARRAY_TYPE
+-	       && type == TREE_TYPE (optype))
++	       && type == TREE_TYPE (optype)
++	       && (!in_gimple_form
++		   || TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST))
+ 	{
+ 	  tree type_domain = TYPE_DOMAIN (optype);
+ 	  tree min_val = size_zero_node;
+ 	  if (type_domain && TYPE_MIN_VALUE (type_domain))
+ 	    min_val = TYPE_MIN_VALUE (type_domain);
++	  if (in_gimple_form
++	      && TREE_CODE (min_val) != INTEGER_CST)
++	    return NULL_TREE;
+ 	  return build4_loc (loc, ARRAY_REF, type, op, min_val,
+ 			     NULL_TREE, NULL_TREE);
+ 	}
+@@ -15633,7 +15636,9 @@
+ 
+   /* *(foo *)fooarrptr => (*fooarrptr)[0] */
+   if (TREE_CODE (TREE_TYPE (subtype)) == ARRAY_TYPE
+-      && type == TREE_TYPE (TREE_TYPE (subtype)))
++      && type == TREE_TYPE (TREE_TYPE (subtype))
++      && (!in_gimple_form
++	  || TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST))
+     {
+       tree type_domain;
+       tree min_val = size_zero_node;
+@@ -15641,6 +15646,9 @@
+       type_domain = TYPE_DOMAIN (TREE_TYPE (sub));
+       if (type_domain && TYPE_MIN_VALUE (type_domain))
+ 	min_val = TYPE_MIN_VALUE (type_domain);
++      if (in_gimple_form
++	  && TREE_CODE (min_val) != INTEGER_CST)
++	return NULL_TREE;
+       return build4_loc (loc, ARRAY_REF, type, sub, min_val, NULL_TREE,
+ 			 NULL_TREE);
+     }
+diff -Naur gcc-4.6.0.orig/gcc/fortran/class.c gcc-4.6.0/gcc/fortran/class.c
+--- gcc-4.6.0.orig/gcc/fortran/class.c	2011-02-16 20:51:56.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/class.c	2011-04-04 18:53:34.102550000 +0000
+@@ -137,9 +137,9 @@
+ {
+   char tmp[2*GFC_MAX_SYMBOL_LEN+2];
+   get_unique_type_string (&tmp[0], derived);
+-  /* If string is too long, use hash value in hex representation
+-     (allow for extra decoration, cf. gfc_build_class_symbol)*/
+-  if (strlen (tmp) > GFC_MAX_SYMBOL_LEN - 10)
++  /* If string is too long, use hash value in hex representation (allow for
++     extra decoration, cf. gfc_build_class_symbol & gfc_find_derived_vtab).  */
++  if (strlen (tmp) > GFC_MAX_SYMBOL_LEN - 11)
+     {
+       int h = gfc_hash_value (derived);
+       sprintf (string, "%X", h);
+diff -Naur gcc-4.6.0.orig/gcc/fortran/expr.c gcc-4.6.0/gcc/fortran/expr.c
+--- gcc-4.6.0.orig/gcc/fortran/expr.c	2011-03-06 20:15:38.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/expr.c	2011-05-11 20:31:14.899018000 +0000
+@@ -894,6 +894,9 @@
+     case EXPR_FUNCTION:
+     case EXPR_PPC:
+     case EXPR_COMPCALL:
++      gcc_assert (e->symtree || e->value.function.esym
++		  || e->value.function.isym);
++
+       /* Call to intrinsic with at least one argument.  */
+       if (e->value.function.isym && e->value.function.actual)
+ 	{
+@@ -902,13 +905,14 @@
+ 	      return 0;
+ 	}
+ 
+-      /* Make sure we have a symbol.  */
+-      gcc_assert (e->symtree);
+-
+-      sym = e->symtree->n.sym;
+-    
+       /* Specification functions are constant.  */
+       /* F95, 7.1.6.2; F2003, 7.1.7  */
++      sym = NULL;
++      if (e->symtree)
++	sym = e->symtree->n.sym;
++      if (e->value.function.esym)
++	sym = e->value.function.esym;
++
+       if (sym
+ 	  && sym->attr.function
+ 	  && sym->attr.pure
+@@ -4367,15 +4371,26 @@
+ gfc_try
+ gfc_check_vardef_context (gfc_expr* e, bool pointer, const char* context)
+ {
+-  gfc_symbol* sym;
++  gfc_symbol* sym = NULL;
+   bool is_pointer;
+   bool check_intentin;
+   bool ptr_component;
+   symbol_attribute attr;
+   gfc_ref* ref;
+ 
++  if (e->expr_type == EXPR_VARIABLE)
++    {
++      gcc_assert (e->symtree);
++      sym = e->symtree->n.sym;
++    }
++  else if (e->expr_type == EXPR_FUNCTION)
++    {
++      gcc_assert (e->symtree);
++      sym = e->value.function.esym ? e->value.function.esym : e->symtree->n.sym;
++    }
++
+   if (!pointer && e->expr_type == EXPR_FUNCTION
+-      && e->symtree->n.sym->result->attr.pointer)
++      && sym->result->attr.pointer)
+     {
+       if (!(gfc_option.allow_std & GFC_STD_F2008))
+ 	{
+@@ -4393,9 +4408,6 @@
+       return FAILURE;
+     }
+ 
+-  gcc_assert (e->symtree);
+-  sym = e->symtree->n.sym;
+-
+   if (!pointer && sym->attr.flavor == FL_PARAMETER)
+     {
+       if (context)
+diff -Naur gcc-4.6.0.orig/gcc/fortran/f95-lang.c gcc-4.6.0/gcc/fortran/f95-lang.c
+--- gcc-4.6.0.orig/gcc/fortran/f95-lang.c	2011-02-24 09:53:26.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/f95-lang.c	2011-04-05 08:13:16.302981000 +0000
+@@ -695,10 +695,9 @@
+                                         type, integer_type_node, NULL_TREE);
+   /* type (*) (void) */
+   fntype[3] = build_function_type_list (type, NULL_TREE);
+-  /* type (*) (&int, type) */
+-  fntype[4] = build_function_type_list (type,
++  /* type (*) (type, &int) */
++  fntype[4] = build_function_type_list (type, type,
+                                         build_pointer_type (integer_type_node),
+-                                        type,
+                                         NULL_TREE);
+   /* type (*) (int, type) */
+   fntype[5] = build_function_type_list (type,
+diff -Naur gcc-4.6.0.orig/gcc/fortran/gfortran.h gcc-4.6.0/gcc/fortran/gfortran.h
+--- gcc-4.6.0.orig/gcc/fortran/gfortran.h	2011-02-18 19:52:16.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/gfortran.h	2011-05-04 19:18:01.936955000 +0000
+@@ -2190,6 +2190,7 @@
+   int warn_character_truncation;
+   int warn_array_temp;
+   int warn_align_commons;
++  int warn_real_q_constant;
+   int warn_unused_dummy_argument;
+   int max_errors;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/fortran/gfortran.texi gcc-4.6.0/gcc/fortran/gfortran.texi
+--- gcc-4.6.0.orig/gcc/fortran/gfortran.texi	2011-02-07 19:19:51.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/gfortran.texi	2011-05-04 19:18:01.936955000 +0000
+@@ -1237,6 +1237,7 @@
+ * Missing period in FORMAT specifications::
+ * I/O item lists::
+ * BOZ literal constants::
++* @code{Q} exponent-letter::
+ * Real array indices::
+ * Unary operators::
+ * Implicitly convert LOGICAL and INTEGER values::
+@@ -1427,6 +1428,18 @@
+ of the @code{READ} statement, and the output item lists of the
+ @code{WRITE} and @code{PRINT} statements, to start with a comma.
+ 
++@node @code{Q} exponent-letter
++@subsection @code{Q} exponent-letter
++@cindex @code{Q} exponent-letter
++
++GNU Fortran accepts real literal constants with an exponent-letter
++of @code{Q}, for example, @code{1.23Q45}.  The constant is interpreted
++as a @code{REAL(16)} entity on targets that suppports this type.  If
++the target does not support @code{REAL(16)} but has a @code{REAL(10)}
++type, then the real-literal-constant will be interpreted as a
++@code{REAL(10)} entity.  In the absence of @code{REAL(16)} and
++@code{REAL(10)}, an error will occur.
++
+ @node BOZ literal constants
+ @subsection BOZ literal constants
+ @cindex BOZ literal constants
+diff -Naur gcc-4.6.0.orig/gcc/fortran/interface.c gcc-4.6.0/gcc/fortran/interface.c
+--- gcc-4.6.0.orig/gcc/fortran/interface.c	2011-02-16 20:51:56.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/interface.c	2011-04-28 18:47:28.286450000 +0000
+@@ -1128,6 +1128,12 @@
+ 		     " or all FUNCTIONs", interface_name, &p->sym->declared_at);
+ 	  return 1;
+ 	}
++
++      if (p->sym->attr.proc == PROC_INTERNAL
++	  && gfc_notify_std (GFC_STD_GNU, "Extension: Internal procedure '%s' "
++			     "in %s at %L", p->sym->name, interface_name,
++			     &p->sym->declared_at) == FAILURE)
++	return 1;
+     }
+   p = psave;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/fortran/invoke.texi gcc-4.6.0/gcc/fortran/invoke.texi
+--- gcc-4.6.0.orig/gcc/fortran/invoke.texi	2011-03-03 04:14:29.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/invoke.texi	2011-05-04 19:18:01.936955000 +0000
+@@ -692,7 +692,7 @@
+ This currently includes @option{-Waliasing}, @option{-Wampersand}, 
+ @option{-Wconversion}, @option{-Wsurprising}, @option{-Wintrinsics-std},
+ @option{-Wno-tabs}, @option{-Wintrinsic-shadow}, @option{-Wline-truncation},
+-and @option{-Wunused}.
++@option{-Wreal-q-constant} and @option{-Wunused}.
+ 
+ @item -Waliasing
+ @opindex @code{Waliasing}
+@@ -780,6 +780,12 @@
+ be used to never trigger this behavior and always link to the intrinsic
+ regardless of the selected standard.
+ 
++@item -Wreal-q-constant
++@opindex @code{Wreal-q-constant}
++@cindex warnings, @code{q} exponent-letter
++Produce a warning if a real-literal-constant contains a @code{q}
++exponent-letter.
++
+ @item -Wsurprising
+ @opindex @code{Wsurprising}
+ @cindex warnings, suspicious code
+diff -Naur gcc-4.6.0.orig/gcc/fortran/lang.opt gcc-4.6.0/gcc/fortran/lang.opt
+--- gcc-4.6.0.orig/gcc/fortran/lang.opt	2010-11-28 13:47:26.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/lang.opt	2011-05-04 19:18:01.936955000 +0000
+@@ -238,6 +238,10 @@
+ Fortran Warning
+ Warn on intrinsics not part of the selected standard
+ 
++Wreal-q-constant
++Fortran Warning
++Warn about real-literal-constants with 'q' exponent-letter
++
+ Wreturn-type
+ Fortran Warning
+ ; Documented in C
+diff -Naur gcc-4.6.0.orig/gcc/fortran/module.c gcc-4.6.0/gcc/fortran/module.c
+--- gcc-4.6.0.orig/gcc/fortran/module.c	2011-03-11 14:13:49.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/module.c	2011-04-26 08:41:31.964983000 +0000
+@@ -3011,6 +3011,7 @@
+       sym->attr.flavor = FL_PROCEDURE;
+       sym->attr.generic = 1;
+       e->symtree = gfc_find_symtree (gfc_current_ns->sym_root, fname);
++      gfc_commit_symbol (sym);
+     }
+ }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/fortran/options.c gcc-4.6.0/gcc/fortran/options.c
+--- gcc-4.6.0.orig/gcc/fortran/options.c	2011-01-27 07:02:58.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/options.c	2011-05-04 19:18:01.936955000 +0000
+@@ -107,6 +107,7 @@
+   gfc_option.warn_intrinsic_shadow = 0;
+   gfc_option.warn_intrinsics_std = 0;
+   gfc_option.warn_align_commons = 1;
++  gfc_option.warn_real_q_constant = 0;
+   gfc_option.warn_unused_dummy_argument = 0;
+   gfc_option.max_errors = 25;
+ 
+@@ -445,6 +446,7 @@
+   gfc_option.warn_intrinsic_shadow = setting;
+   gfc_option.warn_intrinsics_std = setting;
+   gfc_option.warn_character_truncation = setting;
++  gfc_option.warn_real_q_constant = setting;
+   gfc_option.warn_unused_dummy_argument = setting;
+ 
+   warn_unused = setting;
+@@ -643,6 +645,10 @@
+       gfc_option.warn_align_commons = value;
+       break;
+ 
++    case OPT_Wreal_q_constant:
++      gfc_option.warn_real_q_constant = value;
++      break;
++
+     case OPT_Wunused_dummy_argument:
+       gfc_option.warn_unused_dummy_argument = value;
+       break;
+diff -Naur gcc-4.6.0.orig/gcc/fortran/parse.c gcc-4.6.0/gcc/fortran/parse.c
+--- gcc-4.6.0.orig/gcc/fortran/parse.c	2011-02-14 22:17:44.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/parse.c	2011-04-26 08:41:31.964983000 +0000
+@@ -4191,6 +4191,10 @@
+   gfc_current_ns = gfc_global_ns_list;
+   for (; gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling)
+     {
++      if (gfc_current_ns->proc_name
++	  && gfc_current_ns->proc_name->attr.flavor == FL_MODULE)
++	continue; /* Already resolved.  */
++
+       if (gfc_current_ns->proc_name)
+ 	gfc_current_locus = gfc_current_ns->proc_name->declared_at;
+       gfc_resolve (gfc_current_ns);
+@@ -4231,8 +4235,28 @@
+   gfc_current_ns = gfc_global_ns_list;
+   gfc_get_errors (NULL, &errors);
+ 
++  /* We first translate all modules to make sure that later parts
++     of the program can use the decl. Then we translate the nonmodules.  */
++
++  for (; !errors && gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling)
++    {
++      if (!gfc_current_ns->proc_name
++	  || gfc_current_ns->proc_name->attr.flavor != FL_MODULE)
++	continue;
++
++      gfc_current_locus = gfc_current_ns->proc_name->declared_at;
++      gfc_derived_types = gfc_current_ns->derived_types;
++      gfc_generate_module_code (gfc_current_ns);
++      gfc_current_ns->translated = 1;
++    }
++
++  gfc_current_ns = gfc_global_ns_list;
+   for (; !errors && gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling)
+     {
++      if (gfc_current_ns->proc_name
++	  && gfc_current_ns->proc_name->attr.flavor == FL_MODULE)
++	continue;
++
+       gfc_current_locus = gfc_current_ns->proc_name->declared_at;
+       gfc_derived_types = gfc_current_ns->derived_types;
+       gfc_generate_code (gfc_current_ns);
+@@ -4243,7 +4267,16 @@
+   gfc_current_ns = gfc_global_ns_list;
+   for (;gfc_current_ns;)
+     {
+-      gfc_namespace *ns = gfc_current_ns->sibling;
++      gfc_namespace *ns;
++
++      if (gfc_current_ns->proc_name
++	  && gfc_current_ns->proc_name->attr.flavor == FL_MODULE)
++	{
++	  gfc_current_ns = gfc_current_ns->sibling;
++	  continue;
++	}
++
++      ns = gfc_current_ns->sibling;
+       gfc_derived_types = gfc_current_ns->derived_types;
+       gfc_done_2 ();
+       gfc_current_ns = ns;
+@@ -4375,16 +4408,18 @@
+   if (s.state == COMP_MODULE)
+     {
+       gfc_dump_module (s.sym->name, errors_before == errors);
+-      if (errors == 0)
+-	gfc_generate_module_code (gfc_current_ns);
+-      pop_state ();
+       if (!gfc_option.flag_whole_file)
+-	gfc_done_2 ();
++	{
++	  if (errors == 0)
++	    gfc_generate_module_code (gfc_current_ns);
++	  pop_state ();
++	  gfc_done_2 ();
++	}
+       else
+ 	{
+ 	  gfc_current_ns->derived_types = gfc_derived_types;
+ 	  gfc_derived_types = NULL;
+-	  gfc_current_ns = NULL;
++	  goto prog_units;
+ 	}
+     }
+   else
+@@ -4429,10 +4464,12 @@
+ 	= gfc_option.dump_fortran_original ? gfc_global_ns_list : NULL;
+ 
+   for (; gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling)
+-    {
+-      gfc_dump_parse_tree (gfc_current_ns, stdout);
+-      fputs ("------------------------------------------\n\n", stdout);
+-    }
++    if (!gfc_current_ns->proc_name
++	|| gfc_current_ns->proc_name->attr.flavor != FL_MODULE)
++      {
++	gfc_dump_parse_tree (gfc_current_ns, stdout);
++	fputs ("------------------------------------------\n\n", stdout);
++      }
+ 
+   /* Do the translation.  */
+   translate_all_program_units (gfc_global_ns_list);
+diff -Naur gcc-4.6.0.orig/gcc/fortran/primary.c gcc-4.6.0/gcc/fortran/primary.c
+--- gcc-4.6.0.orig/gcc/fortran/primary.c	2011-02-18 22:34:34.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/primary.c	2011-05-04 19:18:01.936955000 +0000
+@@ -541,6 +541,17 @@
+     goto done;
+   exp_char = c;
+ 
++
++  if (c == 'q')
++    {
++      if (gfc_notify_std (GFC_STD_GNU, "Extension: exponent-letter 'q' in "
++			 "real-literal-constant at %C") == FAILURE)
++	return MATCH_ERROR;
++      else if (gfc_option.warn_real_q_constant)
++	gfc_warning("Extension: exponent-letter 'q' in real-literal-constant "
++		    "at %C");
++    }
++
+   /* Scan exponent.  */
+   c = gfc_next_ascii_char ();
+   count++;
+@@ -616,6 +627,30 @@
+       kind = gfc_default_double_kind;
+       break;
+ 
++    case 'q':
++      if (kind != -2)
++	{
++	  gfc_error ("Real number at %C has a 'q' exponent and an explicit "
++		     "kind");
++	  goto cleanup;
++	}
++
++      /* The maximum possible real kind type parameter is 16.  First, try
++	 that for the kind, then fallback to trying kind=10 (Intel 80 bit)
++	 extended precision.  If neither value works, just given up.  */
++      kind = 16;
++      if (gfc_validate_kind (BT_REAL, kind, true) < 0)
++	{
++	  kind = 10;
++          if (gfc_validate_kind (BT_REAL, kind, true) < 0)
++	    {
++	      gfc_error ("Invalid exponent-letter 'q' in "
++			 "real-literal-constant at %C");
++	      goto cleanup;
++	    }
++	}
++      break;
++
+     default:
+       if (kind == -2)
+ 	kind = gfc_default_real_kind;
+diff -Naur gcc-4.6.0.orig/gcc/fortran/resolve.c gcc-4.6.0/gcc/fortran/resolve.c
+--- gcc-4.6.0.orig/gcc/fortran/resolve.c	2011-02-18 12:23:56.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/resolve.c	2011-04-29 21:26:07.931377000 +0000
+@@ -315,7 +315,8 @@
+ 	 shape until we know if it has the pointer or allocatable attributes.
+       */
+       if (sym->as && sym->as->rank > 0 && sym->as->type == AS_DEFERRED
+-	  && !(sym->attr.pointer || sym->attr.allocatable))
++	  && !(sym->attr.pointer || sym->attr.allocatable)
++	  && sym->attr.flavor != FL_PROCEDURE)
+ 	{
+ 	  sym->as->type = AS_ASSUMED_SHAPE;
+ 	  for (i = 0; i < sym->as->rank; i++)
+@@ -2187,7 +2188,7 @@
+ 
+ 	  /* F2003, 12.3.1.1 (3c); F2008, 12.4.2.2 (3c)  */
+ 	  if (sym->ts.type == BT_CHARACTER && sym->attr.if_source != IFSRC_IFBODY
+-	      && def_sym->ts.u.cl->length != NULL)
++	      && def_sym->ts.type == BT_CHARACTER && def_sym->ts.u.cl->length != NULL)
+ 	    {
+ 	      gfc_charlen *cl = sym->ts.u.cl;
+ 
+@@ -5674,7 +5675,7 @@
+   /* Make sure that we have the right specific instance for the name.  */
+   derived = get_declared_from_expr (NULL, NULL, e);
+ 
+-  st = gfc_find_typebound_proc (derived, NULL, genname, false, &e->where);
++  st = gfc_find_typebound_proc (derived, NULL, genname, true, &e->where);
+   if (st)
+     e->value.compcall.tbp = st->n.tb;
+ 
+@@ -9858,6 +9859,11 @@
+ static gfc_try
+ resolve_fl_var_and_proc (gfc_symbol *sym, int mp_flag)
+ {
++  /* Avoid double diagnostics for function result symbols.  */
++  if ((sym->result || sym->attr.result) && !sym->attr.dummy
++      && (sym->ns != gfc_current_ns))
++    return SUCCESS;
++
+   /* Constraints on deferred shape variable.  */
+   if (sym->as == NULL || sym->as->type != AS_DEFERRED)
+     {
+@@ -9885,7 +9891,7 @@
+   else
+     {
+       if (!mp_flag && !sym->attr.allocatable && !sym->attr.pointer
+-	  && !sym->attr.dummy && sym->ts.type != BT_CLASS && !sym->assoc)
++	  && sym->ts.type != BT_CLASS && !sym->assoc)
+ 	{
+ 	  gfc_error ("Array '%s' at %L cannot have a deferred shape",
+ 		     sym->name, &sym->declared_at);
+@@ -11946,11 +11952,6 @@
+   gfc_namespace *ns;
+   gfc_component *c;
+ 
+-  /* Avoid double resolution of function result symbols.  */
+-  if ((sym->result || sym->attr.result) && !sym->attr.dummy
+-      && (sym->ns != gfc_current_ns))
+-    return;
+-  
+   if (sym->attr.flavor == FL_UNKNOWN)
+     {
+ 
+@@ -13505,6 +13506,10 @@
+ 
+   resolve_contained_functions (ns);
+ 
++  if (ns->proc_name && ns->proc_name->attr.flavor == FL_PROCEDURE
++      && ns->proc_name->attr.if_source == IFSRC_IFBODY)
++    resolve_formal_arglist (ns->proc_name);
++
+   gfc_traverse_ns (ns, resolve_bind_c_derived_types);
+ 
+   for (cl = ns->cl_list; cl; cl = cl->next)
+diff -Naur gcc-4.6.0.orig/gcc/fortran/trans-array.c gcc-4.6.0/gcc/fortran/trans-array.c
+--- gcc-4.6.0.orig/gcc/fortran/trans-array.c	2011-02-23 22:38:27.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/trans-array.c	2011-04-13 18:38:17.941552000 +0000
+@@ -6707,6 +6707,8 @@
+   tree stride;
+   tree cond, cond1, cond3, cond4;
+   tree tmp;
++  gfc_ref *ref;
++
+   if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (desc)))
+     {
+       tmp = gfc_rank_cst[dim];
+@@ -6740,6 +6742,14 @@
+   else if (expr->expr_type == EXPR_VARIABLE)
+     {
+       tmp = TREE_TYPE (expr->symtree->n.sym->backend_decl);
++      for (ref = expr->ref; ref; ref = ref->next)
++	{
++	  if (ref->type == REF_COMPONENT
++		&& ref->u.c.component->as
++		&& ref->next
++		&& ref->next->u.ar.type == AR_FULL)
++	    tmp = TREE_TYPE (ref->u.c.component->backend_decl);
++	}
+       return GFC_TYPE_ARRAY_LBOUND(tmp, dim);
+     }
+   else if (expr->expr_type == EXPR_FUNCTION)
+diff -Naur gcc-4.6.0.orig/gcc/fortran/trans-expr.c gcc-4.6.0/gcc/fortran/trans-expr.c
+--- gcc-4.6.0.orig/gcc/fortran/trans-expr.c	2011-03-12 16:58:33.000000000 +0000
++++ gcc-4.6.0/gcc/fortran/trans-expr.c	2011-04-30 12:00:50.541680000 +0000
+@@ -5444,9 +5444,12 @@
+     return true;
+ 
+   /* If we have reached here with an intrinsic function, we do not
+-     need a temporary.  */
++     need a temporary except in the particular case that reallocation
++     on assignment is active and the lhs is allocatable and a target.  */
+   if (expr2->value.function.isym)
+-    return false;
++    return (gfc_option.flag_realloc_lhs
++	      && sym->attr.allocatable
++	      && sym->attr.target);
+ 
+   /* If the LHS is a dummy, we need a temporary if it is not
+      INTENT(OUT).  */
+@@ -5528,23 +5531,38 @@
+ }
+ 
+ 
++/* For Assignment to a reallocatable lhs from intrinsic functions,
++   replace the se.expr (ie. the result) with a temporary descriptor.
++   Null the data field so that the library allocates space for the
++   result. Free the data of the original descriptor after the function,
++   in case it appears in an argument expression and transfer the
++   result to the original descriptor.  */
++
+ static void
+-realloc_lhs_bounds_for_intrinsic_call (gfc_se *se, int rank)
++fcncall_realloc_result (gfc_se *se, int rank)
+ {
+   tree desc;
++  tree res_desc;
+   tree tmp;
+   tree offset;
+   int n;
+ 
+-  /* Use the allocation done by the library.  */
++  /* Use the allocation done by the library.  Substitute the lhs
++     descriptor with a copy, whose data field is nulled.*/
+   desc = build_fold_indirect_ref_loc (input_location, se->expr);
+-  tmp = gfc_conv_descriptor_data_get (desc);
+-  tmp = gfc_call_free (fold_convert (pvoid_type_node, tmp));
+-  gfc_add_expr_to_block (&se->pre, tmp);
+-  gfc_conv_descriptor_data_set (&se->pre, desc, null_pointer_node);
+   /* Unallocated, the descriptor does not have a dtype.  */
+   tmp = gfc_conv_descriptor_dtype (desc);
+   gfc_add_modify (&se->pre, tmp, gfc_get_dtype (TREE_TYPE (desc)));
++  res_desc = gfc_evaluate_now (desc, &se->pre);
++  gfc_conv_descriptor_data_set (&se->pre, res_desc, null_pointer_node);
++  se->expr = gfc_build_addr_expr (TREE_TYPE (se->expr), res_desc);
++
++  /* Free the lhs after the function call and copy the result to
++     the lhs descriptor.  */
++  tmp = gfc_conv_descriptor_data_get (desc);
++  tmp = gfc_call_free (fold_convert (pvoid_type_node, tmp));
++  gfc_add_expr_to_block (&se->post, tmp);
++  gfc_add_modify (&se->post, desc, res_desc);
+ 
+   offset = gfc_index_zero_node;
+   tmp = gfc_index_one_node;
+@@ -5580,7 +5598,6 @@
+ }
+ 
+ 
+-
+ /* Try to translate array(:) = func (...), where func is a transformational
+    array function, without using a temporary.  Returns NULL if this isn't the
+    case.  */
+@@ -5645,7 +5662,7 @@
+ 	  ss->is_alloc_lhs = 1;
+ 	}
+       else
+-	realloc_lhs_bounds_for_intrinsic_call (&se, expr1->rank);
++	fcncall_realloc_result (&se, expr1->rank);
+     }
+ 
+   gfc_conv_function_expr (&se, expr2);
+diff -Naur gcc-4.6.0.orig/gcc/gcov-io.c gcc-4.6.0/gcc/gcov-io.c
+--- gcc-4.6.0.orig/gcc/gcov-io.c	2009-11-25 10:55:54.000000000 +0000
++++ gcc-4.6.0/gcc/gcov-io.c	2011-04-06 16:05:18.144471000 +0000
+@@ -16,8 +16,13 @@
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+-You should have received a copy of the GNU General Public License
+-along with GCC; see the file COPYING3.  If not see
++Under Section 7 of GPL version 3, you are granted additional
++permissions described in the GCC Runtime Library Exception, version
++3.1, as published by the Free Software Foundation.
++
++You should have received a copy of the GNU General Public License and
++a copy of the GCC Runtime Library Exception along with this program;
++see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ /* Routines declared in gcov-io.h.  This file should be #included by
+diff -Naur gcc-4.6.0.orig/gcc/gimple-fold.c gcc-4.6.0/gcc/gimple-fold.c
+--- gcc-4.6.0.orig/gcc/gimple-fold.c	2011-01-25 17:08:47.000000000 +0000
++++ gcc-4.6.0/gcc/gimple-fold.c	2011-04-18 21:58:03.570372000 +0000
+@@ -1374,7 +1374,7 @@
+    is a thunk (other than a this adjustment which is dealt with by DELTA). */
+ 
+ tree
+-gimple_get_virt_mehtod_for_binfo (HOST_WIDE_INT token, tree known_binfo,
++gimple_get_virt_method_for_binfo (HOST_WIDE_INT token, tree known_binfo,
+ 				  tree *delta, bool refuse_thunks)
+ {
+   HOST_WIDE_INT i;
+@@ -1393,6 +1393,10 @@
+       v = TREE_CHAIN (v);
+     }
+ 
++  /* If BV_VCALL_INDEX is non-NULL, give up.  */
++  if (TREE_TYPE (v))
++    return NULL_TREE;
++
+   fndecl = TREE_VALUE (v);
+   node = cgraph_get_node_or_alias (fndecl);
+   if (refuse_thunks
+diff -Naur gcc-4.6.0.orig/gcc/gimple.c gcc-4.6.0/gcc/gimple.c
+--- gcc-4.6.0.orig/gcc/gimple.c	2010-12-02 12:24:46.000000000 +0000
++++ gcc-4.6.0/gcc/gimple.c	2011-04-21 14:18:54.402847000 +0000
+@@ -1405,7 +1405,8 @@
+       for (i = 0; i < gimple_call_num_args (stmt); i++)
+ 	{
+ 	  if (wi)
+-	    wi->val_only = is_gimple_reg_type (gimple_call_arg (stmt, i));
++	    wi->val_only
++	      = is_gimple_reg_type (TREE_TYPE (gimple_call_arg (stmt, i)));
+ 	  ret = walk_tree (gimple_call_arg_ptr (stmt, i), callback_op, wi,
+ 			   pset);
+ 	  if (ret)
+@@ -1417,7 +1418,8 @@
+ 	  if (wi)
+ 	    {
+ 	      wi->is_lhs = true;
+-	      wi->val_only = is_gimple_reg_type (gimple_call_lhs (stmt));
++	      wi->val_only
++		= is_gimple_reg_type (TREE_TYPE (gimple_call_lhs (stmt)));
+ 	    }
+ 
+ 	  ret = walk_tree (gimple_call_lhs_ptr (stmt), callback_op, wi, pset);
+@@ -3742,6 +3744,9 @@
+ 
+ 	    if (tree_int_cst_equal (c1, c2) != 1)
+ 	      goto different_types;
++
++	    if (mode == GTC_MERGE && TREE_PURPOSE (v1) != TREE_PURPOSE (v2))
++	      goto different_types;
+ 	  }
+ 
+ 	/* If one enumeration has more values than the other, they
+diff -Naur gcc-4.6.0.orig/gcc/gimple.h gcc-4.6.0/gcc/gimple.h
+--- gcc-4.6.0.orig/gcc/gimple.h	2010-12-22 12:56:54.000000000 +0000
++++ gcc-4.6.0/gcc/gimple.h	2011-04-18 21:58:03.570372000 +0000
+@@ -892,7 +892,7 @@
+ gimple gimple_alloc_stat (enum gimple_code, unsigned MEM_STAT_DECL);
+ const char *gimple_decl_printable_name (tree, int);
+ bool gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace);
+-tree gimple_get_virt_mehtod_for_binfo (HOST_WIDE_INT, tree, tree *, bool);
++tree gimple_get_virt_method_for_binfo (HOST_WIDE_INT, tree, tree *, bool);
+ void gimple_adjust_this_by_delta (gimple_stmt_iterator *, tree);
+ /* Returns true iff T is a valid GIMPLE statement.  */
+ extern bool is_gimple_stmt (tree);
+diff -Naur gcc-4.6.0.orig/gcc/gimplify.c gcc-4.6.0/gcc/gimplify.c
+--- gcc-4.6.0.orig/gcc/gimplify.c	2011-03-07 15:28:50.000000000 +0000
++++ gcc-4.6.0/gcc/gimplify.c	2011-04-22 14:11:44.240476000 +0000
+@@ -1138,7 +1138,7 @@
+ 	  struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+ 
+ 	  /* Mark variable as local.  */
+-	  if (ctx && !is_global_var (t)
++	  if (ctx && !DECL_EXTERNAL (t)
+ 	      && (! DECL_SEEN_IN_BIND_EXPR_P (t)
+ 		  || splay_tree_lookup (ctx->variables,
+ 					(splay_tree_key) t) == NULL))
+diff -Naur gcc-4.6.0.orig/gcc/ipa-cp.c gcc-4.6.0/gcc/ipa-cp.c
+--- gcc-4.6.0.orig/gcc/ipa-cp.c	2011-03-04 23:07:20.000000000 +0000
++++ gcc-4.6.0/gcc/ipa-cp.c	2011-04-18 21:58:03.570372000 +0000
+@@ -1242,7 +1242,7 @@
+ 	{
+ 	  tree binfo = VEC_index (tree, info->params[param_index].types, j);
+ 	  tree d;
+-	  tree t = gimple_get_virt_mehtod_for_binfo (token, binfo, &d, true);
++	  tree t = gimple_get_virt_method_for_binfo (token, binfo, &d, true);
+ 
+ 	  if (!t)
+ 	    {
+@@ -1516,6 +1516,8 @@
+         ipa_print_all_params (dump_file);
+       ipa_print_all_jump_functions (dump_file);
+     }
++  ipa_check_create_node_params ();
++  ipa_check_create_edge_args ();
+   /* 2. Do the interprocedural propagation.  */
+   ipcp_iterate_stage ();
+   /* 3. Insert the constants found to the functions.  */
+@@ -1543,8 +1545,6 @@
+ 
+   if (dump_file)
+     fprintf (dump_file, "\nIPA constant propagation start:\n");
+-  ipa_check_create_node_params ();
+-  ipa_check_create_edge_args ();
+   ipa_register_cgraph_hooks ();
+ 
+   for (node = cgraph_nodes; node; node = node->next)
+diff -Naur gcc-4.6.0.orig/gcc/ipa-inline.c gcc-4.6.0/gcc/ipa-inline.c
+--- gcc-4.6.0.orig/gcc/ipa-inline.c	2011-03-11 10:04:30.000000000 +0000
++++ gcc-4.6.0/gcc/ipa-inline.c	2011-04-26 12:59:22.871525000 +0000
+@@ -1337,6 +1337,9 @@
+ 	  continue;
+ 	}
+ 
++      if (!e->callee->local.inlinable)
++	continue;
++
+       /* We've hit cycle?  It is time to give up.  */
+       if (e->callee->aux)
+ 	{
+@@ -2091,11 +2094,7 @@
+       cgraph_add_function_insertion_hook (&add_new_function, NULL);
+ 
+   if (flag_indirect_inlining)
+-    {
+-      ipa_register_cgraph_hooks ();
+-      ipa_check_create_node_params ();
+-      ipa_check_create_edge_args ();
+-    }
++    ipa_register_cgraph_hooks ();
+ 
+   for (node = cgraph_nodes; node; node = node->next)
+     if (node->analyzed)
+diff -Naur gcc-4.6.0.orig/gcc/ipa-prop.c gcc-4.6.0/gcc/ipa-prop.c
+--- gcc-4.6.0.orig/gcc/ipa-prop.c	2011-02-11 15:16:46.000000000 +0000
++++ gcc-4.6.0/gcc/ipa-prop.c	2011-04-18 21:58:03.570372000 +0000
+@@ -1522,10 +1522,13 @@
+ void
+ ipa_analyze_node (struct cgraph_node *node)
+ {
+-  struct ipa_node_params *info = IPA_NODE_REF (node);
++  struct ipa_node_params *info;
+   struct param_analysis_info *parms_info;
+   int i, param_count;
+ 
++  ipa_check_create_node_params ();
++  ipa_check_create_edge_args ();
++  info = IPA_NODE_REF (node);
+   push_cfun (DECL_STRUCT_FUNCTION (node->decl));
+   current_function_decl = node->decl;
+   ipa_initialize_node_params (node);
+@@ -1727,7 +1730,7 @@
+   type = ie->indirect_info->otr_type;
+   binfo = get_binfo_at_offset (binfo, ie->indirect_info->anc_offset, type);
+   if (binfo)
+-    target = gimple_get_virt_mehtod_for_binfo (token, binfo, &delta, true);
++    target = gimple_get_virt_method_for_binfo (token, binfo, &delta, true);
+   else
+     return NULL;
+ 
+diff -Naur gcc-4.6.0.orig/gcc/lto/lto.c gcc-4.6.0/gcc/lto/lto.c
+--- gcc-4.6.0.orig/gcc/lto/lto.c	2011-02-10 08:57:24.000000000 +0000
++++ gcc-4.6.0/gcc/lto/lto.c	2011-03-31 10:00:44.444869000 +0000
+@@ -1514,8 +1514,8 @@
+ 	  fprintf (cgraph_dump_file, "varpool nodes:");
+ 	  dump_varpool_node_set (cgraph_dump_file, vset);
+ 	}
+-      gcc_assert (cgraph_node_set_nonempty_p (set)
+-		  || varpool_node_set_nonempty_p (vset) || !i);
++      gcc_checking_assert (cgraph_node_set_nonempty_p (set)
++			   || varpool_node_set_nonempty_p (vset) || !i);
+ 
+       lto_set_current_out_file (file);
+ 
+diff -Naur gcc-4.6.0.orig/gcc/lto-cgraph.c gcc-4.6.0/gcc/lto-cgraph.c
+--- gcc-4.6.0.orig/gcc/lto-cgraph.c	2011-03-04 18:49:23.000000000 +0000
++++ gcc-4.6.0/gcc/lto-cgraph.c	2011-04-17 14:58:03.687290000 +0000
+@@ -1501,7 +1501,8 @@
+      During LTRANS we already have values of count_materialization_scale
+      computed, so just update them.  */
+   for (node = cgraph_nodes; node; node = node->next)
+-    if (node->local.lto_file_data->profile_info.runs)
++    if (node->local.lto_file_data
++	&& node->local.lto_file_data->profile_info.runs)
+       {
+ 	int scale;
+ 
+@@ -1573,8 +1574,8 @@
+       VEC_free (cgraph_node_ptr, heap, nodes);
+       VEC_free (varpool_node_ptr, heap, varpool);
+     }
++
+   merge_profile_summaries (file_data_vec);
+-    
+ 
+   /* Clear out the aux field that was used to store enough state to
+      tell which nodes should be overwritten.  */
+diff -Naur gcc-4.6.0.orig/gcc/lto-streamer-in.c gcc-4.6.0/gcc/lto-streamer-in.c
+--- gcc-4.6.0.orig/gcc/lto-streamer-in.c	2011-03-01 09:45:05.000000000 +0000
++++ gcc-4.6.0/gcc/lto-streamer-in.c	2011-05-03 10:21:44.740801000 +0000
+@@ -1596,11 +1596,9 @@
+ 
+   if (TREE_CODE (expr) == FIELD_DECL)
+     {
+-      unsigned HOST_WIDE_INT off_align;
+       DECL_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1);
+       DECL_NONADDRESSABLE_P (expr) = (unsigned) bp_unpack_value (bp, 1);
+-      off_align = (unsigned HOST_WIDE_INT) bp_unpack_value (bp, 8);
+-      SET_DECL_OFFSET_ALIGN (expr, off_align);
++      expr->decl_common.off_align = bp_unpack_value (bp, 8);
+     }
+ 
+   if (TREE_CODE (expr) == RESULT_DECL
+diff -Naur gcc-4.6.0.orig/gcc/lto-streamer-out.c gcc-4.6.0/gcc/lto-streamer-out.c
+--- gcc-4.6.0.orig/gcc/lto-streamer-out.c	2011-03-01 09:45:05.000000000 +0000
++++ gcc-4.6.0/gcc/lto-streamer-out.c	2011-05-03 10:21:44.740801000 +0000
+@@ -414,7 +414,7 @@
+     {
+       bp_pack_value (bp, DECL_PACKED (expr), 1);
+       bp_pack_value (bp, DECL_NONADDRESSABLE_P (expr), 1);
+-      bp_pack_value (bp, DECL_OFFSET_ALIGN (expr), 8);
++      bp_pack_value (bp, expr->decl_common.off_align, 8);
+     }
+ 
+   if (TREE_CODE (expr) == RESULT_DECL
+diff -Naur gcc-4.6.0.orig/gcc/omp-low.c gcc-4.6.0/gcc/omp-low.c
+--- gcc-4.6.0.orig/gcc/omp-low.c	2010-11-30 16:36:19.000000000 +0000
++++ gcc-4.6.0/gcc/omp-low.c	2011-04-13 15:52:17.795243000 +0000
+@@ -5005,6 +5005,8 @@
+     return false;
+ 
+   decl = built_in_decls[base + index + 1];
++  if (decl == NULL_TREE)
++    return false;
+   itype = TREE_TYPE (TREE_TYPE (decl));
+ 
+   if (direct_optab_handler (optab, TYPE_MODE (itype)) == CODE_FOR_nothing)
+@@ -5056,6 +5058,8 @@
+   edge e;
+ 
+   cmpxchg = built_in_decls[BUILT_IN_VAL_COMPARE_AND_SWAP_N + index + 1];
++  if (cmpxchg == NULL_TREE)
++    return false;
+   type = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (addr)));
+   itype = TREE_TYPE (TREE_TYPE (cmpxchg));
+ 
+diff -Naur gcc-4.6.0.orig/gcc/params.def gcc-4.6.0/gcc/params.def
+--- gcc-4.6.0.orig/gcc/params.def	2011-02-02 15:52:08.000000000 +0000
++++ gcc-4.6.0/gcc/params.def	2011-03-26 09:20:34.263941000 +0000
+@@ -698,6 +698,12 @@
+ 	 "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass",
+ 	 100, 0, 0)
+ 
++/* This is the maximum number of active local stores RTL DSE will consider.  */
++DEFPARAM (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES,
++	  "max-dse-active-local-stores",
++	  "Maximum number of active local stores in RTL dead store elimination",
++	  5000, 0, 0)
++
+ /* Prefetching and cache-optimizations related parameters.  Default values are
+    usually set by machine description.  */
+ 
+diff -Naur gcc-4.6.0.orig/gcc/reload1.c gcc-4.6.0/gcc/reload1.c
+--- gcc-4.6.0.orig/gcc/reload1.c	2011-01-23 21:11:24.000000000 +0000
++++ gcc-4.6.0/gcc/reload1.c	2011-04-20 09:48:00.383759000 +0000
+@@ -445,7 +445,7 @@
+ static void delete_output_reload (rtx, int, int, rtx);
+ static void delete_address_reloads (rtx, rtx);
+ static void delete_address_reloads_1 (rtx, rtx, rtx);
+-static rtx inc_for_reload (rtx, rtx, rtx, int);
++static void inc_for_reload (rtx, rtx, rtx, int);
+ #ifdef AUTO_INC_DEC
+ static void add_auto_inc_notes (rtx, rtx);
+ #endif
+@@ -7152,22 +7152,12 @@
+ 
+       old = XEXP (rl->in_reg, 0);
+ 
+-      if (optimize && REG_P (oldequiv)
+-	  && REGNO (oldequiv) < FIRST_PSEUDO_REGISTER
+-	  && spill_reg_store[REGNO (oldequiv)]
+-	  && REG_P (old)
+-	  && (dead_or_set_p (insn,
+-			     spill_reg_stored_to[REGNO (oldequiv)])
+-	      || rtx_equal_p (spill_reg_stored_to[REGNO (oldequiv)],
+-			      old)))
+-	delete_output_reload (insn, j, REGNO (oldequiv), reloadreg);
+-
+       /* Prevent normal processing of this reload.  */
+       special = 1;
+-      /* Output a special code sequence for this case.  */
+-      new_spill_reg_store[REGNO (reloadreg)]
+-	= inc_for_reload (reloadreg, oldequiv, rl->out,
+-			  rl->inc);
++      /* Output a special code sequence for this case, and forget about
++	 spill reg information.  */
++      new_spill_reg_store[REGNO (reloadreg)] = NULL;
++      inc_for_reload (reloadreg, oldequiv, rl->out, rl->inc);
+     }
+ 
+   /* If we are reloading a pseudo-register that was set by the previous
+@@ -8981,11 +8971,9 @@
+    IN is either identical to VALUE, or some cheaper place to reload from.
+ 
+    INC_AMOUNT is the number to increment or decrement by (always positive).
+-   This cannot be deduced from VALUE.
+-
+-   Return the instruction that stores into RELOADREG.  */
++   This cannot be deduced from VALUE.  */
+ 
+-static rtx
++static void
+ inc_for_reload (rtx reloadreg, rtx in, rtx value, int inc_amount)
+ {
+   /* REG or MEM to be copied and incremented.  */
+@@ -8997,7 +8985,6 @@
+   rtx inc;
+   rtx add_insn;
+   int code;
+-  rtx store;
+   rtx real_in = in == value ? incloc : in;
+ 
+   /* No hard register is equivalent to this register after
+@@ -9045,9 +9032,8 @@
+ 		 be used as an address.  */
+ 
+ 	      if (! post)
+-		add_insn = emit_insn (gen_move_insn (reloadreg, incloc));
+-
+-	      return add_insn;
++		emit_insn (gen_move_insn (reloadreg, incloc));
++	      return;
+ 	    }
+ 	}
+       delete_insns_since (last);
+@@ -9063,7 +9049,7 @@
+       if (in != reloadreg)
+ 	emit_insn (gen_move_insn (reloadreg, real_in));
+       emit_insn (gen_add2_insn (reloadreg, inc));
+-      store = emit_insn (gen_move_insn (incloc, reloadreg));
++      emit_insn (gen_move_insn (incloc, reloadreg));
+     }
+   else
+     {
+@@ -9077,14 +9063,12 @@
+ 	 the original value.  */
+ 
+       emit_insn (gen_add2_insn (reloadreg, inc));
+-      store = emit_insn (gen_move_insn (incloc, reloadreg));
++      emit_insn (gen_move_insn (incloc, reloadreg));
+       if (CONST_INT_P (inc))
+ 	emit_insn (gen_add2_insn (reloadreg, GEN_INT (-INTVAL (inc))));
+       else
+ 	emit_insn (gen_sub2_insn (reloadreg, inc));
+     }
+-
+-  return store;
+ }
+ 
+
+ #ifdef AUTO_INC_DEC
+diff -Naur gcc-4.6.0.orig/gcc/sel-sched-ir.c gcc-4.6.0/gcc/sel-sched-ir.c
+--- gcc-4.6.0.orig/gcc/sel-sched-ir.c	2010-12-24 14:19:23.000000000 +0000
++++ gcc-4.6.0/gcc/sel-sched-ir.c	2011-04-07 12:07:24.807359000 +0000
+@@ -1564,6 +1564,20 @@
+   *pvect = NULL;
+ }
+ 
++/* Merge vector FROM to PVECT.  */
++static void
++merge_history_vect (VEC (expr_history_def, heap) **pvect,
++		    VEC (expr_history_def, heap) *from)
++{
++  expr_history_def *phist;
++  int i;
++
++  /* We keep this vector sorted.  */
++  for (i = 0; VEC_iterate (expr_history_def, from, i, phist); i++)
++    insert_in_history_vect (pvect, phist->uid, phist->type,
++                            phist->old_expr_vinsn, phist->new_expr_vinsn,
++                            phist->spec_ds);
++}
+ 
+ /* Compare two vinsns as rhses if possible and as vinsns otherwise.  */
+ bool
+@@ -1796,9 +1810,6 @@
+ void
+ merge_expr_data (expr_t to, expr_t from, insn_t split_point)
+ {
+-  int i;
+-  expr_history_def *phist;
+-
+   /* For now, we just set the spec of resulting expr to be minimum of the specs
+      of merged exprs.  */
+   if (EXPR_SPEC (to) > EXPR_SPEC (from))
+@@ -1822,20 +1833,12 @@
+   EXPR_ORIG_SCHED_CYCLE (to) = MIN (EXPR_ORIG_SCHED_CYCLE (to),
+                                     EXPR_ORIG_SCHED_CYCLE (from));
+ 
+-  /* We keep this vector sorted.  */
+-  for (i = 0;
+-       VEC_iterate (expr_history_def, EXPR_HISTORY_OF_CHANGES (from),
+-                    i, phist);
+-       i++)
+-    insert_in_history_vect (&EXPR_HISTORY_OF_CHANGES (to),
+-                            phist->uid, phist->type,
+-                            phist->old_expr_vinsn, phist->new_expr_vinsn,
+-                            phist->spec_ds);
+-
+   EXPR_WAS_SUBSTITUTED (to) |= EXPR_WAS_SUBSTITUTED (from);
+   EXPR_WAS_RENAMED (to) |= EXPR_WAS_RENAMED (from);
+   EXPR_CANT_MOVE (to) |= EXPR_CANT_MOVE (from);
+ 
++  merge_history_vect (&EXPR_HISTORY_OF_CHANGES (to),
++		      EXPR_HISTORY_OF_CHANGES (from));
+   update_target_availability (to, from, split_point);
+   update_speculative_bits (to, from, split_point);
+ }
+@@ -2328,16 +2331,24 @@
+ }
+ 
+ /* Leave in AVP only those expressions, which are present in AV,
+-   and return it.  */
++   and return it, merging history expressions.  */
+ void
+-av_set_intersect (av_set_t *avp, av_set_t av)
++av_set_code_motion_filter (av_set_t *avp, av_set_t av)
+ {
+   av_set_iterator i;
+-  expr_t expr;
++  expr_t expr, expr2;
+ 
+   FOR_EACH_EXPR_1 (expr, i, avp)
+-    if (av_set_lookup (av, EXPR_VINSN (expr)) == NULL)
++    if ((expr2 = av_set_lookup (av, EXPR_VINSN (expr))) == NULL)
+       av_set_iter_remove (&i);
++    else
++      /* When updating av sets in bookkeeping blocks, we can add more insns
++	 there which will be transformed but the upper av sets will not
++	 reflect those transformations.  We then fail to undo those
++	 when searching for such insns.  So merge the history saved
++	 in the av set of the block we are processing.  */
++      merge_history_vect (&EXPR_HISTORY_OF_CHANGES (expr),
++			  EXPR_HISTORY_OF_CHANGES (expr2));
+ }
+ 
+ 
+
+diff -Naur gcc-4.6.0.orig/gcc/sel-sched-ir.h gcc-4.6.0/gcc/sel-sched-ir.h
+--- gcc-4.6.0.orig/gcc/sel-sched-ir.h	2010-12-03 12:04:16.000000000 +0000
++++ gcc-4.6.0/gcc/sel-sched-ir.h	2011-04-07 12:07:24.807359000 +0000
+@@ -1565,7 +1565,7 @@
+ extern expr_t av_set_element (av_set_t, int);
+ extern void av_set_substract_cond_branches (av_set_t *);
+ extern void av_set_split_usefulness (av_set_t, int, int);
+-extern void av_set_intersect (av_set_t *, av_set_t);
++extern void av_set_code_motion_filter (av_set_t *, av_set_t);
+ 
+ extern void sel_save_haifa_priorities (void);
+ 
+diff -Naur gcc-4.6.0.orig/gcc/sel-sched.c gcc-4.6.0/gcc/sel-sched.c
+--- gcc-4.6.0.orig/gcc/sel-sched.c	2011-01-26 05:59:53.000000000 +0000
++++ gcc-4.6.0/gcc/sel-sched.c	2011-04-07 12:07:24.807359000 +0000
+@@ -6481,7 +6481,7 @@
+ 
+   /* Filter the orig_ops set.  */
+   if (AV_SET_VALID_P (insn))
+-    av_set_intersect (&orig_ops, AV_SET (insn));
++    av_set_code_motion_filter (&orig_ops, AV_SET (insn));
+ 
+   /* If no more original ops, return immediately.  */
+   if (!orig_ops)
+diff -Naur gcc-4.6.0.orig/gcc/simplify-rtx.c gcc-4.6.0/gcc/simplify-rtx.c
+--- gcc-4.6.0.orig/gcc/simplify-rtx.c	2010-11-30 16:36:19.000000000 +0000
++++ gcc-4.6.0/gcc/simplify-rtx.c	2011-03-26 09:24:06.569126000 +0000
+@@ -1526,7 +1526,8 @@
+     }
+ 
+   else if (GET_CODE (op) == CONST_DOUBLE
+-	   && SCALAR_FLOAT_MODE_P (mode))
++	   && SCALAR_FLOAT_MODE_P (mode)
++	   && SCALAR_FLOAT_MODE_P (GET_MODE (op)))
+     {
+       REAL_VALUE_TYPE d, t;
+       REAL_VALUE_FROM_CONST_DOUBLE (d, op);
+@@ -1549,7 +1550,10 @@
+ 	  d = real_value_truncate (mode, d);
+ 	  break;
+ 	case FLOAT_EXTEND:
+-	  /* All this does is change the mode.  */
++	  /* All this does is change the mode, unless changing
++	     mode class.  */
++	  if (GET_MODE_CLASS (mode) != GET_MODE_CLASS (GET_MODE (op)))
++	    real_convert (&d, mode, &d);
+ 	  break;
+ 	case FIX:
+ 	  real_arithmetic (&d, FIX_TRUNC_EXPR, &d, NULL);
+diff -Naur gcc-4.6.0.orig/gcc/stor-layout.c gcc-4.6.0/gcc/stor-layout.c
+--- gcc-4.6.0.orig/gcc/stor-layout.c	2011-03-10 22:37:22.000000000 +0000
++++ gcc-4.6.0/gcc/stor-layout.c	2011-04-05 14:34:51.863482000 +0000
+@@ -367,7 +367,7 @@
+   VEC_safe_push (tree, gc, size_functions, fndecl);
+ 
+   /* Replace the original expression with a call to the size function.  */
+-  return build_call_expr_loc_vec (input_location, fndecl, args);
++  return build_call_expr_loc_vec (UNKNOWN_LOCATION, fndecl, args);
+ }
+ 
+ /* Take, queue and compile all the size functions.  It is essential that
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/c-c++-common/raw-string-11.c gcc-4.6.0/gcc/testsuite/c-c++-common/raw-string-11.c
+--- gcc-4.6.0.orig/gcc/testsuite/c-c++-common/raw-string-11.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/c-c++-common/raw-string-11.c	2011-04-23 23:33:39.473034000 +0000
+@@ -0,0 +1,13 @@
++// PR preprocessor/48740
++// { dg-options "-std=gnu99 -trigraphs -save-temps" { target c } }
++// { dg-options "-std=c++0x -save-temps" { target c++ } }
++// { dg-do run }
++
++int main ()
++{
++  return __builtin_memcmp (R"raw(foo%sbar%sfred%sbob?????)raw",
++			   "foo%sbar%sfred%sbob?""?""?""?""?",
++			   sizeof ("foo%sbar%sfred%sbob?""?""?""?""?"));
++}
++
++// { dg-final { cleanup-saved-temps } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/c-c++-common/vla-1.c gcc-4.6.0/gcc/testsuite/c-c++-common/vla-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/c-c++-common/vla-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/c-c++-common/vla-1.c	2011-05-06 21:58:30.234668000 +0000
+@@ -0,0 +1,21 @@
++/* Test that changes to a variable are reflected in a VLA later in the
++   expression.  */
++/* { dg-options "" } */
++
++#ifdef __cplusplus
++extern "C"
++#endif
++void abort();
++
++int i = 4;
++int f()
++{
++  return i;
++}
++
++int main()
++{
++  if (i+=2, sizeof(*(int(*)[f()])0) != 6*sizeof(int))
++    abort();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/conversion/base1.C gcc-4.6.0/gcc/testsuite/g++.dg/conversion/base1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/conversion/base1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/conversion/base1.C	2011-05-05 02:51:01.604697000 +0000
+@@ -0,0 +1,20 @@
++// PR c++/48749
++
++struct Tuple3
++{
++  float x;
++};
++
++struct Pos: virtual Tuple3 { };
++
++struct TexCoords
++{
++  Pos pos;
++};
++
++template <class T>
++void eval (const TexCoords &coords)
++{
++  const Pos &pos = coords.pos;
++  pos.x;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/auto22.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/auto22.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/auto22.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/auto22.C	2011-03-29 14:25:37.555771000 +0000
+@@ -0,0 +1,21 @@
++// PR c++/47999
++// { dg-options -std=c++0x }
++
++int& identity(int& i)
++{
++  return i;
++}
++
++// In a function template, auto type deduction works incorrectly.
++template <typename = void>
++void f()
++{
++  int i = 0;
++  auto&& x = identity(i); // Type of x should be `int&`, but it is `int&&`.
++}
++
++int main (int argc, char* argv[])
++{
++  f();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C	2011-03-29 14:24:09.912103000 +0000
+@@ -0,0 +1,25 @@
++// PR c++/47570
++// { dg-options -std=c++0x }
++
++unsigned int constexpr one()
++{ return 1; }
++
++int constexpr one_B()
++{ return 1; }
++
++int main()
++{
++  // FAIL TO COMPILE:
++  static bool constexpr SC_huh1 = ((unsigned int)one()) >= ((unsigned int)0);
++  static bool constexpr SC_huh2 = one() >= ((unsigned int)0);
++  static bool constexpr SC_huh3 = one() >= 0;
++
++  // COMPILE OK:
++  static bool constexpr SC_huh4 = ((one() == 0) || (one() > 0));
++  static bool constexpr SC_huh5 = one() == 0;
++  static bool constexpr SC_huh6 = one() > 0;
++  static bool constexpr SC_huh7 = one_B() >= 0;
++  static bool constexpr SC_huh8 = one() >= 1;
++
++  return SC_huh3;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-48089.C	2011-05-06 21:58:22.201769000 +0000
+@@ -0,0 +1,24 @@
++// PR c++/48089
++// { dg-options -std=c++0x }
++
++// bang is ill-formed (diagnostic required) because its initializer is
++// non-constant, because it uses the value of an uninitialized object.
++
++// s() is ill-formed (no diagnostic required) because there is no set of
++// arguments that would produce a constant expression.
++
++// R() is well-formed because i is initialized before j.
++
++struct s {
++  constexpr s() : v(v) { }	// { dg-message "" }
++  int v;
++};
++
++constexpr s bang;		// { dg-error "" }
++
++struct R {
++  int i,j;
++  constexpr R() : i(42),j(i) { } // { dg-bogus "" "" { xfail *-*-* } }
++};
++
++constexpr R r;			// { dg-bogus "" "" { xfail *-*-* } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-attribute.C	2011-03-29 14:24:59.569455000 +0000
+@@ -0,0 +1,63 @@
++// { dg-options -std=c++0x }
++
++//A few constexpr's
++constexpr int foo() { return __alignof__(int); }
++
++template<typename T>
++constexpr int fooT() { return __alignof__(T); }
++
++template<int N>
++constexpr int fooN() { return N; }
++
++//Now the attributes
++
++//with normal variables,
++int a __attribute__((aligned(foo())));
++int b __attribute__((aligned(fooT<int>())));
++int c __attribute__((aligned(fooN<__alignof__(int)>())));
++
++//with variables inside a template,
++template <typename T>
++void fun()
++{
++    T a __attribute__((aligned(foo())));
++    T b __attribute__((aligned(fooT<T>())));
++    T c __attribute__((aligned(fooN<__alignof__(T)>())));
++    T d __attribute__((aligned(fooT<int>())));
++    T e __attribute__((aligned(fooN<__alignof__(int)>())));
++}
++
++//instantiate it,
++void bar()
++{
++    fun<int>();
++}
++
++//with classes
++struct __attribute__((aligned(foo()))) S0
++{
++    char dummy;
++};
++S0 s0;
++
++struct __attribute__((aligned(fooT<int>()))) S1
++{
++    char dummy;
++};
++S1 s1;
++
++//and class templates
++template <typename T>
++struct __attribute__((aligned(foo()))) S2
++{
++    char dummy;
++};
++
++S2<int> s2;
++
++template <typename T>
++struct __attribute__((aligned(fooT<T>()))) S3
++{
++    char dummy;
++};
++S3<int> s3;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C	2011-05-06 21:58:44.977085000 +0000
+@@ -0,0 +1,18 @@
++// PR c++/48909
++// { dg-options -std=c++0x }
++
++#define SA(X) static_assert((X),#X)
++
++constexpr int const * is_sorted_until(int const * first, int const * last)
++{
++ return first == last || first + 1 == last ? last
++  : (*(first + 1) < *first) != false ? first + 1
++  : is_sorted_until(first + 1, last);
++}
++
++int main()
++{
++ static constexpr int array[2] = {0, 1};
++ constexpr int const * last = is_sorted_until(array, array + 2);
++ SA(last==array+2);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C	2011-02-23 15:24:04.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-data2.C	2011-03-29 14:24:19.897229000 +0000
+@@ -44,5 +44,4 @@
+ 
+ // Use.
+ A3<int, 1111> a31;
+-// FIXME should this be an error?
+ A3<char, 9999> a32;		// { dg-warning "overflow" }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C	2010-11-02 01:31:18.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C	2011-03-29 14:26:21.311895000 +0000
+@@ -1,12 +1,11 @@
+ // Test that we explain why a template instantiation isn't constexpr
+ // { dg-options -std=c++0x }
+-// { dg-prune-output "not a constexpr function" }
+ 
+ template <class T>
+ struct A
+ {
+   T t;
+-  constexpr int f() { return 42; }
++  constexpr int f() { return 42; } // { dg-error "enclosing class" }
+ };
+ 
+ struct B { B(); operator int(); };
+@@ -14,8 +13,8 @@
+ constexpr A<int> ai = { 42 };
+ constexpr int i = ai.f();
+ 
+-constexpr int b = A<B>().f();	// { dg-error "enclosing class" }
++constexpr int b = A<B>().f();	// { dg-error "not a constexpr function" }
+ 
+ template <class T>
+-constexpr int f (T t) { return 42; }
+-constexpr int x = f(B());	// { dg-error "parameter" }
++constexpr int f (T t) { return 42; } // { dg-error "parameter" }
++constexpr int x = f(B());	     // { dg-error "constexpr function" }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C	2011-03-29 14:26:33.022146000 +0000
+@@ -0,0 +1,18 @@
++// PR c++/48296
++// { dg-options -std=c++0x }
++
++struct X
++{
++  constexpr X() { }
++  constexpr X f(X x) { return x; }
++  constexpr X g(X x);
++};
++
++constexpr X X::g(X x) { return x; }
++
++struct Y
++{
++  Y() { }
++  constexpr Y f(Y y);		// { dg-error "constexpr" }
++  static constexpr Y g(Y y);	// { dg-error "constexpr" }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-missing.C	2011-05-06 21:58:37.761722000 +0000
+@@ -0,0 +1,39 @@
++// PR c++/48911
++// { dg-do compile }
++// { dg-options "-std=c++0x" }
++
++#define SA(X) static_assert((X),#X)
++
++struct A
++{
++  constexpr A () : a (6) {}
++  int a;
++};
++
++int
++main ()
++{
++  constexpr int a[2] = { 42 };
++  constexpr int i = a[1];
++  SA(i==0);
++  constexpr int b[1] = { };
++  constexpr int j = b[0];
++  SA(j==0);
++  constexpr char c[2] = "a";
++  constexpr char k = c[1];
++  SA(k==0);
++  constexpr char d[2] = "";
++  constexpr char l = d[1];
++  SA(l==0);
++  constexpr wchar_t e[2] = L"a";
++  constexpr wchar_t m = e[1];
++  SA(m==0);
++  constexpr wchar_t f[2] = L"";
++  constexpr wchar_t n = f[1];
++  SA(n==0);
++  constexpr A g[2] = { A () };
++  constexpr A o = g[0];
++  SA(o.a == 6);
++  constexpr A p = g[1];
++  SA(p.a == 6);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C	2011-03-29 14:24:30.843482000 +0000
+@@ -0,0 +1,15 @@
++// { dg-options -std=c++0x }
++
++struct booleable {
++  bool data;
++  constexpr explicit operator bool() { return data; }
++};
++
++constexpr booleable truthy_func() { return {true}; }
++
++void funky() noexcept(truthy_func()) {}
++
++int main() {
++  funky();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-overflow2.C	2011-03-29 14:24:19.897229000 +0000
+@@ -0,0 +1,8 @@
++// PR c++/47504
++// { dg-options -std=c++0x }
++
++char constexpr sub(char arg)
++{ return char(arg - char(1)); }
++
++int main()
++{ static char constexpr m = sub(-1); }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-recursion.C	2011-03-29 14:24:42.977146000 +0000
+@@ -0,0 +1,5 @@
++// Test that we catch excessive recursion.
++// { dg-options "-std=c++0x -fconstexpr-depth=5" }
++// { dg-prune-output "in constexpr expansion" }
++constexpr int f (int i) { return f (i-1); }
++constexpr int i = f(42);	// { dg-error "constexpr evaluation depth" }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C	2011-04-13 15:47:40.086398000 +0000
+@@ -0,0 +1,34 @@
++// PR c++/48570
++// { dg-do run }
++// { dg-options "-std=c++0x" }
++
++extern "C" void abort ();
++constexpr wchar_t foo (int i) { return L"0123"[i]; }
++constexpr char16_t bar (int i) { return u"0123"[i]; }
++constexpr char32_t baz (int i) { return U"0123"[i]; }
++const wchar_t foo0 = foo (0);
++const wchar_t foo1 = foo (1);
++const wchar_t foo2 = foo (2);
++const wchar_t foo3 = foo (3);
++const wchar_t foo4 = foo (4);
++const char16_t bar0 = bar (0);
++const char16_t bar1 = bar (1);
++const char16_t bar2 = bar (2);
++const char16_t bar3 = bar (3);
++const char16_t bar4 = bar (4);
++const char32_t baz0 = baz (0);
++const char32_t baz1 = baz (1);
++const char32_t baz2 = baz (2);
++const char32_t baz3 = baz (3);
++const char32_t baz4 = baz (4);
++
++int
++main ()
++{
++  if (foo0 != L'0' || foo1 != L'1' || foo2 != L'2' || foo3 != L'3' || foo4 != L'\0')
++    abort ();
++  if (bar0 != u'0' || bar1 != u'1' || bar2 != u'2' || bar3 != u'3' || bar4 != u'\0')
++    abort ();
++  if (baz0 != U'0' || baz1 != U'1' || baz2 != U'2' || baz3 != U'3' || baz4 != U'\0')
++    abort ();
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C	2011-04-13 15:47:40.086398000 +0000
+@@ -0,0 +1,7 @@
++// PR c++/48570
++// { dg-do compile }
++// { dg-options -std=c++0x }
++
++constexpr wchar_t c1 = L"hi"[3];	// { dg-error "out of bound" }
++constexpr char16_t c2 = u"hi"[3];	// { dg-error "out of bound" }
++constexpr char32_t c3 = U"hi"[3];	// { dg-error "out of bound" }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/defaulted24.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/defaulted24.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/defaulted24.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/defaulted24.C	2011-03-31 20:33:07.952847000 +0000
+@@ -0,0 +1,6 @@
++// PR c++/48280
++// { dg-options -std=c++0x }
++
++struct S {
++  template < typename > S (const S &) = default; // { dg-error "" }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/dependent1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/dependent1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/dependent1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/dependent1.C	2011-03-29 18:47:47.285863000 +0000
+@@ -0,0 +1,25 @@
++// PR c++/48319
++// { dg-options -std=c++0x }
++// We were failing to recognize declval<_Args1> as dependent.
++
++template<typename Tp> Tp declval() noexcept;
++
++template<typename _Tp>
++class __is_constructible_helper
++{
++  typedef char __one;
++  typedef struct { char __arr[2]; } __two;
++
++  template<typename _Tp1, typename... _Args1>
++  static decltype(_Tp1(declval<_Args1>()...), __one()) __test(int);
++
++  template<typename, typename...>
++  static __two __test(...);
++
++public:
++  static const bool __value = sizeof(__test<_Tp>(0)) == 1;
++};
++
++int main() {
++  return __is_constructible_helper<int>::__value;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/elision2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/elision2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/elision2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/elision2.C	2011-03-29 14:25:10.162719000 +0000
+@@ -0,0 +1,13 @@
++// Core 1148: should be able to move from value parameter on return
++// { dg-options -std=c++0x }
++
++struct A
++{
++  A(const A&) = delete;
++  A(A&&);
++};
++
++A f (A a)
++{
++  return a;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/enum10.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/enum10.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/enum10.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/enum10.C	2011-04-12 00:20:32.250766000 +0000
+@@ -0,0 +1,9 @@
++// PR c++/48534
++// { dg-options -std=c++0x }
++
++enum class OpSE : bool;
++
++int main()
++{
++  return static_cast<bool>(OpSE());
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/enum9.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/enum9.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/enum9.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/enum9.C	2011-04-08 15:01:50.477968000 +0000
+@@ -0,0 +1,5 @@
++// { dg-options -std=c++0x }
++
++enum class E { };
++E f();
++bool b2 = static_cast<bool>(f());
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist-array2.C	2011-03-29 14:26:10.694009000 +0000
+@@ -0,0 +1,12 @@
++// { dg-options -std=c++0x }
++
++typedef int IA[2];
++typedef double DA[2];
++
++void f(const IA&) { }
++void f(const DA&);
++
++int main()
++{
++  f({1,2});
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist-arrray1.C	2011-03-29 14:26:00.889803000 +0000
+@@ -0,0 +1,5 @@
++// { dg-options -std=c++0x }
++
++typedef int IRT[2];
++
++const IRT& ir = IRT{1,2};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist46.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist46.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist46.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist46.C	2011-03-30 18:05:43.644460000 +0000
+@@ -0,0 +1,14 @@
++// PR c++/48281
++// { dg-options "-std=c++0x -O2" }
++// { dg-do run }
++
++#include <initializer_list>
++
++typedef std::initializer_list<int>  int1;
++typedef std::initializer_list<int1> int2;
++static int2 ib = {{42,2,3,4,5},{2,3,4,5,1},{3,4,5,2,1}};
++
++int main()
++{
++  return *(ib.begin()->begin()) != 42;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist47.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist47.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist47.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist47.C	2011-04-21 04:27:30.081275000 +0000
+@@ -0,0 +1,9 @@
++// { dg-options -std=c++0x }
++
++struct A { ~A() = delete; };	// { dg-error "declared" }
++
++int main()
++{
++  typedef const A cA[2];
++  cA{};				// { dg-error "deleted" }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist48.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist48.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/initlist48.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/initlist48.C	2011-04-26 23:42:50.605125000 +0000
+@@ -0,0 +1,11 @@
++// PR c++/48726
++// { dg-options -std=c++0x }
++
++#include <memory>
++
++struct Foo{
++    int i;
++};
++typedef std::unique_ptr<Foo> up;
++
++std::initializer_list<up> il{up{new Foo}, up{new Foo}};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this4.C	2011-04-12 00:20:18.545735000 +0000
+@@ -0,0 +1,13 @@
++// PR c++/48523
++// { dg-options -std=c++0x }
++
++template<typename>
++struct X
++{
++  bool b;
++
++  void f()
++  {
++    [this]{ return b; };
++  }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/move1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/move1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/move1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/move1.C	2011-03-29 14:25:51.070918000 +0000
+@@ -0,0 +1,15 @@
++// { dg-options "-std=c++0x -pedantic-errors" }
++
++#include <utility>
++
++class A { };
++
++static void g ( A && ) { }
++
++template < class T > class B {
++public:
++ void f ( ) {
++  A a;
++  g ( std :: move ( a ) );
++ }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/noexcept02.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/noexcept02.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/noexcept02.C	2010-06-04 21:21:23.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/noexcept02.C	2011-04-08 15:02:16.658686000 +0000
+@@ -46,7 +46,9 @@
+ template <class T1, class T2>
+ void f (T1, T2) noexcept(noexcept(T1(), T2()));
+ 
+-SA(noexcept(f3(1,1)));
++struct B { };
++
++SA(noexcept(f3(1,B())));
+ SA(!noexcept(f3(1,A())));
+ SA(!noexcept(f3(A(),1)));
+ SA(!noexcept(f3(A(),A())));
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/pr48522.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/pr48522.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/pr48522.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/pr48522.C	2011-05-09 23:24:21.367834000 +0000
+@@ -0,0 +1,24 @@
++// { dg-options "-std=c++0x" }
++
++template <typename T>
++struct Handle
++{
++    Handle(T& t);
++};
++
++template<class T>
++struct Class {
++    struct Struct {} data;
++    void f();
++    void g();
++};
++
++template<class T>
++void Class<T>::f() {
++    Handle< decltype((data)) > handle(data);
++}
++
++template<class T>
++void Class<T>::g() {
++    Handle< decltype((data)) > handle(data);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/call1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/call1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/call1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/call1.C	2011-04-08 15:02:28.454441000 +0000
+@@ -0,0 +1,13 @@
++// PR c++/48500
++// { dg-options -std=c++0x }
++
++struct linked_ptr {
++};
++template <typename T> linked_ptr make_linked_ptr(T* ptr);
++struct Concrete;
++struct NewedClass {
++  NewedClass(const Concrete& req){}
++};
++template<typename ArgT> void AddObjToChange(const ArgT& req) {
++  linked_ptr p = make_linked_ptr(new NewedClass(req));
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C	2011-03-30 20:29:43.717277000 +0000
+@@ -0,0 +1,9 @@
++// PR c++/48212
++// { dg-options -std=c++0x }
++
++template < bool > void
++foo ()
++{
++  const bool b =;		// { dg-error "" }
++  foo < b > ();			// { dg-error "constant expression" }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/isnan.C	2011-03-30 19:50:17.340645000 +0000
+@@ -0,0 +1,9 @@
++// PR c++/48369
++// { dg-options -std=gnu++0x }
++
++extern "C" int isnan (double);
++
++void f(double d)
++{
++    bool b = isnan(d);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/template-const2.C	2011-04-25 21:53:57.607248000 +0000
+@@ -0,0 +1,14 @@
++// PR c++/48707
++// { dg-options -std=c++0x }
++
++struct A {
++  static int a();
++};
++
++template<typename X>
++struct B: A {
++  static int const b;
++};
++
++template<typename X>
++int const B<X>::b=B<X>::a();
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C	2011-03-30 02:16:37.202786000 +0000
+@@ -0,0 +1,7 @@
++// PR c++/48265
++// { dg-options -std=c++0x }
++
++template < int > struct S
++{
++  S () { const int i = i; i; };
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C	2011-03-29 14:25:22.277919000 +0000
+@@ -0,0 +1,18 @@
++// PR c++/48313
++// { dg-options -std=c++0x }
++
++template<typename F>
++void f(F&&) { }
++
++void g() { }
++
++template<typename T> void h() { }
++
++int main()
++{
++  f( g );       // OK
++  void (&p)() = h<int>;
++  f( p );       // OK
++  f( h<int> );  // ???
++}
++
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae10.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae10.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae10.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae10.C	2011-04-09 19:04:11.295490000 +0000
+@@ -0,0 +1,16 @@
++// PR c++/48452
++// { dg-options -std=c++0x }
++namespace std {
++  template <class T> T&& declval();
++}
++
++template<class T, class... Args>
++decltype(T(std::declval<Args>()...), char()) f(int);
++
++template<class, class...>
++char (&f(...))[2];
++
++struct B {};
++
++static_assert(sizeof(f<B, void, int>(0)) != 1, "Error"); // b
++static_assert(sizeof(f<void, int, int>(0)) != 1, "Error"); // c
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae11.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae11.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae11.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae11.C	2011-04-08 15:02:16.658686000 +0000
+@@ -0,0 +1,56 @@
++// PR c++/48468
++// { dg-options -std=c++0x }
++// { dg-prune-output "note" }
++
++template<class T>
++T&& declval() noexcept;
++
++template< class T >
++inline void f1( T& x ) noexcept( noexcept( declval<T&>().foo() ) )
++{
++  x.foo();
++}
++
++template< class T,
++  bool Noexcept = noexcept( declval<T&>().foo() )
++>
++inline void f2( T& x ) noexcept( Noexcept )
++{
++  x.foo();
++}
++
++// a common and trivial mistake
++template< class T >
++inline void f3( T& x ) noexcept( declval<T&>().foo() )
++{
++  x.foo();
++}
++
++struct X
++{
++  void foo();
++};
++
++struct Y
++{
++  void foo() noexcept;
++};
++
++struct Z {};
++
++int main()
++{
++  X x; Y y; Z z;
++
++  static_assert( !noexcept( f1(x) ), "OK." );
++  static_assert( !noexcept( f2(x) ), "OK." );
++  // static_assert( !noexcept( f3(x) ), "shall be ill-formed(OK)." );
++
++  static_assert(  noexcept( f1(y) ), "OK." );
++  static_assert(  noexcept( f2(y) ), "OK." );
++  // static_assert(  noexcept( f3(y) ), "shall be ill-formed(OK)." );
++
++  static_assert(  noexcept( f1(z) ), "shall be ill-formed." ); // { dg-error "no match" }
++  static_assert(  noexcept( f2(z) ), "shall be ill-formed." ); // { dg-error "no match" }
++  static_assert( !noexcept( f3(z) ), "shall be ill-formed." ); // { dg-error "no match" }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae7.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae7.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/sfinae7.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/sfinae7.C	2011-04-08 15:02:00.188423000 +0000
+@@ -0,0 +1,20 @@
++// { dg-options -std=c++0x }
++
++struct A
++{
++  void f();
++  void f(int);
++  typedef int g;
++};
++
++template <class T> decltype (T::f) f();
++template <class T> void f();
++
++template <class T> decltype (T::g) g();
++template <class T> void g();
++
++int main()
++{
++  f<A>();
++  g<A>();
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/union4.C gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/union4.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/cpp0x/union4.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/cpp0x/union4.C	2011-04-18 23:29:30.549099000 +0000
+@@ -0,0 +1,17 @@
++// PR c++/48537
++// { dg-options -std=c++0x }
++
++struct SFoo
++{
++  SFoo() =delete;		// { dg-error "declared" }
++};
++
++union UFoo			// { dg-error "deleted" }
++{
++  SFoo foo;
++};
++
++int main()
++{
++  UFoo();			// { dg-error "deleted" }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/ext/complex7.C gcc-4.6.0/gcc/testsuite/g++.dg/ext/complex7.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/ext/complex7.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/ext/complex7.C	2011-04-20 06:31:51.769604000 +0000
+@@ -0,0 +1,6 @@
++// { dg-options "" }
++
++class A
++{
++  static const _Complex double x = 1.0 + 2.0i;
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/ext/vla10.C gcc-4.6.0/gcc/testsuite/g++.dg/ext/vla10.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/ext/vla10.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/ext/vla10.C	2011-05-06 21:58:30.234668000 +0000
+@@ -0,0 +1,32 @@
++// PR c++/48446
++// { dg-options "" }
++
++template<typename T>
++struct A
++{
++  ~A ();
++  T *operator-> () const;
++};
++
++struct B
++{
++  typedef A <B> P;
++  static P foo (int);
++};
++
++struct C
++{
++  typedef A<C> P;
++  static const int c = 80;
++};
++
++C::P bar ();
++
++void
++baz ()
++{
++  char z[bar ()->c];
++  {
++    B::P m = B::foo (sizeof (z));
++  }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/gomp/pr48632.C gcc-4.6.0/gcc/testsuite/g++.dg/gomp/pr48632.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/gomp/pr48632.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/gomp/pr48632.C	2011-04-18 21:56:12.983838000 +0000
+@@ -0,0 +1,22 @@
++// PR c++/48632
++// { dg-do compile }
++// { dg-options "-fopenmp" }
++
++template<typename T>
++void
++foo (T *x, T *y, unsigned z)
++{
++#pragma omp parallel for
++  for (T *p = x; p < y; p += z)
++    ;
++#pragma omp parallel for
++  for (T *p = y; p > x; p -= z)
++    ;
++}
++
++int
++main ()
++{
++  char buf[10];
++  foo (&buf[0], &buf[9], 1);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/gomp/pr48716.C gcc-4.6.0/gcc/testsuite/g++.dg/gomp/pr48716.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/gomp/pr48716.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/gomp/pr48716.C	2011-04-22 14:11:44.240476000 +0000
+@@ -0,0 +1,24 @@
++// PR c/48716
++// { dg-do compile }
++// { dg-options "-fopenmp" }
++
++int
++main (void)
++{
++  #pragma omp parallel default(none)
++  {
++    static int s;
++    int t = 0;
++    #pragma omp atomic
++    s++;
++    t++;
++  }
++  #pragma omp task default(none)
++  {
++    static int s;
++    int t = 0;
++    #pragma omp atomic
++    s++;
++    t++;
++  }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/guality/guality.exp gcc-4.6.0/gcc/testsuite/g++.dg/guality/guality.exp
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/guality/guality.exp	2010-07-16 20:35:16.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/guality/guality.exp	2011-03-28 16:46:27.305053000 +0000
+@@ -4,7 +4,8 @@
+ load_lib gcc-gdb-test.exp
+ 
+ # Disable on darwin until radr://7264615 is resolved.
+-if { [istarget *-*-darwin*] } {
++# Disable on Tru64 UNIX (PR testsuite/48251).
++if { [istarget *-*-darwin*] || [istarget alpha*-dec-osf*] } {
+   return
+ }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/init/new30.C gcc-4.6.0/gcc/testsuite/g++.dg/init/new30.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/init/new30.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/init/new30.C	2011-05-05 21:02:06.894116000 +0000
+@@ -0,0 +1,15 @@
++// PR c++/40975
++
++struct data_type
++{
++    // constructor required to reproduce compiler bug
++    data_type() {}
++};
++
++struct ptr_type
++{
++    // array new as default argument required to reproduce compiler bug
++    ptr_type (data_type* ptr = new data_type[1]) { delete[] ptr; }
++};
++
++ptr_type obj;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/init/pr48859.C gcc-4.6.0/gcc/testsuite/g++.dg/init/pr48859.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/init/pr48859.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/init/pr48859.C	2011-05-11 06:03:38.016847000 +0000
+@@ -0,0 +1,14 @@
++// PR c++/48859
++// { dg-do compile }
++
++struct HasConstructor {
++  HasConstructor() {}
++};
++
++class ConstMember {
++  const HasConstructor empty_;
++};
++
++void foo() {
++  new ConstMember;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/lookup/koenig13.C gcc-4.6.0/gcc/testsuite/g++.dg/lookup/koenig13.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/lookup/koenig13.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/lookup/koenig13.C	2011-04-27 05:20:06.025460000 +0000
+@@ -0,0 +1,16 @@
++// PR c++/42687
++// DR 705
++
++namespace N
++{
++    struct S { };
++    void f(const S &) { }
++}
++
++void f(const N::S &) { }
++
++int main()
++{
++    N::S v;
++    (f)(v); // no ambiguity: ADL is prevented with (), only ::f is considered
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/opt/pr48549.C gcc-4.6.0/gcc/testsuite/g++.dg/opt/pr48549.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/opt/pr48549.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/opt/pr48549.C	2011-04-12 13:44:33.209292000 +0000
+@@ -0,0 +1,63 @@
++// PR rtl-optimization/48549
++// { dg-do compile }
++// { dg-options "-fcompare-debug -O2" }
++
++void
++foo (void *from, void *to)
++{
++  long offset = reinterpret_cast <long>(to) - reinterpret_cast <long>(from);
++  if (offset != static_cast <int>(offset))
++    *(int *) 0xC0DE = 0;
++  reinterpret_cast <int *>(from)[1] = offset;
++}
++struct A
++{
++  A () : a () {}
++  A (void *x) : a (x) {}
++  void *bar () { return a; }
++  void *a;
++};
++struct C;
++struct D;
++struct E : public A
++{
++  C m1 (int);
++  D m2 ();
++  E () {}
++  E (A x) : A (x) {}
++};
++struct C : public E
++{
++  C () {}
++  C (void *x) : E (x) {}
++};
++struct D : public E
++{
++  D (void *x) : E (x) {}
++};
++C
++E::m1 (int x)
++{
++  return (reinterpret_cast <char *>(bar ()) + x);
++}
++D
++E::m2 ()
++{
++  return reinterpret_cast <char *>(bar ());
++}
++struct B
++{
++  E a;
++  unsigned b : 16;
++  unsigned c : 1;
++};
++void
++baz (B *x)
++{
++  for (unsigned i = 0; i < 64; i++)
++    {
++      D d = x[i].a.m2 ();
++      C c = x[i].a.m1 (x[i].c);
++      foo (d.bar (), c.bar ());
++    }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/opt/pr48967.C gcc-4.6.0/gcc/testsuite/g++.dg/opt/pr48967.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/opt/pr48967.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/opt/pr48967.C	2011-05-12 11:59:32.631940000 +0000
+@@ -0,0 +1,98 @@
++// PR debug/48967
++// { dg-do compile }
++// { dg-options "-g -O2" }
++
++template <typename> struct A;
++template <typename T> struct A <T *>
++{
++  typedef T ref;
++};
++template <typename T, typename> struct B
++{
++  typedef A <T> t;
++  typedef typename t::ref ref;
++  ref operator * () { return ref (); }
++};
++template <typename T> struct I
++{
++  typedef T *cp;
++  template <typename T1> struct J
++  {
++    typedef I <T1> other;
++  };
++};
++template <typename T> struct S : public I <T>
++{
++};
++template <typename T, typename _A> struct E
++{
++  typedef typename _A::template J <T>::other at;
++};
++template <typename T, typename _A = S <T> > struct D
++{
++  typedef E <T, _A> _Base;
++  typedef typename _Base::at at;
++  typedef typename at::cp cp;
++  typedef B <cp, D> H;
++};
++template <class T> struct F
++{
++  T *operator -> () { return __null; }
++};
++template <typename T> long
++lfloor (T x)
++{
++  return static_cast <long>(x) - (x && x != static_cast <long>(x));
++}
++template <typename T> long
++lround (T x)
++{
++  return lfloor (x - 0.5) + 1;
++}
++class M;
++template <typename> class P;
++typedef P <M> Q;
++template <typename> struct P
++{
++  float x ();
++};
++struct CV
++{
++  Q c;
++};
++struct C
++{
++  void foo (const CV &) const;
++  class O;
++  typedef D <F <O> > R;
++  R n;
++};
++struct S3
++{
++  S3 (int, int);
++};
++struct S2
++{
++  S3 sx, sy;
++  S2 (int x = 0, int y = 0, int s = 0, int t = 0) : sx (x, y), sy (s, t) {}
++};
++template <typename> struct N
++{
++  int bar ();
++};
++struct C::O
++{
++  N <float> o;
++  void foo (CV r, int)
++  {
++    Q c = r.c;
++    float t = 0.5 * (o.bar ());
++    S2 (lround (c.x ()), t);
++  }
++};
++void
++C::foo (const CV &w) const
++{
++  R::H m;
++  (*m)->foo (w, 8);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/other/i386-9.C gcc-4.6.0/gcc/testsuite/g++.dg/other/i386-9.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/other/i386-9.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/other/i386-9.C	2011-03-31 11:14:41.603032000 +0000
+@@ -0,0 +1,12 @@
++// PR target/48142
++// Testcase by Zdenek Sojka <zsojka@seznam.cz>
++
++// { dg-do run { target i?86-*-* x86_64-*-* } }
++// { dg-options "-Os -mpreferred-stack-boundary=5 -fstack-check -fno-omit-frame-pointer" }
++
++int main()
++{
++  try { throw 0; }
++  catch (...) {}
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/parse/ambig6.C gcc-4.6.0/gcc/testsuite/g++.dg/parse/ambig6.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/parse/ambig6.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/parse/ambig6.C	2011-04-27 15:57:06.718966000 +0000
+@@ -0,0 +1,12 @@
++// PR c++/48046
++
++namespace N1 { typedef int   T; } // { dg-error "" }
++namespace N2 { typedef float T; } // { dg-error "" }
++
++int main()
++{
++  using namespace N1;
++  using namespace N2;
++
++  static T t;			// { dg-error "" }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/parse/memfnquals1.C gcc-4.6.0/gcc/testsuite/g++.dg/parse/memfnquals1.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/parse/memfnquals1.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/parse/memfnquals1.C	2011-03-29 16:07:15.972474000 +0000
+@@ -0,0 +1,6 @@
++// PR c++/48166
++
++struct foo {
++  static void func ();
++};
++void foo::func () const {}	// { dg-error "type qualifiers" }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/const4.C gcc-4.6.0/gcc/testsuite/g++.dg/template/const4.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/const4.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/const4.C	2011-04-20 19:39:26.124076000 +0000
+@@ -0,0 +1,9 @@
++// PR c++/48657
++
++template<unsigned> struct A { typedef int T; };
++
++template<unsigned> void f()
++{
++  const unsigned D = 4;
++  A<D>::T t;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/dependent-expr7.C gcc-4.6.0/gcc/testsuite/g++.dg/template/dependent-expr7.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/dependent-expr7.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/dependent-expr7.C	2011-04-13 15:19:40.268469000 +0000
+@@ -0,0 +1,22 @@
++// Origin PR c++/48574
++// { dg-do compile }
++
++struct A
++{
++  virtual void foo();
++};
++
++template <typename T>
++void
++bar(T x)
++{
++  A &b = *x;
++  b.foo ();
++}
++
++void
++foo()
++{
++  A a;
++  bar(&a);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/dependent-expr8.C gcc-4.6.0/gcc/testsuite/g++.dg/template/dependent-expr8.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/dependent-expr8.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/dependent-expr8.C	2011-05-09 12:34:19.714405000 +0000
+@@ -0,0 +1,25 @@
++// Origin PR c++/48574
++// { dg-options "-std=c++0x" }
++// { dg-do compile }
++
++struct A
++{
++  virtual int foo();
++};
++
++void baz (int);
++
++template <typename T>
++void
++bar(T x)
++{
++  A &b = *x;
++  baz (b.foo ());
++}
++
++void
++foo()
++{
++  A a;
++  bar(&a);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/inherit7.C gcc-4.6.0/gcc/testsuite/g++.dg/template/inherit7.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/inherit7.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/inherit7.C	2011-04-28 19:46:34.343462000 +0000
+@@ -0,0 +1,21 @@
++// Origin: PR c++/48656
++// { dg-options "-std=c++0x" }
++// { dg-do compile }
++
++struct A {
++ int f();
++ int f(int);
++};
++
++template <typename> struct B : A
++{
++};
++
++template <typename T> struct C : B<T>
++{
++    void
++    g()
++    {
++        A::f();
++    }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/member9.C gcc-4.6.0/gcc/testsuite/g++.dg/template/member9.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/member9.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/member9.C	2011-05-06 08:34:10.904710000 +0000
+@@ -0,0 +1,21 @@
++// Origin PR c++/48838
++// { dg-do compile }
++
++class DUChainItemSystem
++{
++public:
++
++    template<class T>
++    void registerTypeClass();
++
++    static DUChainItemSystem& self();
++};
++
++template<class T>
++struct DUChainItemRegistrator
++{
++    DUChainItemRegistrator()
++    {
++        DUChainItemSystem::self().registerTypeClass<T>();
++    }
++};
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/operator11.C gcc-4.6.0/gcc/testsuite/g++.dg/template/operator11.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/template/operator11.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/template/operator11.C	2011-04-13 20:51:23.855260000 +0000
+@@ -0,0 +1,25 @@
++// PR c++/48594
++// Test for uses of (X->*Y)() that don't actually involve a
++// pointer to member function.
++
++struct A { } a;
++struct B { } b;
++struct C * cp;
++
++struct Func { void operator()(); };
++Func operator->* (A, int);
++
++typedef void (*pfn)();
++pfn operator->* (B, int);
++
++pfn C::*cpfn;
++Func C::*cfunc;
++
++template <class T>
++void f()
++{
++  (a->*1)();
++  (b->*1)();
++  (cp->*cpfn)();
++  (cp->*cfunc)();
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr46364.C gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr46364.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr46364.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr46364.C	2011-04-18 14:25:57.965089000 +0000
+@@ -0,0 +1,20 @@
++// { dg-do compile }
++#include <string>
++
++void a() throw (int);
++void b(std::string const &);
++
++void c(std::string *e)
++{
++  b("");
++
++  try {
++      a();
++  } catch (...) {
++      *e = "";
++  }
++}
++
++void d() {
++    c(0);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr48661.C gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr48661.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr48661.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr48661.C	2011-04-18 21:58:03.570372000 +0000
+@@ -0,0 +1,77 @@
++// PR middle-end/48661
++// { dg-do run }
++
++extern "C" void abort ();
++
++__attribute__((noinline))
++double
++foo (double x, double y)
++{
++  asm volatile ("" : : : "memory");
++  return x + y;
++}
++
++__attribute__((noinline, noclone))
++void
++bar (int x)
++{
++  if (x != 123)
++    abort ();
++}
++
++struct A
++{
++  double a1, a2;
++};
++
++struct B 
++{
++  virtual int m () const = 0 ;
++};
++
++struct C
++{
++  virtual ~C () {}
++};
++
++struct D : virtual public B, public C
++{ 
++  explicit D (const A &x) : d(123) { foo (x.a2, x.a1); }
++  int m () const { return d; }
++  int d;
++}; 
++
++struct E
++{
++  E () : d(0) {}
++  virtual void n (const B &x) { d = x.m (); x.m (); x.m (); }
++  int d;
++};
++
++void
++test ()
++{
++  A a;
++  a.a1 = 0;
++  a.a2 = 1;
++  E p;
++  D q (a);
++  const B &b = q;
++  bar (b.m ());
++  p.n (b);
++  bar (p.d);
++}
++
++void
++baz ()
++{
++  A a;
++  D p2 (a);
++}
++
++int
++main ()
++{
++  test ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr48695.C gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr48695.C
+--- gcc-4.6.0.orig/gcc/testsuite/g++.dg/torture/pr48695.C	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/g++.dg/torture/pr48695.C	2011-04-21 14:40:53.747428000 +0000
+@@ -0,0 +1,38 @@
++// { dg-do run }
++
++typedef __SIZE_TYPE__ size_t;
++
++inline void *operator new (size_t, void *__p) throw() { return __p; }
++
++struct _Vector_impl
++{
++  int *_M_start;
++  int *_M_finish;
++  _Vector_impl () :_M_start (0), _M_finish (0) {}
++};
++
++struct vector
++{
++  _Vector_impl _M_impl;
++  int *_M_allocate (size_t __n)
++  {
++    return __n != 0 ? new int[__n] : 0;
++  }
++  void push_back ()
++  {
++    new (this->_M_impl._M_finish) int ();
++    this->_M_impl._M_finish =
++      this->_M_allocate (this->_M_impl._M_finish - this->_M_impl._M_start) + 1;
++  }
++};
++
++int
++main ()
++{
++  for (int i = 0; i <= 1; i++)
++    for (int j = 0; j <= 1; j++)
++      {
++	vector a[2];
++	a[i].push_back ();
++      }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48335-1.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48335-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48335-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48335-1.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,41 @@
++/* PR middle-end/48335 */
++
++struct S { float d; };
++
++void bar (struct S);
++
++void
++f0 (int x)
++{
++  struct S s = {.d = 0.0f };
++  ((char *) &s.d)[0] = x;
++  s.d *= 7.0;
++  bar (s);
++}
++
++void
++f1 (int x)
++{
++  struct S s = {.d = 0.0f };
++  ((char *) &s.d)[1] = x;
++  s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (int x)
++{
++  struct S s = {.d = 0.0f };
++  ((char *) &s.d)[2] = x;
++  s.d *= 7.0;
++  bar (s);
++}
++
++void
++f3 (int x)
++{
++  struct S s = {.d = 0.0f };
++  ((char *) &s.d)[3] = x;
++  s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48517.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48517.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48517.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48517.c	2011-04-12 06:53:13.421559000 +0000
+@@ -0,0 +1,13 @@
++/* PR c/48517 */
++/* { dg-do compile } */
++/* { dg-options "" } */
++
++void bar (const unsigned short *);
++
++void
++foo (void)
++{
++  static const unsigned short array[] = (const unsigned short []) { 0x0D2B };
++  const unsigned short *ptr = array;
++  bar (ptr);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48734.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48734.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48734.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48734.c	2011-04-26 13:44:51.810726000 +0000
+@@ -0,0 +1,11 @@
++/* PR tree-optimization/48734 */
++
++unsigned int
++foo (int x, unsigned int y, unsigned int z)
++{
++  z &= (x == -__INT_MAX__ - 1 ? x : -x) > y;
++  z &= (x == -__INT_MAX__ - 1 ? x : -x) > y;
++  z &= (x == -__INT_MAX__ - 1 ? x : -x) > y;
++  z &= (x == -__INT_MAX__ - 1 ? x : -x) > y;
++  return z;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48742.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48742.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/compile/pr48742.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/compile/pr48742.c	2011-04-27 07:05:54.304227000 +0000
+@@ -0,0 +1,15 @@
++/* PR c/48742 */
++
++void baz (int);
++
++int
++foo (void)
++{
++  return 1 / 0 > 0;
++}
++
++void
++bar (void)
++{
++  baz (1 <= 2 % (3 >> 1 > 5 / 6 == 3));
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr42544.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr42544.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr42544.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr42544.c	2011-03-26 09:23:01.628648000 +0000
+@@ -0,0 +1,14 @@
++/* PR c/42544 */
++
++extern void abort (void);
++
++int
++main ()
++{
++  signed short s = -1;
++  if (sizeof (long long) == sizeof (unsigned int))
++    return 0;
++  if ((unsigned int) s >= 0x100000000ULL)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48197.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48197.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48197.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48197.c	2011-03-26 09:23:01.628648000 +0000
+@@ -0,0 +1,25 @@
++/* PR c/48197 */
++
++extern void abort (void);
++static int y = 0x8000;
++
++int
++main ()
++{
++  unsigned int x = (short)y;
++  if (sizeof (0LL) == sizeof (0U))
++    return 0;
++  if (0LL > (0U ^ (short)-0x8000))
++    abort ();
++  if (0LL > (0U ^ x))
++    abort ();
++  if (0LL > (0U ^ (short)y))
++    abort ();
++  if ((0U ^ (short)-0x8000) < 0LL)
++    abort ();
++  if ((0U ^ x) < 0LL)
++    abort ();
++  if ((0U ^ (short)y) < 0LL)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48717.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48717.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48717.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48717.c	2011-04-22 18:53:30.123145000 +0000
+@@ -0,0 +1,26 @@
++/* PR tree-optimization/48717 */
++
++extern void abort (void);
++
++int v = 1, w;
++
++unsigned short
++foo (unsigned short x, unsigned short y)
++{
++  return x + y;
++}
++
++void
++bar (void)
++{
++  v = foo (~w, w);
++}
++
++int
++main ()
++{
++  bar ();
++  if (v != (unsigned short) -1)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48809.c gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48809.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.c-torture/execute/pr48809.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.c-torture/execute/pr48809.c	2011-04-30 06:55:11.755353000 +0000
+@@ -0,0 +1,60 @@
++/* PR tree-optimization/48809 */
++
++extern void abort (void);
++
++int
++foo (signed char x)
++{
++  int y = 0;
++  switch (x)
++    {
++    case 0: y = 1; break;
++    case 1: y = 7; break;
++    case 2: y = 2; break;
++    case 3: y = 19; break;
++    case 4: y = 5; break;
++    case 5: y = 17; break;
++    case 6: y = 31; break;
++    case 7: y = 8; break;
++    case 8: y = 28; break;
++    case 9: y = 16; break;
++    case 10: y = 31; break;
++    case 11: y = 12; break;
++    case 12: y = 15; break;
++    case 13: y = 111; break;
++    case 14: y = 17; break;
++    case 15: y = 10; break;
++    case 16: y = 31; break;
++    case 17: y = 7; break;
++    case 18: y = 2; break;
++    case 19: y = 19; break;
++    case 20: y = 5; break;
++    case 21: y = 107; break;
++    case 22: y = 31; break;
++    case 23: y = 8; break;
++    case 24: y = 28; break;
++    case 25: y = 106; break;
++    case 26: y = 31; break;
++    case 27: y = 102; break;
++    case 28: y = 105; break;
++    case 29: y = 111; break;
++    case 30: y = 17; break;
++    case 31: y = 10; break;
++    case 32: y = 31; break;
++    case 98: y = 18; break;
++    case -62: y = 19; break;
++    }
++  return y;
++}
++
++int
++main ()
++{
++  if (foo (98) != 18 || foo (97) != 0 || foo (99) != 0)
++    abort ();
++  if (foo (-62) != 19 || foo (-63) != 0 || foo (-61) != 0)
++    abort ();
++  if (foo (28) != 105 || foo (27) != 102 || foo (29) != 111)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/20020312-2.c gcc-4.6.0/gcc/testsuite/gcc.dg/20020312-2.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/20020312-2.c	2010-01-20 14:17:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/20020312-2.c	2011-04-27 14:55:28.170311000 +0000
+@@ -58,6 +58,8 @@
+ # else
+ #  define PIC_REG  "30"
+ # endif
++#elif defined(__RX__)
++/* No pic register.  */
+ #elif defined(__s390__)
+ # define PIC_REG  "12"
+ #elif defined(__sparc__)
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c gcc-4.6.0/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/Wstrict-overflow-23.c	2011-03-28 10:14:34.889170000 +0000
+@@ -0,0 +1,31 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -Wstrict-overflow" } */
++
++unsigned int
++do_scrolling (unsigned int window_size, unsigned int writecost)
++{
++  unsigned int i = window_size;
++
++  int terminal_window_p = 0;
++  unsigned int queue = 0;
++
++  for (i = window_size; i; i--)
++    {
++      if (writecost < i)
++    ++queue;
++      else if (writecost & 1)
++    terminal_window_p = 1;
++    }
++
++  if (queue > 0)
++    {
++      if (!terminal_window_p)
++    {
++      terminal_window_p = 1;
++    }
++    }
++
++  if (terminal_window_p)
++    return 100;
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/builtin-object-size-10.c gcc-4.6.0/gcc/testsuite/gcc.dg/builtin-object-size-10.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/builtin-object-size-10.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/builtin-object-size-10.c	2011-03-28 10:14:34.889170000 +0000
+@@ -0,0 +1,26 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fdump-tree-objsz-details" } */
++
++typedef struct {
++    char sentinel[4];
++    char data[0];
++} drone_packet;
++typedef struct {
++    char type_str[16];
++    char channel_hop;
++} drone_source_packet;
++drone_packet *
++foo(char *x)
++{
++  drone_packet *dpkt = __builtin_malloc(sizeof(drone_packet)
++					+ sizeof(drone_source_packet));
++  drone_source_packet *spkt = (drone_source_packet *) dpkt->data;
++  __builtin___snprintf_chk (spkt->type_str, 16,
++			    1, __builtin_object_size (spkt->type_str, 1),
++			    "%s", x);
++  return dpkt;
++}
++
++/* { dg-final { scan-tree-dump "maximum object size 21" "objsz" } } */
++/* { dg-final { scan-tree-dump "maximum subobject size 16" "objsz" } } */
++/* { dg-final { cleanup-tree-dump "objsz" } } */
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/dfp/pr48204.c gcc-4.6.0/gcc/testsuite/gcc.dg/dfp/pr48204.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/dfp/pr48204.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/dfp/pr48204.c	2011-03-26 09:24:06.569126000 +0000
+@@ -0,0 +1,10 @@
++/* PR debug/48204 */
++/* { dg-do compile } */
++/* { dg-options "-O -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-fre -g" } */
++
++void
++foo (void)
++{
++  float cf = 3.0f;
++  _Decimal64 d64 = cf;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/gomp/pr48591.c gcc-4.6.0/gcc/testsuite/gcc.dg/gomp/pr48591.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/gomp/pr48591.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/gomp/pr48591.c	2011-04-13 15:52:17.795243000 +0000
+@@ -0,0 +1,22 @@
++/* PR middle-end/48591 */
++/* { dg-do compile { target i?86-*-* x86_64-*-* ia64-*-* } } */
++/* { dg-options "-fopenmp" } */
++
++extern void abort (void);
++
++int
++main ()
++{
++  __float128 f = 0.0;
++  int i;
++  #pragma omp parallel for reduction(+:f)
++    for (i = 0; i < 128; i++)
++      f += 0.5Q;
++  if (f != 64.0Q)
++    abort ();
++  #pragma omp atomic
++    f += 8.5Q;
++  if (f != 72.5Q)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/gomp/pr48716.c gcc-4.6.0/gcc/testsuite/gcc.dg/gomp/pr48716.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/gomp/pr48716.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/gomp/pr48716.c	2011-04-22 14:11:44.240476000 +0000
+@@ -0,0 +1,24 @@
++/* PR c/48716 */
++/* { dg-do compile } */
++/* { dg-options "-fopenmp" } */
++
++int
++main (void)
++{
++  #pragma omp parallel default(none)
++  {
++    static int s;
++    int t = 0;
++    #pragma omp atomic
++    s++;
++    t++;
++  }
++  #pragma omp task default(none)
++  {
++    static int s;
++    int t = 0;
++    #pragma omp atomic
++    s++;
++    t++;
++  }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/guality/pr36977.c gcc-4.6.0/gcc/testsuite/gcc.dg/guality/pr36977.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/guality/pr36977.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/guality/pr36977.c	2011-04-06 20:40:24.221480000 +0000
+@@ -0,0 +1,32 @@
++/* PR debug/36977 */
++/* { dg-do run } */
++/* { dg-options "-g" } */
++/* { dg-skip-if "" { *-*-* }  { "*" } { "-O0" } } */
++
++void
++foo ()
++{
++}
++
++int
++main ()
++{
++  struct { char c[100]; } cbig;
++  struct { int i[800]; } ibig;
++  struct { long l[900]; } lbig;
++  struct { float f[200]; } fbig;
++  struct { double d[300]; } dbig;
++  struct { short s[400]; } sbig;
++
++  ibig.i[0] = 55;		/* { dg-final { gdb-test 30 "ibig.i\[0\]" "55" } } */
++  ibig.i[100] = 5;		/* { dg-final { gdb-test 30 "ibig.i\[100\]" "5" } } */
++  cbig.c[0] = '\0';		/* { dg-final { gdb-test 30 "cbig.c\[0\]" "'\\0'" } } */
++  cbig.c[99] = 'A';		/* { dg-final { gdb-test 30 "cbig.c\[99\]" "'A'" } } */
++  fbig.f[100] = 11.0;		/* { dg-final { gdb-test 30 "fbig.f\[100\]" "11" } } */
++  dbig.d[202] = 9.0;		/* { dg-final { gdb-test 30 "dbig.d\[202\]" "9" } } */
++  sbig.s[90] = 255;		/* { dg-final { gdb-test 30 "sbig.s\[90\]" "255" } } */
++  lbig.l[333] = 999;		/* { dg-final { gdb-test 30 "lbig.l\[333\]" "999" } } */
++
++  foo ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/guality/pr48466.c gcc-4.6.0/gcc/testsuite/gcc.dg/guality/pr48466.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/guality/pr48466.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/guality/pr48466.c	2011-04-06 20:40:24.221480000 +0000
+@@ -0,0 +1,41 @@
++/* PR debug/48466 */
++/* { dg-do run } */
++/* { dg-options "-g" } */
++/* { dg-skip-if "" { *-*-* }  { "*" } { "-O0" } } */
++
++struct S { unsigned int a; unsigned int *b; };
++struct T { struct S a; struct S b; };
++struct U { const char *u; };
++int n[10];
++volatile int v;
++
++struct U
++foo (const char *s)
++{
++  struct U r;
++  r.u = s;
++  return r;
++}
++
++void
++bar (struct T *s, int a, int b)
++{
++  s->a.a = a;
++  s->a.b = &s->a.a;
++  s->b.a = b;
++  s->b.b = &s->b.a;
++}
++
++int
++main ()
++{
++  struct T t;
++  struct U x = foo ("this is x");
++  struct S y, z;
++  y.b = n;		/* { dg-final { gdb-test 38 "t.a.a" "17" } } */
++  y.a = 0;		/* { dg-final { gdb-test 38 "*t.a.b" "17" } } */
++  bar (&t, 17, 21);	/* { dg-final { gdb-test 38 "t.b.a" "21" } } */
++  v++;			/* { dg-final { gdb-test 38 "*t.b.b" "21" } } */
++  z = y;
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/ipa/pr48195.c gcc-4.6.0/gcc/testsuite/gcc.dg/ipa/pr48195.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/ipa/pr48195.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/ipa/pr48195.c	2011-04-12 18:31:55.325180000 +0000
+@@ -0,0 +1,24 @@
++/* { dg-do link } */
++/* { dg-options "-O2 -flto --param partial-inlining-entry-probability=101" } */
++
++extern void abort(void);
++
++int i;
++
++void __attribute__ ((constructor))
++c2 ()
++{
++  if (i)
++    abort ();
++}
++
++void __attribute__ ((destructor))
++d1 ()
++{
++  if (i)
++    abort ();
++}
++
++void main ()
++{
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48134.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48134.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48134.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48134.c	2011-03-28 10:14:34.889170000 +0000
+@@ -0,0 +1,31 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -fstack-check=specific -fno-tree-dse -fno-tree-fre -fno-tree-loop-optimize -g" } */
++
++struct S
++{
++  int w, z;
++};
++struct T
++{
++  struct S s;
++};
++
++int i;
++
++static inline struct S
++bar (struct S x)
++{
++  i++;
++  return x;
++}
++
++int
++foo (struct T t, struct S s)
++{
++  struct S *c = &s;
++  if (i)
++    c = &t.s;
++  t.s.w = 3;
++  s = bar (*c);
++  return t.s.w;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48141.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48141.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48141.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48141.c	2011-03-26 09:19:36.537496000 +0000
+@@ -0,0 +1,17 @@
++/* PR rtl-optimization/48141 */
++/* { dg-do compile } */
++/* { dg-options "-O" } */
++
++#define A i = 0;
++#define B A A A A A A A A A A
++#define C B B B B B B B B B B
++#define D C C C C C C C C C C
++#define E D D D D D D D D D D
++
++int
++foo (void)
++{
++  volatile int i = 0;
++  E E E E E E E E E E E
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48144.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48144.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48144.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48144.c	2011-04-07 12:07:24.807359000 +0000
+@@ -0,0 +1,16 @@
++/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
++/* { dg-options "-O -frerun-cse-after-loop -fschedule-insns2 -fselective-scheduling2 -fno-tree-ch -funroll-loops --param=max-sched-extend-regions-iters=2 --param=max-sched-region-blocks=15" } */
++extern void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n);
++
++void bar (void *, void *, void *);
++
++void foo
++  (void *p, char *data, unsigned data_len)
++{
++  int buffer[8];
++  int buf2[8];
++  unsigned i;
++  for (i = 0; i + 8 <= data_len; i += 8)
++    bar (p, buffer, data + i);
++  memcpy (buf2, data + i, data_len);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48156.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48156.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48156.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48156.c	2011-03-26 09:21:34.659334000 +0000
+@@ -0,0 +1,45 @@
++/* PR rtl-optimization/48156 */
++/* { dg-do run } */
++/* { dg-options "-O -fcrossjumping --param min-crossjump-insns=1" } */
++
++extern void abort (void);
++
++static int __attribute__ ((noinline, noclone))
++equals (int s1, int s2)
++{
++  return s1 == s2;
++}
++
++static int __attribute__ ((noinline, noclone))
++bar (void)
++{
++  return 1;
++}
++
++static void __attribute__ ((noinline, noclone))
++baz (int f, int j)
++{
++  if (f != 4 || j != 2)
++    abort ();
++}
++
++void
++foo (int x)
++{
++  int i = 0, j = bar ();
++
++  if (x == 1)
++    i = 2;
++
++  if (j && equals (i, j))
++    baz (8, i);
++  else
++    baz (4, i);
++}
++
++int
++main ()
++{
++  foo (1);
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48159-1.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48159-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48159-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48159-1.c	2011-05-11 13:07:54.877914000 +0000
+@@ -0,0 +1,10 @@
++/* PR debug/48159 */
++/* { dg-do compile } */
++/* { dg-options "-O3 -fcompare-debug" } */
++
++void
++foo (double x, int y, double *__restrict z, double *__restrict w)
++{
++  while (y--)
++    *z++ = (*w++ = 0) * x;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48159-2.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48159-2.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48159-2.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48159-2.c	2011-05-11 13:07:54.877914000 +0000
+@@ -0,0 +1,22 @@
++/* PR debug/48159 */
++/* { dg-do compile } */ 
++/* { dg-options "-O2 -ftree-loop-distribution -fcompare-debug" } */
++
++int foo (int * __restrict__ ia, int * __restrict__ ib,
++	 int * __restrict__ oxa, int * __restrict__ oxb)
++{
++  int i;
++  int oya[52], oyb[52];
++  for (i = 0; i < 52; i++)
++    {
++      int w1 = ia[i];
++      int w2 = oxa[i];
++      int w3 = ib[i];
++      int w4 = oxb[i];
++      int w5 = w1 + w2 + 5;
++      oya[i] = (w1 * w2) >> 10;
++      int w6 = w3 + w4 + 6;
++      oyb[i] = (w3 * w4) >> 10;
++    }
++  return oya[22] + oyb[21];
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-1.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-1.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,48 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef long long T __attribute__((may_alias));
++
++struct S
++{
++  _Complex float d __attribute__((aligned (8)));
++};
++
++void bar (struct S);
++
++void
++f1 (T x)
++{
++  struct S s;
++  *(T *) &s.d = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (int x)
++{
++  struct S s = { .d = 0.0f };
++  *(char *) &s.d = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f3 (int x)
++{
++  struct S s = { .d = 0.0f };
++  ((char *) &s.d)[2] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f4 (int x, int y)
++{
++  struct S s = { .d = 0.0f };
++  ((char *) &s.d)[y] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-2.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-2.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-2.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-2.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,58 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef long long T __attribute__((may_alias, aligned (1)));
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  _Complex float d __attribute__((aligned (8)));
++};
++
++void bar (struct S);
++
++void
++f1 (T x)
++{
++  struct S s;
++  *(T *) ((char *) &s.d + 1) = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (int x)
++{
++  struct S s = { .d = 0.0f };
++  ((U *)((char *) &s.d + 1))[0] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f3 (int x)
++{
++  struct S s = { .d = 0.0f };
++  ((U *)((char *) &s.d + 1))[1] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f4 (int x)
++{
++  struct S s = { .d = 0.0f };
++  ((U *)((char *) &s.d + 1))[2] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f5 (int x)
++{
++  struct S s = { .d = 0.0f };
++  ((U *)((char *) &s.d + 1))[3] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-3.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-3.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-3.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-3.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,48 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  double d;
++};
++
++void bar (struct S);
++
++void
++f1 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[0] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[1] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f3 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[2] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f4 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[3] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-4.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-4.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-4.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-4.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,39 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  double d;
++};
++
++void bar (struct S);
++
++void
++f1 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[-1] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[-2] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f3 (int x)
++{
++  struct S s = { .d = 0.0 };
++  ((U *)((char *) &s.d + 1))[5] = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-5.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-5.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-5.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-5.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,38 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef long long T __attribute__((may_alias));
++
++struct S
++{
++  _Complex float d __attribute__((aligned (8)));
++};
++
++int
++f1 (struct S x)
++{
++  struct S s = x;
++  return *(T *) &s.d;
++}
++
++int
++f2 (struct S x)
++{
++  struct S s = x;
++  return *(char *) &s.d;
++}
++
++int
++f3 (struct S x)
++{
++  struct S s = x;
++  return ((char *) &s.d)[2];
++}
++
++int
++f4 (struct S x, int y)
++{
++  struct S s = x;
++  return ((char *) &s.d)[y];
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-6.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-6.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-6.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-6.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,46 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef long long T __attribute__((may_alias, aligned (1)));
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  _Complex float d __attribute__((aligned (8)));
++};
++
++T
++f1 (struct S x)
++{
++  struct S s = x;
++  return *(T *) ((char *) &s.d + 1);
++}
++
++int
++f2 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[0];
++}
++
++int
++f3 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[1];
++}
++
++int
++f4 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[2];
++}
++
++int
++f5 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[3];
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-7.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-7.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-7.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-7.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,38 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  double d;
++};
++
++int
++f1 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[0];
++}
++
++int
++f2 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[1];
++}
++
++int
++f3 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[2];
++}
++
++int
++f4 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[3];
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-8.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-8.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48335-8.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48335-8.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,31 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra" } */
++
++typedef short U __attribute__((may_alias, aligned (1)));
++
++struct S
++{
++  double d;
++};
++
++int
++f1 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[-1];
++}
++
++int
++f2 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[-2];
++}
++
++int
++f3 (struct S x)
++{
++  struct S s = x;
++  return ((U *)((char *) &s.d + 1))[5];
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48616.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48616.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48616.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48616.c	2011-04-23 17:47:17.191898000 +0000
+@@ -0,0 +1,135 @@
++/* PR tree-optimization/48616 */
++/* { dg-do run } */
++/* { dg-options "-O2 -ftree-vectorize" } */
++/* { dg-options "-O2 -ftree-vectorize -fno-common" { target hppa*-*-hpux* } } */
++
++extern void abort (void);
++int a[4] __attribute__((aligned (32)));
++int b[4] __attribute__((aligned (32)));
++int c[4] __attribute__((aligned (32)));
++int d[4] __attribute__((aligned (32)));
++int e[4] __attribute__((aligned (32)));
++
++__attribute__((noinline, noclone))
++int
++foo (int x)
++{
++  asm ("" : "+r" (x));
++  return x;
++}
++
++__attribute__((noinline, noclone))
++void
++fn1 (int i)
++{
++  a[0] = b[0] << c[0];
++  a[1] = b[1] << c[1];
++  a[2] = b[2] << c[2];
++  a[3] = b[3] << c[3];
++  if (i)
++    {
++      d[0] = e[0] >> c[0];
++      d[1] = e[1] >> c[1];
++      d[2] = e[2] >> c[2];
++      d[3] = e[3] >> c[3];
++    }
++}
++
++__attribute__((noinline, noclone))
++void
++fn2 (int i)
++{
++  a[0] = b[0] << 1;
++  a[1] = b[1] << 2;
++  a[2] = b[2] << 3;
++  a[3] = b[3] << 4;
++  if (i)
++    {
++      d[0] = e[0] >> 1;
++      d[1] = e[1] >> 2;
++      d[2] = e[2] >> 3;
++      d[3] = e[3] >> 4;
++    }
++}
++
++__attribute__((noinline, noclone))
++void
++fn3 (int i, int j)
++{
++  int x = foo (j);
++  a[0] = b[0] << x;
++  a[1] = b[1] << x;
++  a[2] = b[2] << x;
++  a[3] = b[3] << x;
++  if (i)
++    {
++      d[0] = e[0] >> x;
++      d[1] = e[1] >> x;
++      d[2] = e[2] >> x;
++      d[3] = e[3] >> x;
++    }
++}
++
++__attribute__((noinline, noclone))
++void
++fn4 (int i)
++{
++  a[0] = b[0] << 1;
++  a[1] = b[1] << 1;
++  a[2] = b[2] << 1;
++  a[3] = b[3] << 1;
++  if (i)
++    {
++      d[0] = e[0] >> 1;
++      d[1] = e[1] >> 1;
++      d[2] = e[2] >> 1;
++      d[3] = e[3] >> 1;
++    }
++}
++
++int
++main ()
++{
++  int i;
++  int *t;
++  for (i = 0; i < 4; i++)
++    {
++      b[i] = 32;
++      c[i] = i + 1;
++      e[i] = 32;
++    }
++  asm volatile ("" : : "r" (b) : "memory");
++  asm volatile ("" : : "r" (c) : "memory");
++  asm volatile ("" : "=r" (t) : "0" (d) : "memory");
++  fn1 (t != 0);
++  for (i = 0; i < 4; i++)
++    {
++      if (a[i] != (32 << (i + 1)) || d[i] != (32 >> (i + 1)))
++	abort ();
++      a[i] = 0;
++      d[i] = 0;
++    }
++  fn2 (t != 0);
++  for (i = 0; i < 4; i++)
++    {
++      if (a[i] != (32 << (i + 1)) || d[i] != (32 >> (i + 1)))
++	abort ();
++      a[i] = 0;
++      d[i] = 0;
++    }
++  fn3 (t != 0, t != 0);
++  for (i = 0; i < 4; i++)
++    {
++      if (a[i] != (32 << 1) || d[i] != (32 >> 1))
++	abort ();
++      a[i] = 0;
++      d[i] = 0;
++    }
++  fn4 (t != 0);
++  for (i = 0; i < 4; i++)
++    {
++      if (a[i] != (32 << 1) || d[i] != (32 >> 1))
++	abort ();
++    }
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48685.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48685.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48685.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48685.c	2011-04-23 10:18:54.464278000 +0000
+@@ -0,0 +1,11 @@
++/* PR c/48685 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++int
++main ()
++{
++  int v = 1;
++  (void) (1 == 2 ? (void) 0 : (v = 0));
++  return v;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48768.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48768.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48768.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48768.c	2011-04-26 13:47:13.981476000 +0000
+@@ -0,0 +1,38 @@
++/* PR debug/48768 */
++/* { dg-do compile } */
++/* { dg-options "-O -fcompare-debug" } */
++
++int a, b;
++
++int
++bar (void)
++{
++  int i, j = 1;
++  for (i = 0; i != 10; i++)
++    {
++    lab:
++      if (i)
++	{
++	  int *k = &j;
++	}
++      else if (j)
++	goto lab;
++    }
++  return 1;
++}
++
++inline int
++foo (int x)
++{
++  unsigned int c = x;
++  int d = x;
++  if (bar ())
++    for (; c; c++)
++      while (x >= 0)
++	if (foo (d) >= 0)
++	  {
++	    d = bar ();
++	    a = b ? b : 1;
++	  }
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48774.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48774.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48774.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48774.c	2011-05-03 13:06:06.981402000 +0000
+@@ -0,0 +1,38 @@
++/* PR target/48774 */
++/* { dg-do run } */
++/* { dg-options "-O2 -funroll-loops" } */
++
++extern void abort (void);
++unsigned long int s[24]
++  = { 12, ~1, 12, ~2, 12, ~4, 12, ~8, 12, ~16, 12, ~32,
++      12, ~64, 12, ~128, 12, ~256, 12, ~512, 12, ~1024, 12, ~2048 };
++struct { int n; unsigned long *e[12]; } g
++  = { 12, { &s[0], &s[2], &s[4], &s[6], &s[8], &s[10], &s[12], &s[14],
++	    &s[16], &s[18], &s[20], &s[22] } };
++int c[12];
++
++__attribute__((noinline, noclone)) void
++foo (void)
++{
++  int i, j;
++  for (i = 0; i < g.n; i++)
++    for (j = 0; j < g.n; j++)
++      {
++	if (i == j && j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
++	  abort ();
++	if (j < g.e[0][0] && (g.e[i][1] & (1UL << j)))
++	  c[i]++;
++      }
++}
++
++int
++main ()
++{
++  int i;
++  asm volatile ("" : "+m" (s), "+m" (g), "+m" (c));
++  foo ();
++  for (i = 0; i < 12; i++)
++    if (c[i] != 11)
++      abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48837.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48837.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48837.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48837.c	2011-05-10 08:45:00.526163000 +0000
+@@ -0,0 +1,30 @@
++/* PR tree-optimization/48837 */
++/* { dg-do run } */
++/* { dg-options "-O2" } */
++
++void abort (void);
++
++__attribute__((noinline))
++int baz(void)
++{
++  return 1;
++}
++
++inline const int *bar(const int *a, const int *b)
++{
++ return *a ? a : b;
++}
++
++int foo(int a, int b)
++{
++   return a || b ? baz() : foo(*bar(&a, &b), 1) + foo(1, 0);
++}
++
++int main(void)
++{
++ if (foo(0, 0) != 2)
++   abort();
++
++ return 0;
++}
++
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48975.c gcc-4.6.0/gcc/testsuite/gcc.dg/pr48975.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/pr48975.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/pr48975.c	2011-05-12 17:46:15.934858000 +0000
+@@ -0,0 +1,18 @@
++/* PR tree-optimization/48975 */
++/* { dg-do compile } */
++/* { dg-options "-O3 -ffast-math -fno-tree-slp-vectorize" } */
++
++static int
++foo (int x)
++{
++  return (x > 0) ? 0 : x + 1;
++}
++
++void
++bar (unsigned int x)
++{
++  int l = 1;
++lab:
++  while (x)
++    x = foo (x);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48343.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48343.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48343.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48343.c	2011-04-07 18:05:08.563352000 +0000
+@@ -0,0 +1,19 @@
++/* PR debug/48343 */
++/* { dg-do compile } */
++/* { dg-options "-fcompare-debug" } */
++
++void foo (unsigned char *, unsigned char *);
++
++void
++test (unsigned int x, int y)
++{
++  unsigned int i, j = 0, k;
++  unsigned char s[256], t[64];
++  foo (s, t);
++  t[0] = y;
++  for (i = 0; i < 256; i++)
++    {
++      j = (j + s[i] + t[i % x]) & 0xff;
++      k = i; i = j; j = k;
++    }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48731.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48731.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48731.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48731.c	2011-04-26 12:59:22.871525000 +0000
+@@ -0,0 +1,24 @@
++/* { dg-do compile } */
++
++#include <stdarg.h>
++
++int blah(int a, ...)
++{
++  va_list va;
++  va_start(va,a);
++  if (a == 0)
++    return -1;
++  else 
++    {
++      int i;
++      for (i = 0; i < a; i++)
++	va_arg(va,int);
++      return va_arg(va,int);
++    }
++}
++
++__attribute((flatten))
++int blah2(int b, int c)
++{
++  return blah(2, b, c);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48822.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48822.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/pr48822.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/pr48822.c	2011-05-12 14:08:00.418016000 +0000
+@@ -0,0 +1,20 @@
++/* { dg-do compile } */
++
++void foo (int *, int *);
++int bar ()
++{
++  int a = 0;
++  int b = 0;
++  if (b != 0)
++    {
++      int ax = a;
++      int bx = b;
++      while (bx != 0)
++	{
++	  int tem = ax % bx;
++	  ax = bx;
++	  bx = tem;
++	}
++    }
++  foo (&a, &b);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c	2008-07-30 19:24:02.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/stackalign/non-local-goto-5.c	2011-04-07 21:33:47.585429000 +0000
+@@ -1,8 +1,8 @@
+ /* { dg-do run } */
+ 
++extern void exit (int);
+ #if !defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
+ extern void abort (void);
+-extern void exit (int);
+ int s(i){if(i>0){__label__ l1;int f(int i){if(i==2)goto l1;return 0;}return f(i);l1:;}return 1;}
+ int x(){return s(0)==1&&s(1)==0&&s(2)==1;}
+ int main(){if(x()!=1)abort();exit(0);}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/va-arg-25.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/va-arg-25.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/va-arg-25.c	2010-11-08 17:44:40.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/va-arg-25.c	2011-04-28 22:39:59.485927000 +0000
+@@ -3,6 +3,8 @@
+ /* { dg-do run } */
+ /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-options "-mabi=altivec -maltivec" { target { powerpc-*-* powerpc64-*-* } } } */
++/* { dg-require-effective-target vmx_hw { target { powerpc-*-* powerpc64--*-* } } } */
+ 
+ #include <stdarg.h>
+ #include <stdlib.h>
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/vector-1.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/vector-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/vector-1.c	2010-11-08 17:44:40.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/vector-1.c	2011-04-28 22:39:59.485927000 +0000
+@@ -3,6 +3,8 @@
+ /* { dg-do run } */
+ /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-options "-mabi=altivec" { target { powerpc-*-* powerpc64-*-* } } } */
++/* { dg-require-effective-target vmx_hw { target { powerpc-*-* powerpc64--*-* } } } */
+ 
+ #define vector __attribute__((vector_size(16) ))
+ 
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/vector-2.c gcc-4.6.0/gcc/testsuite/gcc.dg/torture/vector-2.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/torture/vector-2.c	2010-11-08 17:44:40.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/torture/vector-2.c	2011-04-28 22:39:59.485927000 +0000
+@@ -3,6 +3,8 @@
+ /* { dg-do run } */
+ /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */
+ /* { dg-require-effective-target sse_runtime { target { i?86-*-* x86_64-*-* } } } */
++/* { dg-options "-mabi=altivec" { target { powerpc-*-* powerpc64-*-* } } } */
++/* { dg-require-effective-target vmx_hw { target { powerpc-*-* powerpc64--*-* } } } */
+ 
+ #define vector __attribute__((vector_size(16) ))
+ 
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-17.c gcc-4.6.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-17.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-17.c	2008-03-20 22:06:40.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-17.c	2011-04-08 23:56:45.615141000 +0000
+@@ -18,7 +18,7 @@
+   return ((struct Foo *)p)->i;
+ }
+ 
+-const struct Foo g;
++extern const struct Foo g;
+ 
+ int foobar(void)
+ {
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.dg/vect/pr48377.c gcc-4.6.0/gcc/testsuite/gcc.dg/vect/pr48377.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.dg/vect/pr48377.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.dg/vect/pr48377.c	2011-04-08 11:45:29.006078000 +0000
+@@ -0,0 +1,25 @@
++/* PR tree-optimization/48377 */
++/* { dg-do run } */
++
++typedef unsigned int U __attribute__((__aligned__ (1), __may_alias__));
++
++__attribute__((noinline, noclone)) unsigned int
++foo (const char *s, int len)
++{
++  const U *p = (const U *) s;
++  unsigned int f = len / sizeof (unsigned int), hash = len, i;
++
++  for (i = 0; i < f; ++i)
++    hash += *p++;
++  return hash;
++}
++
++char buf[64] __attribute__((aligned (32)));
++
++int
++main (void)
++{
++  return foo (buf + 1, 26) != 26;
++}
++
++/* { dg-final { cleanup-tree-dump "vect" } } */
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/neon-vld-1.c gcc-4.6.0/gcc/testsuite/gcc.target/arm/neon-vld-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/neon-vld-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/arm/neon-vld-1.c	2011-03-28 10:22:57.435118000 +0000
+@@ -0,0 +1,13 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target arm_neon_ok } */
++/* { dg-options "-O1" } */
++/* { dg-add-options arm_neon } */
++
++#include <arm_neon.h>
++
++uint8x16_t
++foo (uint8_t *a, uint8x16_t b)
++{
++  vst1q_lane_u8 (a, b, 14);
++  return vld1q_lane_u8 (a + 0x100, b, 15);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c gcc-4.6.0/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/arm/neon-vset_lanes8.c	2011-05-05 15:56:06.050425000 +0000
+@@ -0,0 +1,21 @@
++/* Test the `vset_lane_s8' ARM Neon intrinsic.  */
++
++/* { dg-do run } */
++/* { dg-require-effective-target arm_neon_hw } */
++/* { dg-options "-O0" } */
++/* { dg-add-options arm_neon } */
++
++#include "arm_neon.h"
++#include <stdlib.h>
++#include <string.h>
++
++int8x8_t x = { 1, 2, 3, 4, 5, 6, 7, 8 };
++int8x8_t y = { 1, 2, 3, 16, 5, 6, 7, 8 };
++
++int main (void)
++{
++  x = vset_lane_s8 (16, x, 3);
++  if (memcmp (&x, &y, sizeof (x)) != 0)
++    abort();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/pr48252.c gcc-4.6.0/gcc/testsuite/gcc.target/arm/pr48252.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/arm/pr48252.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/arm/pr48252.c	2011-05-05 08:39:40.220991000 +0000
+@@ -0,0 +1,31 @@
++/* { dg-do run } */
++/* { dg-require-effective-target arm_neon_hw } */
++/* { dg-options "-O2" } */
++/* { dg-add-options arm_neon } */
++
++#include "arm_neon.h"
++#include <stdlib.h>
++
++int main(void)
++{
++    uint8x8_t v1 = {1, 1, 1, 1, 1, 1, 1, 1};
++    uint8x8_t v2 = {2, 2, 2, 2, 2, 2, 2, 2};
++    uint8x8x2_t vd1, vd2;
++    union {uint8x8_t v; uint8_t buf[8];} d1, d2, d3, d4;
++    int i;
++
++    vd1 = vzip_u8(v1, vdup_n_u8(0));
++    vd2 = vzip_u8(v2, vdup_n_u8(0));
++
++    vst1_u8(d1.buf, vd1.val[0]);
++    vst1_u8(d2.buf, vd1.val[1]);
++    vst1_u8(d3.buf, vd2.val[0]);
++    vst1_u8(d4.buf, vd2.val[1]);
++
++    for (i = 0; i < 8; i++)
++      if ((i % 2 == 0 && d4.buf[i] != 2)
++          || (i % 2 == 1 && d4.buf[i] != 0))
++         abort ();
++
++    return 0;
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/avx-vinsertps-3.c	2011-04-15 10:21:00.737989000 +0000
+@@ -0,0 +1,8 @@
++/* { dg-do run { target ilp32 } } */
++/* { dg-require-effective-target avx } */
++/* { dg-options "-O2 -mfpmath=sse -mavx -mtune=geode" } */
++
++#define CHECK_H "avx-check.h"
++#define TEST avx_test
++
++#include "sse4_1-insertps-3.c"
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/avx-vinsertps-4.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/avx-vinsertps-4.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/avx-vinsertps-4.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/avx-vinsertps-4.c	2011-04-15 10:21:00.737989000 +0000
+@@ -0,0 +1,8 @@
++/* { dg-do run } */
++/* { dg-require-effective-target avx } */
++/* { dg-options "-O2 -mfpmath=sse -mavx" } */
++
++#define CHECK_H "avx-check.h"
++#define TEST avx_test
++
++#include "sse4_1-insertps-4.c"
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr46084.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr46084.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr46084.c	2010-11-05 23:45:32.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr46084.c	2011-04-15 10:29:58.754073000 +0000
+@@ -1,7 +1,7 @@
+ /* This test needs to use setrlimit to set the stack size, so it can
+    only run on Unix.  */
+ /* { dg-do run { target *-*-linux* *-*-solaris* *-*-darwin* } } */
+-/* { dg-require-effective-target avx } */
++/* { dg-require-effective-target avx_runtime } */
+ /* { dg-require-effective-target split_stack } */
+ /* { dg-options "-fsplit-stack -O2 -mavx" } */
+ 
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48237.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48237.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48237.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48237.c	2011-03-26 18:41:02.446263000 +0000
+@@ -0,0 +1,22 @@
++/* { dg-do compile } */
++/* { dg-options "-O -fcaller-saves -fschedule-insns2 -fselective-scheduling2 -mtune=core2" } */
++
++union double_union
++{
++  double d;
++  int i[2];
++};
++
++void bar (int, ...);
++
++void
++foo (double d)
++{
++  union double_union du = { d };
++  while (1)
++    {
++      du.i[1] -= 0x100000L;
++      bar (0, du.d);
++      du.d += d;
++    }
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48335-1.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48335-1.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48335-1.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48335-1.c	2011-04-06 20:39:20.887184000 +0000
+@@ -0,0 +1,32 @@
++/* PR middle-end/48335 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -fno-tree-sra -msse2" } */
++
++#include <emmintrin.h>
++
++typedef __float128 T __attribute__((may_alias));
++
++struct S
++{
++  _Complex double d __attribute__((aligned (16)));
++};
++
++void bar (struct S);
++
++void
++f1 (T x)
++{
++  struct S s;
++  *(T *) &s.d = x;
++  __real__ s.d *= 7.0;
++  bar (s);
++}
++
++void
++f2 (__m128d x)
++{
++  struct S s;
++  _mm_store_pd ((double *) &s.d, x);
++  __real__ s.d *= 7.0;
++  bar (s);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48678.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48678.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48678.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48678.c	2011-04-19 16:49:19.533794000 +0000
+@@ -0,0 +1,16 @@
++/* PR target/48678 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -msse2" } */
++
++#include <emmintrin.h>
++
++typedef short T __attribute__((may_alias));
++struct S { __m128i d; };
++
++__m128i
++foo (short *x, struct S *y, __m128i *z)
++{
++  struct S s = *y;
++  ((T *) &s.d)[0] = *x;
++  return _mm_cmpeq_epi16 (s.d, *z);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48708.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48708.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48708.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48708.c	2011-04-21 20:23:55.759646000 +0000
+@@ -0,0 +1,15 @@
++/* { dg-do compile } */
++/* { dg-options "-O2 -msse2" } */
++
++#include <emmintrin.h>
++
++typedef long long T __attribute__((may_alias));
++struct S { __m128i d; };
++
++__m128i
++foo (long long *x, struct S *y, __m128i *z)
++{
++  struct S s = *y;
++  ((T *) &s.d)[0] = *x;
++  return _mm_cmpeq_epi16 (s.d, *z);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48723.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48723.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/pr48723.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/pr48723.c	2011-04-22 18:43:57.557110000 +0000
+@@ -0,0 +1,13 @@
++/* { dg-do compile } */
++/* { dg-options "-fstack-check -mavx" } */
++
++struct S0
++{
++  int f0, f1, f2, f3;
++} g_106;
++
++struct S0
++func_99 ()
++{
++  return (g_106);
++}
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/sse4_1-insertps-3.c	2011-04-15 10:21:00.737989000 +0000
+@@ -0,0 +1,5 @@
++/* { dg-do run { target ilp32 } } */
++/* { dg-require-effective-target sse4 } */
++/* { dg-options "-O2 -msse4.1 -mtune=geode" } */
++
++#include "sse4_1-insertps-2.c"
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/sse4_1-insertps-4.c gcc-4.6.0/gcc/testsuite/gcc.target/i386/sse4_1-insertps-4.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/i386/sse4_1-insertps-4.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/i386/sse4_1-insertps-4.c	2011-04-15 10:21:00.737989000 +0000
+@@ -0,0 +1,92 @@
++/* { dg-do run } */
++/* { dg-require-effective-target sse4 } */
++/* { dg-options "-O2 -msse4.1" } */
++
++#ifndef CHECK_H
++#define CHECK_H "sse4_1-check.h"
++#endif
++
++#ifndef TEST
++#define TEST sse4_1_test
++#endif
++
++#include CHECK_H
++
++#include <smmintrin.h>
++#include <string.h>
++
++#define msk0 0x41
++#define msk1 0x90
++#define msk2 0xe9
++#define msk3 0x70
++
++#define msk4 0xFC
++#define msk5 0x05
++#define msk6 0x0A
++#define msk7 0x0F
++
++union
++  {
++    __m128 x;
++    float f[4];
++  } val1;
++
++static void
++TEST (void)
++{
++  union
++    {
++      __m128 x;
++      float f[4];
++    } res[8], val2, tmp;
++  int masks[8];
++  int i, j;
++
++  val2.f[0] = 55.0;
++  val2.f[1] = 55.0;
++  val2.f[2] = 55.0;
++  val2.f[3] = 55.0;
++
++  val1.f[0] = 1.;
++  val1.f[1] = 2.;
++  val1.f[2] = 3.;
++  val1.f[3] = 4.;
++
++  asm volatile ("" : "+m" (val1));
++  res[0].x = _mm_insert_ps (val2.x, val1.x, msk0);
++  asm volatile ("" : "+m" (val1));
++  res[1].x = _mm_insert_ps (val2.x, val1.x, msk1);
++  asm volatile ("" : "+m" (val1));
++  res[2].x = _mm_insert_ps (val2.x, val1.x, msk2);
++  asm volatile ("" : "+m" (val1));
++  res[3].x = _mm_insert_ps (val2.x, val1.x, msk3);
++
++  masks[0] = msk0;
++  masks[1] = msk1;
++  masks[2] = msk2;
++  masks[3] = msk3;
++
++  for (i = 0; i < 4; i++)
++    {
++      asm volatile ("" : "+m" (val1));
++      res[i + 4].x = _mm_insert_ps (val2.x, val1.x, msk4);
++    }
++
++  masks[4] = msk4;
++  masks[5] = msk4;
++  masks[6] = msk4;
++  masks[7] = msk4;
++
++  for (i=0; i < 8; i++)
++    {
++      tmp = val2;
++      tmp.f[(masks[i] & 0x30) >> 4] = val1.f[(masks[i] & 0xC0) >> 6];
++
++      for (j = 0; j < 4; j++)
++	if (masks[i] & (0x1 << j))
++	  tmp.f[j] = 0.f;
++
++      if (memcmp (&res[i], &tmp, sizeof (tmp)))
++	abort ();
++    }
++} 
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/powerpc/pr48192.c gcc-4.6.0/gcc/testsuite/gcc.target/powerpc/pr48192.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/powerpc/pr48192.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/powerpc/pr48192.c	2011-04-28 22:39:59.485927000 +0000
+@@ -0,0 +1,49 @@
++/* { dg-do compile } */
++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
++/* { dg-require-effective-target powerpc_vsx_ok } */
++/* { dg-options "-O3 -mcpu=power7 -std=gnu89" } */
++
++/* Make sure that the conditional macros vector, bool, and pixel are not
++   considered as being defined.  */
++
++#ifdef bool
++#error "bool is considered defined"
++#endif
++
++#ifdef vector
++#error "vector is considered defined"
++#endif
++
++#ifdef pixel
++#error "pixel is condsidered defined"
++#endif
++
++#if defined(bool)
++#error "bool is considered defined"
++#endif
++
++#if defined(vector)
++#error "vector is considered defined"
++#endif
++
++#if defined(pixel)
++#error "pixel is condsidered defined"
++#endif
++
++#ifndef bool
++#else
++#error "bool is considered defined"
++#endif
++
++#ifndef vector
++#else
++#error "vector is considered defined"
++#endif
++
++#ifndef pixel
++#else
++#error "pixel is condsidered defined"
++#endif
++
++#define bool long double
++bool pixel = 0;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/powerpc/pr48857.c gcc-4.6.0/gcc/testsuite/gcc.target/powerpc/pr48857.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/powerpc/pr48857.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/powerpc/pr48857.c	2011-05-10 19:59:20.426663000 +0000
+@@ -0,0 +1,25 @@
++/* { dg-do compile { target { powerpc*-*-* } } } */
++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
++/* { dg-require-effective-target powerpc_vsx_ok } */
++/* { dg-options "-O2 -mcpu=power7 -mabi=altivec" } */
++/* { dg-final { scan-assembler-times "lxvd2x" 1 } } */
++/* { dg-final { scan-assembler-times "stxvd2x" 1 } } */
++/* { dg-final { scan-assembler-not "ld" } } */
++/* { dg-final { scan-assembler-not "lwz" } } */
++/* { dg-final { scan-assembler-not "stw" } } */
++/* { dg-final { scan-assembler-not "addi" } } */
++
++typedef vector long long v2di_type;
++
++v2di_type
++return_v2di (v2di_type *ptr)
++{
++  return *ptr;		/* should generate lxvd2x 34,0,3.  */
++}
++
++void
++pass_v2di (v2di_type arg, v2di_type *ptr)
++{
++  *ptr = arg;		/* should generate stxvd2x 34,0,{3,5}.  */
++}
++
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gcc.target/rx/pack.c gcc-4.6.0/gcc/testsuite/gcc.target/rx/pack.c
+--- gcc-4.6.0.orig/gcc/testsuite/gcc.target/rx/pack.c	2010-11-16 09:40:02.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gcc.target/rx/pack.c	2011-04-27 14:55:28.170311000 +0000
+@@ -4,10 +4,10 @@
+ 
+ typedef struct tst_2
+ {
+-  INT16U	f0;	// [+0]
+-  INT16U *	f1;	// [+2]
+-  INT16U	f2;	// [+6]
+-  INT16U *	f3;	// [+8]
++  INT16U	f0;	/* [+0] */
++  INT16U *	f1;	/* [+2] */
++  INT16U	f2;	/* [+6] */
++  INT16U *	f3;	/* [+8] */
+ } __attribute__ ((__packed__)) t2;
+ 
+ #include <stddef.h>
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_1.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_1.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_1.f90	2008-03-03 23:46:20.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_1.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -26,11 +26,11 @@
+   call check(bessel_yn (3,x4), bessel_yn (3,1.9_4))
+ 
+ contains
+-  subroutine check_r4 (a, b)
++  subroutine check_r4 (a, b) ! { dg-warning "Extension: Internal procedure" }
+     real(kind=4), intent(in) :: a, b
+     if (abs(a - b) > 1.e-5 * abs(b)) call abort
+   end subroutine
+-  subroutine check_r8 (a, b)
++  subroutine check_r8 (a, b) ! { dg-warning "Extension: Internal procedure" }
+     real(kind=8), intent(in) :: a, b
+     if (abs(a - b) > 1.e-7 * abs(b)) call abort
+   end subroutine
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_6.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_6.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_6.f90	2011-01-29 19:18:06.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_6.f90	2011-04-04 15:55:33.076116000 +0000
+@@ -1,4 +1,5 @@
+ ! { dg-do run { xfail spu-*-* } }
++! { dg-add-options ieee }
+ !
+ ! PR fortran/36158
+ ! PR fortran/33197
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_7.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_7.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/bessel_7.f90	2011-01-29 19:18:06.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/bessel_7.f90	2011-04-04 15:55:33.076116000 +0000
+@@ -1,4 +1,5 @@
+ ! { dg-do run { xfail *-*-mingw* spu-*-* } }
++! { dg-add-options ieee }
+ !
+ ! PR fortran/36158
+ ! PR fortran/33197
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/class_42.f03 gcc-4.6.0/gcc/testsuite/gfortran.dg/class_42.f03
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/class_42.f03	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/class_42.f03	2011-04-04 18:53:34.102550000 +0000
+@@ -0,0 +1,16 @@
++! { dg-do compile }
++!
++! PR 48291: [4.6/4.7 Regression] [OOP] internal compiler error, new_symbol(): Symbol name too long
++!
++! Contributed by Adrian Prantl <adrian@llnl.gov>
++
++module Overload_AnException_Impl
++  type :: Overload_AnException_impl_t
++  end type
++contains
++  subroutine ctor_impl(self)
++    class(Overload_AnException_impl_t) :: self
++  end subroutine
++end module 
++
++! { dg-final { cleanup-modules "Overload_AnException_Impl" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/erfc_scaled_1.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/erfc_scaled_1.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/erfc_scaled_1.f90	2008-03-03 23:46:20.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/erfc_scaled_1.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -1,4 +1,8 @@
+ ! { dg-do run }
++!
++! { dg-options "" }
++! Do not run with -pedantic checks enabled as "check"
++! contains internal procedures which is a vendor extension
+ 
+ program test
+   implicit none
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/func_result_6.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/func_result_6.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/func_result_6.f90	2011-02-18 21:35:44.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/func_result_6.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -63,7 +63,7 @@
+ bar = gen()
+ if (ptr /= 77) call abort()
+ contains
+-  function foo()
++  function foo() ! { dg-warning "Extension: Internal procedure .foo. in generic interface" }
+     integer, allocatable :: foo(:)
+     allocate(foo(2))
+     foo = [33, 77]
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/g77/cabs.f gcc-4.6.0/gcc/testsuite/gfortran.dg/g77/cabs.f
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/g77/cabs.f	2005-12-17 15:41:15.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/g77/cabs.f	2011-03-31 15:05:47.609354000 +0000
+@@ -1,4 +1,5 @@
+-c { dg-do run { xfail mips-sgi-irix6* } } PR 16292
++c { dg-do run }
++c { dg-xfail-run-if "PR target/16292" { mips-sgi-irix6* } { -O0 } }
+       program cabs_1
+       complex      z0
+       real         r0
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/generic_24.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/generic_24.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/generic_24.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/generic_24.f90	2011-05-11 20:31:14.899018000 +0000
+@@ -0,0 +1,100 @@
++! { dg-do compile }
++!
++! PR fortran/48889
++!
++! Thanks for
++! reporting to Lawrence Mitchell
++! for the test case to David Ham
++!
++module sparse_tools
++  implicit none
++  private
++  
++  type csr_foo
++     integer, dimension(:), pointer :: colm=>null()
++  end type csr_foo
++  
++  type block_csr_matrix
++     type(csr_foo) :: sparsity
++  end type block_csr_matrix
++
++  interface attach_block
++     module procedure block_csr_attach_block
++  end interface
++
++  interface size
++     module procedure  sparsity_size 
++  end interface
++  
++  public :: size, attach_block
++contains
++  subroutine block_csr_attach_block(matrix, val)
++    type(block_csr_matrix), intent(inout) :: matrix
++    real, dimension(size(matrix%sparsity%colm)), intent(in), target :: val
++  end subroutine block_csr_attach_block
++
++  pure function sparsity_size(sparsity, dim)
++    integer :: sparsity_size
++    type(csr_foo), intent(in) :: sparsity
++    integer, optional, intent(in) :: dim
++  end function sparsity_size
++end module sparse_tools
++
++module global_numbering
++  use sparse_tools
++  implicit none
++  
++  type ele_numbering_type
++     integer :: boundaries
++  end type ele_numbering_type
++
++  type element_type
++     integer :: loc 
++     type(ele_numbering_type), pointer :: numbering=>null()
++  end type element_type
++
++  type csr_sparsity
++  end type csr_sparsity
++  
++  interface size
++     module procedure sparsity_size
++  end interface size
++contains
++  pure function sparsity_size(sparsity, dim)
++    integer :: sparsity_size
++    type(csr_sparsity), intent(in) :: sparsity
++    integer, optional, intent(in) :: dim
++  end function sparsity_size
++
++  subroutine make_boundary_numbering(EEList, xndglno, ele_n)
++    type(csr_sparsity), intent(in) :: EEList
++    type(element_type), intent(in) :: ele_n
++    integer, dimension(size(EEList,1)*ele_n%loc), intent(in), target ::&
++         & xndglno 
++    integer, dimension(ele_n%numbering%boundaries) :: neigh
++    integer :: j
++    j=size(neigh)
++  end subroutine make_boundary_numbering
++end module global_numbering
++
++module sparse_matrices_fields
++  use sparse_tools
++implicit none
++   type scalar_field
++      real, dimension(:), pointer :: val
++   end type scalar_field
++contains  
++  subroutine csr_mult_T_scalar(x)
++    type(scalar_field), intent(inout) :: x
++    real, dimension(:), allocatable :: tmp
++    integer :: i
++    i=size(x%val)
++  end subroutine csr_mult_T_scalar
++end module sparse_matrices_fields
++
++program test
++  use sparse_matrices_fields
++  use global_numbering
++end program test
++
++! { dg-final { cleanup-modules "sparse_tools sparse_matrices_fields global_numbering" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48117.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48117.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48117.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48117.f90	2011-04-07 18:33:34.122568000 +0000
+@@ -0,0 +1,11 @@
++! PR fortran/48117
++! { dg-do compile }
++! { dg-options "-O2 -fopenmp" }
++
++subroutine foo(x)
++  character(len=*), optional :: x
++  character(len=80) :: v
++  !$omp master
++    if (present(x)) v = adjustl(x)
++  !$omp end master
++end subroutine foo
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48611.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48611.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48611.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48611.f90	2011-05-10 06:31:59.518466000 +0000
+@@ -0,0 +1,12 @@
++! PR tree-optimization/48611
++! { dg-do compile }
++! { dg-options "-Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop" }
++
++  integer, allocatable :: a(:)
++  logical :: l
++!$omp parallel private (a) reduction (.or.:l)
++  do i = 1, 7
++    a(:) = i
++  end do
++!$omp end parallel
++end
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48794.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48794.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/gomp/pr48794.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/gomp/pr48794.f90	2011-05-10 06:31:59.518466000 +0000
+@@ -0,0 +1,12 @@
++! PR tree-optimization/48794
++! { dg-do compile }
++! { dg-options "-Os -fopenmp -fexceptions -fno-tree-ccp -fno-tree-copy-prop" }
++
++  integer, allocatable :: a(:)
++  logical :: l
++  if (allocated (a)) call abort
++!$omp parallel private (a) reduction (.or.:l)
++  do i = 1, 7
++  end do
++!$omp end parallel
++end
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/hypot_1.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/hypot_1.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/hypot_1.f90	2008-03-03 23:46:20.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/hypot_1.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -18,11 +18,11 @@
+   call check(hypot(x4,y4), hypot(1.9_4,-2.1_4))
+ 
+ contains
+-  subroutine check_r4 (a, b)
++  subroutine check_r4 (a, b) ! { dg-warning "Extension: Internal procedure" }
+     real(kind=4), intent(in) :: a, b
+     if (abs(a - b) > 1.e-5 * abs(b)) call abort
+   end subroutine
+-  subroutine check_r8 (a, b)
++  subroutine check_r8 (a, b) ! { dg-warning "Extension: Internal procedure" }
+     real(kind=8), intent(in) :: a, b
+     if (abs(a - b) > 1.e-7 * abs(b)) call abort
+   end subroutine
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_35.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_35.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_35.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_35.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -0,0 +1,79 @@
++! { dg-do compile }
++! { dg-options "-std=f2008" }
++!
++! PR fortran/48112 (module_m)
++! PR fortran/48279 (sidl_string_array, s_Hard)
++!
++! Contributed by mhp77@gmx.at (module_m)
++! and Adrian Prantl (sidl_string_array, s_Hard)
++!
++
++module module_m
++  interface test
++     function test1( )  result( test )
++       integer ::  test
++     end function test1
++  end interface test
++end module module_m
++
++! -----
++
++module sidl_string_array
++  type sidl_string_1d
++  end type sidl_string_1d
++  interface set
++    module procedure &
++      setg1_p
++  end interface
++contains
++  subroutine setg1_p(array, index, val)
++    type(sidl_string_1d), intent(inout) :: array
++  end subroutine setg1_p
++end module sidl_string_array
++
++module s_Hard
++  use sidl_string_array
++  type :: s_Hard_t
++     integer(8) :: dummy
++  end type s_Hard_t
++  interface set_d_interface
++  end interface 
++  interface get_d_string
++    module procedure get_d_string_p
++  end interface 
++  contains ! Derived type member access functions
++    type(sidl_string_1d) function get_d_string_p(s)
++      type(s_Hard_t), intent(in) :: s
++    end function get_d_string_p
++    subroutine set_d_objectArray_p(s, d_objectArray)
++    end subroutine set_d_objectArray_p
++end module s_Hard
++
++subroutine initHard(h, ex)
++  use s_Hard
++  type(s_Hard_t), intent(inout) :: h
++  call set(get_d_string(h), 0, 'Three') ! { dg-error "There is no specific subroutine for the generic" }
++end subroutine initHard
++
++! -----
++
++  interface get
++    procedure get1
++  end interface
++
++  integer :: h
++  call set1 (get (h))
++
++contains
++
++  subroutine set1 (a)
++    integer, intent(in) :: a
++  end subroutine
++
++  integer function get1 (s) ! { dg-error "Extension: Internal procedure .get1. in generic interface .get." }
++    integer :: s
++  end function
++
++end
++
++! { dg-final { cleanup-modules "module_m module_m2 s_hard sidl_string_array" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_36.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_36.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_36.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_36.f90	2011-04-29 21:26:07.931377000 +0000
+@@ -0,0 +1,28 @@
++! { dg-do compile }
++!
++! PR fortran/48800
++!
++! Contributed by Daniel Carrera
++!
++     pure function runge_kutta_step(t, r_, dr, h) result(res)
++         real, intent(in) :: t, r_(:), h
++         real, dimension(:), allocatable :: k1, k2, k3, k4, res
++         integer :: N
++
++         interface
++             pure function dr(t, r_)  ! { dg-error "cannot have a deferred shape" }
++                 real, intent(in) :: t, r_(:)
++                 real :: dr(:)
++             end function
++         end interface
++
++         N = size(r_)
++         allocate(k1(N),k2(N),k3(N),k4(N),res(N))
++
++         k1 = dr(t, r_)
++         k2 = dr(t + h/2, r_ + k1*h/2)
++         k3 = dr(t + h/2, r_ + k2*h/2)
++         k4 = dr(t + h  , r_ + k3*h)
++
++         res = r_ + (k1 + 2*k2 + 2*k3 + k4) * h/6
++     end function
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_assignment_4.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_assignment_4.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/interface_assignment_4.f90	2009-07-15 08:41:29.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/interface_assignment_4.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -16,7 +16,7 @@
+ 
+ contains
+ 
+-  subroutine op_assign_VS_CH (var, exp)
++  subroutine op_assign_VS_CH (var, exp) ! { dg-warning "Extension: Internal procedure" }
+     type(varying_string), intent(out) :: var
+     character(LEN=*), intent(in)      :: exp
+   end subroutine
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90	2009-08-27 19:48:46.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/proc_ptr_comp_20.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -35,12 +35,12 @@
+ 
+ contains
+ 
+-  real function f1(a,b)
++  real function f1(a,b) ! { dg-warning "Extension: Internal procedure" }
+     real,intent(in) :: a,b
+     f1 = a + b
+   end function
+ 
+-  integer function f2(a,b)
++  integer function f2(a,b) ! { dg-warning "Extension: Internal procedure" }
+     real,intent(in) :: a,b
+     f2 = a - b
+   end function
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90	2009-09-10 22:47:03.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90	2011-04-28 18:47:28.286450000 +0000
+@@ -19,7 +19,7 @@
+ 
+ contains
+ 
+-  elemental subroutine op_assign (str, ch)
++  elemental subroutine op_assign (str, ch) ! { dg-warning "Extension: Internal procedure" }
+     type(nf_t), intent(out) :: str
+     character(len=*), intent(in) :: ch
+   end subroutine
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/realloc_on_assign_6.f03 gcc-4.6.0/gcc/testsuite/gfortran.dg/realloc_on_assign_6.f03
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/realloc_on_assign_6.f03	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/realloc_on_assign_6.f03	2011-04-13 18:38:17.941552000 +0000
+@@ -0,0 +1,129 @@
++! { dg-do compile }
++! Test the fix for PR48456 and PR48360 in which the backend
++! declarations for components were not located in the automatic
++! reallocation on assignments, thereby causing ICEs.
++!
++! Contributed by Keith Refson  <krefson@googlemail.com>
++! and Douglas Foulds  <mixnmaster@gmail.com>
++!
++! This is PR48360
++
++module m
++  type mm
++     real, dimension(3,3) :: h0
++  end type mm
++end module m
++
++module gf33
++
++  real, allocatable, save, dimension(:,:) :: hmat
++  
++contains
++  subroutine assignit
++    
++    use m
++    implicit none
++    
++    type(mm) :: mmv
++    
++    hmat = mmv%h0
++  end subroutine assignit
++end module gf33
++
++! This is PR48456
++
++module custom_type
++
++integer, parameter :: dp = kind(0.d0)
++
++type :: my_type_sub
++    real(dp), dimension(5) :: some_vector
++end type my_type_sub
++
++type :: my_type
++  type(my_type_sub) :: some_element
++end type my_type
++
++end module custom_type
++
++module custom_interfaces
++
++interface
++  subroutine store_data_subroutine(vec_size)
++  implicit none
++  integer, intent(in) :: vec_size
++  integer :: k
++  end subroutine store_data_subroutine
++end interface
++
++end module custom_interfaces
++
++module store_data_test
++
++use custom_type
++
++save
++type(my_type), dimension(:), allocatable :: some_type_to_save
++
++end module store_data_test
++
++program test
++
++use store_data_test
++
++integer :: vec_size
++
++vec_size = 2
++
++call store_data_subroutine(vec_size)
++call print_after_transfer()
++
++end program test
++
++subroutine store_data_subroutine(vec_size)
++
++use custom_type
++use store_data_test
++
++implicit none
++
++integer, intent(in) :: vec_size
++integer :: k
++
++allocate(some_type_to_save(vec_size))
++
++do k = 1,vec_size
++
++  some_type_to_save(k)%some_element%some_vector(1) = 1.0_dp
++  some_type_to_save(k)%some_element%some_vector(2) = 2.0_dp
++  some_type_to_save(k)%some_element%some_vector(3) = 3.0_dp
++  some_type_to_save(k)%some_element%some_vector(4) = 4.0_dp
++  some_type_to_save(k)%some_element%some_vector(5) = 5.0_dp
++
++end do
++
++end subroutine store_data_subroutine
++
++subroutine print_after_transfer()
++
++use custom_type
++use store_data_test
++
++implicit none
++
++real(dp), dimension(:), allocatable :: C_vec
++integer :: k
++
++allocate(C_vec(5))
++
++do k = 1,size(some_type_to_save)
++
++  C_vec = some_type_to_save(k)%some_element%some_vector
++  print *, "C_vec", C_vec
++
++end do
++
++end subroutine print_after_transfer
++! { dg-final { cleanup-modules "m gf33" } }
++! { dg-final { cleanup-modules "custom_type custom_interfaces" } }
++! { dg-final { cleanup-modules "store_data_test" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/realloc_on_assign_7.f03 gcc-4.6.0/gcc/testsuite/gfortran.dg/realloc_on_assign_7.f03
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/realloc_on_assign_7.f03	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/realloc_on_assign_7.f03	2011-04-30 12:00:50.541680000 +0000
+@@ -0,0 +1,84 @@
++! { dg-do run }
++! Check the fix for PR48462 in which the assignments involving matmul
++! seg faulted because a was automatically freed before the assignment.
++! Since it is related, the test for the fix of PR48746 has been added
++! as a subroutine by that name.
++!
++! Contributed by John Nedney  <ortp21@gmail.com>
++!
++program main
++  implicit none
++  integer, parameter :: dp = kind(0.0d0)
++  real(kind=dp), allocatable :: delta(:,:)
++  real(kind=dp), allocatable, target :: a(:,:)
++  real(kind=dp), pointer :: aptr(:,:)
++
++  allocate(a(3,3))
++  aptr => a
++  
++  call foo
++  if (.not. associated (aptr, a)) call abort () ! reallocated to same size - remains associated
++  call bar
++  if (.not. associated (aptr, a)) call abort () ! reallocated to smaller size - remains associated
++  call foobar
++  if (associated (aptr, a)) call abort () ! reallocated to larger size - disassociates
++
++  call pr48746
++contains
++!
++! Original reduced version from comment #2
++  subroutine foo
++    implicit none
++    real(kind=dp), allocatable :: b(:,:)
++
++    allocate(b(3,3))
++    allocate(delta(3,3))
++
++    a = reshape ([1d0, 2d0, 3d0, 4d0, 5d0, 6d0, 7d0, 8d0, 9d0], [3,3])
++    b = reshape ([1d0, 0d0, 0d0, 0d0, 1d0, 0d0, 0d0, 0d0, 1d0], [3,3])
++
++    a = matmul( matmul( a, b ), b )
++    delta = (a - reshape ([1d0, 2d0, 3d0, 4d0, 5d0, 6d0, 7d0, 8d0, 9d0], [3,3]))**2
++    if (any (delta > 1d-12)) call abort
++    if (any (lbound (a) .ne. [1, 1])) call abort
++  end subroutine
++!
++! Check that all is well when the shape of 'a' changes.
++  subroutine bar
++    implicit none
++    real(kind=dp), allocatable :: a(:,:)
++    real(kind=dp), allocatable :: b(:,:)
++
++    b = reshape ([1d0, 1d0, 1d0], [3,1])
++    a = reshape ([1d0, 2d0, 3d0, 4d0, 5d0, 6d0, 7d0, 8d0, 9d0], [3,3])
++
++    a = matmul( a, matmul( a, b ) )
++
++    delta = (a - reshape ([198d0, 243d0, 288d0], [3,1]))**2
++    if (any (delta > 1d-12)) call abort
++    if (any (lbound (a) .ne. [1, 1])) call abort
++  end subroutine
++  subroutine foobar
++    integer :: i
++    a = reshape ([(real(i, dp), i = 1, 100)],[10,10])
++  end subroutine
++  subroutine pr48746
++! This is a further wrinkle on the original problem and came about
++! because the dtype field of the result argument, passed to matmul,
++! was not being set. This is needed by matmul for the rank.
++!
++! Contributed by Thomas Koenig  <tkoenig@gcc.gnu.org>
++!
++    implicit none
++    integer, parameter :: m=10, n=12, count=4
++    real :: optmatmul(m, n)
++    real :: a(m, count), b(count, n), c(m, n)
++    real, dimension(:,:), allocatable :: tmp
++    call random_number(a)
++    call random_number(b)
++    tmp = matmul(a,b)
++    if (any (lbound (tmp) .ne. [1,1])) call abort
++    if (any (ubound (tmp) .ne. [10,12])) call abort
++  end subroutine
++end program main
++
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/typebound_proc_22.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/typebound_proc_22.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/typebound_proc_22.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/typebound_proc_22.f90	2011-04-29 21:26:07.931377000 +0000
+@@ -0,0 +1,49 @@
++! { dg-do compile }
++!
++! PR fortran/48810
++!
++! Contributed by Andrew Baldwin
++!
++      module qtest
++      type foobar
++        integer :: x
++        contains
++        private
++        procedure :: gimmex
++        generic, public :: getx => gimmex
++      end type foobar
++      contains
++        function gimmex(foo)
++          class (foobar) :: foo
++          integer :: gimmex
++          gimmex = foo%x
++        end function gimmex
++      end module qtest
++
++      module qtestPriv
++      type foobarPriv
++        integer :: x
++        contains
++        private
++        procedure :: gimmexPriv
++        generic, private :: getxPriv => gimmexPriv
++      end type foobarPriv
++      contains
++        function gimmexPriv(foo)
++          class (foobarPriv) :: foo
++          integer :: gimmex
++          gimmex = foo%x
++        end function gimmexPriv
++      end module qtestPriv
++
++      program quicktest
++      use qtest
++      use qtestPriv
++      type (foobar) :: foo
++      type (foobarPriv) :: fooPriv
++      integer :: bar
++      bar = foo%getx()  ! OK
++      bar = fooPriv%getxPriv() ! { dg-error " is PRIVATE " }
++      end program quicktest
++
++! { dg-final { cleanup-modules "qtest qtestpriv" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/whole_file_33.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/whole_file_33.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/whole_file_33.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/whole_file_33.f90	2011-04-26 08:41:31.964983000 +0000
+@@ -0,0 +1,50 @@
++! { dg-do compile }
++!
++! PR fortran/48588
++!
++! Contributed by Andres Legarra.
++!
++
++MODULE LA_PRECISION
++IMPLICIT NONE
++INTEGER, PARAMETER :: dp = KIND(1.0D0)
++END MODULE LA_PRECISION
++
++module lapack90
++INTERFACE
++  SUBROUTINE DGESV_F90( A, B, IPIV, INFO )
++    USE la_precision, ONLY: wp => dp
++    IMPLICIT NONE
++    INTEGER, INTENT(OUT), OPTIONAL         :: INFO
++    INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IPIV(:)
++    REAL(WP), INTENT(IN OUT)               :: A(:,:), B(:,:)
++  END SUBROUTINE DGESV_F90
++END INTERFACE
++end module
++
++SUBROUTINE DGESV_F90( A, B, IPIV, INFO )
++  USE la_precision, ONLY: wp => dp
++  IMPLICIT NONE
++  INTEGER, INTENT(OUT), OPTIONAL         :: INFO
++  INTEGER, INTENT(OUT), OPTIONAL, TARGET :: IPIV(:)
++  REAL(WP), INTENT(IN OUT)               :: A(:,:), B(:,:)
++END SUBROUTINE DGESV_F90
++
++MODULE DENSEOP
++  USE LAPACK90
++  implicit none
++  integer, parameter :: r8 = SELECTED_REAL_KIND( 15, 307 )
++  real(r8)::denseop_tol=1.d-50
++
++  CONTAINS
++
++  SUBROUTINE GEINV8 (x)
++   real(r8)::x(:,:)
++   real(r8),allocatable::x_o(:,:)
++   allocate(x_o(size(x,1),size(x,1)))
++   CALL dgesv_f90(x,x_o)
++   x=x_o
++  END SUBROUTINE GEINV8
++END MODULE DENSEOP
++
++! { dg-final { cleanup-modules "la_precision lapack90 denseop" } }
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/whole_file_34.f90 gcc-4.6.0/gcc/testsuite/gfortran.dg/whole_file_34.f90
+--- gcc-4.6.0.orig/gcc/testsuite/gfortran.dg/whole_file_34.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gfortran.dg/whole_file_34.f90	2011-04-28 18:43:16.311468000 +0000
+@@ -0,0 +1,12 @@
++! { dg-do compile }
++!
++! PR fortran/48788
++!
++! Contributed by Zdenek Sojka
++!
++function foo ()
++end function foo
++  character(4), external :: foo ! { dg-error "Return type mismatch of function" }
++  character(4) :: x
++  x = foo ()
++END
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr29.adb gcc-4.6.0/gcc/testsuite/gnat.dg/discr29.adb
+--- gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr29.adb	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gnat.dg/discr29.adb	2011-05-05 16:27:03.722146000 +0000
+@@ -0,0 +1,8 @@
++package body Discr29 is
++
++   procedure Proc (R : out Rec3) is
++   begin
++      R := (False, Tmp);
++   end;
++
++end Discr29;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr29.ads gcc-4.6.0/gcc/testsuite/gnat.dg/discr29.ads
+--- gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr29.ads	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gnat.dg/discr29.ads	2011-05-05 16:27:03.722146000 +0000
+@@ -0,0 +1,27 @@
++-- { dg-do compile }
++
++package Discr29 is
++
++   type Rec1 is record
++      I1 : Integer;
++      I2 : Integer;
++      I3 : Integer;
++   end record;
++
++   type Rec2 is tagged record
++      I1 : Integer;
++      I2 : Integer;
++   end record;
++
++   type Rec3 (D : Boolean) is record
++      case D is
++         when True =>  A : Rec1;
++         when False => B : Rec2;
++      end case;
++   end record;
++
++   procedure Proc (R : out Rec3);
++
++   Tmp : Rec2;
++
++end Discr29;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr30.adb gcc-4.6.0/gcc/testsuite/gnat.dg/discr30.adb
+--- gcc-4.6.0.orig/gcc/testsuite/gnat.dg/discr30.adb	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gnat.dg/discr30.adb	2011-05-05 16:27:03.722146000 +0000
+@@ -0,0 +1,50 @@
++-- PR ada/48844
++-- Reported by Georg Bauhaus <bauhaus@futureapps.de> */
++
++-- { dg-do compile }
++
++procedure Discr30 is
++
++   generic
++     type Source is private;
++     type Target is private;
++   function Conversion (S : Source) return Target;
++
++   function Conversion (S : Source) return Target is
++      type Source_Wrapper is tagged record
++         S : Source;
++      end record;
++      type Target_Wrapper is tagged record
++         T : Target;
++      end record;
++
++      type Selector is (Source_Field, Target_Field);
++      type Magic (Sel : Selector := Target_Field) is record
++         case Sel is
++            when Source_Field => S : Source_Wrapper;
++            when Target_Field => T : Target_Wrapper;
++         end case;
++      end record;
++
++      M : Magic;
++
++      function Convert (T : Target_Wrapper) return Target is
++      begin
++         M := (Sel => Source_Field, S => (S => S));
++         return T.T;
++      end Convert;
++
++   begin
++      return Convert (M.T);
++   end Conversion;
++
++   type Integer_Access is access all Integer;
++
++   I : aliased Integer;
++   I_Access : Integer_Access := I'Access;
++
++   function Convert is new Conversion (Integer_Access, Integer);
++
++begin
++   I := Convert (I_Access);
++end;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gnat.dg/volatile5.adb gcc-4.6.0/gcc/testsuite/gnat.dg/volatile5.adb
+--- gcc-4.6.0.orig/gcc/testsuite/gnat.dg/volatile5.adb	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gnat.dg/volatile5.adb	2011-04-21 14:18:54.402847000 +0000
+@@ -0,0 +1,16 @@
++-- { dg-do compile }
++
++with Volatile5_Pkg; use Volatile5_Pkg;
++
++procedure Volatile5 is
++
++   A : Rec;
++
++   procedure Proc is
++   begin
++      A := F;
++   end;
++
++begin
++   Proc;
++end;
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/gnat.dg/volatile5_pkg.ads gcc-4.6.0/gcc/testsuite/gnat.dg/volatile5_pkg.ads
+--- gcc-4.6.0.orig/gcc/testsuite/gnat.dg/volatile5_pkg.ads	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/gnat.dg/volatile5_pkg.ads	2011-04-21 14:18:54.402847000 +0000
+@@ -0,0 +1,11 @@
++package Volatile5_Pkg is
++
++   type Rec is record
++      I : Integer;
++   end record;
++   pragma Volatile(Rec);
++
++  function F return Rec;
++
++end Volatile5_Pkg;
++-- 
+\ No newline at end of file
+diff -Naur gcc-4.6.0.orig/gcc/testsuite/lib/target-supports.exp gcc-4.6.0/gcc/testsuite/lib/target-supports.exp
+--- gcc-4.6.0.orig/gcc/testsuite/lib/target-supports.exp	2011-02-19 15:31:15.000000000 +0000
++++ gcc-4.6.0/gcc/testsuite/lib/target-supports.exp	2011-04-27 14:55:28.170311000 +0000
+@@ -3556,6 +3556,9 @@
+          || [istarget "sh*-*-*"] } {
+        return "$flags -mieee"
+     }
++    if { [istarget "rx-*-*"] } {
++       return "$flags -mnofpu"
++    }
+     return $flags
+ }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/tree-data-ref.c gcc-4.6.0/gcc/tree-data-ref.c
+--- gcc-4.6.0.orig/gcc/tree-data-ref.c	2011-02-05 01:39:20.000000000 +0000
++++ gcc-4.6.0/gcc/tree-data-ref.c	2011-05-11 13:07:54.877914000 +0000
+@@ -1,5 +1,5 @@
+ /* Data references and dependences detectors.
+-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+    Contributed by Sebastian Pop <pop@cri.ensmp.fr>
+ 
+@@ -4975,7 +4975,7 @@
+       for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
+ 	{
+ 	  stmt = gsi_stmt (bsi);
+-	  if (gimple_code (stmt) != GIMPLE_LABEL)
++	  if (gimple_code (stmt) != GIMPLE_LABEL && !is_gimple_debug (stmt))
+ 	    VEC_safe_push (gimple, heap, *stmts, stmt);
+ 	}
+     }
+diff -Naur gcc-4.6.0.orig/gcc/tree-eh.c gcc-4.6.0/gcc/tree-eh.c
+--- gcc-4.6.0.orig/gcc/tree-eh.c	2011-01-21 15:15:40.000000000 +0000
++++ gcc-4.6.0/gcc/tree-eh.c	2011-05-10 06:31:59.518466000 +0000
+@@ -849,6 +849,8 @@
+ {
+   while (bitmap_set_bit (eh_region_may_contain_throw_map, region->index))
+     {
++      if (region->type == ERT_MUST_NOT_THROW)
++	break;
+       region = region->outer;
+       if (region == NULL)
+ 	break;
+@@ -3319,6 +3321,19 @@
+ 	      SET_BIT (r_reachable, region->index);
+ 	      SET_BIT (lp_reachable, lp_nr);
+ 	    }
++
++	  /* Avoid removing regions referenced from RESX/EH_DISPATCH.  */
++	  switch (gimple_code (stmt))
++	    {
++	    case GIMPLE_RESX:
++	      SET_BIT (r_reachable, gimple_resx_region (stmt));
++	      break;
++	    case GIMPLE_EH_DISPATCH:
++	      SET_BIT (r_reachable, gimple_eh_dispatch_region (stmt));
++	      break;
++	    default:
++	      break;
++	    }
+ 	}
+     }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/tree-flow.h gcc-4.6.0/gcc/tree-flow.h
+--- gcc-4.6.0.orig/gcc/tree-flow.h	2011-02-15 18:36:31.000000000 +0000
++++ gcc-4.6.0/gcc/tree-flow.h	2011-05-11 13:07:54.877914000 +0000
+@@ -559,6 +559,7 @@
+ 
+ void insert_debug_temps_for_defs (gimple_stmt_iterator *);
+ void insert_debug_temp_for_var_def (gimple_stmt_iterator *, tree);
++void reset_debug_uses (gimple);
+ void release_defs_bitset (bitmap toremove);
+ 
+ /* In tree-into-ssa.c  */
+diff -Naur gcc-4.6.0.orig/gcc/tree-if-conv.c gcc-4.6.0/gcc/tree-if-conv.c
+--- gcc-4.6.0.orig/gcc/tree-if-conv.c	2011-02-23 16:49:52.000000000 +0000
++++ gcc-4.6.0/gcc/tree-if-conv.c	2011-05-12 17:46:15.934858000 +0000
+@@ -1604,6 +1604,7 @@
+   for (i = 0; i < orig_loop_num_nodes; i++)
+     {
+       bb = ifc_bbs[i];
++      free_bb_predicate (bb);
+       if (bb_with_exit_edge_p (loop, bb))
+ 	{
+ 	  exit_bb = bb;
+@@ -1679,6 +1680,9 @@
+       && exit_bb != loop->header
+       && can_merge_blocks_p (loop->header, exit_bb))
+     merge_blocks (loop->header, exit_bb);
++
++  free (ifc_bbs);
++  ifc_bbs = NULL;
+ }
+ 
+ /* If-convert LOOP when it is legal.  For the moment this pass has no
+diff -Naur gcc-4.6.0.orig/gcc/tree-inline.c gcc-4.6.0/gcc/tree-inline.c
+--- gcc-4.6.0.orig/gcc/tree-inline.c	2011-02-28 10:23:14.000000000 +0000
++++ gcc-4.6.0/gcc/tree-inline.c	2011-05-05 21:02:06.894116000 +0000
+@@ -4334,14 +4334,16 @@
+ 					 CONSTRUCTOR_ELTS (*tp));
+       *tp = new_tree;
+     }
++  else if (code == STATEMENT_LIST)
++    /* We used to just abort on STATEMENT_LIST, but we can run into them
++       with statement-expressions (c++/40975).  */
++    copy_statement_list (tp);
+   else if (TREE_CODE_CLASS (code) == tcc_type)
+     *walk_subtrees = 0;
+   else if (TREE_CODE_CLASS (code) == tcc_declaration)
+     *walk_subtrees = 0;
+   else if (TREE_CODE_CLASS (code) == tcc_constant)
+     *walk_subtrees = 0;
+-  else
+-    gcc_assert (code != STATEMENT_LIST);
+   return NULL_TREE;
+ }
+ 
+diff -Naur gcc-4.6.0.orig/gcc/tree-loop-distribution.c gcc-4.6.0/gcc/tree-loop-distribution.c
+--- gcc-4.6.0.orig/gcc/tree-loop-distribution.c	2011-01-01 13:25:17.000000000 +0000
++++ gcc-4.6.0/gcc/tree-loop-distribution.c	2011-05-11 13:07:54.877914000 +0000
+@@ -1,5 +1,5 @@
+ /* Loop distribution.
+-   Copyright (C) 2006, 2007, 2008, 2009, 2010
++   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+    Contributed by Georges-Andre Silber <Georges-Andre.Silber@ensmp.fr>
+    and Sebastian Pop <sebastian.pop@amd.com>.
+@@ -181,6 +181,25 @@
+      stmts_from_loop.  */
+   bbs = get_loop_body_in_dom_order (loop);
+ 
++  if (MAY_HAVE_DEBUG_STMTS)
++    for (x = 0, i = 0; i < loop->num_nodes; i++)
++      {
++	basic_block bb = bbs[i];
++
++	for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi))
++	  if (!bitmap_bit_p (partition, x++))
++	    reset_debug_uses (gsi_stmt (bsi));
++
++	for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
++	  {
++	    gimple stmt = gsi_stmt (bsi);
++	    if (gimple_code (stmt) != GIMPLE_LABEL
++		&& !is_gimple_debug (stmt)
++		&& !bitmap_bit_p (partition, x++))
++	      reset_debug_uses (stmt);
++	  }
++      }
++
+   for (x = 0, i = 0; i < loop->num_nodes; i++)
+     {
+       basic_block bb = bbs[i];
+@@ -199,7 +218,8 @@
+       for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi);)
+ 	{
+ 	  gimple stmt = gsi_stmt (bsi);
+-	  if (gimple_code (gsi_stmt (bsi)) != GIMPLE_LABEL
++	  if (gimple_code (stmt) != GIMPLE_LABEL
++	      && !is_gimple_debug (stmt)
+ 	      && !bitmap_bit_p (partition, x++))
+ 	    {
+ 	      unlink_stmt_vdef (stmt);
+@@ -312,7 +332,9 @@
+ 	{
+ 	  gimple stmt = gsi_stmt (bsi);
+ 
+-	  if (bitmap_bit_p (partition, x++)
++	  if (gimple_code (stmt) != GIMPLE_LABEL
++	      && !is_gimple_debug (stmt)
++	      && bitmap_bit_p (partition, x++)
+ 	      && is_gimple_assign (stmt)
+ 	      && !is_gimple_reg (gimple_assign_lhs (stmt)))
+ 	    {
+diff -Naur gcc-4.6.0.orig/gcc/tree-object-size.c gcc-4.6.0/gcc/tree-object-size.c
+--- gcc-4.6.0.orig/gcc/tree-object-size.c	2011-03-17 13:22:26.000000000 +0000
++++ gcc-4.6.0/gcc/tree-object-size.c	2011-03-28 10:14:34.889170000 +0000
+@@ -348,8 +348,6 @@
+ 	  tree bytes2 = compute_object_offset (TREE_OPERAND (ptr, 0), pt_var);
+ 	  if (bytes2 != error_mark_node)
+ 	    {
+-	      bytes2 = size_binop (PLUS_EXPR, bytes2,
+-				   TREE_OPERAND (pt_var, 1));
+ 	      if (TREE_CODE (bytes2) == INTEGER_CST
+ 		  && tree_int_cst_lt (pt_var_size, bytes2))
+ 		bytes2 = size_zero_node;
+diff -Naur gcc-4.6.0.orig/gcc/tree-ssa-alias.c gcc-4.6.0/gcc/tree-ssa-alias.c
+--- gcc-4.6.0.orig/gcc/tree-ssa-alias.c	2011-03-03 12:10:40.000000000 +0000
++++ gcc-4.6.0/gcc/tree-ssa-alias.c	2011-04-21 14:40:53.747428000 +0000
+@@ -594,11 +594,11 @@
+    are the respective alias sets.  */
+ 
+ static bool
+-aliasing_component_refs_p (tree ref1, tree type1,
++aliasing_component_refs_p (tree ref1,
+ 			   alias_set_type ref1_alias_set,
+ 			   alias_set_type base1_alias_set,
+ 			   HOST_WIDE_INT offset1, HOST_WIDE_INT max_size1,
+-			   tree ref2, tree type2,
++			   tree ref2,
+ 			   alias_set_type ref2_alias_set,
+ 			   alias_set_type base2_alias_set,
+ 			   HOST_WIDE_INT offset2, HOST_WIDE_INT max_size2,
+@@ -610,9 +610,21 @@
+        struct A { int i; int j; } *q;
+        struct B { struct A a; int k; } *p;
+      disambiguating q->i and p->a.j.  */
++  tree base1, base2;
++  tree type1, type2;
+   tree *refp;
+   int same_p;
+ 
++  /* Choose bases and base types to search for.  */
++  base1 = ref1;
++  while (handled_component_p (base1))
++    base1 = TREE_OPERAND (base1, 0);
++  type1 = TREE_TYPE (base1);
++  base2 = ref2;
++  while (handled_component_p (base2))
++    base2 = TREE_OPERAND (base2, 0);
++  type2 = TREE_TYPE (base2);
++
+   /* Now search for the type1 in the access path of ref2.  This
+      would be a common base for doing offset based disambiguation on.  */
+   refp = &ref2;
+@@ -628,6 +640,8 @@
+       HOST_WIDE_INT offadj, sztmp, msztmp;
+       get_ref_base_and_extent (*refp, &offadj, &sztmp, &msztmp);
+       offset2 -= offadj;
++      get_ref_base_and_extent (base1, &offadj, &sztmp, &msztmp);
++      offset1 -= offadj;
+       return ranges_overlap_p (offset1, max_size1, offset2, max_size2);
+     }
+   /* If we didn't find a common base, try the other way around.  */
+@@ -644,6 +658,8 @@
+       HOST_WIDE_INT offadj, sztmp, msztmp;
+       get_ref_base_and_extent (*refp, &offadj, &sztmp, &msztmp);
+       offset1 -= offadj;
++      get_ref_base_and_extent (base2, &offadj, &sztmp, &msztmp);
++      offset2 -= offadj;
+       return ranges_overlap_p (offset1, max_size1, offset2, max_size2);
+     }
+ 
+@@ -805,11 +821,10 @@
+       && TREE_CODE (base1) != TARGET_MEM_REF
+       && (TREE_CODE (base1) != MEM_REF
+ 	  || same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) == 1))
+-    return aliasing_component_refs_p (ref1, TREE_TYPE (ptrtype1),
++    return aliasing_component_refs_p (ref1,
+ 				      ref1_alias_set, base1_alias_set,
+ 				      offset1, max_size1,
+-				      ref2, TREE_TYPE
+-				              (reference_alias_ptr_type (ref2)),
++				      ref2,
+ 				      ref2_alias_set, base2_alias_set,
+ 				      offset2, max_size2, true);
+ 
+@@ -952,10 +967,10 @@
+ 	  || same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) == 1)
+       && (TREE_CODE (base2) != MEM_REF
+ 	  || same_type_for_tbaa (TREE_TYPE (base2), TREE_TYPE (ptrtype2)) == 1))
+-    return aliasing_component_refs_p (ref1, TREE_TYPE (ptrtype1),
++    return aliasing_component_refs_p (ref1,
+ 				      ref1_alias_set, base1_alias_set,
+ 				      offset1, max_size1,
+-				      ref2, TREE_TYPE (ptrtype2),
++				      ref2,
+ 				      ref2_alias_set, base2_alias_set,
+ 				      offset2, max_size2, false);
+ 
+diff -Naur gcc-4.6.0.orig/gcc/tree-ssa-forwprop.c gcc-4.6.0/gcc/tree-ssa-forwprop.c
+--- gcc-4.6.0.orig/gcc/tree-ssa-forwprop.c	2011-02-08 10:44:06.000000000 +0000
++++ gcc-4.6.0/gcc/tree-ssa-forwprop.c	2011-04-22 18:53:30.123145000 +0000
+@@ -1815,7 +1815,7 @@
+ 		{
+ 		  /* ~A + A -> -1.  */
+ 		  code = INTEGER_CST;
+-		  rhs1 = build_int_cst (TREE_TYPE (rhs2), -1);
++		  rhs1 = build_int_cst_type (TREE_TYPE (rhs2), -1);
+ 		  rhs2 = NULL_TREE;
+ 		  gimple_assign_set_rhs_with_ops (&gsi, code, rhs1, NULL_TREE);
+ 		  gcc_assert (gsi_stmt (gsi) == stmt);
+@@ -1915,7 +1915,7 @@
+ 		{
+ 		  /* A + ~A -> -1.  */
+ 		  code = INTEGER_CST;
+-		  rhs1 = build_int_cst (TREE_TYPE (rhs1), -1);
++		  rhs1 = build_int_cst_type (TREE_TYPE (rhs1), -1);
+ 		  rhs2 = NULL_TREE;
+ 		  gimple_assign_set_rhs_with_ops (&gsi, code, rhs1, NULL_TREE);
+ 		  gcc_assert (gsi_stmt (gsi) == stmt);
+diff -Naur gcc-4.6.0.orig/gcc/tree-ssa-reassoc.c gcc-4.6.0/gcc/tree-ssa-reassoc.c
+--- gcc-4.6.0.orig/gcc/tree-ssa-reassoc.c	2011-02-14 17:59:10.000000000 +0000
++++ gcc-4.6.0/gcc/tree-ssa-reassoc.c	2011-04-26 13:44:51.810726000 +0000
+@@ -1,5 +1,6 @@
+ /* Reassociation for trees.
+-   Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++   Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
++   Free Software Foundation, Inc.
+    Contributed by Daniel Berlin <dan@dberlin.org>
+ 
+ This file is part of GCC.
+@@ -1279,6 +1280,20 @@
+       if (!useless_type_conversion_p (TREE_TYPE (curr->op), TREE_TYPE (t)))
+ 	t = fold_convert (TREE_TYPE (curr->op), t);
+ 
++      if (TREE_CODE (t) != INTEGER_CST
++	  && !operand_equal_p (t, curr->op, 0))
++	{
++	  enum tree_code subcode;
++	  tree newop1, newop2;
++	  if (!COMPARISON_CLASS_P (t))
++	    continue;
++	  extract_ops_from_tree (t, &subcode, &newop1, &newop2);
++	  STRIP_USELESS_TYPE_CONVERSION (newop1);
++	  STRIP_USELESS_TYPE_CONVERSION (newop2);
++	  if (!is_gimple_val (newop1) || !is_gimple_val (newop2))
++	    continue;
++	}
++
+       if (dump_file && (dump_flags & TDF_DETAILS))
+ 	{
+ 	  fprintf (dump_file, "Equivalence: ");
+diff -Naur gcc-4.6.0.orig/gcc/tree-ssa-sccvn.c gcc-4.6.0/gcc/tree-ssa-sccvn.c
+--- gcc-4.6.0.orig/gcc/tree-ssa-sccvn.c	2011-02-07 16:58:17.000000000 +0000
++++ gcc-4.6.0/gcc/tree-ssa-sccvn.c	2011-05-12 14:08:00.418016000 +0000
+@@ -2103,12 +2103,26 @@
+ static inline bool
+ set_ssa_val_to (tree from, tree to)
+ {
+-  tree currval;
++  tree currval = SSA_VAL (from);
+ 
+-  if (from != to
+-      && TREE_CODE (to) == SSA_NAME
+-      && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
+-    to = from;
++  if (from != to)
++    {
++      if (currval == from)
++	{
++	  if (dump_file && (dump_flags & TDF_DETAILS))
++	    {
++	      fprintf (dump_file, "Not changing value number of ");
++	      print_generic_expr (dump_file, from, 0);
++	      fprintf (dump_file, " from VARYING to ");
++	      print_generic_expr (dump_file, to, 0);
++	      fprintf (dump_file, "\n");
++	    }
++	  return false;
++	}
++      else if (TREE_CODE (to) == SSA_NAME
++	       && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (to))
++	to = from;
++    }
+ 
+   /* The only thing we allow as value numbers are VN_TOP, ssa_names
+      and invariants.  So assert that here.  */
+@@ -2125,8 +2139,6 @@
+       print_generic_expr (dump_file, to, 0);
+     }
+ 
+-  currval = SSA_VAL (from);
+-
+   if (currval != to  && !operand_equal_p (currval, to, OEP_PURE_SAME))
+     {
+       VN_INFO (from)->valnum = to;
+@@ -3124,6 +3136,8 @@
+     {
+       changed = false;
+       iterations++;
++      if (dump_file && (dump_flags & TDF_DETAILS))
++	fprintf (dump_file, "Starting iteration %d\n", iterations);
+       /* As we are value-numbering optimistically we have to
+ 	 clear the expression tables and the simplified expressions
+ 	 in each iteration until we converge.  */
+diff -Naur gcc-4.6.0.orig/gcc/tree-ssa.c gcc-4.6.0/gcc/tree-ssa.c
+--- gcc-4.6.0.orig/gcc/tree-ssa.c	2011-02-15 18:36:31.000000000 +0000
++++ gcc-4.6.0/gcc/tree-ssa.c	2011-05-11 13:07:54.877914000 +0000
+@@ -1,5 +1,5 @@
+ /* Miscellaneous SSA utility functions.
+-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
++   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+@@ -352,6 +352,10 @@
+       value = degenerate_phi_result (def_stmt);
+       if (value && walk_tree (&value, find_released_ssa_name, NULL, NULL))
+ 	value = NULL;
++      /* error_mark_node is what fixup_noreturn_call changes PHI arguments
++	 to.  */
++      else if (value == error_mark_node)
++	value = NULL;
+     }
+   else if (is_gimple_assign (def_stmt))
+     {
+@@ -455,13 +459,19 @@
+ 	continue;
+ 
+       if (value)
+-	FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter)
+-	  /* unshare_expr is not needed here.  vexpr is either a
+-	     SINGLE_RHS, that can be safely shared, some other RHS
+-	     that was unshared when we found it had a single debug
+-	     use, or a DEBUG_EXPR_DECL, that can be safely
+-	     shared.  */
+-	  SET_USE (use_p, value);
++	{
++	  FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter)
++	    /* unshare_expr is not needed here.  vexpr is either a
++	       SINGLE_RHS, that can be safely shared, some other RHS
++	       that was unshared when we found it had a single debug
++	       use, or a DEBUG_EXPR_DECL, that can be safely
++	       shared.  */
++	    SET_USE (use_p, value);
++	  /* If we didn't replace uses with a debug decl fold the
++	     resulting expression.  Otherwise we end up with invalid IL.  */
++	  if (TREE_CODE (value) != DEBUG_EXPR_DECL)
++	    fold_stmt_inplace (stmt);
++	}
+       else
+ 	gimple_debug_bind_reset_value (stmt);
+ 
+@@ -497,6 +507,37 @@
+     }
+ }
+ 
++/* Reset all debug stmts that use SSA_NAME(s) defined in STMT.  */
++
++void
++reset_debug_uses (gimple stmt)
++{
++  ssa_op_iter op_iter;
++  def_operand_p def_p;
++  imm_use_iterator imm_iter;
++  gimple use_stmt;
++
++  if (!MAY_HAVE_DEBUG_STMTS)
++    return;
++
++  FOR_EACH_PHI_OR_STMT_DEF (def_p, stmt, op_iter, SSA_OP_DEF)
++    {
++      tree var = DEF_FROM_PTR (def_p);
++
++      if (TREE_CODE (var) != SSA_NAME)
++	continue;
++
++      FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, var)
++	{
++	  if (!gimple_debug_bind_p (use_stmt))
++	    continue;
++
++	  gimple_debug_bind_reset_value (use_stmt);
++	  update_stmt (use_stmt);
++	}
++    }
++}
++
+ /* Delete SSA DEFs for SSA versions in the TOREMOVE bitmap, removing
+    dominated stmts before their dominators, so that release_ssa_defs
+    stands a chance of propagating DEFs into debug bind stmts.  */
+diff -Naur gcc-4.6.0.orig/gcc/tree-switch-conversion.c gcc-4.6.0/gcc/tree-switch-conversion.c
+--- gcc-4.6.0.orig/gcc/tree-switch-conversion.c	2010-11-29 14:09:41.000000000 +0000
++++ gcc-4.6.0/gcc/tree-switch-conversion.c	2011-04-30 06:55:11.755353000 +0000
+@@ -1,6 +1,6 @@
+ /* Switch Conversion converts variable initializations based on switch
+    statements to initializations from a static array.
+-   Copyright (C) 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
++   Copyright (C) 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+    Contributed by Martin Jambor <jamborm@suse.cz>
+ 
+ This file is part of GCC.
+@@ -656,7 +656,7 @@
+ build_arrays (gimple swtch)
+ {
+   tree arr_index_type;
+-  tree tidx, sub, tmp;
++  tree tidx, sub, tmp, utype;
+   gimple stmt;
+   gimple_stmt_iterator gsi;
+   int i;
+@@ -664,14 +664,20 @@
+ 
+   gsi = gsi_for_stmt (swtch);
+ 
++  /* Make sure we do not generate arithmetics in a subrange.  */
++  utype = TREE_TYPE (info.index_expr);
++  if (TREE_TYPE (utype))
++    utype = lang_hooks.types.type_for_mode (TYPE_MODE (TREE_TYPE (utype)), 1);
++  else
++    utype = lang_hooks.types.type_for_mode (TYPE_MODE (utype), 1);
++
+   arr_index_type = build_index_type (info.range_size);
+-  tmp = create_tmp_var (TREE_TYPE (info.index_expr), "csti");
++  tmp = create_tmp_var (utype, "csui");
+   add_referenced_var (tmp);
+   tidx = make_ssa_name (tmp, NULL);
+-  sub = fold_build2_loc (loc, MINUS_EXPR,
+-		     TREE_TYPE (info.index_expr), info.index_expr,
+-		     fold_convert_loc (loc, TREE_TYPE (info.index_expr),
+-				       info.range_min));
++  sub = fold_build2_loc (loc, MINUS_EXPR, utype,
++			 fold_convert_loc (loc, utype, info.index_expr),
++			 fold_convert_loc (loc, utype, info.range_min));
+   sub = force_gimple_operand_gsi (&gsi, sub,
+ 				  false, NULL, true, GSI_SAME_STMT);
+   stmt = gimple_build_assign (tidx, sub);
+@@ -780,12 +786,7 @@
+   tree label_decl2 = create_artificial_label (UNKNOWN_LOCATION);
+   tree label_decl3 = create_artificial_label (UNKNOWN_LOCATION);
+   gimple label1, label2, label3;
+-
+-  tree utype;
+-  tree tmp_u_1, tmp_u_2, tmp_u_var;
+-  tree cast;
+-  gimple cast_assign, minus_assign;
+-  tree ulb, minus;
++  tree utype, tidx;
+   tree bound;
+ 
+   gimple cond_stmt;
+@@ -799,49 +800,24 @@
+   gcc_assert (info.default_values);
+   bb0 = gimple_bb (swtch);
+ 
+-  /* Make sure we do not generate arithmetics in a subrange.  */
+-  if (TREE_TYPE (TREE_TYPE (info.index_expr)))
+-    utype = lang_hooks.types.type_for_mode
+-      (TYPE_MODE (TREE_TYPE (TREE_TYPE (info.index_expr))), 1);
+-  else
+-    utype = lang_hooks.types.type_for_mode
+-      (TYPE_MODE (TREE_TYPE (info.index_expr)), 1);
++  tidx = gimple_assign_lhs (info.arr_ref_first);
++  utype = TREE_TYPE (tidx);
+ 
+   /* (end of) block 0 */
+   gsi = gsi_for_stmt (info.arr_ref_first);
+-  tmp_u_var = create_tmp_var (utype, "csui");
+-  add_referenced_var (tmp_u_var);
+-  tmp_u_1 = make_ssa_name (tmp_u_var, NULL);
+-
+-  cast = fold_convert_loc (loc, utype, info.index_expr);
+-  cast_assign = gimple_build_assign (tmp_u_1, cast);
+-  SSA_NAME_DEF_STMT (tmp_u_1) = cast_assign;
+-  gsi_insert_before (&gsi, cast_assign, GSI_SAME_STMT);
+-  update_stmt (cast_assign);
+-
+-  ulb = fold_convert_loc (loc, utype, info.range_min);
+-  minus = fold_build2_loc (loc, MINUS_EXPR, utype, tmp_u_1, ulb);
+-  minus = force_gimple_operand_gsi (&gsi, minus, false, NULL, true,
+-				    GSI_SAME_STMT);
+-  tmp_u_2 = make_ssa_name (tmp_u_var, NULL);
+-  minus_assign = gimple_build_assign (tmp_u_2, minus);
+-  SSA_NAME_DEF_STMT (tmp_u_2) = minus_assign;
+-  gsi_insert_before (&gsi, minus_assign, GSI_SAME_STMT);
+-  update_stmt (minus_assign);
++  gsi_next (&gsi);
+ 
+   bound = fold_convert_loc (loc, utype, info.range_size);
+-  cond_stmt = gimple_build_cond (LE_EXPR, tmp_u_2, bound, NULL_TREE, NULL_TREE);
++  cond_stmt = gimple_build_cond (LE_EXPR, tidx, bound, NULL_TREE, NULL_TREE);
+   gsi_insert_before (&gsi, cond_stmt, GSI_SAME_STMT);
+   update_stmt (cond_stmt);
+ 
+   /* block 2 */
+-  gsi = gsi_for_stmt (info.arr_ref_first);
+   label2 = gimple_build_label (label_decl2);
+   gsi_insert_before (&gsi, label2, GSI_SAME_STMT);
+   last_assign = gen_def_assigns (&gsi);
+ 
+   /* block 1 */
+-  gsi = gsi_for_stmt (info.arr_ref_first);
+   label1 = gimple_build_label (label_decl1);
+   gsi_insert_before (&gsi, label1, GSI_SAME_STMT);
+ 
+diff -Naur gcc-4.6.0.orig/gcc/tree-tailcall.c gcc-4.6.0/gcc/tree-tailcall.c
+--- gcc-4.6.0.orig/gcc/tree-tailcall.c	2011-02-15 18:36:31.000000000 +0000
++++ gcc-4.6.0/gcc/tree-tailcall.c	2011-05-10 08:45:00.526163000 +0000
+@@ -1019,6 +1019,14 @@
+ 					     integer_one_node);
+     }
+ 
++  if (a_acc || m_acc)
++    {
++      /* When the tail call elimination using accumulators is performed,
++	 statements adding the accumulated value are inserted at all exits.
++	 This turns all other tail calls to non-tail ones.  */
++      opt_tailcalls = false;
++    }
++
+   for (; tailcalls; tailcalls = next)
+     {
+       next = tailcalls->next;
+diff -Naur gcc-4.6.0.orig/gcc/tree-vect-data-refs.c gcc-4.6.0/gcc/tree-vect-data-refs.c
+--- gcc-4.6.0.orig/gcc/tree-vect-data-refs.c	2011-02-25 11:18:14.000000000 +0000
++++ gcc-4.6.0/gcc/tree-vect-data-refs.c	2011-04-08 11:45:29.006078000 +0000
+@@ -1,5 +1,5 @@
+ /* Data References Analysis and Manipulation Utilities for Vectorization.
+-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
++   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+    Free Software Foundation, Inc.
+    Contributed by Dorit Naishlos <dorit@il.ibm.com>
+    and Ira Rosen <irar@il.ibm.com>
+@@ -1143,6 +1143,9 @@
+       if (ba)
+ 	is_packed = contains_packed_reference (ba);
+ 
++      if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0)
++	is_packed = true;
++
+       if (vect_print_dump_info (REPORT_DETAILS))
+ 	fprintf (vect_dump, "Unknown misalignment, is_packed = %d",is_packed);
+       if (targetm.vectorize.vector_alignment_reachable (type, is_packed))
+diff -Naur gcc-4.6.0.orig/gcc/tree-vect-stmts.c gcc-4.6.0/gcc/tree-vect-stmts.c
+--- gcc-4.6.0.orig/gcc/tree-vect-stmts.c	2011-02-25 11:18:14.000000000 +0000
++++ gcc-4.6.0/gcc/tree-vect-stmts.c	2011-04-18 07:38:11.502299000 +0000
+@@ -2077,7 +2077,7 @@
+   VEC (tree, heap) *vec_oprnds0 = NULL, *vec_oprnds1 = NULL;
+   tree vop0, vop1;
+   unsigned int k;
+-  bool scalar_shift_arg = false;
++  bool scalar_shift_arg = true;
+   bb_vec_info bb_vinfo = STMT_VINFO_BB_VINFO (stmt_info);
+   int vf;
+ 
+@@ -2159,8 +2159,34 @@
+   /* Determine whether the shift amount is a vector, or scalar.  If the
+      shift/rotate amount is a vector, use the vector/vector shift optabs.  */
+ 
++  if (dt[1] == vect_internal_def && !slp_node)
++    scalar_shift_arg = false;
++  else if (dt[1] == vect_constant_def
++	   || dt[1] == vect_external_def
++	   || dt[1] == vect_internal_def)
++    {
++      /* In SLP, need to check whether the shift count is the same,
++	 in loops if it is a constant or invariant, it is always
++	 a scalar shift.  */
++      if (slp_node)
++	{
++	  VEC (gimple, heap) *stmts = SLP_TREE_SCALAR_STMTS (slp_node);
++	  gimple slpstmt;
++
++	  FOR_EACH_VEC_ELT (gimple, stmts, k, slpstmt)
++	    if (!operand_equal_p (gimple_assign_rhs2 (slpstmt), op1, 0))
++	      scalar_shift_arg = false;
++	}
++    }
++  else
++    {
++      if (vect_print_dump_info (REPORT_DETAILS))
++	fprintf (vect_dump, "operand mode requires invariant argument.");
++      return false;
++    }
++
+   /* Vector shifted by vector.  */
+-  if (dt[1] == vect_internal_def)
++  if (!scalar_shift_arg)
+     {
+       optab = optab_for_tree_code (code, vectype, optab_vector);
+       if (vect_print_dump_info (REPORT_DETAILS))
+@@ -2168,13 +2194,12 @@
+     }
+   /* See if the machine has a vector shifted by scalar insn and if not
+      then see if it has a vector shifted by vector insn.  */
+-  else if (dt[1] == vect_constant_def || dt[1] == vect_external_def)
++  else
+     {
+       optab = optab_for_tree_code (code, vectype, optab_scalar);
+       if (optab
+           && optab_handler (optab, TYPE_MODE (vectype)) != CODE_FOR_nothing)
+         {
+-          scalar_shift_arg = true;
+           if (vect_print_dump_info (REPORT_DETAILS))
+             fprintf (vect_dump, "vector/scalar shift/rotate found.");
+         }
+@@ -2185,6 +2210,8 @@
+                && (optab_handler (optab, TYPE_MODE (vectype))
+                       != CODE_FOR_nothing))
+             {
++	      scalar_shift_arg = false;
++
+               if (vect_print_dump_info (REPORT_DETAILS))
+                 fprintf (vect_dump, "vector/vector shift/rotate found.");
+ 
+@@ -2197,12 +2224,6 @@
+             }
+         }
+     }
+-  else
+-    {
+-      if (vect_print_dump_info (REPORT_DETAILS))
+-        fprintf (vect_dump, "operand mode requires invariant argument.");
+-      return false;
+-    }
+ 
+   /* Supportable by target?  */
+   if (!optab)
+diff -Naur gcc-4.6.0.orig/gcc/tree-vrp.c gcc-4.6.0/gcc/tree-vrp.c
+--- gcc-4.6.0.orig/gcc/tree-vrp.c	2011-02-14 17:59:10.000000000 +0000
++++ gcc-4.6.0/gcc/tree-vrp.c	2011-03-28 10:14:34.889170000 +0000
+@@ -6619,6 +6619,7 @@
+      edge; this helps us avoid an overflow infinity for conditionals
+      which are not in a loop.  */
+   if (edges > 0
++      && gimple_phi_num_args (phi) > 1
+       && edges == old_edges)
+     {
+       int cmp_min = compare_values (lhs_vr->min, vr_result.min);
+diff -Naur gcc-4.6.0.orig/gcc/tree.c gcc-4.6.0/gcc/tree.c
+--- gcc-4.6.0.orig/gcc/tree.c	2011-03-14 12:20:48.000000000 +0000
++++ gcc-4.6.0/gcc/tree.c	2011-04-09 16:14:07.476963000 +0000
+@@ -2453,6 +2453,10 @@
+   min = TYPE_MIN_VALUE (index_type);
+   max = TYPE_MAX_VALUE (index_type);
+ 
++  /* TYPE_MAX_VALUE may not be set if the array has unknown length.  */
++  if (!max)
++    return error_mark_node;
++
+   return (integer_zerop (min)
+ 	  ? max
+ 	  : fold_build2 (MINUS_EXPR, TREE_TYPE (max), max, min));
+diff -Naur gcc-4.6.0.orig/gcc/var-tracking.c gcc-4.6.0/gcc/var-tracking.c
+--- gcc-4.6.0.orig/gcc/var-tracking.c	2011-03-07 22:11:55.000000000 +0000
++++ gcc-4.6.0/gcc/var-tracking.c	2011-05-12 11:59:32.631940000 +0000
+@@ -739,6 +739,10 @@
+     case REG:
+       if (cselib_lookup (*loc, GET_MODE (SUBREG_REG (subreg)), 0, VOIDmode))
+ 	return 1;
++      if (!validate_subreg (GET_MODE (subreg), GET_MODE (*loc),
++			    *loc, subreg_lowpart_offset (GET_MODE (subreg),
++							 GET_MODE (*loc))))
++	return 1;
+       return -1;
+     case PLUS:
+     case MINUS:
+@@ -4107,8 +4111,9 @@
+   VALUE_RECURSED_INTO (val) = true;
+ 
+   for (node = var->var_part[0].loc_chain; node; node = node->next)
+-    if (MEM_P (node->loc) && MEM_EXPR (node->loc) == expr
+-	&& MEM_OFFSET (node->loc) == 0)
++    if (MEM_P (node->loc)
++	&& MEM_EXPR (node->loc) == expr
++	&& INT_MEM_OFFSET (node->loc) == 0)
+       {
+ 	where = node;
+ 	break;
+@@ -4171,11 +4176,10 @@
+ 	{
+ 	  for (loc = var->var_part[0].loc_chain; loc; loc = loc->next)
+ 	    {
+-	      /* We want to remove dying MEMs that doesn't refer to
+-		 DECL.  */
++	      /* We want to remove dying MEMs that doesn't refer to DECL.  */
+ 	      if (GET_CODE (loc->loc) == MEM
+ 		  && (MEM_EXPR (loc->loc) != decl
+-		      || MEM_OFFSET (loc->loc))
++		      || INT_MEM_OFFSET (loc->loc) != 0)
+ 		  && !mem_dies_at_call (loc->loc))
+ 		break;
+ 	      /* We want to move here MEMs that do refer to DECL.  */
+@@ -4219,7 +4223,7 @@
+ 
+ 	  if (GET_CODE (loc->loc) != MEM
+ 	      || (MEM_EXPR (loc->loc) == decl
+-		  && MEM_OFFSET (loc->loc) == 0)
++		  && INT_MEM_OFFSET (loc->loc) == 0)
+ 	      || !mem_dies_at_call (loc->loc))
+ 	    {
+ 	      if (old_loc != loc->loc && emit_notes)
+diff -Naur gcc-4.6.0.orig/gcc/version.c gcc-4.6.0/gcc/version.c
+--- gcc-4.6.0.orig/gcc/version.c	2009-04-21 19:03:23.000000000 +0000
++++ gcc-4.6.0/gcc/version.c	2011-05-17 15:39:45.833360914 +0000
+@@ -33,4 +33,4 @@
+    Makefile.  */
+ 
+ const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
+-const char pkgversion_string[] = PKGVERSION;
++const char pkgversion_string[] = "(GCC for Cross-LFS 4.6.0.20110517) ";
+diff -Naur gcc-4.6.0.orig/libcpp/directives.c gcc-4.6.0/libcpp/directives.c
+--- gcc-4.6.0.orig/libcpp/directives.c	2011-01-04 23:18:12.000000000 +0000
++++ gcc-4.6.0/libcpp/directives.c	2011-04-28 22:39:59.485927000 +0000
+@@ -1819,7 +1819,12 @@
+ 
+       if (node)
+ 	{
+-	  skip = node->type != NT_MACRO;
++	  /* Do not treat conditional macros as being defined.  This is due to
++	     the powerpc and spu ports using conditional macros for 'vector',
++	     'bool', and 'pixel' to act as conditional keywords.  This messes
++	     up tests like #ifndef bool.  */
++	  skip = (node->type != NT_MACRO
++		  || ((node->flags & NODE_CONDITIONAL) != 0));
+ 	  _cpp_mark_macro_used (node);
+ 	  if (!(node->flags & NODE_USED))
+ 	    {
+@@ -1860,7 +1865,12 @@
+ 
+       if (node)
+ 	{
+-	  skip = node->type == NT_MACRO;
++	  /* Do not treat conditional macros as being defined.  This is due to
++	     the powerpc and spu ports using conditional macros for 'vector',
++	     'bool', and 'pixel' to act as conditional keywords.  This messes
++	     up tests like #ifndef bool.  */
++	  skip = (node->type == NT_MACRO
++		  && ((node->flags & NODE_CONDITIONAL) == 0));
+ 	  _cpp_mark_macro_used (node);
+ 	  if (!(node->flags & NODE_USED))
+ 	    {
+diff -Naur gcc-4.6.0.orig/libcpp/expr.c gcc-4.6.0/libcpp/expr.c
+--- gcc-4.6.0.orig/libcpp/expr.c	2010-09-29 14:49:14.000000000 +0000
++++ gcc-4.6.0/libcpp/expr.c	2011-04-28 22:39:59.485927000 +0000
+@@ -720,10 +720,15 @@
+ 
+   pfile->state.prevent_expansion--;
+ 
++  /* Do not treat conditional macros as being defined.  This is due to the
++     powerpc and spu ports using conditional macros for 'vector', 'bool', and
++     'pixel' to act as conditional keywords.  This messes up tests like #ifndef
++     bool.  */
+   result.unsignedp = false;
+   result.high = 0;
+   result.overflow = false;
+-  result.low = node && node->type == NT_MACRO;
++  result.low = (node && node->type == NT_MACRO
++		&& (node->flags & NODE_CONDITIONAL) == 0);
+   return result;
+ }
+ 
+diff -Naur gcc-4.6.0.orig/libcpp/lex.c gcc-4.6.0/libcpp/lex.c
+--- gcc-4.6.0.orig/libcpp/lex.c	2011-03-18 20:19:45.000000000 +0000
++++ gcc-4.6.0/libcpp/lex.c	2011-04-23 23:33:39.473034000 +0000
+@@ -1410,7 +1410,9 @@
+ 				       raw_prefix_len) == 0
+ 			   && cur[raw_prefix_len+1] == '"')
+ 		    {
+-		      cur += raw_prefix_len+2;
++		      BUF_APPEND (")", 1);
++		      base++;
++		      cur += raw_prefix_len + 2;
+ 		      goto break_outer_loop;
+ 		    }
+ 		  else
+diff -Naur gcc-4.6.0.orig/libffi/src/alpha/osf.S gcc-4.6.0/libffi/src/alpha/osf.S
+--- gcc-4.6.0.orig/libffi/src/alpha/osf.S	2009-06-04 15:43:03.000000000 +0000
++++ gcc-4.6.0/libffi/src/alpha/osf.S	2011-05-02 12:30:09.547483000 +0000
+@@ -1,5 +1,5 @@
+ /* -----------------------------------------------------------------------
+-   osf.S - Copyright (c) 1998, 2001, 2007, 2008 Red Hat
++   osf.S - Copyright (c) 1998, 2001, 2007, 2008, 2011 Red Hat
+    
+    Alpha/OSF Foreign Function Interface 
+ 
+@@ -299,33 +299,51 @@
+ #endif
+ 
+ #ifdef __ELF__
++# define UA_SI		.4byte
++# define FDE_ENCODING	0x1b	/* pcrel sdata4 */
++# define FDE_ENCODE(X)	.4byte X-.
++# define FDE_ARANGE(X)	.4byte X
++#elif defined __osf__
++# define UA_SI		.align 0; .long
++# define FDE_ENCODING	0x50	/* aligned absolute */
++# define FDE_ENCODE(X)	.align 3; .quad X
++# define FDE_ARANGE(X)	.align 0; .quad X
++#endif
++
++#ifdef __ELF__
+ 	.section	.eh_frame,EH_FRAME_FLAGS,@progbits
++#elif defined __osf__
++	.data
++	.align 3
++	.globl _GLOBAL__F_ffi_call_osf
++_GLOBAL__F_ffi_call_osf:
++#endif
+ __FRAME_BEGIN__:
+-	.4byte	$LECIE1-$LSCIE1	# Length of Common Information Entry
++	UA_SI	$LECIE1-$LSCIE1	# Length of Common Information Entry
+ $LSCIE1:
+-	.4byte	0x0		# CIE Identifier Tag
++	UA_SI	0x0		# CIE Identifier Tag
+ 	.byte	0x1		# CIE Version
+ 	.ascii "zR\0"		# CIE Augmentation
+ 	.byte	0x1		# uleb128 0x1; CIE Code Alignment Factor
+ 	.byte	0x78		# sleb128 -8; CIE Data Alignment Factor
+ 	.byte	26		# CIE RA Column
+ 	.byte	0x1		# uleb128 0x1; Augmentation size
+-	.byte	0x1b		# FDE Encoding (pcrel sdata4)
++	.byte	FDE_ENCODING	# FDE Encoding
+ 	.byte	0xc		# DW_CFA_def_cfa
+ 	.byte	30		# uleb128 column 30
+ 	.byte	0		# uleb128 offset 0
+ 	.align 3
+ $LECIE1:
+ $LSFDE1:
+-	.4byte	$LEFDE1-$LASFDE1		# FDE Length
++	UA_SI	$LEFDE1-$LASFDE1		# FDE Length
+ $LASFDE1:
+-	.4byte	$LASFDE1-__FRAME_BEGIN__	# FDE CIE offset
+-	.4byte	$LFB1-.		# FDE initial location
+-	.4byte	$LFE1-$LFB1	# FDE address range
++	UA_SI	$LASFDE1-__FRAME_BEGIN__	# FDE CIE offset
++	FDE_ENCODE($LFB1)			# FDE initial location
++	FDE_ARANGE($LFE1-$LFB1)			# FDE address range
+ 	.byte	0x0		# uleb128 0x0; Augmentation size
+ 
+ 	.byte	0x4		# DW_CFA_advance_loc4
+-	.4byte	$LCFI1-$LFB1
++	UA_SI	$LCFI1-$LFB1
+ 	.byte	0x9a		# DW_CFA_offset, column 26
+ 	.byte	4		# uleb128 4*-8
+ 	.byte	0x8f		# DW_CFA_offset, column 15
+@@ -335,32 +353,35 @@
+ 	.byte	32		# uleb128 offset 32
+ 
+ 	.byte	0x4		# DW_CFA_advance_loc4
+-	.4byte	$LCFI2-$LCFI1
++	UA_SI	$LCFI2-$LCFI1
+ 	.byte	0xda		# DW_CFA_restore, column 26
+ 	.align 3
+ $LEFDE1:
+ 
+ $LSFDE3:
+-	.4byte	$LEFDE3-$LASFDE3		# FDE Length
++	UA_SI	$LEFDE3-$LASFDE3		# FDE Length
+ $LASFDE3:
+-	.4byte	$LASFDE3-__FRAME_BEGIN__	# FDE CIE offset
+-	.4byte	$LFB2-.		# FDE initial location
+-	.4byte	$LFE2-$LFB2	# FDE address range
++	UA_SI	$LASFDE3-__FRAME_BEGIN__	# FDE CIE offset
++	FDE_ENCODE($LFB2)			# FDE initial location
++	FDE_ARANGE($LFE2-$LFB2)			# FDE address range
+ 	.byte	0x0		# uleb128 0x0; Augmentation size
+ 
+ 	.byte	0x4		# DW_CFA_advance_loc4
+-	.4byte	$LCFI5-$LFB2
++	UA_SI	$LCFI5-$LFB2
+ 	.byte	0xe		# DW_CFA_def_cfa_offset
+ 	.byte	0x80,0x1	# uleb128 128
+ 
+ 	.byte	0x4		# DW_CFA_advance_loc4
+-	.4byte	$LCFI6-$LCFI5
++	UA_SI	$LCFI6-$LCFI5
+ 	.byte	0x9a		# DW_CFA_offset, column 26
+ 	.byte	16		# uleb128 offset 16*-8
+ 	.align 3
+ $LEFDE3:
++#if defined __osf__
++	.align 0
++	.long	0		# End of Table
++#endif
+ 
+-#ifdef __linux__
++#if defined __ELF__ && defined __linux__
+ 	.section	.note.GNU-stack,"",@progbits
+ #endif
+-#endif
+diff -Naur gcc-4.6.0.orig/libgfortran/acinclude.m4 gcc-4.6.0/libgfortran/acinclude.m4
+--- gcc-4.6.0.orig/libgfortran/acinclude.m4	2011-02-25 17:56:04.000000000 +0000
++++ gcc-4.6.0/libgfortran/acinclude.m4	2011-04-18 15:49:16.153371000 +0000
+@@ -108,7 +108,7 @@
+ 	      [Define to 1 if the target supports #pragma weak])
+   fi
+   case "$host" in
+-    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* )
++    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | alpha*-dec-osf* )
+       AC_DEFINE(GTHREAD_USE_WEAK, 0,
+ 		[Define to 0 if the target shouldn't use #pragma weak])
+       ;;
+diff -Naur gcc-4.6.0.orig/libgfortran/config.h.in gcc-4.6.0/libgfortran/config.h.in
+--- gcc-4.6.0.orig/libgfortran/config.h.in	2011-02-24 21:51:39.000000000 +0000
++++ gcc-4.6.0/libgfortran/config.h.in	2011-04-18 15:49:16.153371000 +0000
+@@ -210,6 +210,9 @@
+ /* Define to 1 if you have the `clock_gettime' function. */
+ #undef HAVE_CLOCK_GETTIME
+ 
++/* Define to 1 if you have the `clock_gettime' function in librt. */
++#undef HAVE_CLOCK_GETTIME_LIBRT
++
+ /* libm includes clog */
+ #undef HAVE_CLOG
+ 
+diff -Naur gcc-4.6.0.orig/libgfortran/configure gcc-4.6.0/libgfortran/configure
+--- gcc-4.6.0.orig/libgfortran/configure	2011-03-25 17:07:00.000000000 +0000
++++ gcc-4.6.0/libgfortran/configure	2011-04-18 15:49:16.153371000 +0000
+@@ -757,6 +757,7 @@
+ enable_maintainer_mode
+ enable_multilib
+ enable_dependency_tracking
++enable_symvers
+ enable_shared
+ enable_static
+ with_pic
+@@ -1406,6 +1407,7 @@
+   --enable-multilib       build many library versions (default)
+   --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors
++  --disable-symvers       disable symbol versioning for libgfortran
+   --enable-shared[=PKGS]  build shared libraries [default=yes]
+   --enable-static[=PKGS]  build static libraries [default=yes]
+   --enable-fast-install[=PKGS]
+@@ -5564,14 +5566,22 @@
+ # Check for symbol versioning (copied from libssp).
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symbol versioning is supported" >&5
+ $as_echo_n "checking whether symbol versioning is supported... " >&6; }
+-save_LDFLAGS="$LDFLAGS"
+-LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-cat > conftest.map <<EOF
++# Check whether --enable-symvers was given.
++if test "${enable_symvers+set}" = set; then :
++  enableval=$enable_symvers; gfortran_use_symver=$enableval
++else
++  gfortran_use_symver=yes
++fi
++
++if test "x$gfortran_use_symver" = xyes; then
++  save_LDFLAGS="$LDFLAGS"
++  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++  cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-if test x$gcc_no_link = xyes; then
++  if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -5592,18 +5602,18 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-if test x$gfortran_use_symver = xno; then
+-  case "$target_os" in
+-    solaris2*)
+-      LDFLAGS="$save_LDFLAGS"
+-      LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-      # Sun ld cannot handle wildcards and treats all entries as undefined.
+-      cat > conftest.map <<EOF
++  if test x$gfortran_use_symver = xno; then
++    case "$target_os" in
++      solaris2*)
++        LDFLAGS="$save_LDFLAGS"
++        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++        # Sun ld cannot handle wildcards and treats all entries as undefined.
++        cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-      if test x$gcc_no_link = xyes; then
++        if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -5624,10 +5634,11 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-      ;;
+-  esac
++        ;;
++    esac
++  fi
++  LDFLAGS="$save_LDFLAGS"
+ fi
+-LDFLAGS="$save_LDFLAGS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gfortran_use_symver" >&5
+ $as_echo "$gfortran_use_symver" >&6; }
+  if test "x$gfortran_use_symver" != xno; then
+@@ -12101,7 +12112,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 12104 "configure"
++#line 12115 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -12207,7 +12218,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 12210 "configure"
++#line 12221 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -25303,10 +25314,11 @@
+ fi
+ 
+ 
+-# At least for glibc, clock_gettime is in librt.  But don't pull that
+-# in if it still doesn't give us the function we want.
+-# This test is copied from libgomp, and modified to not link in -lrt
+-# as libgfortran calls clock_gettime via a weak reference.
++# At least for glibc and Tru64, clock_gettime is in librt.  But don't
++# pull that in if it still doesn't give us the function we want.  This
++# test is copied from libgomp, and modified to not link in -lrt as
++# libgfortran calls clock_gettime via a weak reference if it's found
++# in librt.
+ if test $ac_cv_func_clock_gettime = no; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5
+ $as_echo_n "checking for clock_gettime in -lrt... " >&6; }
+@@ -25349,7 +25361,7 @@
+ $as_echo "$ac_cv_lib_rt_clock_gettime" >&6; }
+ if test "x$ac_cv_lib_rt_clock_gettime" = x""yes; then :
+ 
+-$as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
++$as_echo "#define HAVE_CLOCK_GETTIME_LIBRT 1" >>confdefs.h
+ 
+ fi
+ 
+@@ -25687,7 +25699,7 @@
+ 
+   fi
+   case "$host" in
+-    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* )
++    *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | alpha*-dec-osf* )
+ 
+ $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h
+ 
+diff -Naur gcc-4.6.0.orig/libgfortran/configure.ac gcc-4.6.0/libgfortran/configure.ac
+--- gcc-4.6.0.orig/libgfortran/configure.ac	2011-02-24 21:51:39.000000000 +0000
++++ gcc-4.6.0/libgfortran/configure.ac	2011-04-18 15:49:16.153371000 +0000
+@@ -144,30 +144,37 @@
+ 
+ # Check for symbol versioning (copied from libssp).
+ AC_MSG_CHECKING([whether symbol versioning is supported])
+-save_LDFLAGS="$LDFLAGS"
+-LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-cat > conftest.map <<EOF
++AC_ARG_ENABLE(symvers,
++AS_HELP_STRING([--disable-symvers],
++  [disable symbol versioning for libgfortran]),
++gfortran_use_symver=$enableval,
++gfortran_use_symver=yes)
++if test "x$gfortran_use_symver" = xyes; then
++  save_LDFLAGS="$LDFLAGS"
++  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++  cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-AC_TRY_LINK([int foo;],[],[gfortran_use_symver=gnu],[gfortran_use_symver=no])
+-if test x$gfortran_use_symver = xno; then
+-  case "$target_os" in
+-    solaris2*)
+-      LDFLAGS="$save_LDFLAGS"
+-      LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-      # Sun ld cannot handle wildcards and treats all entries as undefined.
+-      cat > conftest.map <<EOF
++  AC_TRY_LINK([int foo;],[],[gfortran_use_symver=gnu],[gfortran_use_symver=no])
++  if test x$gfortran_use_symver = xno; then
++    case "$target_os" in
++      solaris2*)
++        LDFLAGS="$save_LDFLAGS"
++        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++        # Sun ld cannot handle wildcards and treats all entries as undefined.
++        cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-      AC_TRY_LINK([int foo;],[],[gfortran_use_symver=sun],[gfortran_use_symver=no])
+-      ;;
+-  esac
++        AC_TRY_LINK([int foo;],[],[gfortran_use_symver=sun],[gfortran_use_symver=no])
++        ;;
++    esac
++  fi
++  LDFLAGS="$save_LDFLAGS"
+ fi
+-LDFLAGS="$save_LDFLAGS"
+ AC_MSG_RESULT($gfortran_use_symver)
+ AM_CONDITIONAL(LIBGFOR_USE_SYMVER, [test "x$gfortran_use_symver" != xno])
+ AM_CONDITIONAL(LIBGFOR_USE_SYMVER_GNU, [test "x$gfortran_use_symver" = xgnu])
+@@ -484,14 +491,15 @@
+ # Check for GNU libc feenableexcept
+ AC_CHECK_LIB([m],[feenableexcept],[have_feenableexcept=yes AC_DEFINE([HAVE_FEENABLEEXCEPT],[1],[libm includes feenableexcept])])
+ 
+-# At least for glibc, clock_gettime is in librt.  But don't pull that
+-# in if it still doesn't give us the function we want.
+-# This test is copied from libgomp, and modified to not link in -lrt
+-# as libgfortran calls clock_gettime via a weak reference.
++# At least for glibc and Tru64, clock_gettime is in librt.  But don't
++# pull that in if it still doesn't give us the function we want.  This
++# test is copied from libgomp, and modified to not link in -lrt as
++# libgfortran calls clock_gettime via a weak reference if it's found
++# in librt.
+ if test $ac_cv_func_clock_gettime = no; then
+   AC_CHECK_LIB(rt, clock_gettime,
+-    [AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
+-               [Define to 1 if you have the `clock_gettime' function.])])
++    [AC_DEFINE(HAVE_CLOCK_GETTIME_LIBRT, 1,
++               [Define to 1 if you have the `clock_gettime' function in librt.])])
+ fi
+ 
+ # Check for SysV fpsetmask
+diff -Naur gcc-4.6.0.orig/libgfortran/intrinsics/system_clock.c gcc-4.6.0/libgfortran/intrinsics/system_clock.c
+--- gcc-4.6.0.orig/libgfortran/intrinsics/system_clock.c	2011-03-17 13:29:01.000000000 +0000
++++ gcc-4.6.0/libgfortran/intrinsics/system_clock.c	2011-04-18 15:49:16.153371000 +0000
+@@ -29,21 +29,16 @@
+ 
+ #include "time_1.h"
+ 
+-/* Tru64 UNIX doesn't support weakrefs, so the trickery below completely
+-   breaks libgfortran (PR fortran/47571).  Don't use clock_gettime until a
+-   proper solution has been tested.  */
+-#if defined(__alpha__) && defined(__osf__)
+-#undef HAVE_CLOCK_GETTIME
+-#endif
+ 
+-#ifdef HAVE_CLOCK_GETTIME
+ /* POSIX states that CLOCK_REALTIME must be present if clock_gettime
+    is available, others are optional.  */
++#if defined(HAVE_CLOCK_GETTIME) || defined(HAVE_CLOCK_GETTIME_LIBRT)
+ #ifdef CLOCK_MONOTONIC
+ #define GF_CLOCK_MONOTONIC CLOCK_MONOTONIC
+ #else
+ #define GF_CLOCK_MONOTONIC CLOCK_REALTIME
+ #endif
++#endif
+ 
+ /* Weakref trickery for clock_gettime().  On Glibc, clock_gettime()
+    requires us to link in librt, which also pulls in libpthread.  In
+@@ -57,15 +52,9 @@
+ #define GTHREAD_USE_WEAK 1
+ #endif
+ 
+-#if SUPPORTS_WEAK && GTHREAD_USE_WEAK
++#if SUPPORTS_WEAK && GTHREAD_USE_WEAK && defined(HAVE_CLOCK_GETTIME_LIBRT)
+ static int weak_gettime (clockid_t, struct timespec *) 
+   __attribute__((__weakref__("clock_gettime")));
+-#else
+-static inline int weak_gettime (clockid_t clk_id, struct timespec *res)
+-{
+-  return clock_gettime (clk_id, res);
+-}
+-#endif
+ #endif
+ 
+ 
+@@ -91,6 +80,13 @@
+ {
+   int err;
+ #ifdef HAVE_CLOCK_GETTIME
++  struct timespec ts;
++  err = clock_gettime (GF_CLOCK_MONOTONIC, &ts);
++  *secs = ts.tv_sec;
++  *nanosecs = ts.tv_nsec;
++  return err;
++#else
++#if defined(HAVE_CLOCK_GETTIME_LIBRT) && SUPPORTS_WEAK && GTHREAD_USE_WEAK
+   if (weak_gettime)
+     {
+       struct timespec ts;
+@@ -103,6 +99,7 @@
+   err = gf_gettime (secs, nanosecs);
+   *nanosecs *= 1000;
+   return err;
++#endif
+ }
+ 
+ extern void system_clock_4 (GFC_INTEGER_4 *, GFC_INTEGER_4 *, GFC_INTEGER_4 *);
+diff -Naur gcc-4.6.0.orig/libgfortran/io/read.c gcc-4.6.0/libgfortran/io/read.c
+--- gcc-4.6.0.orig/libgfortran/io/read.c	2011-01-16 16:55:27.000000000 +0000
++++ gcc-4.6.0/libgfortran/io/read.c	2011-04-30 15:24:57.555707000 +0000
+@@ -1117,8 +1117,7 @@
+ void
+ read_x (st_parameter_dt *dtp, int n)
+ {
+-  int length;
+-  char *p, q;
++  int length, q, q2;
+ 
+   if ((dtp->u.p.current_unit->pad_status == PAD_NO || is_internal_unit (dtp))
+        && dtp->u.p.current_unit->bytes_left < n)
+@@ -1131,7 +1130,7 @@
+ 
+   if (is_internal_unit (dtp))
+     {
+-      p = mem_alloc_r (dtp->u.p.current_unit->s, &length);
++      mem_alloc_r (dtp->u.p.current_unit->s, &length);
+       if (unlikely (length < n))
+ 	n = length;
+       goto done;
+@@ -1140,55 +1139,37 @@
+   if (dtp->u.p.sf_seen_eor)
+     return;
+ 
+-  p = fbuf_read (dtp->u.p.current_unit, &length);
+-  if (p == NULL)
+-    {
+-      hit_eof (dtp);
+-      return;
+-    }
+-  
+-  if (length == 0 && dtp->u.p.item_count == 1)
+-    {
+-      if (dtp->u.p.current_unit->pad_status == PAD_NO)
+-	{
+-	  hit_eof (dtp);
+-	  return;
+-	}
+-      else
+-	return;
+-    }
+-
+   n = 0;
+   while (n < length)
+     {
+-      q = *p;
+-      if (q == '\n' || q == '\r')
++      q = fbuf_getc (dtp->u.p.current_unit);
++      if (q == EOF)
++	break;
++      else if (q == '\n' || q == '\r')
+ 	{
+ 	  /* Unexpected end of line. Set the position.  */
+-	  fbuf_seek (dtp->u.p.current_unit, n + 1 ,SEEK_CUR);
+ 	  dtp->u.p.sf_seen_eor = 1;
+ 
++	  /* If we see an EOR during non-advancing I/O, we need to skip
++	     the rest of the I/O statement.  Set the corresponding flag.  */
++	  if (dtp->u.p.advance_status == ADVANCE_NO || dtp->u.p.seen_dollar)
++	    dtp->u.p.eor_condition = 1;
++	    
+ 	  /* If we encounter a CR, it might be a CRLF.  */
+ 	  if (q == '\r') /* Probably a CRLF */
+ 	    {
+-	      /* See if there is an LF. Use fbuf_read rather then fbuf_getc so
+-		 the position is not advanced unless it really is an LF.  */
+-	      int readlen = 1;
+-	      p = fbuf_read (dtp->u.p.current_unit, &readlen);
+-	      if (*p == '\n' && readlen == 1)
+-	        {
+-		  dtp->u.p.sf_seen_eor = 2;
+-		  fbuf_seek (dtp->u.p.current_unit, 1 ,SEEK_CUR);
+-		}
++	      /* See if there is an LF.  */
++	      q2 = fbuf_getc (dtp->u.p.current_unit);
++	      if (q2 == '\n')
++		dtp->u.p.sf_seen_eor = 2;
++	      else if (q2 != EOF) /* Oops, seek back.  */
++		fbuf_seek (dtp->u.p.current_unit, -1, SEEK_CUR);
+ 	    }
+ 	  goto done;
+ 	}
+       n++;
+-      p++;
+     } 
+ 
+-  fbuf_seek (dtp->u.p.current_unit, n, SEEK_CUR);
+-  
+  done:
+   if ((dtp->common.flags & IOPARM_DT_HAS_SIZE) != 0)
+     dtp->u.p.size_used += (GFC_IO_INT) n;
+diff -Naur gcc-4.6.0.orig/libgomp/acinclude.m4 gcc-4.6.0/libgomp/acinclude.m4
+--- gcc-4.6.0.orig/libgomp/acinclude.m4	2011-01-20 23:41:24.000000000 +0000
++++ gcc-4.6.0/libgomp/acinclude.m4	2011-03-28 17:09:27.398261000 +0000
+@@ -228,20 +228,24 @@
+ # If we never went through the LIBGOMP_CHECK_LINKER_FEATURES macro, then we
+ # don't know enough about $LD to do tricks...
+ AC_REQUIRE([LIBGOMP_CHECK_LINKER_FEATURES])
+-# FIXME  The following test is too strict, in theory.
+-if test $enable_shared = no || test "x$LD" = x; then
+-  enable_symvers=no
+-else
+-  if test $with_gnu_ld = yes ; then
+-    enable_symvers=gnu
++
++# Turn a 'yes' into a suitable default.
++if test x$enable_symvers = xyes ; then
++  # FIXME  The following test is too strict, in theory.
++  if test $enable_shared = no || test "x$LD" = x; then
++    enable_symvers=no
+   else
+-    case ${target_os} in
+-      # Sun symbol versioning exists since Solaris 2.5.
+-      solaris2.[[5-9]]* | solaris2.1[[0-9]]*)
+-        enable_symvers=sun ;;
+-      *)
+-        enable_symvers=no ;;
+-    esac
++    if test $with_gnu_ld = yes ; then
++      enable_symvers=gnu
++    else
++      case ${target_os} in
++        # Sun symbol versioning exists since Solaris 2.5.
++        solaris2.[[5-9]]* | solaris2.1[[0-9]]*)
++          enable_symvers=sun ;;
++        *)
++          enable_symvers=no ;;
++      esac
++    fi
+   fi
+ fi
+ 
+diff -Naur gcc-4.6.0.orig/libgomp/configure gcc-4.6.0/libgomp/configure
+--- gcc-4.6.0.orig/libgomp/configure	2011-02-13 11:45:53.000000000 +0000
++++ gcc-4.6.0/libgomp/configure	2011-03-28 17:09:27.398261000 +0000
+@@ -15780,20 +15780,24 @@
+ # If we never went through the LIBGOMP_CHECK_LINKER_FEATURES macro, then we
+ # don't know enough about $LD to do tricks...
+ 
+-# FIXME  The following test is too strict, in theory.
+-if test $enable_shared = no || test "x$LD" = x; then
+-  enable_symvers=no
+-else
+-  if test $with_gnu_ld = yes ; then
+-    enable_symvers=gnu
++
++# Turn a 'yes' into a suitable default.
++if test x$enable_symvers = xyes ; then
++  # FIXME  The following test is too strict, in theory.
++  if test $enable_shared = no || test "x$LD" = x; then
++    enable_symvers=no
+   else
+-    case ${target_os} in
+-      # Sun symbol versioning exists since Solaris 2.5.
+-      solaris2.[5-9]* | solaris2.1[0-9]*)
+-        enable_symvers=sun ;;
+-      *)
+-        enable_symvers=no ;;
+-    esac
++    if test $with_gnu_ld = yes ; then
++      enable_symvers=gnu
++    else
++      case ${target_os} in
++        # Sun symbol versioning exists since Solaris 2.5.
++        solaris2.[5-9]* | solaris2.1[0-9]*)
++          enable_symvers=sun ;;
++        *)
++          enable_symvers=no ;;
++      esac
++    fi
+   fi
+ fi
+ 
+diff -Naur gcc-4.6.0.orig/libgomp/fortran.c gcc-4.6.0/libgomp/fortran.c
+--- gcc-4.6.0.orig/libgomp/fortran.c	2009-04-09 15:00:19.000000000 +0000
++++ gcc-4.6.0/libgomp/fortran.c	2011-05-06 10:11:59.254047000 +0000
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2005, 2007, 2008, 2009, 2011 Free Software Foundation, Inc.
+    Contributed by Jakub Jelinek <jakub@redhat.com>.
+ 
+    This file is part of the GNU OpenMP Library (libgomp).
+@@ -27,6 +27,7 @@
+ #include "libgomp.h"
+ #include "libgomp_f.h"
+ #include <stdlib.h>
++#include <limits.h>
+ 
+ #ifdef HAVE_ATTRIBUTE_ALIAS
+ /* Use internal aliases if possible.  */
+@@ -244,6 +245,8 @@
+ omp_lock_symver (omp_test_nest_lock_)
+ #endif
+ 
++#define TO_INT(x) ((x) > INT_MIN ? (x) < INT_MAX ? (x) : INT_MAX : INT_MIN)
++
+ void
+ omp_set_dynamic_ (const int32_t *set)
+ {
+@@ -253,7 +256,7 @@
+ void
+ omp_set_dynamic_8_ (const int64_t *set)
+ {
+-  omp_set_dynamic (*set);
++  omp_set_dynamic (!!*set);
+ }
+ 
+ void
+@@ -265,7 +268,7 @@
+ void
+ omp_set_nested_8_ (const int64_t *set)
+ {
+-  omp_set_nested (*set);
++  omp_set_nested (!!*set);
+ }
+ 
+ void
+@@ -277,7 +280,7 @@
+ void
+ omp_set_num_threads_8_ (const int64_t *set)
+ {
+-  omp_set_num_threads (*set);
++  omp_set_num_threads (TO_INT (*set));
+ }
+ 
+ int32_t
+@@ -343,7 +346,7 @@
+ void
+ omp_set_schedule_8_ (const int32_t *kind, const int64_t *modifier)
+ {
+-  omp_set_schedule (*kind, *modifier);
++  omp_set_schedule (*kind, TO_INT (*modifier));
+ }
+ 
+ void
+@@ -381,7 +384,7 @@
+ void
+ omp_set_max_active_levels_8_ (const int64_t *levels)
+ {
+-  omp_set_max_active_levels (*levels);
++  omp_set_max_active_levels (TO_INT (*levels));
+ }
+ 
+ int32_t
+@@ -405,7 +408,7 @@
+ int32_t
+ omp_get_ancestor_thread_num_8_ (const int64_t *level)
+ {
+-  return omp_get_ancestor_thread_num (*level);
++  return omp_get_ancestor_thread_num (TO_INT (*level));
+ }
+ 
+ int32_t
+@@ -417,7 +420,7 @@
+ int32_t
+ omp_get_team_size_8_ (const int64_t *level)
+ {
+-  return omp_get_team_size (*level);
++  return omp_get_team_size (TO_INT (*level));
+ }
+ 
+ int32_t
+diff -Naur gcc-4.6.0.orig/libgomp/testsuite/libgomp.c/pr48591.c gcc-4.6.0/libgomp/testsuite/libgomp.c/pr48591.c
+--- gcc-4.6.0.orig/libgomp/testsuite/libgomp.c/pr48591.c	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libgomp/testsuite/libgomp.c/pr48591.c	2011-04-13 15:52:17.795243000 +0000
+@@ -0,0 +1,22 @@
++/* PR middle-end/48591 */
++/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* } } */
++/* { dg-options "-fopenmp" } */
++
++extern void abort (void);
++
++int
++main ()
++{
++  __float128 f = 0.0;
++  int i;
++  #pragma omp parallel for reduction(+:f)
++    for (i = 0; i < 128; i++)
++      f += 0.5Q;
++  if (f != 64.0Q)
++    abort ();
++  #pragma omp atomic
++    f += 8.5Q;
++  if (f != 72.5Q)
++    abort ();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libgomp/testsuite/libgomp.fortran/pr48894.f90 gcc-4.6.0/libgomp/testsuite/libgomp.fortran/pr48894.f90
+--- gcc-4.6.0.orig/libgomp/testsuite/libgomp.fortran/pr48894.f90	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libgomp/testsuite/libgomp.fortran/pr48894.f90	2011-05-06 10:11:59.254047000 +0000
+@@ -0,0 +1,23 @@
++! PR fortran/48894
++! { dg-do run }
++! { dg-options "-fdefault-integer-8" }
++
++  use omp_lib
++  integer, parameter :: zero = 0
++  integer :: err
++  logical :: l
++  err = 0
++  !$omp parallel
++    !$omp parallel private (l)
++      l = omp_get_ancestor_thread_num (-HUGE (zero)) .ne. -1
++      l = l .or. (omp_get_ancestor_thread_num (HUGE (zero)) .ne. -1)
++      l = l .or. (omp_get_team_size (-HUGE (zero)) .ne. -1)
++      l = l .or. (omp_get_team_size (HUGE (zero)) .ne. -1)
++      if (l) then
++        !$omp atomic
++          err = err + 1
++      endif
++    !$omp end parallel
++  !$omp end parallel
++  if (err .ne. 0) call abort
++end
+diff -Naur gcc-4.6.0.orig/libjava/configure gcc-4.6.0/libjava/configure
+--- gcc-4.6.0.orig/libjava/configure	2011-03-25 17:07:00.000000000 +0000
++++ gcc-4.6.0/libjava/configure	2011-03-28 17:09:27.398261000 +0000
+@@ -959,6 +959,7 @@
+ with_libiconv_prefix
+ enable_tls
+ with_system_libunwind
++enable_symvers
+ with_python_dir
+ enable_aot_compile_rpm
+ enable_java_home
+@@ -1648,6 +1649,7 @@
+   --enable-java-gc=TYPE   choose garbage collector (default is boehm)
+   --disable-rpath         do not hardcode runtime library paths
+   --enable-tls            Use thread-local storage [default=yes]
++  --disable-symvers       disable symbol versioning for libjava
+   --enable-aot-compile-rpm
+                           enable installation of aot-compile-rpm [default=no]
+   --enable-java-home      create a standard JDK-style directory layout in the
+@@ -13344,7 +13346,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 13347 "configure"
++#line 13349 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -13450,7 +13452,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 13453 "configure"
++#line 13455 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -19443,7 +19445,7 @@
+   enableval=$enable_sjlj_exceptions; :
+ else
+   cat > conftest.$ac_ext << EOF
+-#line 19446 "configure"
++#line 19448 "configure"
+ struct S { ~S(); };
+ void bar();
+ void foo()
+@@ -24530,12 +24532,24 @@
+ if test "${libjava_cv_anon_version_script+set}" = set; then :
+   $as_echo_n "(cached) " >&6
+ else
+-  save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
+-   libjava_cv_anon_version_script=no
+-   CFLAGS="$CFLAGS -fPIC";
+-   LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
+-   echo '{ global: globalsymb*; local: *; };' > conftest.map
+-   if test x$gcc_no_link = xyes; then
++  # Check whether --enable-symvers was given.
++if test "${enable_symvers+set}" = set; then :
++  enableval=$enable_symvers; case "$enableval" in
++         yes) libjava_cv_anon_version_script=yes ;;
++         no)  libjava_cv_anon_version_script=no ;;
++         *)   as_fn_error "Unknown argument to enable/disable symvers" "$LINENO" 5;;
++        esac
++else
++  libjava_cv_anon_version_script=yes
++
++fi
++
++   if test x$libjava_cv_anon_version_script = xyes; then
++     save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
++     CFLAGS="$CFLAGS -fPIC";
++     LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
++     echo '{ global: globalsymb*; local: *; };' > conftest.map
++     if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -24551,17 +24565,19 @@
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+   libjava_cv_anon_version_script=gnu
++else
++  libjava_cv_anon_version_script=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-   if test x$libjava_cv_anon_version_script = xno; then
+-     case "$target_os" in
+-       solaris2*)
+-         LDFLAGS="$save_LDFLAGS"
+-         LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
+-         # Sun ld doesn't understand wildcards here.
+-         echo '{ global: globalsymbol; local: *; };' > conftest.map
+-         if test x$gcc_no_link = xyes; then
++     if test x$libjava_cv_anon_version_script = xno; then
++       case "$target_os" in
++         solaris2*)
++           LDFLAGS="$save_LDFLAGS"
++           LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
++           # Sun ld doesn't understand wildcards here.
++           echo '{ global: globalsymbol; local: *; };' > conftest.map
++           if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -24580,10 +24596,11 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-         ;;
+-     esac
++           ;;
++       esac
++     fi
++     CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
+    fi
+-   CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
+ 
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libjava_cv_anon_version_script" >&5
+diff -Naur gcc-4.6.0.orig/libjava/configure.ac gcc-4.6.0/libjava/configure.ac
+--- gcc-4.6.0.orig/libjava/configure.ac	2011-02-14 14:28:00.000000000 +0000
++++ gcc-4.6.0/libjava/configure.ac	2011-03-28 17:09:27.398261000 +0000
+@@ -1800,26 +1800,38 @@
+ # See if linker supports anonymous version scripts.
+ AC_CACHE_CHECK([whether ld supports anonymous version scripts],
+   [libjava_cv_anon_version_script],
+-  [save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
+-   libjava_cv_anon_version_script=no
+-   CFLAGS="$CFLAGS -fPIC";
+-   LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
+-   echo '{ global: globalsymb*; local: *; };' > conftest.map
+-   AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
+-	       [libjava_cv_anon_version_script=gnu], [])
+-   if test x$libjava_cv_anon_version_script = xno; then
+-     case "$target_os" in
+-       solaris2*)
+-         LDFLAGS="$save_LDFLAGS"
+-         LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
+-         # Sun ld doesn't understand wildcards here.
+-         echo '{ global: globalsymbol; local: *; };' > conftest.map
+-         AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
+-	 	     [libjava_cv_anon_version_script=sun], [])
+-         ;;
+-     esac
++  [AC_ARG_ENABLE(symvers,
++     AS_HELP_STRING([--disable-symvers],
++		    [disable symbol versioning for libjava]),
++       [case "$enableval" in
++         yes) libjava_cv_anon_version_script=yes ;;
++         no)  libjava_cv_anon_version_script=no ;;
++         *)   AC_MSG_ERROR([Unknown argument to enable/disable symvers]);;
++        esac],
++       [libjava_cv_anon_version_script=yes]
++   )
++   if test x$libjava_cv_anon_version_script = xyes; then
++     save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
++     CFLAGS="$CFLAGS -fPIC";
++     LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
++     echo '{ global: globalsymb*; local: *; };' > conftest.map
++     AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
++	         [libjava_cv_anon_version_script=gnu],
++		 [libjava_cv_anon_version_script=no])
++     if test x$libjava_cv_anon_version_script = xno; then
++       case "$target_os" in
++         solaris2*)
++           LDFLAGS="$save_LDFLAGS"
++           LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
++           # Sun ld doesn't understand wildcards here.
++           echo '{ global: globalsymbol; local: *; };' > conftest.map
++           AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
++	 	       [libjava_cv_anon_version_script=sun], [])
++           ;;
++       esac
++     fi
++     CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
+    fi
+-   CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
+   ])
+ AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" != no)
+ AM_CONDITIONAL(ANONVERSCRIPT_GNU, test "$libjava_cv_anon_version_script" = gnu)
+diff -Naur gcc-4.6.0.orig/libjava/testsuite/libjava.jni/jni.exp gcc-4.6.0/libjava/testsuite/libjava.jni/jni.exp
+--- gcc-4.6.0.orig/libjava/testsuite/libjava.jni/jni.exp	2011-01-06 18:56:58.000000000 +0000
++++ gcc-4.6.0/libjava/testsuite/libjava.jni/jni.exp	2011-04-15 17:17:18.420139000 +0000
+@@ -280,6 +280,11 @@
+     lappend cxxflags "-shared-libgcc"
+   }
+ 
++  # Tru64 UNIX needs -liconv linked explicitly since gcc does the linking.
++  if { [istarget "alpha*-dec-osf*"] } {
++    lappend cxxflags $libiconv
++  }
++
+   return $cxxflags
+ }
+ 
+diff -Naur gcc-4.6.0.orig/libquadmath/configure gcc-4.6.0/libquadmath/configure
+--- gcc-4.6.0.orig/libquadmath/configure	2011-02-17 19:57:18.000000000 +0000
++++ gcc-4.6.0/libquadmath/configure	2011-03-28 17:09:27.398261000 +0000
+@@ -747,6 +747,7 @@
+ enable_libtool_lock
+ enable_maintainer_mode
+ enable_multilib
++enable_symvers
+ enable_generated_files_in_srcdir
+ '
+       ac_precious_vars='build_alias
+@@ -1391,6 +1392,7 @@
+   --enable-maintainer-mode  enable make rules and dependencies not useful
+ 			  (and sometimes confusing) to the casual installer
+   --enable-multilib       build many library versions (default)
++  --disable-symvers       disable symbol versioning for libquadmath
+   --enable-generated-files-in-srcdir
+                           put copies of generated files in source dir intended
+                           for creating source tarballs for users without
+@@ -10511,7 +10513,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 10514 "configure"
++#line 10516 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -10617,7 +10619,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 10620 "configure"
++#line 10622 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -12339,19 +12341,27 @@
+ # Check for symbol versioning (copied from libssp).
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symbol versioning is supported" >&5
+ $as_echo_n "checking whether symbol versioning is supported... " >&6; }
+-if test x$gcc_no_link = xyes; then
+-  # If we cannot link, we cannot build shared libraries, so do not use
+-  # symbol versioning.
+-  quadmath_use_symver=no
++# Check whether --enable-symvers was given.
++if test "${enable_symvers+set}" = set; then :
++  enableval=$enable_symvers; quadmath_use_symver=$enableval
+ else
+-  save_LDFLAGS="$LDFLAGS"
+-  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-  cat > conftest.map <<EOF
++  quadmath_use_symver=yes
++fi
++
++if test "x$quadmath_use_symver" = xyes; then
++  if test x$gcc_no_link = xyes; then
++    # If we cannot link, we cannot build shared libraries, so do not use
++    # symbol versioning.
++    quadmath_use_symver=no
++  else
++    save_LDFLAGS="$LDFLAGS"
++    LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++    cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-  if test x$gcc_no_link = xyes; then
++    if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -12372,18 +12382,18 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-  if test x$quadmath_use_symver = xno; then
+-    case "$target_os" in
+-      solaris2*)
+-        LDFLAGS="$save_LDFLAGS"
+-        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-        # Sun ld cannot handle wildcards and treats all entries as undefined.
+-        cat > conftest.map <<EOF
++    if test x$quadmath_use_symver = xno; then
++      case "$target_os" in
++        solaris2*)
++          LDFLAGS="$save_LDFLAGS"
++          LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++          # Sun ld cannot handle wildcards and treats all entries as undefined.
++          cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-        if test x$gcc_no_link = xyes; then
++          if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -12404,10 +12414,11 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-        ;;
+-    esac
++          ;;
++      esac
++    fi
++    LDFLAGS="$save_LDFLAGS"
+   fi
+-  LDFLAGS="$save_LDFLAGS"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $quadmath_use_symver" >&5
+ $as_echo "$quadmath_use_symver" >&6; }
+diff -Naur gcc-4.6.0.orig/libquadmath/configure.ac gcc-4.6.0/libquadmath/configure.ac
+--- gcc-4.6.0.orig/libquadmath/configure.ac	2011-02-17 19:57:18.000000000 +0000
++++ gcc-4.6.0/libquadmath/configure.ac	2011-03-28 17:09:27.398261000 +0000
+@@ -164,35 +164,42 @@
+ 
+ # Check for symbol versioning (copied from libssp).
+ AC_MSG_CHECKING([whether symbol versioning is supported])
+-if test x$gcc_no_link = xyes; then
+-  # If we cannot link, we cannot build shared libraries, so do not use
+-  # symbol versioning.
+-  quadmath_use_symver=no
+-else
+-  save_LDFLAGS="$LDFLAGS"
+-  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-  cat > conftest.map <<EOF
++AC_ARG_ENABLE(symvers,
++AS_HELP_STRING([--disable-symvers],
++  [disable symbol versioning for libquadmath]),
++quadmath_use_symver=$enableval,
++quadmath_use_symver=yes)
++if test "x$quadmath_use_symver" = xyes; then
++  if test x$gcc_no_link = xyes; then
++    # If we cannot link, we cannot build shared libraries, so do not use
++    # symbol versioning.
++    quadmath_use_symver=no
++  else
++    save_LDFLAGS="$LDFLAGS"
++    LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++    cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-  AC_TRY_LINK([int foo;],[],[quadmath_use_symver=gnu],[quadmath_use_symver=no])
+-  if test x$quadmath_use_symver = xno; then
+-    case "$target_os" in
+-      solaris2*)
+-        LDFLAGS="$save_LDFLAGS"
+-        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-        # Sun ld cannot handle wildcards and treats all entries as undefined.
+-        cat > conftest.map <<EOF
++    AC_TRY_LINK([int foo;],[],[quadmath_use_symver=gnu],[quadmath_use_symver=no])
++    if test x$quadmath_use_symver = xno; then
++      case "$target_os" in
++        solaris2*)
++          LDFLAGS="$save_LDFLAGS"
++          LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++          # Sun ld cannot handle wildcards and treats all entries as undefined.
++          cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-        AC_TRY_LINK([int foo;],[],[quadmath_use_symver=sun],[quadmath_use_symver=no])
+-        ;;
+-    esac
++          AC_TRY_LINK([int foo;],[],[quadmath_use_symver=sun],[quadmath_use_symver=no])
++          ;;
++      esac
++    fi
++    LDFLAGS="$save_LDFLAGS"
+   fi
+-  LDFLAGS="$save_LDFLAGS"
+ fi
+ AC_MSG_RESULT($quadmath_use_symver)
+ AM_CONDITIONAL(LIBQUAD_USE_SYMVER, [test "x$quadmath_use_symver" != xno])
+diff -Naur gcc-4.6.0.orig/libquadmath/libquadmath.info gcc-4.6.0/libquadmath/libquadmath.info
+--- gcc-4.6.0.orig/libquadmath/libquadmath.info	2011-03-25 17:46:01.000000000 +0000
++++ gcc-4.6.0/libquadmath/libquadmath.info	1970-01-01 00:00:00.000000000 +0000
+@@ -1,924 +0,0 @@
+-This is libquadmath.info, produced by makeinfo version 4.13 from
+-/d/gcc-4.6.0/gcc-4.6.0/libquadmath/libquadmath.texi.
+-
+-Copyright (C) 2010 Free Software Foundation, Inc.
+-
+-     Permission is granted to copy, distribute and/or modify this
+-     document under the terms of the GNU Free Documentation License,
+-     Version 1.2 or any later version published by the Free Software
+-     Foundation; with no Invariant Sections, with the Front-Cover Texts
+-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+-     below.  A copy of the license is included in the section entitled
+-     "GNU Free Documentation License."
+-
+-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+-     and modify this GNU manual.
+-
+-INFO-DIR-SECTION GNU Libraries
+-START-INFO-DIR-ENTRY
+-* libquadmath: (libquadmath).                  GCC Quad-Precision Math Library
+-END-INFO-DIR-ENTRY
+-
+-   This manual documents the GCC Quad-Precision Math Library API.
+-
+-   Published by the Free Software Foundation 51 Franklin Street, Fifth
+-Floor Boston, MA 02110-1301 USA
+-
+-   Copyright (C) 2010 Free Software Foundation, Inc.
+-
+-     Permission is granted to copy, distribute and/or modify this
+-     document under the terms of the GNU Free Documentation License,
+-     Version 1.2 or any later version published by the Free Software
+-     Foundation; with no Invariant Sections, with the Front-Cover Texts
+-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
+-     below.  A copy of the license is included in the section entitled
+-     "GNU Free Documentation License."
+-
+-     (a) The FSF's Back-Cover Text is: "You have the freedom to copy
+-     and modify this GNU manual.
+-
+-
+-File: libquadmath.info,  Node: Top,  Next: Typedef and constants,  Up: (dir)
+-
+-Introduction
+-************
+-
+-This manual documents the usage of libquadmath, the GCC Quad-Precision
+-Math Library Application Programming Interface (API).
+-
+-* Menu:
+-
+-* Typedef and constants::      Defined data types and constants
+-* Math Library Routines::      The Libquadmath math runtime application
+-                               programming interface.
+-* I/O Library Routines::       The Libquadmath I/O runtime application
+-                               programming interface.
+-* GNU Free Documentation License::
+-                               How you can copy and share this manual.
+-* Reporting Bugs::             How to report bugs in GCC Libquadmath.
+-
+-
+-File: libquadmath.info,  Node: Typedef and constants,  Next: Math Library Routines,  Prev: Top,  Up: Top
+-
+-1 Typedef and constants
+-***********************
+-
+-The following data type has been defined via `typedef'.
+-
+-`__complex128': `__float128'-based complex number
+-
+-   The following macros are defined, which give the numeric limits of
+-the `__float128' data type.
+-
+-`FLT128_MAX': largest finite number
+-
+-`FLT128_MIN': smallest positive number with full precision
+-
+-`FLT128_EPSILON': difference between 1 and the next larger
+-     representable number
+-
+-`FLT128_DENORM_MIN': smallest positive denormalized number
+-
+-`FLT128_MANT_DIG': number of digits in the mantissa (bit precision)
+-
+-`FLT128_MIN_EXP': maximal negative exponent
+-
+-`FLT128_MAX_EXP': maximal positive exponent
+-
+-`FLT128_DIG': number of decimal digits in the mantissa
+-
+-`FLT128_MIN_10_EXP': maximal negative decimal exponent
+-
+-`FLT128_MAX_10_EXP': maximal positive decimal exponent
+-
+-   The following mathematical constants of type `__float128' are
+-defined.
+-
+-`M_Eq': the constant e (Euler's number)
+-
+-`M_LOG2Eq': binary logarithm of 2
+-
+-`M_LOG10Eq': common, decimal logarithm of 2
+-
+-`M_LN2q': natural logarithm of 2
+-
+-`M_LN10q': natural logarithm of 10
+-
+-`M_PIq': pi
+-
+-`M_PI_2q': two pi
+-
+-`M_PI_4q': four pi
+-
+-`M_1_PIq': one over pi
+-
+-`M_2_PIq': one over two pi
+-
+-`M_2_SQRTPIq': two over square root of pi
+-
+-`M_SQRT2q': square root of 2
+-
+-`M_SQRT1_2q': one over square root of 2
+-
+-
+-File: libquadmath.info,  Node: Math Library Routines,  Next: I/O Library Routines,  Prev: Typedef and constants,  Up: Top
+-
+-2 Math Library Routines
+-***********************
+-
+-The following mathematical functions are available:
+-
+-`acosq': arc cosine function
+-
+-`acoshq': inverse hyperbolic cosine function
+-
+-`asinq': arc sine function
+-
+-`asinhq': inverse hyperbolic sine function
+-
+-`atanq': arc tangent function
+-
+-`atanhq': inverse hyperbolic tangent function
+-
+-`atan2q': arc tangent function
+-
+-`cbrtq': cube root function
+-
+-`ceilq': ceiling value function
+-
+-`copysignq': copy sign of a number
+-
+-`coshq': hyperbolic cosine function
+-
+-`cosq': cosine function
+-
+-`erfq': error function
+-
+-`erfcq': complementary error function
+-
+-`expq': exponential function
+-
+-`expm1q': exponential minus 1 function
+-
+-`fabsq': absolute value function
+-
+-`fdimq': positive difference function
+-
+-`finiteq': check finiteness of value
+-
+-`floorq': floor value function
+-
+-`fmaq': fused multiply and add
+-
+-`fmaxq': determine maximum of two values
+-
+-`fminq': determine minimum of two values
+-
+-`fmodq': remainder value function
+-
+-`frexpq': extract mantissa and exponent
+-
+-`hypotq': Eucledian distance function
+-
+-`ilogbq': get exponent of the value
+-
+-`isinfq': check for infinity
+-
+-`isnanq': check for not a number
+-
+-`j0q': Bessel function of the first kind, first order
+-
+-`j1q': Bessel function of the first kind, second order
+-
+-`jnq': Bessel function of the first kind, N-th order
+-
+-`ldexpq': load exponent of the value
+-
+-`lgammaq': logarithmic gamma function
+-
+-`llrintq': round to nearest integer value
+-
+-`llroundq': round to nearest integer value away from zero
+-
+-`logq': natural logarithm function
+-
+-`log10q': base 10 logarithm function
+-
+-`log1pq': compute natural logarithm of the value plus one
+-
+-`log2q': base 2 logarithm function
+-
+-`lrintq': round to nearest integer value
+-
+-`lroundq': round to nearest integer value away from zero
+-
+-`modfq': decompose the floating-point number
+-
+-`nanq': return quiet NaN
+-
+-`nearbyintq': round to nearest integer
+-
+-`nextafterq': next representable floating-point number
+-
+-`powq': power function
+-
+-`remainderq': remainder function
+-
+-`remquoq': remainder and part of quotient
+-
+-`rintq': round-to-nearest integral value
+-
+-`roundq': round-to-nearest integral value, return `__float128'
+-
+-`scalblnq': compute exponent using `FLT_RADIX'
+-
+-`scalbnq': compute exponent using `FLT_RADIX'
+-
+-`signbitq': return sign bit
+-
+-`sincosq': calculate sine and cosine simulataneously
+-
+-`sinhq': hyperbolic sine function
+-
+-`sinq': sine function
+-
+-`sqrtq': square root function
+-
+-`tanq': tangent function
+-
+-`tanhq': hyperbolic tangent function
+-
+-`tgammaq': true gamma function
+-
+-`truncq': round to integer, towards zero
+-
+-`y0q': Bessel function of the second kind, first order
+-
+-`y1q': Bessel function of the second kind, second order
+-
+-`ynq': Bessel function of the second kind, N-th order
+-
+-`cabsq' complex absolute value function
+-
+-`cargq': calculate the argument
+-
+-`cimagq' imaginary part of complex number
+-
+-`crealq': real part of complex number
+-
+-`cacoshq': complex arc hyperbolic cosine function
+-
+-`cacosq': complex arc cosine function
+-
+-`casinhq': complex arc hyperbolic sine function
+-
+-`casinq': complex arc sine function
+-
+-`catanhq': complex arc hyperbolic tangent function
+-
+-`catanq': complex arc tangent function
+-
+-`ccosq' complex cosine function:
+-
+-`ccoshq': complex hyperbolic cosine function
+-
+-`cexpq': complex exponential function
+-
+-`cexpiq': computes the exponential function of "i" times a
+-     real value
+-
+-`clogq': complex natural logarithm
+-
+-`clog10q': complex base 10 logarithm
+-
+-`conjq': complex conjugate function
+-
+-`cpowq': complex power function
+-
+-`cprojq': project into Riemann Sphere
+-
+-`csinq': complex sine function
+-
+-`csinhq': complex hyperbolic sine function
+-
+-`csqrtq': complex square root
+-
+-`ctanq': complex tangent function
+-
+-`ctanhq': complex hyperbolic tangent function
+-
+-
+-File: libquadmath.info,  Node: I/O Library Routines,  Next: GNU Free Documentation License,  Prev: Math Library Routines,  Up: Top
+-
+-3 I/O Library Routines
+-**********************
+-
+-* Menu:
+-
+-* `strtoflt128':          strtoflt128,          Convert from string
+-* `quadmath_snprintf':    quadmath_snprintf,    Convert to string
+-
+-
+-File: libquadmath.info,  Node: strtoflt128,  Next: quadmath_snprintf,  Up: I/O Library Routines
+-
+-3.1 `strtoflt128' -- Convert from string
+-========================================
+-
+-The function `dmath_strtopQ' converts a string into a `__float128'
+-number.
+-
+-Syntax
+-     `__float128 strtoflt128 (const char *s, char **sp)'
+-
+-_Arguments_:
+-     S          input string
+-     SP         the address of the next character in the string
+-
+-     The argument SP contains, if not `NULL', the address of the next
+-     character following the parts of the string, which have been read.
+-
+-Example
+-          #include <quadmath.h>
+-
+-          int main ()
+-          {
+-            __float128 r;
+-
+-            r = strtoflt128 ("1.2345678", NULL);
+-
+-            return 0;
+-          }
+-
+-
+-File: libquadmath.info,  Node: quadmath_snprintf,  Prev: strtoflt128,  Up: I/O Library Routines
+-
+-3.2 `quadmath_snprintf' -- Convert to string
+-============================================
+-
+-The function `quadmath_snprintf' converts a `__float128' floating-point
+-number into a string.  It is a specialized alternative to `snprintf',
+-where the format string is restricted to a single conversion specifier
+-with `Q' modifier and conversion specifier `e', `E', `f', `F', `g',
+-`G', `a' or `A', with no extra characters before or after the
+-conversion specifier.  The `%m$' or `*m$' style must not be used in the
+-format.
+-
+-Syntax
+-     `int quadmath_snprintf (char *s, size_t size, const char *format,
+-     ...)'
+-
+-_Arguments_:
+-     S          output string
+-     SIZE       byte size of the string, including tailing NUL
+-     FORMAT     conversion specifier string
+-
+-Example
+-          #include <quadmath.h>
+-          #include <stdlib.h>
+-          #include <stdio.h>
+-
+-          int main ()
+-          {
+-            __float128 r;
+-            int prec = 20;
+-            int width = 46;
+-            char buf[128];
+-
+-            r = 2.0q;
+-            r = sqrtq (r);
+-            int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
+-            if ((size_t) n < sizeof buf)
+-              printf ("%s\n", buf);
+-              /* Prints: +1.41421356237309504880e+00 */
+-            quadmath_snprintf (buf, sizeof buf, "%Qa", r);
+-            if ((size_t) n < sizeof buf)
+-              printf ("%s\n", buf);
+-              /* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */
+-            n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
+-            if (n > -1)
+-              {
+-                char *str = malloc (n + 1);
+-                if (str)
+-                  {
+-                    quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
+-                    printf ("%s\n", str);
+-                    /* Prints: +1.41421356237309504880e+00 */
+-                  }
+-                free (str);
+-              }
+-            return 0;
+-          }
+-
+-
+-   On some targets when supported by the C library hooks are installed
+-for `printf' family of functions, so that `printf ("%Qe", 1.2Q);' etc.
+-works too.
+-
+-
+-File: libquadmath.info,  Node: GNU Free Documentation License,  Next: Reporting Bugs,  Prev: I/O Library Routines,  Up: Top
+-
+-GNU Free Documentation License
+-******************************
+-
+-                     Version 1.3, 3 November 2008
+-
+-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+-     `http://fsf.org/'
+-
+-     Everyone is permitted to copy and distribute verbatim copies
+-     of this license document, but changing it is not allowed.
+-
+-  0. PREAMBLE
+-
+-     The purpose of this License is to make a manual, textbook, or other
+-     functional and useful document "free" in the sense of freedom: to
+-     assure everyone the effective freedom to copy and redistribute it,
+-     with or without modifying it, either commercially or
+-     noncommercially.  Secondarily, this License preserves for the
+-     author and publisher a way to get credit for their work, while not
+-     being considered responsible for modifications made by others.
+-
+-     This License is a kind of "copyleft", which means that derivative
+-     works of the document must themselves be free in the same sense.
+-     It complements the GNU General Public License, which is a copyleft
+-     license designed for free software.
+-
+-     We have designed this License in order to use it for manuals for
+-     free software, because free software needs free documentation: a
+-     free program should come with manuals providing the same freedoms
+-     that the software does.  But this License is not limited to
+-     software manuals; it can be used for any textual work, regardless
+-     of subject matter or whether it is published as a printed book.
+-     We recommend this License principally for works whose purpose is
+-     instruction or reference.
+-
+-  1. APPLICABILITY AND DEFINITIONS
+-
+-     This License applies to any manual or other work, in any medium,
+-     that contains a notice placed by the copyright holder saying it
+-     can be distributed under the terms of this License.  Such a notice
+-     grants a world-wide, royalty-free license, unlimited in duration,
+-     to use that work under the conditions stated herein.  The
+-     "Document", below, refers to any such manual or work.  Any member
+-     of the public is a licensee, and is addressed as "you".  You
+-     accept the license if you copy, modify or distribute the work in a
+-     way requiring permission under copyright law.
+-
+-     A "Modified Version" of the Document means any work containing the
+-     Document or a portion of it, either copied verbatim, or with
+-     modifications and/or translated into another language.
+-
+-     A "Secondary Section" is a named appendix or a front-matter section
+-     of the Document that deals exclusively with the relationship of the
+-     publishers or authors of the Document to the Document's overall
+-     subject (or to related matters) and contains nothing that could
+-     fall directly within that overall subject.  (Thus, if the Document
+-     is in part a textbook of mathematics, a Secondary Section may not
+-     explain any mathematics.)  The relationship could be a matter of
+-     historical connection with the subject or with related matters, or
+-     of legal, commercial, philosophical, ethical or political position
+-     regarding them.
+-
+-     The "Invariant Sections" are certain Secondary Sections whose
+-     titles are designated, as being those of Invariant Sections, in
+-     the notice that says that the Document is released under this
+-     License.  If a section does not fit the above definition of
+-     Secondary then it is not allowed to be designated as Invariant.
+-     The Document may contain zero Invariant Sections.  If the Document
+-     does not identify any Invariant Sections then there are none.
+-
+-     The "Cover Texts" are certain short passages of text that are
+-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+-     that says that the Document is released under this License.  A
+-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+-     be at most 25 words.
+-
+-     A "Transparent" copy of the Document means a machine-readable copy,
+-     represented in a format whose specification is available to the
+-     general public, that is suitable for revising the document
+-     straightforwardly with generic text editors or (for images
+-     composed of pixels) generic paint programs or (for drawings) some
+-     widely available drawing editor, and that is suitable for input to
+-     text formatters or for automatic translation to a variety of
+-     formats suitable for input to text formatters.  A copy made in an
+-     otherwise Transparent file format whose markup, or absence of
+-     markup, has been arranged to thwart or discourage subsequent
+-     modification by readers is not Transparent.  An image format is
+-     not Transparent if used for any substantial amount of text.  A
+-     copy that is not "Transparent" is called "Opaque".
+-
+-     Examples of suitable formats for Transparent copies include plain
+-     ASCII without markup, Texinfo input format, LaTeX input format,
+-     SGML or XML using a publicly available DTD, and
+-     standard-conforming simple HTML, PostScript or PDF designed for
+-     human modification.  Examples of transparent image formats include
+-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
+-     can be read and edited only by proprietary word processors, SGML or
+-     XML for which the DTD and/or processing tools are not generally
+-     available, and the machine-generated HTML, PostScript or PDF
+-     produced by some word processors for output purposes only.
+-
+-     The "Title Page" means, for a printed book, the title page itself,
+-     plus such following pages as are needed to hold, legibly, the
+-     material this License requires to appear in the title page.  For
+-     works in formats which do not have any title page as such, "Title
+-     Page" means the text near the most prominent appearance of the
+-     work's title, preceding the beginning of the body of the text.
+-
+-     The "publisher" means any person or entity that distributes copies
+-     of the Document to the public.
+-
+-     A section "Entitled XYZ" means a named subunit of the Document
+-     whose title either is precisely XYZ or contains XYZ in parentheses
+-     following text that translates XYZ in another language.  (Here XYZ
+-     stands for a specific section name mentioned below, such as
+-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
+-     To "Preserve the Title" of such a section when you modify the
+-     Document means that it remains a section "Entitled XYZ" according
+-     to this definition.
+-
+-     The Document may include Warranty Disclaimers next to the notice
+-     which states that this License applies to the Document.  These
+-     Warranty Disclaimers are considered to be included by reference in
+-     this License, but only as regards disclaiming warranties: any other
+-     implication that these Warranty Disclaimers may have is void and
+-     has no effect on the meaning of this License.
+-
+-  2. VERBATIM COPYING
+-
+-     You may copy and distribute the Document in any medium, either
+-     commercially or noncommercially, provided that this License, the
+-     copyright notices, and the license notice saying this License
+-     applies to the Document are reproduced in all copies, and that you
+-     add no other conditions whatsoever to those of this License.  You
+-     may not use technical measures to obstruct or control the reading
+-     or further copying of the copies you make or distribute.  However,
+-     you may accept compensation in exchange for copies.  If you
+-     distribute a large enough number of copies you must also follow
+-     the conditions in section 3.
+-
+-     You may also lend copies, under the same conditions stated above,
+-     and you may publicly display copies.
+-
+-  3. COPYING IN QUANTITY
+-
+-     If you publish printed copies (or copies in media that commonly
+-     have printed covers) of the Document, numbering more than 100, and
+-     the Document's license notice requires Cover Texts, you must
+-     enclose the copies in covers that carry, clearly and legibly, all
+-     these Cover Texts: Front-Cover Texts on the front cover, and
+-     Back-Cover Texts on the back cover.  Both covers must also clearly
+-     and legibly identify you as the publisher of these copies.  The
+-     front cover must present the full title with all words of the
+-     title equally prominent and visible.  You may add other material
+-     on the covers in addition.  Copying with changes limited to the
+-     covers, as long as they preserve the title of the Document and
+-     satisfy these conditions, can be treated as verbatim copying in
+-     other respects.
+-
+-     If the required texts for either cover are too voluminous to fit
+-     legibly, you should put the first ones listed (as many as fit
+-     reasonably) on the actual cover, and continue the rest onto
+-     adjacent pages.
+-
+-     If you publish or distribute Opaque copies of the Document
+-     numbering more than 100, you must either include a
+-     machine-readable Transparent copy along with each Opaque copy, or
+-     state in or with each Opaque copy a computer-network location from
+-     which the general network-using public has access to download
+-     using public-standard network protocols a complete Transparent
+-     copy of the Document, free of added material.  If you use the
+-     latter option, you must take reasonably prudent steps, when you
+-     begin distribution of Opaque copies in quantity, to ensure that
+-     this Transparent copy will remain thus accessible at the stated
+-     location until at least one year after the last time you
+-     distribute an Opaque copy (directly or through your agents or
+-     retailers) of that edition to the public.
+-
+-     It is requested, but not required, that you contact the authors of
+-     the Document well before redistributing any large number of
+-     copies, to give them a chance to provide you with an updated
+-     version of the Document.
+-
+-  4. MODIFICATIONS
+-
+-     You may copy and distribute a Modified Version of the Document
+-     under the conditions of sections 2 and 3 above, provided that you
+-     release the Modified Version under precisely this License, with
+-     the Modified Version filling the role of the Document, thus
+-     licensing distribution and modification of the Modified Version to
+-     whoever possesses a copy of it.  In addition, you must do these
+-     things in the Modified Version:
+-
+-       A. Use in the Title Page (and on the covers, if any) a title
+-          distinct from that of the Document, and from those of
+-          previous versions (which should, if there were any, be listed
+-          in the History section of the Document).  You may use the
+-          same title as a previous version if the original publisher of
+-          that version gives permission.
+-
+-       B. List on the Title Page, as authors, one or more persons or
+-          entities responsible for authorship of the modifications in
+-          the Modified Version, together with at least five of the
+-          principal authors of the Document (all of its principal
+-          authors, if it has fewer than five), unless they release you
+-          from this requirement.
+-
+-       C. State on the Title page the name of the publisher of the
+-          Modified Version, as the publisher.
+-
+-       D. Preserve all the copyright notices of the Document.
+-
+-       E. Add an appropriate copyright notice for your modifications
+-          adjacent to the other copyright notices.
+-
+-       F. Include, immediately after the copyright notices, a license
+-          notice giving the public permission to use the Modified
+-          Version under the terms of this License, in the form shown in
+-          the Addendum below.
+-
+-       G. Preserve in that license notice the full lists of Invariant
+-          Sections and required Cover Texts given in the Document's
+-          license notice.
+-
+-       H. Include an unaltered copy of this License.
+-
+-       I. Preserve the section Entitled "History", Preserve its Title,
+-          and add to it an item stating at least the title, year, new
+-          authors, and publisher of the Modified Version as given on
+-          the Title Page.  If there is no section Entitled "History" in
+-          the Document, create one stating the title, year, authors,
+-          and publisher of the Document as given on its Title Page,
+-          then add an item describing the Modified Version as stated in
+-          the previous sentence.
+-
+-       J. Preserve the network location, if any, given in the Document
+-          for public access to a Transparent copy of the Document, and
+-          likewise the network locations given in the Document for
+-          previous versions it was based on.  These may be placed in
+-          the "History" section.  You may omit a network location for a
+-          work that was published at least four years before the
+-          Document itself, or if the original publisher of the version
+-          it refers to gives permission.
+-
+-       K. For any section Entitled "Acknowledgements" or "Dedications",
+-          Preserve the Title of the section, and preserve in the
+-          section all the substance and tone of each of the contributor
+-          acknowledgements and/or dedications given therein.
+-
+-       L. Preserve all the Invariant Sections of the Document,
+-          unaltered in their text and in their titles.  Section numbers
+-          or the equivalent are not considered part of the section
+-          titles.
+-
+-       M. Delete any section Entitled "Endorsements".  Such a section
+-          may not be included in the Modified Version.
+-
+-       N. Do not retitle any existing section to be Entitled
+-          "Endorsements" or to conflict in title with any Invariant
+-          Section.
+-
+-       O. Preserve any Warranty Disclaimers.
+-
+-     If the Modified Version includes new front-matter sections or
+-     appendices that qualify as Secondary Sections and contain no
+-     material copied from the Document, you may at your option
+-     designate some or all of these sections as invariant.  To do this,
+-     add their titles to the list of Invariant Sections in the Modified
+-     Version's license notice.  These titles must be distinct from any
+-     other section titles.
+-
+-     You may add a section Entitled "Endorsements", provided it contains
+-     nothing but endorsements of your Modified Version by various
+-     parties--for example, statements of peer review or that the text
+-     has been approved by an organization as the authoritative
+-     definition of a standard.
+-
+-     You may add a passage of up to five words as a Front-Cover Text,
+-     and a passage of up to 25 words as a Back-Cover Text, to the end
+-     of the list of Cover Texts in the Modified Version.  Only one
+-     passage of Front-Cover Text and one of Back-Cover Text may be
+-     added by (or through arrangements made by) any one entity.  If the
+-     Document already includes a cover text for the same cover,
+-     previously added by you or by arrangement made by the same entity
+-     you are acting on behalf of, you may not add another; but you may
+-     replace the old one, on explicit permission from the previous
+-     publisher that added the old one.
+-
+-     The author(s) and publisher(s) of the Document do not by this
+-     License give permission to use their names for publicity for or to
+-     assert or imply endorsement of any Modified Version.
+-
+-  5. COMBINING DOCUMENTS
+-
+-     You may combine the Document with other documents released under
+-     this License, under the terms defined in section 4 above for
+-     modified versions, provided that you include in the combination
+-     all of the Invariant Sections of all of the original documents,
+-     unmodified, and list them all as Invariant Sections of your
+-     combined work in its license notice, and that you preserve all
+-     their Warranty Disclaimers.
+-
+-     The combined work need only contain one copy of this License, and
+-     multiple identical Invariant Sections may be replaced with a single
+-     copy.  If there are multiple Invariant Sections with the same name
+-     but different contents, make the title of each such section unique
+-     by adding at the end of it, in parentheses, the name of the
+-     original author or publisher of that section if known, or else a
+-     unique number.  Make the same adjustment to the section titles in
+-     the list of Invariant Sections in the license notice of the
+-     combined work.
+-
+-     In the combination, you must combine any sections Entitled
+-     "History" in the various original documents, forming one section
+-     Entitled "History"; likewise combine any sections Entitled
+-     "Acknowledgements", and any sections Entitled "Dedications".  You
+-     must delete all sections Entitled "Endorsements."
+-
+-  6. COLLECTIONS OF DOCUMENTS
+-
+-     You may make a collection consisting of the Document and other
+-     documents released under this License, and replace the individual
+-     copies of this License in the various documents with a single copy
+-     that is included in the collection, provided that you follow the
+-     rules of this License for verbatim copying of each of the
+-     documents in all other respects.
+-
+-     You may extract a single document from such a collection, and
+-     distribute it individually under this License, provided you insert
+-     a copy of this License into the extracted document, and follow
+-     this License in all other respects regarding verbatim copying of
+-     that document.
+-
+-  7. AGGREGATION WITH INDEPENDENT WORKS
+-
+-     A compilation of the Document or its derivatives with other
+-     separate and independent documents or works, in or on a volume of
+-     a storage or distribution medium, is called an "aggregate" if the
+-     copyright resulting from the compilation is not used to limit the
+-     legal rights of the compilation's users beyond what the individual
+-     works permit.  When the Document is included in an aggregate, this
+-     License does not apply to the other works in the aggregate which
+-     are not themselves derivative works of the Document.
+-
+-     If the Cover Text requirement of section 3 is applicable to these
+-     copies of the Document, then if the Document is less than one half
+-     of the entire aggregate, the Document's Cover Texts may be placed
+-     on covers that bracket the Document within the aggregate, or the
+-     electronic equivalent of covers if the Document is in electronic
+-     form.  Otherwise they must appear on printed covers that bracket
+-     the whole aggregate.
+-
+-  8. TRANSLATION
+-
+-     Translation is considered a kind of modification, so you may
+-     distribute translations of the Document under the terms of section
+-     4.  Replacing Invariant Sections with translations requires special
+-     permission from their copyright holders, but you may include
+-     translations of some or all Invariant Sections in addition to the
+-     original versions of these Invariant Sections.  You may include a
+-     translation of this License, and all the license notices in the
+-     Document, and any Warranty Disclaimers, provided that you also
+-     include the original English version of this License and the
+-     original versions of those notices and disclaimers.  In case of a
+-     disagreement between the translation and the original version of
+-     this License or a notice or disclaimer, the original version will
+-     prevail.
+-
+-     If a section in the Document is Entitled "Acknowledgements",
+-     "Dedications", or "History", the requirement (section 4) to
+-     Preserve its Title (section 1) will typically require changing the
+-     actual title.
+-
+-  9. TERMINATION
+-
+-     You may not copy, modify, sublicense, or distribute the Document
+-     except as expressly provided under this License.  Any attempt
+-     otherwise to copy, modify, sublicense, or distribute it is void,
+-     and will automatically terminate your rights under this License.
+-
+-     However, if you cease all violation of this License, then your
+-     license from a particular copyright holder is reinstated (a)
+-     provisionally, unless and until the copyright holder explicitly
+-     and finally terminates your license, and (b) permanently, if the
+-     copyright holder fails to notify you of the violation by some
+-     reasonable means prior to 60 days after the cessation.
+-
+-     Moreover, your license from a particular copyright holder is
+-     reinstated permanently if the copyright holder notifies you of the
+-     violation by some reasonable means, this is the first time you have
+-     received notice of violation of this License (for any work) from
+-     that copyright holder, and you cure the violation prior to 30 days
+-     after your receipt of the notice.
+-
+-     Termination of your rights under this section does not terminate
+-     the licenses of parties who have received copies or rights from
+-     you under this License.  If your rights have been terminated and
+-     not permanently reinstated, receipt of a copy of some or all of
+-     the same material does not give you any rights to use it.
+-
+- 10. FUTURE REVISIONS OF THIS LICENSE
+-
+-     The Free Software Foundation may publish new, revised versions of
+-     the GNU Free Documentation License from time to time.  Such new
+-     versions will be similar in spirit to the present version, but may
+-     differ in detail to address new problems or concerns.  See
+-     `http://www.gnu.org/copyleft/'.
+-
+-     Each version of the License is given a distinguishing version
+-     number.  If the Document specifies that a particular numbered
+-     version of this License "or any later version" applies to it, you
+-     have the option of following the terms and conditions either of
+-     that specified version or of any later version that has been
+-     published (not as a draft) by the Free Software Foundation.  If
+-     the Document does not specify a version number of this License,
+-     you may choose any version ever published (not as a draft) by the
+-     Free Software Foundation.  If the Document specifies that a proxy
+-     can decide which future versions of this License can be used, that
+-     proxy's public statement of acceptance of a version permanently
+-     authorizes you to choose that version for the Document.
+-
+- 11. RELICENSING
+-
+-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+-     World Wide Web server that publishes copyrightable works and also
+-     provides prominent facilities for anybody to edit those works.  A
+-     public wiki that anybody can edit is an example of such a server.
+-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+-     site means any set of copyrightable works thus published on the MMC
+-     site.
+-
+-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+-     license published by Creative Commons Corporation, a not-for-profit
+-     corporation with a principal place of business in San Francisco,
+-     California, as well as future copyleft versions of that license
+-     published by that same organization.
+-
+-     "Incorporate" means to publish or republish a Document, in whole or
+-     in part, as part of another Document.
+-
+-     An MMC is "eligible for relicensing" if it is licensed under this
+-     License, and if all works that were first published under this
+-     License somewhere other than this MMC, and subsequently
+-     incorporated in whole or in part into the MMC, (1) had no cover
+-     texts or invariant sections, and (2) were thus incorporated prior
+-     to November 1, 2008.
+-
+-     The operator of an MMC Site may republish an MMC contained in the
+-     site under CC-BY-SA on the same site at any time before August 1,
+-     2009, provided the MMC is eligible for relicensing.
+-
+-
+-ADDENDUM: How to use this License for your documents
+-====================================================
+-
+-To use this License in a document you have written, include a copy of
+-the License in the document and put the following copyright and license
+-notices just after the title page:
+-
+-       Copyright (C)  YEAR  YOUR NAME.
+-       Permission is granted to copy, distribute and/or modify this document
+-       under the terms of the GNU Free Documentation License, Version 1.3
+-       or any later version published by the Free Software Foundation;
+-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+-       Texts.  A copy of the license is included in the section entitled ``GNU
+-       Free Documentation License''.
+-
+-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
+-Texts, replace the "with...Texts." line with this:
+-
+-         with the Invariant Sections being LIST THEIR TITLES, with
+-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
+-         being LIST.
+-
+-   If you have Invariant Sections without Cover Texts, or some other
+-combination of the three, merge those two alternatives to suit the
+-situation.
+-
+-   If your document contains nontrivial examples of program code, we
+-recommend releasing these examples in parallel under your choice of
+-free software license, such as the GNU General Public License, to
+-permit their use in free software.
+-
+-
+-File: libquadmath.info,  Node: Reporting Bugs,  Prev: GNU Free Documentation License,  Up: Top
+-
+-4 Reporting Bugs
+-****************
+-
+-Bugs in the GCC Quad-Precision Math Library implementation should be
+-reported via `http://gcc.gnu.org/bugs.html'.
+-
+-
+-
+-Tag Table:
+-Node: Top1660
+-Node: Typedef and constants2394
+-Node: Math Library Routines3812
+-Node: I/O Library Routines7617
+-Node: strtoflt1287942
+-Node: quadmath_snprintf8702
+-Node: GNU Free Documentation License10893
+-Node: Reporting Bugs36059
+-
+-End Tag Table
+diff -Naur gcc-4.6.0.orig/libquadmath/printf/printf_fp.c gcc-4.6.0/libquadmath/printf/printf_fp.c
+--- gcc-4.6.0.orig/libquadmath/printf/printf_fp.c	2011-02-16 13:54:30.000000000 +0000
++++ gcc-4.6.0/libquadmath/printf/printf_fp.c	2011-03-26 09:24:53.704105000 +0000
+@@ -1197,7 +1197,7 @@
+ 	    if (*copywc == decimalwc)
+ 	      memcpy (cp, decimal, decimal_len), cp += decimal_len;
+ 	    else if (*copywc == thousands_sepwc)
+-	      mempcpy (cp, thousands_sep, thousands_sep_len), cp += thousands_sep_len;
++	      memcpy (cp, thousands_sep, thousands_sep_len), cp += thousands_sep_len;
+ 	    else
+ 	      *cp++ = (char) *copywc;
+ 	}
+diff -Naur gcc-4.6.0.orig/libssp/configure gcc-4.6.0/libssp/configure
+--- gcc-4.6.0.orig/libssp/configure	2011-02-13 11:45:53.000000000 +0000
++++ gcc-4.6.0/libssp/configure	2011-03-28 17:09:27.398261000 +0000
+@@ -734,6 +734,7 @@
+ enable_maintainer_mode
+ enable_multilib
+ enable_dependency_tracking
++enable_symvers
+ enable_shared
+ enable_static
+ with_pic
+@@ -1372,6 +1373,7 @@
+   --enable-multilib       build many library versions (default)
+   --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors
++  --disable-symvers       disable symbol versioning for libssp
+   --enable-shared[=PKGS]  build shared libraries [default=yes]
+   --enable-static[=PKGS]  build static libraries [default=yes]
+   --enable-fast-install[=PKGS]
+@@ -4098,19 +4100,27 @@
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symbol versioning is supported" >&5
+ $as_echo_n "checking whether symbol versioning is supported... " >&6; }
+-if test x$gcc_no_link = xyes; then
+-  # If we cannot link, we cannot build shared libraries, so do not use
+-  # symbol versioning.
+-  ssp_use_symver=no
++# Check whether --enable-symvers was given.
++if test "${enable_symvers+set}" = set; then :
++  enableval=$enable_symvers; ssp_use_symver=$enableval
+ else
+-  save_LDFLAGS="$LDFLAGS"
+-  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-  cat > conftest.map <<EOF
++  ssp_use_symver=yes
++fi
++
++if test "x$ssp_use_symver" = xyes; then
++  if test x$gcc_no_link = xyes; then
++    # If we cannot link, we cannot build shared libraries, so do not use
++    # symbol versioning.
++    ssp_use_symver=no
++  else
++    save_LDFLAGS="$LDFLAGS"
++    LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++    cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-  if test x$gcc_no_link = xyes; then
++    if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -4131,18 +4141,18 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-  if test x$ssp_use_symver = xno; then
+-    case "$target_os" in
+-      solaris2*)
+-        LDFLAGS="$save_LDFLAGS"
+-        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-        # Sun ld cannot handle wildcards and treats all entries as undefined.
+-        cat > conftest.map <<EOF
++    if test x$ssp_use_symver = xno; then
++      case "$target_os" in
++        solaris2*)
++          LDFLAGS="$save_LDFLAGS"
++          LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++          # Sun ld cannot handle wildcards and treats all entries as undefined.
++          cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-        if test x$gcc_no_link = xyes; then
++          if test x$gcc_no_link = xyes; then
+   as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+ fi
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -4163,10 +4173,11 @@
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+-    	;;
+-    esac
++	  ;;
++      esac
++    fi
++    LDFLAGS="$save_LDFLAGS"
+   fi
+-  LDFLAGS="$save_LDFLAGS"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ssp_use_symver" >&5
+ $as_echo "$ssp_use_symver" >&6; }
+@@ -10639,7 +10650,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 10642 "configure"
++#line 10653 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -10745,7 +10756,7 @@
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 10748 "configure"
++#line 10759 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+diff -Naur gcc-4.6.0.orig/libssp/configure.ac gcc-4.6.0/libssp/configure.ac
+--- gcc-4.6.0.orig/libssp/configure.ac	2010-12-06 00:50:04.000000000 +0000
++++ gcc-4.6.0/libssp/configure.ac	2011-03-28 17:09:27.398261000 +0000
+@@ -72,35 +72,42 @@
+ fi
+ 
+ AC_MSG_CHECKING([whether symbol versioning is supported])
+-if test x$gcc_no_link = xyes; then
+-  # If we cannot link, we cannot build shared libraries, so do not use
+-  # symbol versioning.
+-  ssp_use_symver=no
+-else
+-  save_LDFLAGS="$LDFLAGS"
+-  LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
+-  cat > conftest.map <<EOF
++AC_ARG_ENABLE(symvers,
++AS_HELP_STRING([--disable-symvers],
++  [disable symbol versioning for libssp]),
++ssp_use_symver=$enableval,
++ssp_use_symver=yes)
++if test "x$ssp_use_symver" = xyes; then
++  if test x$gcc_no_link = xyes; then
++    # If we cannot link, we cannot build shared libraries, so do not use
++    # symbol versioning.
++    ssp_use_symver=no
++  else
++    save_LDFLAGS="$LDFLAGS"
++    LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map"
++    cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: *foo*; bar; local: *;
+ };
+ EOF
+-  AC_TRY_LINK([int foo;],[],[ssp_use_symver=gnu],[ssp_use_symver=no])
+-  if test x$ssp_use_symver = xno; then
+-    case "$target_os" in
+-      solaris2*)
+-        LDFLAGS="$save_LDFLAGS"
+-        LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
+-        # Sun ld cannot handle wildcards and treats all entries as undefined.
+-        cat > conftest.map <<EOF
++    AC_TRY_LINK([int foo;],[],[ssp_use_symver=gnu],[ssp_use_symver=no])
++    if test x$ssp_use_symver = xno; then
++      case "$target_os" in
++        solaris2*)
++          LDFLAGS="$save_LDFLAGS"
++          LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map"
++          # Sun ld cannot handle wildcards and treats all entries as undefined.
++          cat > conftest.map <<EOF
+ FOO_1.0 {
+   global: foo; local: *;
+ };
+ EOF
+-        AC_TRY_LINK([int foo;],[],[ssp_use_symver=sun],[ssp_use_symver=no])
+-    	;;
+-    esac
++          AC_TRY_LINK([int foo;],[],[ssp_use_symver=sun],[ssp_use_symver=no])
++	  ;;
++      esac
++    fi
++    LDFLAGS="$save_LDFLAGS"
+   fi
+-  LDFLAGS="$save_LDFLAGS"
+ fi
+ AC_MSG_RESULT($ssp_use_symver)
+ AM_CONDITIONAL(LIBSSP_USE_SYMVER, [test "x$ssp_use_symver" != xno])
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/config/abi/pre/gnu.ver gcc-4.6.0/libstdc++-v3/config/abi/pre/gnu.ver
+--- gcc-4.6.0.orig/libstdc++-v3/config/abi/pre/gnu.ver	2011-03-22 15:06:58.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/config/abi/pre/gnu.ver	2011-04-10 16:19:41.897059000 +0000
+@@ -1264,6 +1264,14 @@
+ 
+ } GLIBCXX_3.4.14;
+ 
++GLIBCXX_3.4.16 {
++
++    # libstdc++/48465
++    _ZNSs10_S_compareE[jmy][jmy];
++    _ZNSbIwSt11char_traitsIwESaIwEE10_S_compareE[jmy][jmy];
++
++} GLIBCXX_3.4.15;
++
+ # Symbols in the support library (libsupc++) have their own tag.
+ CXXABI_1.3 {
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/configure gcc-4.6.0/libstdc++-v3/configure
+--- gcc-4.6.0.orig/libstdc++-v3/configure	2011-03-08 00:04:05.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/configure	2011-04-10 16:19:41.897059000 +0000
+@@ -2825,7 +2825,7 @@
+ ### am handles this now?  ORIGINAL_LD_FOR_MULTILIBS=$LD
+ 
+ # For libtool versioning info, format is CURRENT:REVISION:AGE
+-libtool_VERSION=6:15:0
++libtool_VERSION=6:16:0
+ 
+ 
+ # Find the rest of the source tree framework.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/configure.ac gcc-4.6.0/libstdc++-v3/configure.ac
+--- gcc-4.6.0.orig/libstdc++-v3/configure.ac	2011-03-08 00:04:05.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/configure.ac	2011-04-10 16:19:41.897059000 +0000
+@@ -12,7 +12,7 @@
+ ### am handles this now?  ORIGINAL_LD_FOR_MULTILIBS=$LD
+ 
+ # For libtool versioning info, format is CURRENT:REVISION:AGE
+-libtool_VERSION=6:15:0
++libtool_VERSION=6:16:0
+ AC_SUBST(libtool_VERSION)
+ 
+ # Find the rest of the source tree framework.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/api.html gcc-4.6.0/libstdc++-v3/doc/html/api.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/api.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/api.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,13 +1,13 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk02.html" title=""/><link rel="prev" href="bk02.html" title=""/><link rel="next" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a>Â </td><th width="60%" align="center"/><td align="right">Â <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr/></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"/>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright Â© 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk02.html" title=""/><link rel="prev" href="bk02.html" title=""/><link rel="next" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td align="left"><a accesskey="p" href="bk02.html">Prev</a>Â </td><th width="60%" align="center"/><td align="right">Â <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr/></div><div class="article" title="The GNU C++ Library API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="api"/>The GNU C++ Library API Reference</h2></div><div><p class="copyright">Copyright Â© 
+       2008
+     , 
+       2010
+      
+-      <a class="link" href="http://www.fsf.org/" target="">FSF
++      <a class="link" href="http://www.fsf.org/">FSF
+       </a>
+-    </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id520754"/><p>
++    </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id408490"/><p>
+       <a class="link" href="manual/license.html" title="License">License 
+       </a>
+     </p></div></div></div><hr/></div><p>
+@@ -21,25 +21,25 @@
+ </p><p>
+   The API documentation, rendered into HTML, can be viewed online:
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html" target="">for the 3.4 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/index.html">for the 3.4 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/index.html" target="">for the 4.1 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.1/index.html">for the 4.1 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/index.html" target="">for the 4.2 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.2/index.html">for the 4.2 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/index.html" target="">for the 4.3 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3/index.html">for the 4.3 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/index.html" target="">for the 4.4 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/index.html">for the 4.4 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/index.html" target="">for the 4.5 release
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/index.html">for the 4.5 release
+       </a>
+     </p></li><li class="listitem"><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html" target="">"the latest collection"
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html">"the latest collection"
+       </a>
+       (For the main development tree; see the date on the first page.)
+     </p></li></ul></div><p>
+@@ -47,7 +47,7 @@
+   gcc.org site in a directory located at
+    <code class="literal">&lt;URL:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/&gt;</code>.
+    You will almost certainly need to use one of the
+-   <a class="link" href="http://gcc.gnu.org/mirrors.html" target="">mirror sites</a> to download
++   <a class="link" href="http://gcc.gnu.org/mirrors.html">mirror sites</a> to download
+    the tarball. After unpacking, simply load libstdc++-html-*/index.html
+    into a browser.
+ </p><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/bk02.html gcc-4.6.0/libstdc++-v3/doc/html/bk02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/bk02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/bk02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,3 +1,3 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library"/><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility"/><link rel="next" href="api.html" title="The GNU C++ Library API Reference"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="api.html">Next</a></td></tr><tr><td align="left" valign="top">Backwards CompatibilityÂ </td><td align="center"><a accesskey="h" href="spine.html">Home</a></td><td align="right" valign="top">Â The GNU C++ Library API Reference</td></tr></table></div></body></html>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library"/><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility"/><link rel="next" href="api.html" title="The GNU C++ Library API Reference"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="manual/backwards.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="api.html">Next</a></td></tr><tr><td align="left" valign="top">Backwards CompatibilityÂ </td><td align="center"><a accesskey="h" href="spine.html">Home</a></td><td align="right" valign="top">Â The GNU C++ Library API Reference</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/bk03.html gcc-4.6.0/libstdc++-v3/doc/html/bk03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/bk03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/bk03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,3 +1,3 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library"/><link rel="prev" href="api.html" title="The GNU C++ Library API Reference"/><link rel="next" href="faq.html" title="Frequently Asked Questions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library API ReferenceÂ </td><td align="center"><a accesskey="h" href="spine.html">Home</a></td><td align="right" valign="top">Â Frequently Asked Questions</td></tr></table></div></body></html>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library"/><link rel="prev" href="api.html" title="The GNU C++ Library API Reference"/><link rel="next" href="faq.html" title="Frequently Asked Questions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr/></div><div class="book"><div class="titlepage"><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library API ReferenceÂ </td><td align="center"><a accesskey="h" href="spine.html">Home</a></td><td align="right" valign="top">Â Frequently Asked Questions</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/faq.html gcc-4.6.0/libstdc++-v3/doc/html/faq.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/faq.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/faq.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,10 +1,10 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk03.html" title=""/><link rel="prev" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td align="left"><a accesskey="p" href="bk03.html">Prev</a>Â </td><th width="60%" align="center"/><td align="right">Â </td></tr></table><hr/></div><div class="article" title="Frequently Asked Questions"><div class="titlepage"><div><div><h1 class="title"><a id="faq"/>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright Â© 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="up" href="bk03.html" title=""/><link rel="prev" href="bk03.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td align="left"><a accesskey="p" href="bk03.html">Prev</a>Â </td><th width="60%" align="center"/><td align="right">Â </td></tr></table><hr/></div><div class="article" title="Frequently Asked Questions"><div class="titlepage"><div><div><h1 class="title"><a id="faq"/>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright Â© 
+       2008, 2010
+      
+-      <a class="link" href="http://www.fsf.org" target="">FSF</a>
+-    </p></div></div><hr/></div><div class="qandaset" title="Frequently Asked Questions"><a id="id533065"/><dl><dt/><dd><dl><dt>1.1. <a href="faq.html#faq.what">
++      <a class="link" href="http://www.fsf.org">FSF</a>
++    </p></div></div><hr/></div><div class="qandaset" title="Frequently Asked Questions"><a id="id384449"/><dl><dt/><dd><dl><dt>1.1. <a href="faq.html#faq.what">
+       What is libstdc++?
+     </a></dt><dt>1.2. <a href="faq.html#faq.why">
+       Why should I use libstdc++?
+@@ -105,7 +105,7 @@
+       What happened to the older libg++? I need that!
+     </a></dt><dt>1.7. <a href="faq.html#faq.more_questions">
+       What if I have more questions?
+-    </a></dt></dl></td></tr><tr class="question" title="1.1."><td align="left" valign="top"><a id="faq.what"/><a id="faq.what.q"/><p><b>1.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="1.1."><td align="left" valign="top"><a id="faq.what"/><a id="faq.what.q"/><p><strong>1.1.</strong></p></td><td align="left" valign="top"><p>
+       What is libstdc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.what.a"/></td><td align="left" valign="top"><p>
+      The GNU Standard C++ Library v3 is an ongoing project to
+@@ -114,8 +114,8 @@
+      exactly how far the project has come, or just want the latest
+      bleeding-edge code, the up-to-date source is available over
+      anonymous SVN, and can even be browsed over
+-     the <a class="link" href="http://gcc.gnu.org/svn.html" target="">web</a>.
+-    </p></td></tr><tr class="question" title="1.2."><td align="left" valign="top"><a id="faq.why"/><a id="q-why"/><p><b>1.2.</b></p></td><td align="left" valign="top"><p>
++     the <a class="link" href="http://gcc.gnu.org/svn.html">web</a>.
++    </p></td></tr><tr class="question" title="1.2."><td align="left" valign="top"><a id="faq.why"/><a id="q-why"/><p><strong>1.2.</strong></p></td><td align="left" valign="top"><p>
+       Why should I use libstdc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-why"/></td><td align="left" valign="top"><p>
+     The completion of the ISO C++ standardization gave the C++
+@@ -129,9 +129,9 @@
+     (<span class="command"><strong>gcc</strong></span>, <span class="command"><strong>g++</strong></span>, etc) is widely
+     considered to be one of the leading compilers in the world.  Its
+     development is overseen by the
+-    <a class="link" href="http://gcc.gnu.org/" target="">GCC team</a>.  All of
++    <a class="link" href="http://gcc.gnu.org/">GCC team</a>.  All of
+     the rapid development and near-legendary
+-    <a class="link" href="http://gcc.gnu.org/buildstat.html" target="">portability</a>
++    <a class="link" href="http://gcc.gnu.org/buildstat.html">portability</a>
+     that are the hallmarks of an open-source project are being
+     applied to libstdc++.
+     </p><p>
+@@ -141,7 +141,7 @@
+     <code class="classname">vector&lt;&gt;</code>, iostreams, and algorithms.)
+     Programmers will no longer need to <span class="quote">â<span class="quote">roll their own</span>â</span>
+     nor be worried about platform-specific incompatibilities.
+-    </p></td></tr><tr class="question" title="1.3."><td align="left" valign="top"><a id="faq.who"/><a id="q-who"/><p><b>1.3.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="1.3."><td align="left" valign="top"><a id="faq.who"/><a id="q-who"/><p><strong>1.3.</strong></p></td><td align="left" valign="top"><p>
+       Who's in charge of it?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-who"/></td><td align="left" valign="top"><p>
+      The libstdc++ project is contributed to by several developers
+@@ -153,15 +153,15 @@
+     Development and discussion is held on the libstdc++ mailing
+     list.  Subscribing to the list, or searching the list
+     archives, is open to everyone.  You can read instructions for
+-    doing so on the <a class="link" href="http://gcc.gnu.org/libstdc++/" target="">homepage</a>.
++    doing so on the <a class="link" href="http://gcc.gnu.org/libstdc++/">homepage</a>.
+     If you have questions, ideas, code, or are just curious, sign up!
+-    </p></td></tr><tr class="question" title="1.4."><td align="left" valign="top"><a id="faq.when"/><a id="q-when"/><p><b>1.4.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="1.4."><td align="left" valign="top"><a id="faq.when"/><a id="q-when"/><p><strong>1.4.</strong></p></td><td align="left" valign="top"><p>
+       When is libstdc++ going to be finished?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-when"/></td><td align="left" valign="top"><p>
+     Nathan Myers gave the best of all possible answers, responding to
+     a Usenet article asking this question: <span class="emphasis"><em>Sooner, if you
+     help.</em></span>
+-    </p></td></tr><tr class="question" title="1.5."><td align="left" valign="top"><a id="faq.how"/><a id="q-how"/><p><b>1.5.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="1.5."><td align="left" valign="top"><a id="faq.how"/><a id="q-how"/><p><strong>1.5.</strong></p></td><td align="left" valign="top"><p>
+       How do I contribute to the effort?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how"/></td><td align="left" valign="top"><p>
+     Here is <a class="link" href="manual/appendix_contributing.html" title="AppendixÂ A.Â  Contributing">a page devoted to
+@@ -172,7 +172,7 @@
+     anybody who is willing to help write documentation, for example,
+     or has found a bug in code that we all thought was working and is
+     willing to provide details, is more than welcome!
+-    </p></td></tr><tr class="question" title="1.6."><td align="left" valign="top"><a id="faq.whereis_old"/><a id="q-whereis_old"/><p><b>1.6.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="1.6."><td align="left" valign="top"><a id="faq.whereis_old"/><a id="q-whereis_old"/><p><strong>1.6.</strong></p></td><td align="left" valign="top"><p>
+       What happened to the older libg++? I need that!
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-whereis_old"/></td><td align="left" valign="top"><p>
+     The most recent libg++ README states that libg++ is no longer
+@@ -180,7 +180,7 @@
+     projects, and is only being kicked along to support older code.
+     </p><p>
+     More information in the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">backwards compatibility documentation</a>
+-    </p></td></tr><tr class="question" title="1.7."><td align="left" valign="top"><a id="faq.more_questions"/><a id="q-more_questions"/><p><b>1.7.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="1.7."><td align="left" valign="top"><a id="faq.more_questions"/><a id="q-more_questions"/><p><strong>1.7.</strong></p></td><td align="left" valign="top"><p>
+       What if I have more questions?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-more_questions"/></td><td align="left" valign="top"><p>
+     If you have read the README file, and your question remains
+@@ -201,17 +201,17 @@
+       How is that different from the GNU {Lesser,Library} GPL?
+     </a></dt><dt>2.4. <a href="faq.html#faq.license.what_restrictions">
+       I see. So, what restrictions are there on programs that use the library?
+-    </a></dt></dl></td></tr><tr class="question" title="2.1."><td align="left" valign="top"><a id="faq.license.what"/><a id="q-license.what"/><p><b>2.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="2.1."><td align="left" valign="top"><a id="faq.license.what"/><a id="q-license.what"/><p><strong>2.1.</strong></p></td><td align="left" valign="top"><p>
+       What are the license terms for libstdc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what"/></td><td align="left" valign="top"><p>
+     See <a class="link" href="manual/license.html" title="License">our license description</a>
+     for these and related questions.
+-    </p></td></tr><tr class="question" title="2.2."><td align="left" valign="top"><a id="faq.license.any_program"/><a id="q-license.any_program"/><p><b>2.2.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="2.2."><td align="left" valign="top"><a id="faq.license.any_program"/><a id="q-license.any_program"/><p><strong>2.2.</strong></p></td><td align="left" valign="top"><p>
+       So any program which uses libstdc++ falls under the GPL?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.any_program"/></td><td align="left" valign="top"><p>
+      No. The special exception permits use of the library in
+      proprietary applications.
+-    </p></td></tr><tr class="question" title="2.3."><td align="left" valign="top"><a id="faq.license.lgpl"/><a id="q-license.lgpl"/><p><b>2.3.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="2.3."><td align="left" valign="top"><a id="faq.license.lgpl"/><a id="q-license.lgpl"/><p><strong>2.3.</strong></p></td><td align="left" valign="top"><p>
+       How is that different from the GNU {Lesser,Library} GPL?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.lgpl"/></td><td align="left" valign="top"><p>
+       The LGPL requires that users be able to replace the LGPL code with a
+@@ -221,7 +221,7 @@
+      are expanded inside the code that uses the library.  So to allow people
+      to replace the library code, someone using the library would have to
+      distribute their own source, rendering the LGPL equivalent to the GPL.
+-    </p></td></tr><tr class="question" title="2.4."><td align="left" valign="top"><a id="faq.license.what_restrictions"/><a id="q-license.what_restrictions"/><p><b>2.4.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="2.4."><td align="left" valign="top"><a id="faq.license.what_restrictions"/><a id="q-license.what_restrictions"/><p><strong>2.4.</strong></p></td><td align="left" valign="top"><p>
+       I see. So, what restrictions are there on programs that use the library?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-license.what_restrictions"/></td><td align="left" valign="top"><p>
+       None.  We encourage such programs to be released as open source,
+@@ -234,7 +234,7 @@
+       What's libsupc++?
+     </a></dt><dt>3.6. <a href="faq.html#faq.size">
+       This library is HUGE!
+-    </a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"/><a id="q-how_to_install"/><p><b>3.1.</b></p></td><td align="left" valign="top"><p>How do I install libstdc++?
++    </a></dt></dl></td></tr><tr class="question" title="3.1."><td align="left" valign="top"><a id="faq.how_to_install"/><a id="q-how_to_install"/><p><strong>3.1.</strong></p></td><td align="left" valign="top"><p>How do I install libstdc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_install"/></td><td align="left" valign="top"><p>
+     Often libstdc++ comes pre-installed as an integral part of many
+     existing Linux and Unix systems, as well as many embedded
+@@ -247,11 +247,11 @@
+     documentation</a> for detailed
+     instructions. You may wish to browse those files ahead
+     of time to get a feel for what's required.
+-    </p></td></tr><tr class="question" title="3.2."><td align="left" valign="top"><a id="faq.how_to_get_sources"/><a id="q-how_to_get_sources"/><p><b>3.2.</b></p></td><td align="left" valign="top"><p>How does one get current libstdc++ sources?
++    </p></td></tr><tr class="question" title="3.2."><td align="left" valign="top"><a id="faq.how_to_get_sources"/><a id="q-how_to_get_sources"/><p><strong>3.2.</strong></p></td><td align="left" valign="top"><p>How does one get current libstdc++ sources?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_get_sources"/></td><td align="left" valign="top"><p>
+     Libstdc++ sources for all official releases can be obtained as
+     part of the GCC sources, available from various sites and
+-    mirrors. A full <a class="link" href="http://gcc.gnu.org/mirrors.html" target="">list of 
++    mirrors. A full <a class="link" href="http://gcc.gnu.org/mirrors.html">list of 
+     download sites</a> is provided on the main GCC site.
+     </p><p>
+     Current libstdc++ sources can always be checked out of the main
+@@ -262,7 +262,7 @@
+     <span class="application">Subversion</span>, or <acronym class="acronym">SVN</acronym>, is
+     one of several revision control packages.  It was selected for GNU
+     projects because it's free (speech), free (beer), and very high
+-    quality.  The <a class="link" href="http://subversion.tigris.org" target=""> Subversion
++    quality.  The <a class="link" href="http://subversion.tigris.org"> Subversion
+     home page</a> has a better description.
+     </p><p>
+     The <span class="quote">â<span class="quote">anonymous client checkout</span>â</span> feature of SVN is
+@@ -270,20 +270,20 @@
+     the latest libstdc++ sources.
+     </p><p>
+     For more information
+-    see <a class="link" href="http://gcc.gnu.org/svn.html" target=""><acronym class="acronym">SVN</acronym>
++    see <a class="link" href="http://gcc.gnu.org/svn.html"><acronym class="acronym">SVN</acronym>
+     details</a>.
+-    </p></td></tr><tr class="question" title="3.3."><td align="left" valign="top"><a id="faq.how_to_test"/><a id="q-how_to_test"/><p><b>3.3.</b></p></td><td align="left" valign="top"><p>How do I know if it works?
++    </p></td></tr><tr class="question" title="3.3."><td align="left" valign="top"><a id="faq.how_to_test"/><a id="q-how_to_test"/><p><strong>3.3.</strong></p></td><td align="left" valign="top"><p>How do I know if it works?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_test"/></td><td align="left" valign="top"><p>
+     Libstdc++ comes with its own validation testsuite, which includes
+     conformance testing, regression testing, ABI testing, and
+     performance testing. Please consult the 
+-    <a class="link" href="http://gcc.gnu.org/install/test.html" target="">testing
++    <a class="link" href="http://gcc.gnu.org/install/test.html">testing
+     documentation</a> for more details.
+     </p><p>
+     If you find bugs in the testsuite programs themselves, or if you
+     think of a new test program that should be added to the suite,
+     <span class="emphasis"><em>please</em></span> write up your idea and send it to the list!
+-    </p></td></tr><tr class="question" title="3.4."><td align="left" valign="top"><a id="faq.how_to_set_paths"/><a id="q-how_to_set_paths"/><p><b>3.4.</b></p></td><td align="left" valign="top"><p>How do I insure that the dynamically linked library will be found?
++    </p></td></tr><tr class="question" title="3.4."><td align="left" valign="top"><a id="faq.how_to_set_paths"/><a id="q-how_to_set_paths"/><p><strong>3.4.</strong></p></td><td align="left" valign="top"><p>How do I insure that the dynamically linked library will be found?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-how_to_set_paths"/></td><td align="left" valign="top"><p>
+     Depending on your platform and library version, the error message might
+     be similar to one of the following:
+@@ -318,7 +318,7 @@
+     </p><p>
+     Using LD_LIBRARY_PATH is not always the best solution, <a class="link" href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic" title="Finding Dynamic or Shared Libraries">Finding Dynamic or Shared
+     Libraries</a> in the manual gives some alternatives.
+-    </p></td></tr><tr class="question" title="3.5."><td align="left" valign="top"><a id="faq.what_is_libsupcxx"/><a id="q-what_is_libsupcxx"/><p><b>3.5.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="3.5."><td align="left" valign="top"><a id="faq.what_is_libsupcxx"/><a id="q-what_is_libsupcxx"/><p><strong>3.5.</strong></p></td><td align="left" valign="top"><p>
+       What's libsupc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_libsupcxx"/></td><td align="left" valign="top"><p>
+       If the only functions from <code class="filename">libstdc++.a</code>
+@@ -335,7 +335,7 @@
+       using anything from the rest of the library, such as IOStreams
+       or vectors, then you'll still need pieces from
+       <code class="filename">libstdc++.a</code>.
+-    </p></td></tr><tr class="question" title="3.6."><td align="left" valign="top"><a id="faq.size"/><a id="q-size"/><p><b>3.6.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="3.6."><td align="left" valign="top"><a id="faq.size"/><a id="q-size"/><p><strong>3.6.</strong></p></td><td align="left" valign="top"><p>
+       This library is HUGE!
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size"/></td><td align="left" valign="top"><p>
+     Usually the size of libraries on disk isn't noticeable.  When a
+@@ -382,7 +382,7 @@
+       Recent GNU/Linux glibc required?
+     </a></dt><dt>4.8. <a href="faq.html#faq.freebsd_wchar">
+       Can't use wchar_t/wstring on FreeBSD
+-    </a></dt></dl></td></tr><tr class="question" title="4.1."><td align="left" valign="top"><a id="faq.other_compilers"/><a id="q-other_compilers"/><p><b>4.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="4.1."><td align="left" valign="top"><a id="faq.other_compilers"/><a id="q-other_compilers"/><p><strong>4.1.</strong></p></td><td align="left" valign="top"><p>
+       Can libstdc++ be used with non-GNU compilers?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-other_compilers"/></td><td align="left" valign="top"><p>
+     Perhaps.
+@@ -402,7 +402,7 @@
+     been known to work with versions of the EDG C++ compiler, and
+     vendor-specific proprietary C++ compilers such as the Intel ICC
+     C++ compiler.
+-    </p></td></tr><tr class="question" title="4.2."><td align="left" valign="top"><a id="faq.solaris_long_long"/><a id="q-solaris_long_long"/><p><b>4.2.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="4.2."><td align="left" valign="top"><a id="faq.solaris_long_long"/><a id="q-solaris_long_long"/><p><strong>4.2.</strong></p></td><td align="left" valign="top"><p>
+       No 'long long' type on Solaris?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-solaris_long_long"/></td><td align="left" valign="top"><p>
+     By default we try to support the C99 <span class="type">long long</span> type.
+@@ -414,7 +414,7 @@
+     commonly reported platform affected was Solaris.
+     </p><p> 
+     This has been fixed for libstdc++ releases greater than 3.0.3.
+-    </p></td></tr><tr class="question" title="4.3."><td align="left" valign="top"><a id="faq.predefined"/><a id="q-predefined"/><p><b>4.3.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="4.3."><td align="left" valign="top"><a id="faq.predefined"/><a id="q-predefined"/><p><strong>4.3.</strong></p></td><td align="left" valign="top"><p>
+       <code class="constant">_XOPEN_SOURCE</code> and <code class="constant">_GNU_SOURCE</code> are always defined?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-predefined"/></td><td align="left" valign="top"><p>On Solaris, g++ (but not gcc) always defines the preprocessor
+          macro <code class="constant">_XOPEN_SOURCE</code>.  On GNU/Linux, the same happens
+@@ -440,16 +440,16 @@
+          <span class="command"><strong>g++ -E -dM - &lt; /dev/null"</strong></span> to display
+          a list of predefined macros for any particular installation.
+       </p><p>This has been discussed on the mailing lists
+-         <a class="link" href="http://gcc.gnu.org/cgi-bin/htsearch?method=and&amp;format=builtin-long&amp;sort=score&amp;words=_XOPEN_SOURCE+Solaris" target="">quite a bit</a>.
++         <a class="link" href="http://gcc.gnu.org/cgi-bin/htsearch?method=and&amp;format=builtin-long&amp;sort=score&amp;words=_XOPEN_SOURCE+Solaris">quite a bit</a>.
+       </p><p>This method is something of a wart.  We'd like to find a cleaner
+          solution, but nobody yet has contributed the time.
+-      </p></td></tr><tr class="question" title="4.4."><td align="left" valign="top"><a id="faq.darwin_ctype"/><a id="q-darwin_ctype"/><p><b>4.4.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="4.4."><td align="left" valign="top"><a id="faq.darwin_ctype"/><a id="q-darwin_ctype"/><p><strong>4.4.</strong></p></td><td align="left" valign="top"><p>
+       Mac OS X <code class="filename">ctype.h</code> is broken! How can I fix it?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-darwin_ctype"/></td><td align="left" valign="top"><p>This is a long-standing bug in the OS X support.  Fortunately,
+          the patch is quite simple, and well-known.
+-         <a class="link" href="http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html" target=""> Here's a
++         <a class="link" href="http://gcc.gnu.org/ml/gcc/2002-03/msg00817.html"> Here's a
+          link to the solution</a>.
+-      </p></td></tr><tr class="question" title="4.5."><td align="left" valign="top"><a id="faq.threads_i386"/><a id="q-threads_i386"/><p><b>4.5.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="4.5."><td align="left" valign="top"><a id="faq.threads_i386"/><a id="q-threads_i386"/><p><strong>4.5.</strong></p></td><td align="left" valign="top"><p>
+       Threading is broken on i386?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-threads_i386"/></td><td align="left" valign="top"><p>
+     </p><p>Support for atomic integer operations is/was broken on i386
+@@ -459,7 +459,7 @@
+          on an i686, then you would encounter no problems.  Only when
+          actually running the code on a i386 will the problem appear.
+       </p><p>This is fixed in 3.2.2.
+-      </p></td></tr><tr class="question" title="4.6."><td align="left" valign="top"><a id="faq.atomic_mips"/><a id="q-atomic_mips"/><p><b>4.6.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="4.6."><td align="left" valign="top"><a id="faq.atomic_mips"/><a id="q-atomic_mips"/><p><strong>4.6.</strong></p></td><td align="left" valign="top"><p>
+       MIPS atomic operations
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-atomic_mips"/></td><td align="left" valign="top"><p>
+     The atomic locking routines for MIPS targets requires MIPS II
+@@ -469,7 +469,7 @@
+     </p><p>    
+     The mips*-*-linux* port continues to use the MIPS II routines, and more
+     work in this area is expected.
+-    </p></td></tr><tr class="question" title="4.7."><td align="left" valign="top"><a id="faq.linux_glibc"/><a id="q-linux_glibc"/><p><b>4.7.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="4.7."><td align="left" valign="top"><a id="faq.linux_glibc"/><a id="q-linux_glibc"/><p><strong>4.7.</strong></p></td><td align="left" valign="top"><p>
+       Recent GNU/Linux glibc required?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-linux_glibc"/></td><td align="left" valign="top"><p>When running on GNU/Linux, libstdc++ 3.2.1 (shared library version
+          5.0.1) and later uses localization and formatting code from the system
+@@ -480,7 +480,7 @@
+       </p><p>The guideline is simple:  the more recent the C++ library, the
+          more recent the C library.  (This is also documented in the main
+          GCC installation instructions.)
+-      </p></td></tr><tr class="question" title="4.8."><td align="left" valign="top"><a id="faq.freebsd_wchar"/><a id="q-freebsd_wchar"/><p><b>4.8.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="4.8."><td align="left" valign="top"><a id="faq.freebsd_wchar"/><a id="q-freebsd_wchar"/><p><strong>4.8.</strong></p></td><td align="left" valign="top"><p>
+       Can't use wchar_t/wstring on FreeBSD
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-freebsd_wchar"/></td><td align="left" valign="top"><p>
+     Older versions of FreeBSD's C library do not have sufficient
+@@ -499,7 +499,7 @@
+       Bugs in the ISO C++ language or library specification
+     </a></dt><dt>5.3. <a href="faq.html#faq.compiler_bugs">
+       Bugs in the compiler (gcc/g++) and not libstdc++
+-    </a></dt></dl></td></tr><tr class="question" title="5.1."><td align="left" valign="top"><a id="faq.what_works"/><a id="q-what_works"/><p><b>5.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="5.1."><td align="left" valign="top"><a id="faq.what_works"/><a id="q-what_works"/><p><strong>5.1.</strong></p></td><td align="left" valign="top"><p>
+       What works already?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_works"/></td><td align="left" valign="top"><p>
+     Short answer: Pretty much everything <span class="emphasis"><em>works</em></span>
+@@ -513,7 +513,7 @@
+     <a class="link" href="manual/status.html#status.iso.1998" title="C++ 1998/2003">C++98</a>,
+     <a class="link" href="manual/status.html#status.iso.tr1" title="C++ TR1">TR1</a>, and 
+     <a class="link" href="manual/status.html#status.iso.200x" title="C++ 200x">C++0x</a>.
+-    </p></td></tr><tr class="question" title="5.2."><td align="left" valign="top"><a id="faq.standard_bugs"/><a id="q-standard_bugs"/><p><b>5.2.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="5.2."><td align="left" valign="top"><a id="faq.standard_bugs"/><a id="q-standard_bugs"/><p><strong>5.2.</strong></p></td><td align="left" valign="top"><p>
+       Bugs in the ISO C++ language or library specification
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-standard_bugs"/></td><td align="left" valign="top"><p>
+     Unfortunately, there are some. 
+@@ -521,14 +521,14 @@
+     For those people who are not part of the ISO Library Group
+     (i.e., nearly all of us needing to read this page in the first
+     place), a public list of the library defects is occasionally
+-    published <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="">here</a>.
++    published <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">here</a>.
+     Some of these issues have resulted in code changes in libstdc++.
+     </p><p>
+     If you think you've discovered a new bug that is not listed,
+     please post a message describing your problem
+     to <code class="email">&lt;<a class="email" href="mailto:libstdc++@gcc.gnu.org">libstdc++@gcc.gnu.org</a>&gt;</code> or the Usenet group
+     comp.lang.c++.moderated.
+-    </p></td></tr><tr class="question" title="5.3."><td align="left" valign="top"><a id="faq.compiler_bugs"/><a id="q-compiler_bugs"/><p><b>5.3.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="5.3."><td align="left" valign="top"><a id="faq.compiler_bugs"/><a id="q-compiler_bugs"/><p><strong>5.3.</strong></p></td><td align="left" valign="top"><p>
+       Bugs in the compiler (gcc/g++) and not libstdc++
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-compiler_bugs"/></td><td align="left" valign="top"><p>
+     On occasion, the compiler is wrong. Please be advised that this
+@@ -541,7 +541,7 @@
+     these lists with terms describing your issue.
+     </p><p> 
+     Before reporting a bug, please examine the
+-    <a class="link" href="http://gcc.gnu.org/bugs/" target="">bugs database</a> with the
++    <a class="link" href="http://gcc.gnu.org/bugs/">bugs database</a> with the
+     category set to <span class="quote">â<span class="quote">g++</span>â</span>. 
+     </p></td></tr><tr class="toc"><td align="left" valign="top" colspan="2"><dl><dt>6.1. <a href="faq.html#faq.stream_reopening_fails">
+       Reopening a stream fails
+@@ -563,7 +563,7 @@
+       list::size() is O(n)!
+     </a></dt><dt>6.9. <a href="faq.html#faq.easy_to_fix">
+       Aw, that's easy to fix!
+-    </a></dt></dl></td></tr><tr class="question" title="6.1."><td align="left" valign="top"><a id="faq.stream_reopening_fails"/><a id="q-stream_reopening_fails"/><p><b>6.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="6.1."><td align="left" valign="top"><a id="faq.stream_reopening_fails"/><a id="q-stream_reopening_fails"/><p><strong>6.1.</strong></p></td><td align="left" valign="top"><p>
+       Reopening a stream fails
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-stream_reopening_fails"/></td><td align="left" valign="top"><p>
+     One of the most-reported non-bug reports. Executing a sequence like:
+@@ -590,7 +590,7 @@
+     <span class="emphasis"><em>Update:</em></span> for GCC 4.0 we implemented the resolution
+     of <a class="link" href="manual/bugs.html" title="Bugs">DR #409</a> and open() 
+     now calls <code class="function">clear()</code> on success!
+-    </p></td></tr><tr class="question" title="6.2."><td align="left" valign="top"><a id="faq.wefcxx_verbose"/><a id="q-wefcxx_verbose"/><p><b>6.2.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.2."><td align="left" valign="top"><a id="faq.wefcxx_verbose"/><a id="q-wefcxx_verbose"/><p><strong>6.2.</strong></p></td><td align="left" valign="top"><p>
+       -Weffc++ complains too much
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-wefcxx_verbose"/></td><td align="left" valign="top"><p>
+     Many warnings are emitted when <code class="literal">-Weffc++</code> is used.  Making
+@@ -602,7 +602,7 @@
+     We do, however, try to have libstdc++ sources as clean as possible. If
+     you see some simple changes that pacify <code class="literal">-Weffc++</code>
+     without other drawbacks, send us a patch.
+-    </p></td></tr><tr class="question" title="6.3."><td align="left" valign="top"><a id="faq.ambiguous_overloads"/><a id="q-ambiguous_overloads"/><p><b>6.3.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.3."><td align="left" valign="top"><a id="faq.ambiguous_overloads"/><a id="q-ambiguous_overloads"/><p><strong>6.3.</strong></p></td><td align="left" valign="top"><p>
+       Ambiguous overloads after including an old-style header
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-ambiguous_overloads"/></td><td align="left" valign="top"><p>
+     Another problem is the <code class="literal">rel_ops</code> namespace and the template
+@@ -611,10 +611,10 @@
+     (e.g., <span class="quote">â<span class="quote">using</span>â</span> them and the &lt;iterator&gt; header),
+     then you will suddenly be faced with huge numbers of ambiguity
+     errors.  This was discussed on the -v3 list; Nathan Myers
+-    <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html" target="">sums
++    <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html">sums
+       things up here</a>.  The collisions with vector/string iterator
+     types have been fixed for 3.1.
+-    </p></td></tr><tr class="question" title="6.4."><td align="left" valign="top"><a id="faq.v2_headers"/><a id="q-v2_headers"/><p><b>6.4.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.4."><td align="left" valign="top"><a id="faq.v2_headers"/><a id="q-v2_headers"/><p><strong>6.4.</strong></p></td><td align="left" valign="top"><p>
+       The g++-3 headers are <span class="emphasis"><em>not ours</em></span>
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-v2_headers"/></td><td align="left" valign="top"><p>
+ 	If you are using headers in
+@@ -630,7 +630,7 @@
+ 	'v'?).  Starting with version 3.2 the headers are installed in
+ 	<code class="filename">${prefix}/include/c++/${version}</code> as this prevents
+ 	headers from previous versions being found by mistake.
+-      </p></td></tr><tr class="question" title="6.5."><td align="left" valign="top"><a id="faq.boost_concept_checks"/><a id="q-boost_concept_checks"/><p><b>6.5.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="6.5."><td align="left" valign="top"><a id="faq.boost_concept_checks"/><a id="q-boost_concept_checks"/><p><strong>6.5.</strong></p></td><td align="left" valign="top"><p>
+       Errors about <span class="emphasis"><em>*Concept</em></span> and
+       <span class="emphasis"><em>constraints</em></span> in the STL
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-boost_concept_checks"/></td><td align="left" valign="top"><p>
+@@ -647,7 +647,7 @@
+     checks, is available in the
+     <a class="link" href="manual/bk01pt02ch05s02.html" title="Concept Checking">Diagnostics</a>.
+     chapter of the manual.
+-    </p></td></tr><tr class="question" title="6.6."><td align="left" valign="top"><a id="faq.dlopen_crash"/><a id="q-dlopen_crash"/><p><b>6.6.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.6."><td align="left" valign="top"><a id="faq.dlopen_crash"/><a id="q-dlopen_crash"/><p><strong>6.6.</strong></p></td><td align="left" valign="top"><p>
+       Program crashes when using library code in a
+       dynamically-loaded library
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-dlopen_crash"/></td><td align="left" valign="top"><p>
+@@ -666,12 +666,12 @@
+ <br/>
+ Â Â Â Â //Â linkÂ theÂ executable<br/>
+ Â Â Â Â g++Â -fPICÂ -rdynamicÂ -oÂ fooÂ ...Â -L.Â -lfooÂ -ldl<br/>
+-Â Â Â Â </p></div></td></tr><tr class="question" title="6.7."><td align="left" valign="top"><a id="faq.memory_leaks"/><a id="q-memory_leaks"/><p><b>6.7.</b></p></td><td align="left" valign="top"><p>
++Â Â Â Â </p></div></td></tr><tr class="question" title="6.7."><td align="left" valign="top"><a id="faq.memory_leaks"/><a id="q-memory_leaks"/><p><strong>6.7.</strong></p></td><td align="left" valign="top"><p>
+       <span class="quote">â<span class="quote">Memory leaks</span>â</span> in containers
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-memory_leaks"/></td><td align="left" valign="top"><p>
+     A few people have reported that the standard containers appear
+     to leak memory when tested with memory checkers such as
+-    <a class="link" href="http://valgrind.org/" target="">valgrind</a>.
++    <a class="link" href="http://valgrind.org/">valgrind</a>.
+     The library's default allocators keep free memory in a pool
+     for later reuse, rather than returning it to the OS.  Although
+     this memory is always reachable by the library and is never
+@@ -679,18 +679,18 @@
+     want to test the library for memory leaks please read
+     <a class="link" href="manual/debug.html#debug.memory" title="Memory Leak Hunting">Tips for memory leak hunting</a>
+     first.
+-    </p></td></tr><tr class="question" title="6.8."><td align="left" valign="top"><a id="faq.list_size_on"/><a id="q-list_size_on"/><p><b>6.8.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.8."><td align="left" valign="top"><a id="faq.list_size_on"/><a id="q-list_size_on"/><p><strong>6.8.</strong></p></td><td align="left" valign="top"><p>
+       list::size() is O(n)!
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-list_size_on"/></td><td align="left" valign="top"><p>
+     See
+     the <a class="link" href="manual/containers.html" title="ChapterÂ 9.Â  Containers">Containers</a>
+     chapter.
+-    </p></td></tr><tr class="question" title="6.9."><td align="left" valign="top"><a id="faq.easy_to_fix"/><a id="q-easy_to_fix"/><p><b>6.9.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="6.9."><td align="left" valign="top"><a id="faq.easy_to_fix"/><a id="q-easy_to_fix"/><p><strong>6.9.</strong></p></td><td align="left" valign="top"><p>
+       Aw, that's easy to fix!
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-easy_to_fix"/></td><td align="left" valign="top"><p>
+     If you have found a bug in the library and you think you have
+     a working fix, then send it in!  The main GCC site has a page
+-    on <a class="link" href="http://gcc.gnu.org/contribute.html" target="">submitting
++    on <a class="link" href="http://gcc.gnu.org/contribute.html">submitting
+     patches</a> that covers the procedure, but for libstdc++ you
+     should also send the patch to our mailing list in addition to
+     the GCC patches mailing list.  The libstdc++
+@@ -718,7 +718,7 @@
+       What's an ABI and why is it so messy?
+     </a></dt><dt>7.8. <a href="faq.html#faq.size_equals_capacity">
+       How do I make std::vector&lt;T&gt;::capacity() == std::vector&lt;T&gt;::size?
+-    </a></dt></dl></td></tr><tr class="question" title="7.1."><td align="left" valign="top"><a id="faq.iterator_as_pod"/><a id="faq.iterator_as_pod_q"/><p><b>7.1.</b></p></td><td align="left" valign="top"><p>
++    </a></dt></dl></td></tr><tr class="question" title="7.1."><td align="left" valign="top"><a id="faq.iterator_as_pod"/><a id="faq.iterator_as_pod_q"/><p><strong>7.1.</strong></p></td><td align="left" valign="top"><p>
+       string::iterator is not char*; vector&lt;T&gt;::iterator is not T*
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="faq.iterator_as_pod_a"/></td><td align="left" valign="top"><p>
+     If you have code that depends on container&lt;T&gt; iterators
+@@ -737,7 +737,7 @@
+     certain expressions to <code class="varname">&amp;*i</code>.  Future revisions
+     of the Standard are expected to bless this usage for
+     vector&lt;&gt; (but not for basic_string&lt;&gt;).
+-    </p></td></tr><tr class="question" title="7.2."><td align="left" valign="top"><a id="faq.what_is_next"/><a id="q-what_is_next"/><p><b>7.2.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="7.2."><td align="left" valign="top"><a id="faq.what_is_next"/><a id="q-what_is_next"/><p><strong>7.2.</strong></p></td><td align="left" valign="top"><p>
+       What's next after libstdc++?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_next"/></td><td align="left" valign="top"><p>
+ 	Hopefully, not much.  The goal of libstdc++ is to produce a
+@@ -748,12 +748,12 @@
+ 	There is an effort underway to add significant extensions to
+ 	the standard library specification.  The latest version of
+ 	this effort is described in
+-         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="">
++         <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf">
+          The C++ Library Technical Report 1</a>.
+-      </p></td></tr><tr class="question" title="7.3."><td align="left" valign="top"><a id="faq.sgi_stl"/><a id="q-sgi_stl"/><p><b>7.3.</b></p></td><td align="left" valign="top"><p>
++      </p></td></tr><tr class="question" title="7.3."><td align="left" valign="top"><a id="faq.sgi_stl"/><a id="q-sgi_stl"/><p><strong>7.3.</strong></p></td><td align="left" valign="top"><p>
+       What about the STL from SGI?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-sgi_stl"/></td><td align="left" valign="top"><p>
+-      The <a class="link" href="http://www.sgi.com/tech/stl/" target="">STL from SGI</a>,
++      The <a class="link" href="http://www.sgi.com/tech/stl/">STL from SGI</a>,
+     version 3.3, was the final merge of the STL codebase.  The
+     code in libstdc++ contains many fixes and changes, and
+     the SGI code is no longer under active
+@@ -773,23 +773,23 @@
+     </p><p>
+     The FAQ for SGI's STL (one jump off of their main page) is
+     still recommended reading.
+-    </p></td></tr><tr class="question" title="7.4."><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"/><a id="q-extensions_and_backwards_compat"/><p><b>7.4.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="7.4."><td align="left" valign="top"><a id="faq.extensions_and_backwards_compat"/><a id="q-extensions_and_backwards_compat"/><p><strong>7.4.</strong></p></td><td align="left" valign="top"><p>
+       Extensions and Backward Compatibility
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-extensions_and_backwards_compat"/></td><td align="left" valign="top"><p>
+       See the <a class="link" href="manual/backwards.html" title="Backwards Compatibility">link</a> on backwards compatibility and <a class="link" href="manual/api.html" title="API Evolution and Deprecation History">link</a> on evolution.
+-    </p></td></tr><tr class="question" title="7.5."><td align="left" valign="top"><a id="faq.tr1_support"/><a id="q-tr1_support"/><p><b>7.5.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="7.5."><td align="left" valign="top"><a id="faq.tr1_support"/><a id="q-tr1_support"/><p><strong>7.5.</strong></p></td><td align="left" valign="top"><p>
+       Does libstdc++ support TR1?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-tr1_support"/></td><td align="left" valign="top"><p>
+     Yes.
+     </p><p>
+     The C++ Standard Library Technical Report adds many new features to 
+     the library.  The latest version of this effort is described in
+-    <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf" target="">
++    <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf">
+          Technical Report 1</a>.
+     </p><p>
+     The implementation status of TR1 in libstdc++ can be tracked <a class="link" href="manual/status.html#status.iso.tr1" title="C++ TR1">on the TR1 status
+     page</a>.
+-    </p></td></tr><tr class="question" title="7.6."><td align="left" valign="top"><a id="faq.get_iso_cxx"/><a id="q-get_iso_cxx"/><p><b>7.6.</b></p></td><td align="left" valign="top"><p>How do I get a copy of the ISO C++ Standard?
++    </p></td></tr><tr class="question" title="7.6."><td align="left" valign="top"><a id="faq.get_iso_cxx"/><a id="q-get_iso_cxx"/><p><strong>7.6.</strong></p></td><td align="left" valign="top"><p>How do I get a copy of the ISO C++ Standard?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-get_iso_cxx"/></td><td align="left" valign="top"><p>
+     Copies of the full ISO 14882 standard are available on line via
+     the ISO mirror site for committee members.  Non-members, or those
+@@ -798,17 +798,17 @@
+     get a copy of the standard from their respective national
+     standards organization.  In the USA, this national standards
+     organization is ANSI and their website is
+-    right <a class="link" href="http://www.ansi.org" target="">here</a>.  (And if
++    right <a class="link" href="http://www.ansi.org">here</a>.  (And if
+     you've already registered with them, clicking this link will take
+     you to directly to the place where you can
+-    <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003" target="">buy the standard on-line</a>.
++    <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line</a>.
+     </p><p>
+     Who is your country's member body?  Visit the
+-    <a class="link" href="http://www.iso.ch/" target="">ISO homepage</a> and find out!
++    <a class="link" href="http://www.iso.ch/">ISO homepage</a> and find out!
+     </p><p>
+     The 2003 version of the standard (the 1998 version plus TC1) is
+     available in print, ISBN 0-470-84674-7.
+-    </p></td></tr><tr class="question" title="7.7."><td align="left" valign="top"><a id="faq.what_is_abi"/><a id="q-what_is_abi"/><p><b>7.7.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="7.7."><td align="left" valign="top"><a id="faq.what_is_abi"/><a id="q-what_is_abi"/><p><strong>7.7.</strong></p></td><td align="left" valign="top"><p>
+       What's an ABI and why is it so messy?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_abi"/></td><td align="left" valign="top"><p>
+     <acronym class="acronym">ABI</acronym> stands for <span class="quote">â<span class="quote">Application Binary
+@@ -856,7 +856,7 @@
+     so they may later be changed.  Deciding which, and implementing
+     the decisions, must happen before you can reasonably document a
+     candidate C++ ABI that encompasses the standard library.
+-    </p></td></tr><tr class="question" title="7.8."><td align="left" valign="top"><a id="faq.size_equals_capacity"/><a id="q-size_equals_capacity"/><p><b>7.8.</b></p></td><td align="left" valign="top"><p>
++    </p></td></tr><tr class="question" title="7.8."><td align="left" valign="top"><a id="faq.size_equals_capacity"/><a id="q-size_equals_capacity"/><p><strong>7.8.</strong></p></td><td align="left" valign="top"><p>
+       How do I make std::vector&lt;T&gt;::capacity() == std::vector&lt;T&gt;::size?
+     </p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-size_equals_capacity"/></td><td align="left" valign="top"><p>
+     The standard idiom for deallocating a <code class="classname">vector&lt;T&gt;</code>'s
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/abi.html gcc-4.6.0/libstdc++-v3/doc/html/manual/abi.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/abi.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/abi.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      ABI&#10;    , &#10;      version&#10;    , &#10;      dynamic&#10;    , &#10;      shared&#10;    , &#10;      compatibility&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="test.html" title="Test"/><link rel="next" href="api.html" title="API Evolution and Deprecation History"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td align="left"><a accesskey="p" href="test.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      ABI&#10;    , &#10;      version&#10;    , &#10;      dynamic&#10;    , &#10;      shared&#10;    , &#10;      compatibility&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="test.html" title="Test"/><link rel="next" href="api.html" title="API Evolution and Deprecation History"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td align="left"><a accesskey="p" href="test.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="api.html">Next</a></td></tr></table><hr/></div><div class="section" title="ABI Policy and Guidelines"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.abi"/>ABI Policy and Guidelines</h2></div></div></div><p>
+@@ -21,7 +21,7 @@
+   virtual functions, etc. These details are defined as the compiler
+   Application Binary Interface, or ABI. The GNU C++ compiler uses an
+   industry-standard C++ ABI starting with version 3. Details can be
+-  found in the <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html" target="">ABI
++  found in the <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html">ABI
+   specification</a>.
+ </p><p>
+  The GNU C++ compiler, g++, has a compiler command line option to
+@@ -30,7 +30,7 @@
+   g++ command line options may change the ABI as a side-effect of
+   use. Such flags include <code class="code">-fpack-struct</code> and
+   <code class="code">-fno-exceptions</code>, but include others: see the complete
+-  list in the GCC manual under the heading <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options" target="">Options
++  list in the GCC manual under the heading <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code%20Gen%20Options">Options
+   for Code Generation Conventions</a>.
+ </p><p>
+   The configure options used when building a specific libstdc++
+@@ -115,7 +115,7 @@
+       Note 2: Not strictly required.
+     </p><p>
+       Note 3: This release (but not previous or subsequent) has one
+-      known incompatibility, see <a class="link" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678" target="">33678</a>
++      known incompatibility, see <a class="link" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33678">33678</a>
+       in the GCC bug database.
+     </p></li><li class="listitem"><p>Symbol versioning on the libstdc++.so binary.</p><p>mapfile: libstdc++-v3/config/abi/pre/gnu.ver</p><p>It is versioned with the following labels and version
+    definitions, where the version definition is the maximum for a
+@@ -289,7 +289,7 @@
+ the way the compiler deals with this class in by-value return
+ statements or parameters: instead of passing instances of this
+ class in registers, the compiler will be forced to use memory. See the
+-section on <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html#calls" target="">Function
++section on <a class="link" href="http://www.codesourcery.com/public/cxx-abi/abi.html#calls">Function
+ Calling Conventions and APIs</a>
+  of the C++ ABI documentation for further details.
+ </p></li></ol></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h3 class="title"><a id="abi.impl"/>Implementation</h3></div></div></div><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>
+@@ -479,41 +479,41 @@
+ </p><p>
+   For more background on this issue, see these bugzilla entries:
+ </p><p>
+-<a class="link" href="http://gcc.gnu.org/PR24660" target="">24660: versioning weak symbols in libstdc++</a>
++<a class="link" href="http://gcc.gnu.org/PR24660">24660: versioning weak symbols in libstdc++</a>
+ </p><p>
+-<a class="link" href="http://gcc.gnu.org/PR19664" target="">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a>
+-</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id621956"/><p><span class="biblioid">
++<a class="link" href="http://gcc.gnu.org/PR19664">19664: libstdc++ headers should have pop/push of the visibility around the declarations</a>
++</p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="abi.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id501388"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	ABIcheck, a vague idea of checking ABI compatibility
+-      </em>. </span></p></div><div class="biblioentry"><a id="id621973"/><p><span class="biblioid">
++      </em>. </span></p></div><div class="biblioentry"><a id="id501406"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       C++ ABI Reference
+-    </em>. </span></p></div><div class="biblioentry"><a id="id621990"/><p><span class="biblioid">
++    </em>. </span></p></div><div class="biblioentry"><a id="id501423"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Intel Compilers for Linux Compatibility with the GNU Compilers
+-      </em>. </span></p></div><div class="biblioentry"><a id="id622008"/><p><span class="biblioid">
++      </em>. </span></p></div><div class="biblioentry"><a id="id501441"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Linker and Libraries Guide (document 819-0690)
+-      </em>. </span></p></div><div class="biblioentry"><a id="id622026"/><p><span class="biblioid">
++      </em>. </span></p></div><div class="biblioentry"><a id="id501458"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Sun Studio 11: C++ Migration Guide (document 819-3689)
+-    </em>. </span></p></div><div class="biblioentry"><a id="id622043"/><p><span class="biblioid">
++    </em>. </span></p></div><div class="biblioentry"><a id="id501476"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       How to Write Shared Libraries
+-    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry"><a id="id622074"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry"><a id="id501507"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       C++ ABI for the ARM Architecture
+-    </em>. </span></p></div><div class="biblioentry"><a id="id622092"/><p><span class="biblioid">
++    </em>. </span></p></div><div class="biblioentry"><a id="id501524"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Dynamic Shared Objects: Survey and Issues
+     </em>. </span><span class="subtitle">
+       ISO C++ J16/06-0046
+-    . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="id622121"/><p><span class="biblioid">
++    . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="id501554"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Versioning With Namespaces
+       </em>. </span><span class="subtitle">
+       ISO C++ J16/06-0083
+-    . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="id622151"/><p><span class="biblioid">
++    . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="id501584"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Binary Compatibility of Shared Libraries Implemented in C++
+       on GNU/Linux Systems
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/algorithms.html gcc-4.6.0/libstdc++-v3/doc/html/manual/algorithms.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/algorithms.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/algorithms.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 11.Â  Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      algorithm&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="iterators.html" title="ChapterÂ 10.Â  Iterators"/><link rel="next" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 11.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 11.Â  Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      algorithm&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="iterators.html" title="ChapterÂ 10.Â  Iterators"/><link rel="next" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 11.Â 
+   Algorithms
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="iterators.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 11.Â  Algorithms"><div class="titlepage"><div><div><h1 class="title"><a id="std.algorithms"/>
++  </th><td align="right">Â <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 11.Â  Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"/>ChapterÂ 11.Â 
+   Algorithms
+-  <a id="id600499" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt></dl></dd></dl></div><p>
++  <a id="id479931" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt></dl></dd></dl></div><p>
+   The neatest accomplishment of the algorithms sect1 is that all the
+   work is done via iterators, not containers directly.  This means two
+   important things:
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/api.html gcc-4.6.0/libstdc++-v3/doc/html/manual/api.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/api.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/api.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="ISO C++, api, evolution, deprecation, history"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="abi.html" title="ABI Policy and Guidelines"/><link rel="next" href="backwards.html" title="Backwards Compatibility"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td align="left"><a accesskey="p" href="abi.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="ISO C++, api, evolution, deprecation, history"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="abi.html" title="ABI Policy and Guidelines"/><link rel="next" href="backwards.html" title="Backwards Compatibility"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td align="left"><a accesskey="p" href="abi.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr/></div><div class="section" title="API Evolution and Deprecation History"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.api"/>API Evolution and Deprecation History</h2></div></div></div><p>
+@@ -75,11 +75,11 @@
+    <span class="type">__alloc</span> to select an underlying allocator that
+    satisfied memory allocation requests. The selection of this
+    underlying allocator was not user-configurable.
+-   </p><div class="table"><a id="id622712"/><p class="title"><b>TableÂ B.6.Â Extension Allocators</b></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Allocator (3.4)</th><th style="text-align: left">Header (3.4)</th><th style="text-align: left">Allocator (3.[0-3])</th><th style="text-align: left">Header (3.[0-3])</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::new_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__new_alloc</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::malloc_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::bitmap_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/><p> Releases after gcc-3.4 have continued to add to the collection
++   </p><div class="table"><a id="id502145"/><p class="title"><strong>TableÂ B.6.Â Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Allocator (3.4)</th><th style="text-align: left">Header (3.4)</th><th style="text-align: left">Allocator (3.[0-3])</th><th style="text-align: left">Header (3.[0-3])</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::new_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__new_alloc</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::malloc_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td style="text-align: left"><code class="filename">memory</code></td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::bitmap_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"> </td><td style="text-align: left"> </td></tr></tbody></table></div></div><br class="table-break"/><p> Releases after gcc-3.4 have continued to add to the collection
+    of available allocators. All of these new allocators are
+    standard-style. The following table includes details, along with
+    the first released version of GCC that included the extension allocator.
+-   </p><div class="table"><a id="id622942"/><p class="title"><b>TableÂ B.7.Â Extension Allocators Continued</b></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Allocator</th><th style="text-align: left">Include</th><th style="text-align: left">Version</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::array_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left">4.0.0</td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::throw_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left">4.2.0</td></tr></tbody></table></div></div><br class="table-break"/><p>
++   </p><div class="table"><a id="id502375"/><p class="title"><strong>TableÂ B.7.Â Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/></colgroup><thead><tr><th style="text-align: left">Allocator</th><th style="text-align: left">Include</th><th style="text-align: left">Version</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">__gnu_cxx::array_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left">4.0.0</td></tr><tr><td style="text-align: left"><code class="classname">__gnu_cxx::throw_allocator&lt;T&gt;</code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left">4.2.0</td></tr></tbody></table></div></div><br class="table-break"/><p>
+ Debug mode first appears.
+ </p><p>
+ Precompiled header support <acronym class="acronym">PCH</acronym> support.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_contributing.html gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_contributing.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_contributing.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_contributing.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ A.Â  Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ A.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ A.Â  Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ A.Â 
+   Contributing
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="bk01pt04.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
+   Appendices
+ </th><td align="right">Â <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="AppendixÂ A.Â  Contributing"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"/>
+   Contributing
+-  <a id="id613503" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
++  <a id="id492936" class="indexterm"/>
++</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
+   The GNU C++ Library follows an open development model. Active
+   contributors are assigned maintainer-ship responsibility, and given
+   write access to the source repository. First time contributors
+@@ -23,22 +23,22 @@
+ 	  the standard from their respective national standards
+ 	  organization. In the USA, this national standards
+ 	  organization is ANSI and their web-site is right
+-	  <a class="link" href="http://www.ansi.org" target="">here.</a>
++	  <a class="link" href="http://www.ansi.org">here.</a>
+ 	  (And if you've already registered with them, clicking this link will take you to directly to the place where you can
+-	  <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003" target="">buy the standard on-line</a>.)
++	  <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line</a>.)
+ 	</p></li><li class="listitem"><p>
+ 	  The library working group bugs, and known defects, can
+ 	  be obtained here:
+-	  <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="">http://www.open-std.org/jtc1/sc22/wg21 </a>
++	  <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21 </a>
+ 	</p></li><li class="listitem"><p>
+ 	  The newsgroup dedicated to standardization issues is
+ 	  comp.std.c++: this FAQ for this group is quite useful and
+ 	  can be
+-	  found <a class="link" href="http://www.comeaucomputing.com/csc/faq.html" target="">
++	  found <a class="link" href="http://www.comeaucomputing.com/csc/faq.html">
+ 	  here </a>.
+       </p></li><li class="listitem"><p>
+ 	  Peruse
+-	  the <a class="link" href="http://www.gnu.org/prep/standards" target="">GNU
++	  the <a class="link" href="http://www.gnu.org/prep/standards">GNU
+ 	  Coding Standards</a>, and chuckle when you hit the part
+ 	  about <span class="quote">â<span class="quote">Using Languages Other Than C</span>â</span>.
+ 	</p></li><li class="listitem"><p>
+@@ -67,7 +67,7 @@
+       this question would be appreciated.
+     </p><p>
+       For more information about getting a copyright assignment, please see
+-      <a class="link" href="http://www.gnu.org/prep/maintain/html_node/Legal-Matters.html" target="">Legal
++      <a class="link" href="http://www.gnu.org/prep/maintain/html_node/Legal-Matters.html">Legal
+ 	Matters</a>.
+     </p><p>
+       Please contact Benjamin Kosnik at
+@@ -77,7 +77,7 @@
+       <code class="email">&lt;<a class="email" href="mailto:mailto:assign@gnu.org">mailto:assign@gnu.org</a>&gt;</code>, please cc the libstdc++
+       maintainer above so that progress can be monitored.
+     </p></div><div class="section" title="Getting Sources"><div class="titlepage"><div><div><h3 class="title"><a id="list.getting"/>Getting Sources</h3></div></div></div><p>
+-      <a class="link" href="http://gcc.gnu.org/svnwrite.html" target="">Getting write access
++      <a class="link" href="http://gcc.gnu.org/svnwrite.html">Getting write access
+ 	(look for "Write after approval")</a>
+     </p></div><div class="section" title="Submitting Patches"><div class="titlepage"><div><div><h3 class="title"><a id="list.patches"/>Submitting Patches</h3></div></div></div><p>
+       Every patch must have several pieces of information before it can be
+@@ -104,7 +104,7 @@
+ 	  else, use <span class="command"><strong>diff -cp OLD NEW</strong></span> ... If your
+ 	  version of diff does not support these options, then get the
+ 	  latest version of GNU
+-	  diff. The <a class="link" href="http://gcc.gnu.org/wiki/SvnTricks" target="">SVN
++	  diff. The <a class="link" href="http://gcc.gnu.org/wiki/SvnTricks">SVN
+ 	  Tricks</a> wiki page has information on customising the
+ 	  output of <code class="code">svn diff</code>.
+ 	</p></li><li class="listitem"><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_free.html gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_free.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_free.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_free.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,13 +1,13 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ C.Â  Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="backwards.html" title="Backwards Compatibility"/><link rel="next" href="appendix_gpl.html" title="AppendixÂ D.Â  GNU General Public License version 3"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ C.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ C.Â  Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="backwards.html" title="Backwards Compatibility"/><link rel="next" href="appendix_gpl.html" title="AppendixÂ D.Â  GNU General Public License version 3"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ C.Â 
+   Free Software Needs Free Documentation
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="backwards.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
+   Appendices
+ </th><td align="right">Â <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="AppendixÂ C.Â  Free Software Needs Free Documentation"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"/>
+   Free Software Needs Free Documentation
+-  <a id="id625881" class="indexterm"/>
++  <a id="id505314" class="indexterm"/>
+ </h1></div></div></div><p>
+ The biggest deficiency in free operating systems is not in the
+ software--it is the lack of good free manuals that we can include in
+@@ -41,7 +41,7 @@
+   Free documentation, like free software, is a matter of freedom,
+ not price.  The problem with these manuals was not that O'Reilly
+ Associates charged a price for printed copies--that in itself is fine.
+-(The Free Software Foundation <a class="link" href="http://www.gnu.org/doc/doc.html" target="">sells printed copies</a> of
++(The Free Software Foundation <a class="link" href="http://www.gnu.org/doc/doc.html">sells printed copies</a> of
+ free GNU manuals, too.)  But GNU manuals are available in source code
+ form, while these manuals are available only on paper.  GNU manuals
+ come with permission to copy and modify; the Perl manuals do not.
+@@ -117,7 +117,7 @@
+ check the distribution terms of a manual before you buy it, and
+ prefer copylefted manuals to non-copylefted ones.
+ </p><p>
+-[Note: We now maintain a <a class="link" href="http://www.fsf.org/licensing/doc/other-free-books.html" target="">web page
++[Note: We now maintain a <a class="link" href="http://www.fsf.org/licensing/doc/other-free-books.html">web page
+ that lists free books available from other publishers</a>].
+ </p><p>Copyright Â© 2004, 2005, 2006, 2007 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</p><p>Verbatim copying and distribution of this entire article are
+ permitted worldwide, without royalty, in any medium, provided this
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_gfdl.html gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_gfdl.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_gfdl.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_gfdl.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,10 +1,10 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ E.Â GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="appendix_gpl.html" title="AppendixÂ D.Â  GNU General Public License version 3"/><link rel="next" href="../bk02.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ E.Â GNU Free Documentation License</th></tr><tr><td align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ E.Â GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="appendix_gpl.html" title="AppendixÂ D.Â  GNU General Public License version 3"/><link rel="next" href="../bk02.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ E.Â GNU Free Documentation License</th></tr><tr><td align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
+   Appendices
+ </th><td align="right">Â <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="AppendixÂ E.Â GNU Free Documentation License"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gfdl-1.3"/>GNU Free Documentation License</h1></div></div></div><p>Version 1.3, 3 November 2008</p><p>
+     Copyright Â© 2000, 2001, 2002, 2007, 2008
+-    <a class="link" href="http://www.fsf.org/" target="">Free Software Foundation, Inc.</a>
++    <a class="link" href="http://www.fsf.org/">Free Software Foundation, Inc.</a>
+   </p><p>
+     Everyone is permitted to copy and distribute verbatim copies of this
+     license document, but changing it is not allowed.
+@@ -377,7 +377,7 @@
+     Free Documentation License from time to time. Such new versions will be
+     similar in spirit to the present version, but may differ in detail to
+     address new problems or concerns. See
+-    <a class="link" href="http://www.gnu.org/copyleft/" target="">Copyleft</a>.
++    <a class="link" href="http://www.gnu.org/copyleft/">Copyleft</a>.
+   </p><p>
+     Each version of the License is given a distinguishing version number. If
+     the Document specifies that a particular numbered version of this License
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_gpl.html gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_gpl.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_gpl.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_gpl.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ D.Â  GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="appendix_free.html" title="AppendixÂ C.Â  Free Software Needs Free Documentation"/><link rel="next" href="appendix_gfdl.html" title="AppendixÂ E.Â GNU Free Documentation License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ D.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ D.Â  GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="appendix_free.html" title="AppendixÂ C.Â  Free Software Needs Free Documentation"/><link rel="next" href="appendix_gfdl.html" title="AppendixÂ E.Â GNU Free Documentation License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ D.Â 
+     <acronym class="acronym">GNU</acronym> General Public License version 3
+   </th></tr><tr><td align="left"><a accesskey="p" href="appendix_free.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
+   Appendices
+@@ -10,7 +10,7 @@
+     Version 3, 29 June 2007
+   </p><p>
+     Copyright Â© 2007 Free Software Foundation, Inc.
+-    <a class="link" href="http://www.fsf.org/" target="">http://www.fsf.org/</a>
++    <a class="link" href="http://www.fsf.org/">http://www.fsf.org/</a>
+   </p><p>
+     Everyone is permitted to copy and distribute verbatim copies of this license
+     document, but changing it is not allowed.
+@@ -78,7 +78,7 @@
+   </p><p>
+     The precise terms and conditions for copying, distribution and modification
+     follow.
+-  </p><h2><a id="id626220"/>
++  </p><h2><a id="id505653"/>
+     TERMS AND CONDITIONS
+   </h2><h2><a id="gpl-3-definitions"/>
+     0. Definitions.
+@@ -619,7 +619,7 @@
+     waiver of all civil liability in connection with the Program, unless a
+     warranty or assumption of liability accompanies a copy of the Program in
+     return for a fee.
+-  </p><h2><a id="id627044"/>
++  </p><h2><a id="id506476"/>
+     END OF TERMS AND CONDITIONS
+   </h2><h2><a id="HowToApply"/>
+     How to Apply These Terms to Your New Programs
+@@ -648,7 +648,7 @@
+ <acronym class="acronym">GNU</acronym> General Public License for more details.
+ 
+ You should have received a copy of the <acronym class="acronym">GNU</acronym> General Public License
+-along with this program.  If not, see <a class="link" href="http://www.gnu.org/licenses/" target="">http://www.gnu.org/licenses/</a>.
++along with this program.  If not, see <a class="link" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
+   </pre><p>
+     Also add information on how to contact you by electronic and paper mail.
+   </p><p>
+@@ -669,14 +669,14 @@
+     if any, to sign a âcopyright disclaimerâ for the program, if
+     necessary.  For more information on this, and how to apply and follow the
+     <acronym class="acronym">GNU</acronym> <acronym class="acronym">GPL</acronym>, see
+-    <a class="link" href="http://www.gnu.org/licenses/" target="">http://www.gnu.org/licenses/</a>.
++    <a class="link" href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.
+   </p><p>
+     The <acronym class="acronym">GNU</acronym> General Public License does not permit
+     incorporating your program into proprietary programs.  If your program is a
+     subroutine library, you may consider it more useful to permit linking
+     proprietary applications with the library.  If this is what you want to do,
+     use the <acronym class="acronym">GNU</acronym> Lesser General Public License instead of this
+-    License.  But first, please read <a class="link" href="http://www.gnu.org/philosophy/why-not-lgpl.html" target="">http://www.gnu.org/philosophy/why-not-lgpl.html</a>.
++    License.  But first, please read <a class="link" href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>.
+   </p></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="appendix_free.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="bk01pt04.html">Up</a></td><td align="right">Â <a accesskey="n" href="appendix_gfdl.html">Next</a></td></tr><tr><td align="left" valign="top">AppendixÂ C.Â 
+   Free Software Needs Free Documentation
+   
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_porting.html gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_porting.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/appendix_porting.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/appendix_porting.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,15 +1,15 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ B.Â  Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="source_design_notes.html" title="Design Notes"/><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>AppendixÂ B.Â  Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/><link rel="prev" href="source_design_notes.html" title="Design Notes"/><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="source_design_notes.html">Prev</a>Â </td><th width="60%" align="center">PartÂ IV.Â 
+   Appendices
+ </th><td align="right">Â <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr/></div><div class="appendix" title="AppendixÂ B.Â  Porting and Maintenance"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"/>
+   Porting and Maintenance
+-  <a id="id614622" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.map">Overview: What Comes from Where</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.build_hacking"/>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"/>Prerequisites</h3></div></div></div><p>
+-    As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="">previously</a>,
++  <a id="id494054" class="indexterm"/>
++</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.map">Overview: What Comes from Where</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt></dl></dd><dt><span class="section"><a href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span class="section"><a href="abi.html#abi.cxx_interface">The C++ Interface</a></span></dt><dt><span class="section"><a href="abi.html#abi.versioning">Versioning</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.changes_no">Prohibited Changes</a></span></dt><dt><span class="section"><a href="abi.html#abi.impl">Implementation</a></span></dt><dt><span class="section"><a href="abi.html#abi.testing">Testing</a></span></dt><dt><span class="section"><a href="abi.html#abi.issues">Outstanding Issues</a></span></dt></dl></dd><dt><span class="section"><a href="api.html">API Evolution and Deprecation History</a></span></dt><dd><dl><dt><span class="section"><a href="api.html#api.rel_300"><code class="constant">3.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_310"><code class="constant">3.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_320"><code class="constant">3.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_330"><code class="constant">3.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_340"><code class="constant">3.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_400"><code class="constant">4.0</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_410"><code class="constant">4.1</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_420"><code class="constant">4.2</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_430"><code class="constant">4.3</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_440"><code class="constant">4.4</code></a></span></dt><dt><span class="section"><a href="api.html#api.rel_450"><code class="constant">4.5</code></a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html">Backwards Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.first">First</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second">Second</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt></dl></dd></dl></div><div class="section" title="Configure and Build Hacking"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.build_hacking"/>Configure and Build Hacking</h2></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.prereq"/>Prerequisites</h3></div></div></div><p>
++    As noted <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">previously</a>,
+     certain other tools are necessary for hacking on files that
+     control configure (<code class="code">configure.ac</code>,
+     <code class="code">acinclude.m4</code>) and make
+@@ -19,14 +19,14 @@
+     in GCC try to stay in sync with each other in terms of versions of
+     the auto-tools used, so please try to play nicely with the
+     neighbors.
+-  </p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"/>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id614754"/><p class="title"><b>FigureÂ B.1.Â Configure and Build File Dependencies</b></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="/mnt/share/src/gcc.svn-trunk/libstdc++-v3/doc/xml/images/confdeps.png" style="text-align: middle" alt="Dependency Graph for Configure and Build Files"/></div></div></div><br class="figure-break"/><p>
++  </p></div><div class="section" title="Overview: What Comes from Where"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.map"/>Overview: What Comes from Where</h3></div></div></div><div class="figure"><a id="id494186"/><p class="title"><strong>FigureÂ B.1.Â Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" style="text-align: center"><img src="/mnt/share/src/gcc.svn-trunk/libstdc++-v3/doc/xml/images/confdeps.png" style="text-align: middle" alt="Dependency Graph for Configure and Build Files"/></div></div></div><br class="figure-break"/><p>
+     Regenerate all generated files by using the command sequence
+     <code class="code">"autoreconf"</code> at the top level of the libstdc++ source
+     directory. The following will also work, but is much more complex:
+     <code class="code">"aclocal-1.11 &amp;&amp; autoconf-2.64 &amp;&amp;
+     autoheader-2.64 &amp;&amp; automake-1.11"</code> The version
+     numbers may be absent entirely or otherwise vary depending on
+-    <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="">the
++    <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">the
+     current requirements</a> and your vendor's choice of
+     installation names.
+   </p></div><div class="section" title="Storing Information in non-AC files (like configure.host)"><div class="titlepage"><div><div><h3 class="title"><a id="build_hacking.scripts"/>Storing Information in non-AC files (like configure.host)</h3></div></div></div><p>
+@@ -196,7 +196,7 @@
+    </p><p>
+      If you're wondering what that line noise in the last example was,
+      that's how you embed autoconf special characters in output text.
+-     They're called <a class="link" href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Quadrigraphs" target=""><span class="emphasis"><em>quadrigraphs</em></span></a>
++     They're called <a class="link" href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Quadrigraphs"><span class="emphasis"><em>quadrigraphs</em></span></a>
+      and you should use them whenever necessary.
+  </p></li><li class="listitem"><p>HELP-STRING is what you think it is.  Do not include the
+    "default" text like we used to do; it will be done for you by
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/associative.html gcc-4.6.0/libstdc++-v3/doc/html/manual/associative.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/associative.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/associative.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="prev" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="next" href="containers_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td align="left"><a accesskey="p" href="containers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 9.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="prev" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="next" href="containers_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td align="left"><a accesskey="p" href="containers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 9.Â 
+   Containers
+   
+ </th><td align="right">Â <a accesskey="n" href="containers_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="Associative"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.associative"/>Associative</h2></div></div></div><div class="section" title="Insertion Hints"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.insert_hints"/>Insertion Hints</h3></div></div></div><p>
+@@ -13,7 +13,7 @@
+      item to insert.  The standard says that <span class="quote">â<span class="quote"><code class="code">t</code> is
+      inserted as close as possible to the position just prior to
+      <code class="code">p</code>.</span>â</span> (Library DR #233 addresses this topic,
+-     referring to <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1780.html" target="">N1780</a>.
++     referring to <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1780.html">N1780</a>.
+      Since version 4.2 GCC implements the resolution to DR 233, so
+      that insertions happen as close as possible to the hint. For
+      earlier releases the hint was only used as described below.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/atomics.html gcc-4.6.0/libstdc++-v3/doc/html/manual/atomics.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/atomics.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/atomics.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 14.Â  Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      atomic&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="concurrency.html" title="ChapterÂ 15.Â  Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 14.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 14.Â  Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      atomic&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="concurrency.html" title="ChapterÂ 15.Â  Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 14.Â 
+   Atomics
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 14.Â  Atomics"><div class="titlepage"><div><div><h1 class="title"><a id="std.atomics"/>
++  </th><td align="right">Â <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 14.Â  Atomics"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"/>ChapterÂ 14.Â 
+   Atomics
+-  <a id="id602150" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
++  <a id="id481583" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
+   Facilities for atomic operations.
+ </p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics.api"/>API Reference</h2></div></div></div><p>
+     All items are declared in the standard header
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/backwards.html gcc-4.6.0/libstdc++-v3/doc/html/manual/backwards.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/backwards.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/backwards.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      backwards&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="api.html" title="API Evolution and Deprecation History"/><link rel="next" href="appendix_free.html" title="AppendixÂ C.Â  Free Software Needs Free Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      backwards&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="api.html" title="API Evolution and Deprecation History"/><link rel="next" href="appendix_free.html" title="AppendixÂ C.Â  Free Software Needs Free Documentation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="appendix_free.html">Next</a></td></tr></table><hr/></div><div class="section" title="Backwards Compatibility"><div class="titlepage"><div><div><h2 class="title"><a id="manual.appendix.porting.backwards"/>Backwards Compatibility</h2></div></div></div><div class="section" title="First"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.first"/>First</h3></div></div></div><p>The first generation GNU C++ library was called libg++.  It was a
+@@ -17,8 +17,8 @@
+ really useful things that are used by a lot of people, the Standards
+ Committee couldn't include everything, and so a lot of those
+ <span class="quote">â<span class="quote">obvious</span>â</span> classes didn't get included.
+-</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id624435"/>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
+-</p></div><div class="section" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id624468"/>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
++</p><p>Known Issues include many of the limitations of its immediate ancestor.</p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="No ios_base"><div class="titlepage"><div><div><h4 class="title"><a id="id503868"/>No <code class="code">ios_base</code></h4></div></div></div><p> At least some older implementations don't have <code class="code">std::ios_base</code>, so you should use <code class="code">std::ios::badbit</code>, <code class="code">std::ios::failbit</code> and <code class="code">std::ios::eofbit</code> and <code class="code">std::ios::goodbit</code>.
++</p></div><div class="section" title="No cout in ostream.h, no cin in istream.h"><div class="titlepage"><div><div><h4 class="title"><a id="id503900"/>No <code class="code">cout</code> in <code class="code">ostream.h</code>, no <code class="code">cin</code> in <code class="code">istream.h</code></h4></div></div></div><p>
+ 	In earlier versions of the standard,
+ 	<code class="filename">fstream.h</code>,
+ 	<code class="filename">ostream.h</code>
+@@ -29,7 +29,7 @@
+ 	explicitly to get the required definitions.
+  </p><p> Some include adjustment may be required.</p><p>This project is no longer maintained or supported, and the sources
+ archived. For the desperate,
+-the <a class="link" href="http://gcc.gnu.org/extensions.html" target="">GCC extensions
++the <a class="link" href="http://gcc.gnu.org/extensions.html">GCC extensions
+ page</a> describes where to find the last libg++ source. The code is
+ considered replaced and rewritten.
+ </p></div></div><div class="section" title="Second"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.second"/>Second</h3></div></div></div><p>
+@@ -44,7 +44,7 @@
+   archived.  The code is considered replaced and rewritten.
+ </p><p>
+   Portability notes and known implementation limitations are as follows.
+-</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id624570"/>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
++</p><div class="section" title="Namespace std:: not supported"><div class="titlepage"><div><div><h4 class="title"><a id="id504003"/>Namespace <code class="code">std::</code> not supported</h4></div></div></div><p>
+     Some care is required to support C++ compiler and or library
+     implementation that do not have the standard library in
+     <code class="code">namespace std</code>.
+@@ -108,7 +108,7 @@
+     AC_DEFINE(HAVE_NAMESPACE_STD,,[Define if g++ supports namespace std. ])
+   fi
+ ])
+-</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id624697"/>Illegal iterator usage</h4></div></div></div><p>
++</pre></div><div class="section" title="Illegal iterator usage"><div class="titlepage"><div><div><h4 class="title"><a id="id504130"/>Illegal iterator usage</h4></div></div></div><p>
+   The following illustrate implementation-allowed illegal iterator
+   use, and then correct use.
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
+@@ -121,7 +121,7 @@
+     </p></li><li class="listitem"><p>
+       <code class="code">if (iterator)</code> won't work any more =&gt; use
+       <code class="code">if (iterator != iterator_type())</code>
+-    </p></li></ul></div></div><div class="section" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id624758"/><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
++    </p></li></ul></div></div><div class="section" title="isspace from cctype is a macro"><div class="titlepage"><div><div><h4 class="title"><a id="id504191"/><code class="code">isspace</code> from <code class="filename">cctype</code> is a macro
+   </h4></div></div></div><p>
+     Glibc 2.0.x and 2.1.x define <code class="filename">ctype.h</code> functionality as macros
+     (isspace, isalpha etc.).
+@@ -154,7 +154,7 @@
+   (<code class="filename">ctype.h</code>) and the
+   definitions in namespace <code class="code">std::</code>
+   (<code class="code">&lt;cctype&gt;</code>).
+-</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id624854"/>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
++</p></div><div class="section" title="No vector::at, deque::at, string::at"><div class="titlepage"><div><div><h4 class="title"><a id="id504286"/>No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></h4></div></div></div><p>
+   One solution is to add an autoconf-test for this:
+ </p><pre class="programlisting">
+ AC_MSG_CHECKING(for container::at)
+@@ -180,7 +180,7 @@
+ </pre><p>
+   If you are using other (non-GNU) compilers it might be a good idea
+   to check for <code class="code">string::at</code> separately.
+-</p></div><div class="section" title="No std::char_traits&lt;char&gt;::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id624893"/>No <code class="code">std::char_traits&lt;char&gt;::eof</code></h4></div></div></div><p>
++</p></div><div class="section" title="No std::char_traits&lt;char&gt;::eof"><div class="titlepage"><div><div><h4 class="title"><a id="id504326"/>No <code class="code">std::char_traits&lt;char&gt;::eof</code></h4></div></div></div><p>
+   Use some kind of autoconf test, plus this:
+ </p><pre class="programlisting">
+ #ifdef HAVE_CHAR_TRAITS
+@@ -188,7 +188,7 @@
+ #else
+ #define CPP_EOF EOF
+ #endif
+-</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id624911"/>No <code class="code">string::clear</code></h4></div></div></div><p>
++</pre></div><div class="section" title="No string::clear"><div class="titlepage"><div><div><h4 class="title"><a id="id504344"/>No <code class="code">string::clear</code></h4></div></div></div><p>
+   There are two functions for deleting the contents of a string:
+   <code class="code">clear</code> and <code class="code">erase</code> (the latter returns the
+   string).
+@@ -206,12 +206,12 @@
+   Unfortunately, <code class="code">clear</code> is not implemented in this
+   version, so you should use <code class="code">erase</code> (which is probably
+   faster than <code class="code">operator=(charT*)</code>).
+-</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id624957"/>
++</p></div><div class="section" title="Removal of ostream::form and istream::scan extensions"><div class="titlepage"><div><div><h4 class="title"><a id="id504390"/>
+   Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
+   extensions
+ </h4></div></div></div><p>
+   These are no longer supported. Please use stringstreams instead.
+-</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id624976"/>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
++</p></div><div class="section" title="No basic_stringbuf, basic_stringstream"><div class="titlepage"><div><div><h4 class="title"><a id="id504408"/>No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></h4></div></div></div><p>
+   Although the ISO standard <code class="code">i/ostringstream</code>-classes are
+   provided, (<code class="filename">sstream</code>), for
+   compatibility with older implementations the pre-ISO
+@@ -299,14 +299,14 @@
+   Another example of using stringstreams is in <a class="link" href="strings.html#strings.string.shrink" title="Shrink to Fit">this howto</a>.
+ </p><p> There is additional information in the libstdc++-v2 info files, in
+ particular <span class="quote">â<span class="quote">info iostream</span>â</span>.
+-</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id625132"/>Little or no wide character support</h4></div></div></div><p>
++</p></div><div class="section" title="Little or no wide character support"><div class="titlepage"><div><div><h4 class="title"><a id="id504564"/>Little or no wide character support</h4></div></div></div><p>
+     Classes <code class="classname">wstring</code> and
+     <code class="classname">char_traits&lt;wchar_t&gt;</code> are
+     not supported.
+-  </p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id625150"/>No templatized iostreams</h4></div></div></div><p>
++  </p></div><div class="section" title="No templatized iostreams"><div class="titlepage"><div><div><h4 class="title"><a id="id504583"/>No templatized iostreams</h4></div></div></div><p>
+     Classes <code class="classname">wfilebuf</code> and
+     <code class="classname">wstringstream</code> are not supported.
+-  </p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id625169"/>Thread safety issues</h4></div></div></div><p>
++  </p></div><div class="section" title="Thread safety issues"><div class="titlepage"><div><div><h4 class="title"><a id="id504602"/>Thread safety issues</h4></div></div></div><p>
+     Earlier GCC releases had a somewhat different approach to
+     threading configuration and proper compilation.  Before GCC 3.0,
+     configuration of the threading model was dictated by compiler
+@@ -331,7 +331,7 @@
+      against the gthr.h abstraction layer which is provided by gcc.  A
+      minor problem that pops up every so often is different
+      interpretations of what "thread-safe" means for a
+-     library (not a general program).  We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="">same
++     library (not a general program).  We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">same
+      definition that SGI</a> uses for their STL subset.  However,
+      the exception for read-only containers only applies to the STL
+      components. This definition is widely-used and something similar
+@@ -343,11 +343,11 @@
+      "Thread Next" to move down the thread.  This farm is in
+      latest-to-oldest order.
+    </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>
+-	    Our threading expert Loren gives a breakdown of <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-10/msg00024.html" target="">the
++	    Our threading expert Loren gives a breakdown of <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-10/msg00024.html">the
+ 	    six situations involving threads</a> for the 3.0
+ 	    release series.
+ 	  </p></li><li class="listitem"><p>
+-	    <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00384.html" target="">
++	    <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00384.html">
+ 	This message</a> inspired a recent updating of issues with
+ 	threading and the SGI STL library.  It also contains some
+ 	example POSIX-multithreaded STL code.
+@@ -364,7 +364,7 @@
+ 	 of the SGI STL (version 3.3), with extensive changes.
+       </p><p>A more formal description of the V3 goals can be found in the
+ 	 official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
+-      </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id625293"/>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
++      </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section" title="Pre-ISO headers moved to backwards or removed"><div class="titlepage"><div><div><h4 class="title"><a id="id504726"/>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
+       (<code class="code">iostream.h</code>, <code class="code">defalloc.h</code> etc.) are
+       available, unlike previous libstdc++ versions, but inclusion
+       generates a warning that you are using deprecated headers.
+@@ -373,7 +373,7 @@
+     <code class="code">std::</code> into the global namespace.
+    </p><p>For those of you new to ISO C++ (welcome, time travelers!), no,
+       that isn't a typo. Yes, the headers really have new names.
+-      Marshall Cline's C++ FAQ Lite has a good explanation in <a class="link" href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4" target="">item
++      Marshall Cline's C++ FAQ Lite has a good explanation in <a class="link" href="http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4">item
+       [27.4]</a>.
+    </p><p> Some include adjustment may be required. What follows is an
+ autoconf test that defines <code class="code">PRE_STDCXX_HEADERS</code> when they
+@@ -436,7 +436,7 @@
+ directive <code class="code">using namespace std;</code> can be put at the global
+ scope. This should be enough to get this code compiling, assuming the
+ other usage is correct.
+-</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id625378"/>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
++</p></div><div class="section" title="Extension headers hash_map, hash_set moved to ext or backwards"><div class="titlepage"><div><div><h4 class="title"><a id="id504811"/>Extension headers hash_map, hash_set moved to ext or backwards</h4></div></div></div><p>At this time most of the features of the SGI STL extension have been
+ 	 replaced by standardized libraries.
+ 	 In particular, the unordered_map and unordered_set containers of TR1
+ 	 are suitable replacement for the non-standard hash_map and hash_set
+@@ -508,7 +508,7 @@
+     AC_DEFINE(HAVE_EXT_HASH_SET,,[Define if ext/hash_set is present. ])
+   fi
+ ])
+-</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id625481"/>No <code class="code">ios::nocreate/ios::noreplace</code>.
++</pre></div><div class="section" title="No ios::nocreate/ios::noreplace."><div class="titlepage"><div><div><h4 class="title"><a id="id504914"/>No <code class="code">ios::nocreate/ios::noreplace</code>.
+ </h4></div></div></div><p> The existence of <code class="code">ios::nocreate</code> being used for
+ input-streams has been confirmed, most probably because the author
+ thought it would be more correct to specify nocreate explicitly.  So
+@@ -519,7 +519,7 @@
+ decide whether you want to create/replace or not. To my knowledge,
+ even older implementations support <code class="code">app</code>, <code class="code">ate</code>
+ and <code class="code">trunc</code> (except for <code class="code">app</code> ?).
+-</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id625529"/>
++</p></div><div class="section" title="No stream::attach(int fd)"><div class="titlepage"><div><div><h4 class="title"><a id="id504962"/>
+ No <code class="code">stream::attach(int fd)</code>
+ </h4></div></div></div><p>
+       Phil Edwards writes: It was considered and rejected for the ISO
+@@ -535,14 +535,14 @@
+     </p><p>
+       An extension is available that implements this.
+       <code class="filename">ext/stdio_filebuf.h</code> contains a derived class called
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html" target=""><code class="code">__gnu_cxx::stdio_filebuf</code></a>.
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code class="code">__gnu_cxx::stdio_filebuf</code></a>.
+       This class can be constructed from a C <code class="code">FILE*</code> or a file
+       descriptor, and provides the <code class="code">fd()</code> function.
+     </p><p>
+  For another example of this, refer to
+-      <a class="link" href="http://www.josuttis.com/cppcode/fdstream.html" target="">fdstream example</a>
++      <a class="link" href="http://www.josuttis.com/cppcode/fdstream.html">fdstream example</a>
+       by Nicolai Josuttis.
+-</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id625597"/>
++</p></div><div class="section" title="Support for C++98 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id505030"/>
+ Support for C++98 dialect.
+ </h4></div></div></div><p>Check for complete library coverage of the C++1998/2003 standard.
+ </p><pre class="programlisting">
+@@ -610,7 +610,7 @@
+     AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ])
+   fi
+ ])
+-</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id625624"/>
++</pre></div><div class="section" title="Support for C++TR1 dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id505057"/>
+ Support for C++TR1 dialect.
+ </h4></div></div></div><p>Check for library coverage of the TR1 standard.
+ </p><pre class="programlisting">
+@@ -687,7 +687,7 @@
+     AC_DEFINE(HAVE_TR1_UNORDERED_SET,,[Define if tr1/unordered_set is present. ])
+   fi
+ ])
+-</pre></div><div class="section" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id625668"/>
++</pre></div><div class="section" title="Support for C++0x dialect."><div class="titlepage"><div><div><h4 class="title"><a id="id505101"/>
+ Support for C++0x dialect.
+ </h4></div></div></div><p>Check for baseline language coverage in the compiler for the C++0xstandard.
+ </p><pre class="programlisting">
+@@ -899,19 +899,19 @@
+     AC_DEFINE(HAVE_UNORDERED_SET,,[Define if unordered_set is present. ])
+   fi
+ ])
+-</pre></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id625747"/>
++</pre></div><div class="section" title="Container::iterator_type is not necessarily Container::value_type*"><div class="titlepage"><div><div><h4 class="title"><a id="id505180"/>
+   Container::iterator_type is not necessarily Container::value_type*
+ </h4></div></div></div><p>
+   This is a change in behavior from the previous version. Now, most
+   <span class="type">iterator_type</span> typedefs in container classes are POD
+   objects, not <span class="type">value_type</span> pointers.
+-</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id625777"/><p><span class="biblioid">
++</p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id505210"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Migrating to GCC 4.1
+-    </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry"><a id="id625802"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry"><a id="id505235"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Building the Whole Debian Archive with GCC 4.1: A Summary
+-    </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry"><a id="id625828"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry"><a id="id505261"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Migration guide for GCC-3.2
+     </em>. </span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="api.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td align="right">Â <a accesskey="n" href="appendix_free.html">Next</a></td></tr><tr><td align="left" valign="top">API Evolution and Deprecation HistoryÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â AppendixÂ C.Â 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bitmap_allocator.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bitmap_allocator.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bitmap_allocator.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bitmap_allocator.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      allocator&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/><link rel="prev" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/><link rel="next" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">bitmap_allocator</th></tr><tr><td align="left"><a accesskey="p" href="ext_allocators.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 20.Â Allocators</th><td align="right">Â <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="bitmap_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"/>bitmap_allocator</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      allocator&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/><link rel="prev" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/><link rel="next" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">bitmap_allocator</th></tr><tr><td align="left"><a accesskey="p" href="ext_allocators.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 20.Â Allocators</th><td align="right">Â <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="bitmap_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"/>bitmap_allocator</h2></div></div></div><p>
+ </p><div class="section" title="Design"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.bitmap.design"/>Design</h3></div></div></div><p>
+     As this name suggests, this allocator uses a bit-map to keep track
+     of the used and unused memory locations for it's book-keeping
+@@ -103,7 +103,7 @@
+   </p><p>
+     Consider a block of size 64 ints. In memory, it would look like this:
+     (assume a 32-bit system where, size_t is a 32-bit entity).
+-  </p><div class="table"><a id="id611395"/><p class="title"><b>TableÂ 20.1.Â Bitmap Allocator Memory Map</b></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left">268</td><td style="text-align: left">0</td><td style="text-align: left">4294967295</td><td style="text-align: left">4294967295</td><td style="text-align: left">Data -&gt; Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break"/><p>
++  </p><div class="table"><a id="id490827"/><p class="title"><strong>TableÂ 20.1.Â Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left">268</td><td style="text-align: left">0</td><td style="text-align: left">4294967295</td><td style="text-align: left">4294967295</td><td style="text-align: left">Data -&gt; Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break"/><p>
+     The first Column(268) represents the size of the Block in bytes as
+     seen by the Bitmap Allocator. Internally, a global free list is
+     used to keep track of the free blocks used and given back by the
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,10 +1,10 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ II.Â  Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="debug.html" title="Debugging Support"/><link rel="next" href="support.html" title="ChapterÂ 4.Â  Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ II.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ II.Â  Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="debug.html" title="Debugging Support"/><link rel="next" href="support.html" title="ChapterÂ 4.Â  Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ II.Â 
+     Standard Contents
+   </th></tr><tr><td align="left"><a accesskey="p" href="debug.html">Prev</a>Â </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right">Â <a accesskey="n" href="support.html">Next</a></td></tr></table><hr/></div><div class="part" title="PartÂ II.Â  Standard Contents"><div class="titlepage"><div><div><h1 class="title"><a id="manual.std"/>PartÂ II.Â 
+     Standard Contents
+-  </h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="support.html">4. 
++  </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="support.html">4. 
+   Support
+   
+ </a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="diagnostics.html">5. 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt02ch05s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/><link rel="prev" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/><link rel="next" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td align="left"><a accesskey="p" href="diagnostics.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 5.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/><link rel="prev" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/><link rel="next" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td align="left"><a accesskey="p" href="diagnostics.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 5.Â 
+   Diagnostics
+   
+ </th><td align="right">Â <a accesskey="n" href="utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Concept Checking"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.concept_checking"/>Concept Checking</h2></div></div></div><p>
+@@ -21,7 +21,7 @@
+      The primary author of the checking code, Jeremy Siek, had already
+      started work on a replacement implementation.  The new code was
+      formally reviewed and accepted into
+-   <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm" target="">the
++   <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm">the
+    Boost libraries</a>, and we are pleased to incorporate it into the
+    GNU C++ library.
+  </p><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="next" href="bk01pt03ch17s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="debug_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.semantics"/>Semantics</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="next" href="bk01pt03ch17s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="debug_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.semantics"/>Semantics</h2></div></div></div><p>
+   </p><p>A program that uses the C++ standard library correctly
+   will maintain the same semantics under debug mode as it had with
+   the normal (release) library. All functional and exception-handling
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="bk01pt03ch17s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch17s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.using"/>Using</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="bk01pt03ch17s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch17s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.using"/>Using</h2></div></div></div><p>
+   </p><div class="section" title="Using the Debug Mode"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.mode"/>Using the Debug Mode</h3></div></div></div><p>To use the libstdc++ debug mode, compile your application with the
+   compiler flag <code class="code">-D_GLIBCXX_DEBUG</code>. Note that this flag
+   changes the sizes and behavior of standard class templates such
+@@ -19,6 +19,6 @@
+   mode or with debug mode. The
+   following table provides the names and headers of the debugging
+   containers:
+-</p><div class="table"><a id="id602987"/><p class="title"><b>TableÂ 17.1.Â Debugging Containers</b></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::bitset</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="classname">__gnu_debug::bitset</code></td><td style="text-align: left"><code class="filename">&lt;debug/bitset&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::deque</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="classname">__gnu_debug::deque</code></td><td style="text-align: left"><code class="filename">&lt;debug/deque&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::list</code></td><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="classname">__gnu_debug::list</code></td><td style="text-align: left"><code class="filename">&lt;debug/list&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::map</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::map</code></td><td style="text-align: left"><code class="filename">&lt;debug/map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::multimap</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multimap</code></td><td style="text-align: left"><code class="filename">&lt;debug/map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::multiset</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multiset</code></td><td style="text-align: left"><code class="filename">&lt;debug/set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::set</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::set</code></td><td style="text-align: left"><code class="filename">&lt;debug/set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::string</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::wstring</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::wstring</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::basic_string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::basic_string</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::vector</code></td><td style="text-align: left"><code class="filename">vector</code></td><td style="text-align: left"><code class="classname">__gnu_debug::vector</code></td><td style="text-align: left"><code class="filename">&lt;debug/vector&gt;</code></td></tr></tbody></table></div></div><br class="table-break"/><p>In addition, when compiling in C++0x mode, these additional
++</p><div class="table"><a id="id482419"/><p class="title"><strong>TableÂ 17.1.Â Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::bitset</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="classname">__gnu_debug::bitset</code></td><td style="text-align: left"><code class="filename">&lt;debug/bitset&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::deque</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="classname">__gnu_debug::deque</code></td><td style="text-align: left"><code class="filename">&lt;debug/deque&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::list</code></td><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="classname">__gnu_debug::list</code></td><td style="text-align: left"><code class="filename">&lt;debug/list&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::map</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::map</code></td><td style="text-align: left"><code class="filename">&lt;debug/map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::multimap</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multimap</code></td><td style="text-align: left"><code class="filename">&lt;debug/map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::multiset</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::multiset</code></td><td style="text-align: left"><code class="filename">&lt;debug/set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::set</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::set</code></td><td style="text-align: left"><code class="filename">&lt;debug/set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::string</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::wstring</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::wstring</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::basic_string</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="classname">__gnu_debug::basic_string</code></td><td style="text-align: left"><code class="filename">&lt;debug/string&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::vector</code></td><td style="text-align: left"><code class="filename">vector</code></td><td style="text-align: left"><code class="classname">__gnu_debug::vector</code></td><td style="text-align: left"><code class="filename">&lt;debug/vector&gt;</code></td></tr></tbody></table></div></div><br class="table-break"/><p>In addition, when compiling in C++0x mode, these additional
+ containers have additional debug capability.
+-</p><div class="table"><a id="id603361"/><p class="title"><b>TableÂ 17.2.Â Debugging Containers C++0x</b></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_map</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multimap</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_set</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_set</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multiset</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_set&gt;</code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td align="left" valign="top">SemanticsÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Design</td></tr></table></div></body></html>
++</p><div class="table"><a id="id482793"/><p class="title"><strong>TableÂ 17.2.Â Debugging Containers C++0x</strong></p><div class="table-contents"><table summary="Debugging Containers C++0x" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Container</th><th style="text-align: left">Header</th><th style="text-align: left">Debug container</th><th style="text-align: left">Debug header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="classname">std::unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_map</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multimap</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_map&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_set</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_set</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_set&gt;</code></td></tr><tr><td style="text-align: left"><code class="classname">std::unordered_multiset</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td><td style="text-align: left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td style="text-align: left"><code class="filename">&lt;debug/unordered_set&gt;</code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03ch17s04.html">Next</a></td></tr><tr><td align="left" valign="top">SemanticsÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Design</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch17s04.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="bk01pt03ch17s03.html" title="Using"/><link rel="next" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.design"/>Design</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/><link rel="prev" href="bk01pt03ch17s03.html" title="Using"/><link rel="next" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 17.Â Debug Mode</th><td align="right">Â <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.design"/>Design</h2></div></div></div><p>
+   </p><div class="section" title="Goals"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.goals"/>Goals</h3></div></div></div><p>
+     </p><p> The libstdc++ debug mode replaces unsafe (but efficient) standard
+   containers and iterators with semantically equivalent safe standard
+@@ -194,7 +194,7 @@
+   environments by minimizing dependencies.</p><p>Achieving link- and run-time coexistence is not a trivial
+   implementation task. To achieve this goal we required a small
+   extension to the GNU C++ compiler (since incorporated into the C++0x language specification, described in the GCC Manual for the C++ language as
+-  <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Namespace-Association.html#Namespace-Association" target="">namespace
++  <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Namespace-Association.html#Namespace-Association">namespace
+   association</a>), and a complex organization of debug- and
+   release-modes. The end result is that we have achieved per-use
+   recompilation but have had to give up some checking of the
+@@ -353,7 +353,7 @@
+       declarations disallow specialization. This method fails
+       the <span class="emphasis"><em>correctness</em></span> criteria.</p></li><li class="listitem"><p><span class="emphasis"><em> Use implementation-specific properties of anonymous
+     namespaces. </em></span>
+-    See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html" target=""> this post
++    See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00004.html"> this post
+     </a>
+     This method fails the <span class="emphasis"><em>correctness</em></span> criteria.</p></li><li class="listitem"><p><span class="emphasis"><em>Extension: allow reopening on namespaces</em></span>: This would
+     allow the debug mode to effectively alias the
+@@ -376,7 +376,7 @@
+     functions taking no arguments in mixed-mode settings resulting in
+     equivalent link names, <code class="code"> vector::push_back() </code> being
+     one example.
+-    See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html" target="">link
++    See <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2003-08/msg00177.html">link
+     name</a> </p></li></ul></div><p>Other options may exist for implementing the debug mode, many of
+   which have probably been considered and others that may still be
+   lurking. This list may be expanded over time to include other
+@@ -392,13 +392,13 @@
+     </p><p> There are several existing implementations of debug modes for C++
+   standard library implementations, although none of them directly
+   supports debugging for programs using libstdc++. The existing
+-  implementations include:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><a class="link" href="http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html" target="">SafeSTL</a>:
++  implementations include:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><a class="link" href="http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html">SafeSTL</a>:
+   SafeSTL was the original debugging version of the Standard Template
+   Library (STL), implemented by Cay S. Horstmann on top of the
+   Hewlett-Packard STL. Though it inspired much work in this area, it
+   has not been kept up-to-date for use with modern compilers or C++
+-  standard library implementations.</p></li><li class="listitem"><p><a class="link" href="http://www.stlport.org/" target="">STLport</a>: STLport is a free
+-  implementation of the C++ standard library derived from the <a class="link" href="http://www.sgi.com/tech/stl/" target="">SGI implementation</a>, and
++  standard library implementations.</p></li><li class="listitem"><p><a class="link" href="http://www.stlport.org/">STLport</a>: STLport is a free
++  implementation of the C++ standard library derived from the <a class="link" href="http://www.sgi.com/tech/stl/">SGI implementation</a>, and
+   ported to many other platforms. It includes a debug mode that uses a
+   wrapper model (that in some ways inspired the libstdc++ debug mode
+   design), although at the time of this writing the debug mode is
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="next" href="bk01pt03ch18s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="parallel_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.semantics"/>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="next" href="bk01pt03ch18s03.html" title="Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td align="left"><a accesskey="p" href="parallel_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Semantics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.semantics"/>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
+ i.e. user-defined functors must not throw exceptions.
+ Also, the order of execution is not guaranteed for some functions, of course.
+ Therefore, user-defined functors should not have any concurrent side effects.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,12 +1,12 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch18s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.using"/>Using</h2></div></div></div><div class="section" title="Prerequisite Compiler Flags"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"/>Prerequisite Compiler Flags</h3></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s02.html" title="Semantics"/><link rel="next" href="bk01pt03ch18s04.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.using"/>Using</h2></div></div></div><div class="section" title="Prerequisite Compiler Flags"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"/>Prerequisite Compiler Flags</h3></div></div></div><p>
+   Any use of parallel functionality requires additional compiler
+   and runtime support, in particular support for OpenMP. Adding this support is
+   not difficult: just compile your application with the compiler
+   flag <code class="literal">-fopenmp</code>. This will link
+   in <code class="code">libgomp</code>, the GNU
+-  OpenMP <a class="link" href="http://gcc.gnu.org/onlinedocs/libgomp" target="">implementation</a>,
++  OpenMP <a class="link" href="http://gcc.gnu.org/onlinedocs/libgomp">implementation</a>,
+   whose presence is mandatory.
+ </p><p>
+ In addition, hardware that supports atomic operations and a compiler
+@@ -63,4 +63,4 @@
+ flags for atomic operations.)
+ </p><p> The following table provides the names and headers of all the
+   parallel algorithms that can be used in a similar manner:
+-</p><div class="table"><a id="id604948"/><p class="title"><b>TableÂ 18.1.Â Parallel Algorithms</b></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Algorithm</th><th style="text-align: left">Header</th><th style="text-align: left">Parallel algorithm</th><th style="text-align: left">Parallel header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="function">std::accumulate</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::accumulate</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_difference</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::inner_product</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::inner_product</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sum</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sum</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::equal</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::equal</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_first_of</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_first_of</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::for_each</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::for_each</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::mismatch</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::mismatch</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::transform</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::transform</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::max_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::max_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::merge</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::merge</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::min_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::min_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::nth_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::nth_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partition</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partition</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::random_shuffle</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::random_shuffle</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_union</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_union</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_intersection</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_intersection</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::stable_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::stable_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::unique_copy</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::unique_copy</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr><tr><td align="left" valign="top">SemanticsÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Design</td></tr></table></div></body></html>
++</p><div class="table"><a id="id484380"/><p class="title"><strong>TableÂ 18.1.Â Parallel Algorithms</strong></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Algorithm</th><th style="text-align: left">Header</th><th style="text-align: left">Parallel algorithm</th><th style="text-align: left">Parallel header</th></tr></thead><tbody><tr><td style="text-align: left"><code class="function">std::accumulate</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::accumulate</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_difference</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::inner_product</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::inner_product</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sum</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sum</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr><tr><td style="text-align: left"><code class="function">std::adjacent_find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::adjacent_find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::count_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::count_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::equal</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::equal</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::find_first_of</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::find_first_of</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::for_each</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::for_each</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::generate_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::generate_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::mismatch</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::mismatch</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::search_n</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::search_n</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::transform</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::transform</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::replace_if</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::replace_if</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::max_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::max_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::merge</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::merge</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::min_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::min_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::nth_element</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::nth_element</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partial_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partial_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::partition</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::partition</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::random_shuffle</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::random_shuffle</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_union</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_union</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_intersection</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_intersection</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::set_difference</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::set_difference</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::stable_sort</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::stable_sort</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr><tr><td style="text-align: left"><code class="function">std::unique_copy</code></td><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="function">__gnu_parallel::unique_copy</code></td><td style="text-align: left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03ch18s04.html">Next</a></td></tr><tr><td align="left" valign="top">SemanticsÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Design</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s04.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s03.html" title="Using"/><link rel="next" href="bk01pt03ch18s05.html" title="Testing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.design"/>Design</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s03.html" title="Using"/><link rel="next" href="bk01pt03ch18s05.html" title="Testing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.design"/>Design</h2></div></div></div><p>
+   </p><div class="section" title="Interface Basics"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.intro"/>Interface Basics</h3></div></div></div><p>
+ All parallel algorithms are intended to have signatures that are
+ equivalent to the ISO C++ algorithms replaced. For instance, the
+@@ -175,7 +175,7 @@
+ <code class="code">__gnu_parallel::_Settings::set</code>, respectively.
+ Please note that the first call return a const object, so direct manipulation
+ is forbidden.
+-See <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01005.html" target="">
++See <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01005.html">
+   <code class="filename">settings.h</code></a>
+ for complete details.
+ </p><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch18s05.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s04.html" title="Design"/><link rel="next" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.test"/>Testing</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode"/><link rel="prev" href="bk01pt03ch18s04.html" title="Design"/><link rel="next" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s04.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 18.Â Parallel Mode</th><td align="right">Â <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr/></div><div class="section" title="Testing"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.test"/>Testing</h2></div></div></div><p>
+     Both the normal conformance and regression tests and the
+     supplemental performance tests work.
+   </p><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,7 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p>
+-</p><div class="table"><a id="id607071"/><p class="title"><b>TableÂ 19.1.Â Profile Code Location</b></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals.  Implementation files are
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="next" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td align="left"><a accesskey="p" href="profile_mode.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.design"/>Design</h2></div></div></div><p>
++</p><div class="table"><a id="id486504"/><p class="title"><strong>TableÂ 19.1.Â Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Code Location</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/std/*</code></td><td style="text-align: left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/*</code></td><td style="text-align: left">Profile extension public headers (map, vector, ...).</td></tr><tr><td style="text-align: left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td style="text-align: left">Profile extension internals.  Implementation files are
+      only included from <code class="code">impl/profiler.h</code>, which is the only
+      file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break"/><p>
+ </p><div class="section" title="Wrapper Model"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"/>Wrapper Model</h3></div></div></div><p>
+@@ -61,7 +61,7 @@
+   call stack of its constructor location.
+   </p><p>
+   For details, see
+-   <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36" target="">paper presented at
++   <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36">paper presented at
+    CGO 2009</a>.
+   </p></div><div class="section" title="Analysis and Diagnostics"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.analysis"/>Analysis and Diagnostics</h3></div></div></div><p>
+   Final analysis takes place offline, and it is based entirely on the
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s02.html" title="Design"/><link rel="next" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Extensions for Custom Containers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.api"/>Extensions for Custom Containers</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s02.html" title="Design"/><link rel="next" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Extensions for Custom Containers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.api"/>Extensions for Custom Containers</h2></div></div></div><p>
+   Many large projects use their own data structures instead of the ones in the
+   standard library.  If these data structures are similar in functionality
+   to the standard library, they can be instrumented with the same hooks
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s04.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/><link rel="next" href="bk01pt03ch19s05.html" title="Implementation Issues"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Empirical Cost Model"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.cost_model"/>Empirical Cost Model</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s03.html" title="Extensions for Custom Containers"/><link rel="next" href="bk01pt03ch19s05.html" title="Implementation Issues"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s03.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s05.html">Next</a></td></tr></table><hr/></div><div class="section" title="Empirical Cost Model"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.cost_model"/>Empirical Cost Model</h2></div></div></div><p>
+   Currently, the cost model uses formulas with predefined relative weights
+   for alternative containers or container implementations.  For instance,
+   iterating through a vector is X times faster than iterating through a list.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s05.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/><link rel="next" href="bk01pt03ch19s06.html" title="Developer Information"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation Issues"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.implementation"/>Implementation Issues</h2></div></div></div><div class="section" title="Stack Traces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"/>Stack Traces</h3></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s04.html" title="Empirical Cost Model"/><link rel="next" href="bk01pt03ch19s06.html" title="Developer Information"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s04.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s06.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation Issues"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.implementation"/>Implementation Issues</h2></div></div></div><div class="section" title="Stack Traces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"/>Stack Traces</h3></div></div></div><p>
+   Accurate stack traces are needed during profiling since we group events by
+   call context and dynamic instance.  Without accurate traces, diagnostics
+   may be hard to interpret.  For instance, when giving advice to the user
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s06.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s05.html" title="Implementation Issues"/><link rel="next" href="bk01pt03ch19s07.html" title="Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr></table><hr/></div><div class="section" title="Developer Information"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.developer"/>Developer Information</h2></div></div></div><div class="section" title="Big Picture"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"/>Big Picture</h3></div></div></div><p>The profile mode headers are included with
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s05.html" title="Implementation Issues"/><link rel="next" href="bk01pt03ch19s07.html" title="Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s05.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s07.html">Next</a></td></tr></table><hr/></div><div class="section" title="Developer Information"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.developer"/>Developer Information</h2></div></div></div><div class="section" title="Big Picture"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"/>Big Picture</h3></div></div></div><p>The profile mode headers are included with
+    <code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in
+    <code class="code">include/std/*</code>.
+   </p><p>Instrumented implementations are provided in
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch19s07.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s06.html" title="Developer Information"/><link rel="next" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="ext_allocators.html">Next</a></td></tr></table><hr/></div><div class="section" title="Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.diagnostics"/>Diagnostics</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="profile_mode.html" title="ChapterÂ 19.Â Profile Mode"/><link rel="prev" href="bk01pt03ch19s06.html" title="Developer Information"/><link rel="next" href="ext_allocators.html" title="ChapterÂ 20.Â Allocators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s06.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 19.Â Profile Mode</th><td align="right">Â <a accesskey="n" href="ext_allocators.html">Next</a></td></tr></table><hr/></div><div class="section" title="Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.diagnostics"/>Diagnostics</h2></div></div></div><p>
+   The table below presents all the diagnostics we intend to implement.
+   Each diagnostic has a corresponding compile time switch
+   <code class="code">-D_GLIBCXX_PROFILE_&lt;diagnostic&gt;</code>.
+@@ -18,7 +18,7 @@
+   A high accuracy means that the diagnostic is unlikely to be wrong.
+   These grades are not perfect.  They are just meant to guide users with
+   specific needs or time budgets.
+-  </p><div class="table"><a id="id607953"/><p class="title"><b>TableÂ 19.2.Â Profile Diagnostics</b></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Group</th><th style="text-align: left">Flag</th><th style="text-align: left">Benefit</th><th style="text-align: left">Cost</th><th style="text-align: left">Freq.</th><th style="text-align: left">Implemented</th><td class="auto-generated">Â </td></tr></thead><tbody><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers">
++  </p><div class="table"><a id="id487386"/><p class="title"><strong>TableÂ 19.2.Â Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/><col style="text-align: left" class="c6"/><col style="text-align: left" class="c7"/></colgroup><thead><tr><th style="text-align: left">Group</th><th style="text-align: left">Flag</th><th style="text-align: left">Benefit</th><th style="text-align: left">Cost</th><th style="text-align: left">Freq.</th><th style="text-align: left">Implemented</th><td class="auto-generated">Â </td></tr></thead><tbody><tr><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers" title="Containers">
+     CONTAINERS</a></td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small">
+     HASHTABLE_TOO_SMALL</a></td><td style="text-align: left">10</td><td style="text-align: left">1</td><td style="text-align: left">Â </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left">Â </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large">
+     HASHTABLE_TOO_LARGE</a></td><td style="text-align: left">5</td><td style="text-align: left">1</td><td style="text-align: left">Â </td><td style="text-align: left">10</td><td style="text-align: left">yes</td></tr><tr><td style="text-align: left">Â </td><td style="text-align: left"><a class="link" href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash">
+@@ -375,9 +375,9 @@
+   Quick Sort for a particular call context.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>
+   See papers:
+-  <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981" target="">
++  <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981">
+   A framework for adaptive algorithm selection in STAPL</a> and
+-  <a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227" target="">
++  <a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227">
+   Optimizing Sorting with Machine Learning Algorithms</a>.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Sample runtime reduction:</em></span>60%.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Recommendation:</em></span> Change sort algorithm
+@@ -442,7 +442,7 @@
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>Allocation can be tuned
+   to a specific traversal pattern, to result in better data locality.
+   See paper:
+-  <a class="link" href="http://www.springerlink.com/content/8085744l00x72662/" target="">
++  <a class="link" href="http://www.springerlink.com/content/8085744l00x72662/">
+   Custom Memory Allocation for Free</a>.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Sample runtime reduction:</em></span>30%.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Recommendation:</em></span>
+@@ -501,7 +501,7 @@
+   Keep a shadow for each container.  Record iterator dereferences and
+   container member accesses.  Issue advice for elements referenced by
+   multiple threads.
+-  See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148" target="">
++  See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148">
+   The LRPD test: speculative run-time parallelization of loops with
+   privatization and reduction parallelization</a>.
+   </p></li><li class="listitem"><p><span class="emphasis"><em>Cost model:</em></span>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch21s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>HP/SGI</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="prev" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="next" href="bk01pt03ch21s03.html" title="Deprecated HP/SGI"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">HP/SGI</th></tr><tr><td align="left"><a accesskey="p" href="ext_containers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 21.Â Containers</th><td align="right">Â <a accesskey="n" href="bk01pt03ch21s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="HP/SGI"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.sgi"/>HP/SGI</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>HP/SGI</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="prev" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="next" href="bk01pt03ch21s03.html" title="Deprecated HP/SGI"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">HP/SGI</th></tr><tr><td align="left"><a accesskey="p" href="ext_containers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 21.Â Containers</th><td align="right">Â <a accesskey="n" href="bk01pt03ch21s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="HP/SGI"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.sgi"/>HP/SGI</h2></div></div></div><p>
+     </p><p>A few extensions and nods to backwards-compatibility have been made with
+    containers.  Those dealing with older SGI-style allocators are dealt with
+    elsewhere.  The remaining ones all deal with bits:
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch21s03.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch21s03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch21s03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch21s03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Deprecated HP/SGI</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="prev" href="bk01pt03ch21s02.html" title="HP/SGI"/><link rel="next" href="ext_utilities.html" title="ChapterÂ 22.Â Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated HP/SGI</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 21.Â Containers</th><td align="right">Â <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Deprecated HP/SGI"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.deprecated_sgi"/>Deprecated HP/SGI</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Deprecated HP/SGI</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_containers.html" title="ChapterÂ 21.Â Containers"/><link rel="prev" href="bk01pt03ch21s02.html" title="HP/SGI"/><link rel="next" href="ext_utilities.html" title="ChapterÂ 22.Â Utilities"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated HP/SGI</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 21.Â Containers</th><td align="right">Â <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr/></div><div class="section" title="Deprecated HP/SGI"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.deprecated_sgi"/>Deprecated HP/SGI</h2></div></div></div><p>
+      The SGI hashing classes <code class="classname">hash_set</code> and
+      <code class="classname">hash_set</code> have been deprecated by the
+      unordered_set, unordered_multiset, unordered_map,
+@@ -25,12 +25,12 @@
+       sets.
+    </p><p>Each of the associative containers map, multimap, set, and multiset
+       have a counterpart which uses a
+-      <a class="link" href="http://www.sgi.com/tech/stl/HashFunction.html" target="">hashing
++      <a class="link" href="http://www.sgi.com/tech/stl/HashFunction.html">hashing
+       function</a> to do the arranging, instead of a strict weak ordering
+       function.  The classes take as one of their template parameters a
+       function object that will return the hash value; by default, an
+       instantiation of
+-      <a class="link" href="http://www.sgi.com/tech/stl/hash.html" target="">hash</a>.
++      <a class="link" href="http://www.sgi.com/tech/stl/hash.html">hash</a>.
+       You should specialize this functor for your class, or define your own,
+       before trying to use one of the hashing classes.
+    </p><p>The hashing classes support all the usual associative container
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch28s02.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch28s02.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch28s02.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch28s02.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="prev" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="next" href="bk01pt03ch28s03.html" title="Use"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 28.Â Concurrency</th><td align="right">Â <a accesskey="n" href="bk01pt03ch28s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.impl"/>Implementation</h2></div></div></div><div class="section" title="Using Builtin Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"/>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="prev" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="next" href="bk01pt03ch28s03.html" title="Use"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 28.Â Concurrency</th><td align="right">Â <a accesskey="n" href="bk01pt03ch28s03.html">Next</a></td></tr></table><hr/></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.impl"/>Implementation</h2></div></div></div><div class="section" title="Using Builtin Atomic Functions"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"/>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
+ implemented via compiler intrinsics (if the underlying host is
+ capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred.  However, as
+ the compiler builtins for atomics are not universally implemented,
+@@ -23,7 +23,7 @@
+ trick.</p><p> For hosts without compiler intrinsics, but with capable
+ hardware, hand-crafted assembly is selected. This is the case for the following hosts:
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>cris</p></li><li class="listitem"><p>hppa</p></li><li class="listitem"><p>i386</p></li><li class="listitem"><p>i486</p></li><li class="listitem"><p>m48k</p></li><li class="listitem"><p>mips</p></li><li class="listitem"><p>sparc</p></li></ul></div><p>And for the rest, a simulated atomic lock via pthreads.
+-</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target=""> documentation</a>.
++</p><p> Detailed information about compiler intrinsics for atomic operations can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html"> documentation</a>.
+ </p><p> More details on the library fallbacks from the porting <a class="link" href="internals.html#internals.thread_safety" title="Thread Safety">section</a>.
+ </p></div><div class="section" title="Thread Abstraction"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.thread"/>Thread Abstraction</h3></div></div></div><p>A thin layer above IEEE 1003.1 (i.e. pthreads) is used to abstract
+ the thread interface for GCC. This layer is called "gthread," and is
+@@ -33,7 +33,7 @@
+ the current host. In libstdc++ implementation files,
+ &lt;bits/gthr.h&gt; is used to select the proper gthreads file.
+ </p><p>Within libstdc++ sources, all calls to underlying thread functionality
+-use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html" target="">documentation</a>.
++use this layer. More detail as to the specific interface can be found in the source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00883_source.html">documentation</a>.
+ </p><p>By design, the gthread layer is interoperable with the types,
+ functions, and usage found in the usual &lt;pthread.h&gt; file,
+ including <code class="code">pthread_t</code>, <code class="code">pthread_once_t</code>, <code class="code">pthread_create</code>,
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch28s03.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch28s03.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03ch28s03.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03ch28s03.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="prev" href="bk01pt03ch28s02.html" title="Implementation"/><link rel="next" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch28s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 28.Â Concurrency</th><td align="right">Â <a accesskey="n" href="bk01pt04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Use"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.use"/>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows:
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/><link rel="prev" href="bk01pt03ch28s02.html" title="Implementation"/><link rel="next" href="bk01pt04.html" title="PartÂ IV.Â  Appendices"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch28s02.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 28.Â Concurrency</th><td align="right">Â <a accesskey="n" href="bk01pt04.html">Next</a></td></tr></table><hr/></div><div class="section" title="Use"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.use"/>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows:
+ </p><pre class="programlisting">
+ #include &lt;ext/concurrence.h&gt;
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03pr01.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03pr01.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt03pr01.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt03pr01.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="next" href="ext_compile_checks.html" title="ChapterÂ 16.Â Compile Time Checks"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title/><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="next" href="ext_compile_checks.html" title="ChapterÂ 16.Â Compile Time Checks"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"/></tr><tr><td align="left"><a accesskey="p" href="extensions.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr/></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id602454"/></h1></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr/></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id481886"/></h1></div></div></div><p>
+   Here we will make an attempt at describing the non-Standard extensions to
+   the library.  Some of these are from SGI's STL, some of these are GNU's,
+   and some just seemed to appear on the doorstep.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt04.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt04.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bk01pt04.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bk01pt04.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,10 +1,10 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ IV.Â  Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="bk01pt03ch28s03.html" title="Use"/><link rel="next" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ IV.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ IV.Â  Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="bk01pt03ch28s03.html" title="Use"/><link rel="next" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ IV.Â 
+   Appendices
+ </th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch28s03.html">Prev</a>Â </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right">Â <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr></table><hr/></div><div class="part" title="PartÂ IV.Â  Appendices"><div class="titlepage"><div><div><h1 class="title"><a id="appendix"/>PartÂ IV.Â 
+   Appendices
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="appendix"><a href="appendix_contributing.html">A. 
++</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="appendix"><a href="appendix_contributing.html">A. 
+   Contributing
+   
+ </a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendix_porting.html">B. 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bugs.html gcc-4.6.0/libstdc++-v3/doc/html/manual/bugs.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/bugs.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/bugs.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,8 +1,8 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="prev" href="license.html" title="License"/><link rel="next" href="setup.html" title="ChapterÂ 2.Â Setup"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td align="left"><a accesskey="p" href="license.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 1.Â Status</th><td align="right">Â <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr/></div><div class="section" title="Bugs"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.bugs"/>Bugs</h2></div></div></div><div class="section" title="Implementation Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"/>Implementation Bugs</h3></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="prev" href="license.html" title="License"/><link rel="next" href="setup.html" title="ChapterÂ 2.Â Setup"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td align="left"><a accesskey="p" href="license.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 1.Â Status</th><td align="right">Â <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr/></div><div class="section" title="Bugs"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.bugs"/>Bugs</h2></div></div></div><div class="section" title="Implementation Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"/>Implementation Bugs</h3></div></div></div><p>
+       Information on known bugs, details on efforts to fix them, and
+-      fixed bugs are all available as part of the <a class="link" href="http://gcc.gnu.org/bugs/" target="">GCC bug tracking system</a>,
++      fixed bugs are all available as part of the <a class="link" href="http://gcc.gnu.org/bugs/">GCC bug tracking system</a>,
+       with the category set to <code class="literal">libstdc++</code>.
+     </p></div><div class="section" title="Standard Bugs"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.iso"/>Standard Bugs</h3></div></div></div><p>
+ 	Everybody's got issues.  Even the C++ Standard Library.
+@@ -15,9 +15,9 @@
+ 	Here are the issues which have resulted in code changes to the library.
+ 	The links are to the specific defect reports from a <span class="emphasis"><em>partial
+ 	copy</em></span> of the Issues List.  You can read the full version online
+-	at the <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/" target="">ISO C++
++	at the <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/">ISO C++
+ 	Committee homepage</a>, linked to on the
+-	<a class="link" href="http://gcc.gnu.org/readings.html" target="">GCC "Readings"
++	<a class="link" href="http://gcc.gnu.org/readings.html">GCC "Readings"
+ 	page</a>.  If
+ 	you spend a lot of time reading the issues, we recommend downloading
+ 	the ZIP file and reading them locally.
+@@ -34,318 +34,318 @@
+ 	and src directories for appearances of
+ 	<code class="constant">_GLIBCXX_RESOLVE_LIB_DEFECTS</code> for examples
+ 	of style.  Note that we usually do not make changes to the
+-	code until an issue has reached <a class="link" href="../ext/lwg-active.html#DR" target="">DR</a> status.
+-      </p><div class="variablelist"><dl><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#5" target="">5</a>:
++	code until an issue has reached <a class="link" href="../ext/lwg-active.html#DR">DR</a> status.
++      </p><div class="variablelist"><dl><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#5">5</a>:
+ 	<span class="emphasis"><em>string::compare specification questionable</em></span>
+     </span></dt><dd><p>This should be two overloaded functions rather than a single function.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#17" target="">17</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#17">17</a>:
+ 	<span class="emphasis"><em>Bad bool parsing</em></span>
+     </span></dt><dd><p>Apparently extracting Boolean values was messed up...
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#19" target="">19</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#19">19</a>:
+ 	<span class="emphasis"><em>"Noconv" definition too vague</em></span>
+     </span></dt><dd><p>If <code class="code">codecvt::do_in</code> returns <code class="code">noconv</code> there are
+ 	no changes to the values in <code class="code">[to, to_limit)</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#22" target="">22</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#22">22</a>:
+ 	<span class="emphasis"><em>Member open vs flags</em></span>
+     </span></dt><dd><p>Re-opening a file stream does <span class="emphasis"><em>not</em></span> clear the state flags.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#23" target="">23</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#23">23</a>:
+ 	<span class="emphasis"><em>Num_get overflow result</em></span>
+     </span></dt><dd><p>Implement the proposed resolution.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#25" target="">25</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#25">25</a>:
+ 	<span class="emphasis"><em>String operator&lt;&lt; uses width() value wrong</em></span>
+     </span></dt><dd><p>Padding issues.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#48" target="">48</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#48">48</a>:
+ 	<span class="emphasis"><em>Use of non-existent exception constructor</em></span>
+     </span></dt><dd><p>An instance of <code class="code">ios_base::failure</code> is constructed instead.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#49" target="">49</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#49">49</a>:
+ 	<span class="emphasis"><em>Underspecification of ios_base::sync_with_stdio</em></span>
+     </span></dt><dd><p>The return type is the <span class="emphasis"><em>previous</em></span> state of synchronization.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#50" target="">50</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#50">50</a>:
+ 	<span class="emphasis"><em>Copy constructor and assignment operator of ios_base</em></span>
+     </span></dt><dd><p>These members functions are declared <code class="code">private</code> and are
+ 	thus inaccessible.  Specifying the correct semantics of
+ 	"copying stream state" was deemed too complicated.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#60" target="">60</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#60">60</a>:
+ 	<span class="emphasis"><em>What is a formatted input function?</em></span>
+     </span></dt><dd><p>This DR made many widespread changes to <code class="code">basic_istream</code>
+ 	and <code class="code">basic_ostream</code> all of which have been implemented.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#63" target="">63</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#63">63</a>:
+ 	<span class="emphasis"><em>Exception-handling policy for unformatted output</em></span>
+     </span></dt><dd><p>Make the policy consistent with that of formatted input, unformatted
+ 	input, and formatted output.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#68" target="">68</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#68">68</a>:
+ 	<span class="emphasis"><em>Extractors for char* should store null at end</em></span>
+     </span></dt><dd><p>And they do now.  An editing glitch in the last item in the list of
+ 	[27.6.1.2.3]/7.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#74" target="">74</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#74">74</a>:
+ 	<span class="emphasis"><em>Garbled text for codecvt::do_max_length</em></span>
+     </span></dt><dd><p>The text of the standard was gibberish.  Typos gone rampant.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#75" target="">75</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#75">75</a>:
+ 	<span class="emphasis"><em>Contradiction in codecvt::length's argument types</em></span>
+     </span></dt><dd><p>Change the first parameter to <code class="code">stateT&amp;</code> and implement
+ 	the new effects paragraph.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#83" target="">83</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#83">83</a>:
+ 	<span class="emphasis"><em>string::npos vs. string::max_size()</em></span>
+     </span></dt><dd><p>Safety checks on the size of the string should test against
+ 	<code class="code">max_size()</code> rather than <code class="code">npos</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#90" target="">90</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#90">90</a>:
+ 	<span class="emphasis"><em>Incorrect description of operator&gt;&gt; for strings</em></span>
+     </span></dt><dd><p>The effect contain <code class="code">isspace(c,getloc())</code> which must be
+ 	replaced by <code class="code">isspace(c,is.getloc())</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#91" target="">91</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#91">91</a>:
+ 	<span class="emphasis"><em>Description of operator&gt;&gt; and getline() for string&lt;&gt;
+ 	    might cause endless loop</em></span>
+     </span></dt><dd><p>They behave as a formatted input function and as an unformatted
+ 	input function, respectively (except that <code class="code">getline</code> is
+ 	not required to set <code class="code">gcount</code>).
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#103" target="">103</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#103">103</a>:
+ 	<span class="emphasis"><em>set::iterator is required to be modifiable, but this allows
+ 	    modification of keys.</em></span>
+     </span></dt><dd><p>For associative containers where the value type is the same as
+ 	the key type, both <code class="code">iterator</code> and <code class="code">const_iterator
+ 	</code> are constant iterators.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#109" target="">109</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#109">109</a>:
+ 	<span class="emphasis"><em>Missing binders for non-const sequence elements</em></span>
+     </span></dt><dd><p>The <code class="code">binder1st</code> and <code class="code">binder2nd</code> didn't have an
+ 	<code class="code">operator()</code> taking a non-const parameter.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#110" target="">110</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#110">110</a>:
+ 	<span class="emphasis"><em>istreambuf_iterator::equal not const</em></span>
+     </span></dt><dd><p>This was not a const member function.  Note that the DR says to
+ 	replace the function with a const one; we have instead provided an
+ 	overloaded version with identical contents.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#117" target="">117</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#117">117</a>:
+ 	<span class="emphasis"><em>basic_ostream uses nonexistent num_put member functions</em></span>
+     </span></dt><dd><p><code class="code">num_put::put()</code> was overloaded on the wrong types.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#118" target="">118</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#118">118</a>:
+ 	<span class="emphasis"><em>basic_istream uses nonexistent num_get member functions</em></span>
+     </span></dt><dd><p>Same as 117, but for <code class="code">num_get::get()</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#129" target="">129</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#129">129</a>:
+ 	<span class="emphasis"><em>Need error indication from seekp() and seekg()</em></span>
+     </span></dt><dd><p>These functions set <code class="code">failbit</code> on error now.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#130" target="">130</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#130">130</a>:
+ 	<span class="emphasis"><em>Return type of container::erase(iterator) differs for associative containers</em></span>
+     </span></dt><dd><p>Make member <code class="code">erase</code> return iterator for <code class="code">set</code>, <code class="code">multiset</code>, <code class="code">map</code>, <code class="code">multimap</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#136" target="">136</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#136">136</a>:
+ 	<span class="emphasis"><em>seekp, seekg setting wrong streams?</em></span>
+     </span></dt><dd><p><code class="code">seekp</code> should only set the output stream, and
+ 	<code class="code">seekg</code> should only set the input stream.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#167" target="">167</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#167">167</a>:
+ 	<span class="emphasis"><em>Improper use of traits_type::length()</em></span>
+     </span></dt><dd><p><code class="code">op&lt;&lt;</code> with a <code class="code">const char*</code> was
+ 	calculating an incorrect number of characters to write.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#169" target="">169</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#169">169</a>:
+ 	<span class="emphasis"><em>Bad efficiency of overflow() mandated</em></span>
+     </span></dt><dd><p>Grow efficiently the internal array object.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#171" target="">171</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#171">171</a>:
+ 	<span class="emphasis"><em>Strange seekpos() semantics due to joint position</em></span>
+     </span></dt><dd><p>Quite complex to summarize...
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#181" target="">181</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#181">181</a>:
+ 	<span class="emphasis"><em>make_pair() unintended behavior</em></span>
+     </span></dt><dd><p>This function used to take its arguments as reference-to-const, now
+ 	it copies them (pass by value).
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#195" target="">195</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#195">195</a>:
+ 	<span class="emphasis"><em>Should basic_istream::sentry's constructor ever set eofbit?</em></span>
+     </span></dt><dd><p>Yes, it can, specifically if EOF is reached while skipping whitespace.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#211" target="">211</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#211">211</a>:
+ 	<span class="emphasis"><em>operator&gt;&gt;(istream&amp;, string&amp;) doesn't set failbit</em></span>
+     </span></dt><dd><p>If nothing is extracted into the string, <code class="code">op&gt;&gt;</code> now
+ 	sets <code class="code">failbit</code> (which can cause an exception, etc., etc.).
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#214" target="">214</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#214">214</a>:
+ 	<span class="emphasis"><em>set::find() missing const overload</em></span>
+     </span></dt><dd><p>Both <code class="code">set</code> and <code class="code">multiset</code> were missing
+ 	overloaded find, lower_bound, upper_bound, and equal_range functions
+ 	for const instances.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#231" target="">231</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#231">231</a>:
+ 	<span class="emphasis"><em>Precision in iostream?</em></span>
+     </span></dt><dd><p>For conversion from a floating-point type, <code class="code">str.precision()</code>
+ 	is specified in the conversion specification.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#233" target="">233</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#233">233</a>:
+ 	<span class="emphasis"><em>Insertion hints in associative containers</em></span>
+     </span></dt><dd><p>Implement N1780, first check before then check after, insert as close
+ 	to hint as possible.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#235" target="">235</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#235">235</a>:
+ 	<span class="emphasis"><em>No specification of default ctor for reverse_iterator</em></span>
+     </span></dt><dd><p>The declaration of <code class="code">reverse_iterator</code> lists a default constructor.
+ 	However, no specification is given what this constructor should do.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#241" target="">241</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#241">241</a>:
+ 	<span class="emphasis"><em>Does unique_copy() require CopyConstructible and Assignable?</em></span>
+     </span></dt><dd><p>Add a helper for forward_iterator/output_iterator, fix the existing
+ 	one for input_iterator/output_iterator to not rely on Assignability.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#243" target="">243</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#243">243</a>:
+ 	<span class="emphasis"><em>get and getline when sentry reports failure</em></span>
+     </span></dt><dd><p>Store a null character only if the character array has a non-zero size.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#251" target="">251</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#251">251</a>:
+ 	<span class="emphasis"><em>basic_stringbuf missing allocator_type</em></span>
+     </span></dt><dd><p>This nested typedef was originally not specified.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#253" target="">253</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#253">253</a>:
+ 	<span class="emphasis"><em>valarray helper functions are almost entirely useless</em></span>
+     </span></dt><dd><p>Make the copy constructor and copy-assignment operator declarations
+ 	public in gslice_array, indirect_array, mask_array, slice_array; provide
+ 	definitions.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#265" target="">265</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#265">265</a>:
+ 	<span class="emphasis"><em>std::pair::pair() effects overly restrictive</em></span>
+     </span></dt><dd><p>The default ctor would build its members from copies of temporaries;
+ 	now it simply uses their respective default ctors.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#266" target="">266</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#266">266</a>:
+ 	<span class="emphasis"><em>bad_exception::~bad_exception() missing Effects clause</em></span>
+     </span></dt><dd><p>The <code class="code">bad_</code>* classes no longer have destructors (they
+ 	are trivial), since no description of them was ever given.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#271" target="">271</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#271">271</a>:
+ 	<span class="emphasis"><em>basic_iostream missing typedefs</em></span>
+     </span></dt><dd><p>The typedefs it inherits from its base classes can't be used, since
+ 	(for example) <code class="code">basic_iostream&lt;T&gt;::traits_type</code> is ambiguous.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#275" target="">275</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#275">275</a>:
+ 	<span class="emphasis"><em>Wrong type in num_get::get() overloads</em></span>
+     </span></dt><dd><p>Similar to 118.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#280" target="">280</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#280">280</a>:
+ 	<span class="emphasis"><em>Comparison of reverse_iterator to const reverse_iterator</em></span>
+     </span></dt><dd><p>Add global functions with two template parameters.
+ 	(NB: not added for now a templated assignment operator)
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#292" target="">292</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#292">292</a>:
+ 	<span class="emphasis"><em>Effects of a.copyfmt (a)</em></span>
+     </span></dt><dd><p>If <code class="code">(this == &amp;rhs)</code> do nothing.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#300" target="">300</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#300">300</a>:
+ 	<span class="emphasis"><em>List::merge() specification incomplete</em></span>
+     </span></dt><dd><p>If <code class="code">(this == &amp;x)</code> do nothing.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#303" target="">303</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#303">303</a>:
+ 	<span class="emphasis"><em>Bitset input operator underspecified</em></span>
+     </span></dt><dd><p>Basically, compare the input character to
+ 		    <code class="code">is.widen(0)</code> and <code class="code">is.widen(1)</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#305" target="">305</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#305">305</a>:
+ 	<span class="emphasis"><em>Default behavior of codecvt&lt;wchar_t, char,
+ 		  mbstate_t&gt;::length()</em></span>
+     </span></dt><dd><p>Do not specify what <code class="code">codecvt&lt;wchar_t, char,
+ 		    mbstate_t&gt;::do_length</code> must return.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#328" target="">328</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#328">328</a>:
+ 	<span class="emphasis"><em>Bad sprintf format modifier in
+ 		  money_put&lt;&gt;::do_put()</em></span>
+     </span></dt><dd><p>Change the format string to "%.0Lf".
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#365" target="">365</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#365">365</a>:
+ 	<span class="emphasis"><em>Lack of const-qualification in clause 27</em></span>
+     </span></dt><dd><p>Add const overloads of <code class="code">is_open</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#387" target="">387</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#387">387</a>:
+ 	<span class="emphasis"><em>std::complex over-encapsulated</em></span>
+     </span></dt><dd><p>Add the <code class="code">real(T)</code> and <code class="code">imag(T)</code>
+ 		    members;  in C++0x mode, also adjust the existing
+ 		    <code class="code">real()</code> and <code class="code">imag()</code> members and
+ 		    free functions.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#389" target="">389</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#389">389</a>:
+ 	<span class="emphasis"><em>Const overload of valarray::operator[] returns
+ 		  by value</em></span>
+     </span></dt><dd><p>Change it to return a <code class="code">const T&amp;</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#396" target="">396</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#396">396</a>:
+ 	<span class="emphasis"><em>what are characters zero and one</em></span>
+     </span></dt><dd><p>Implement the proposed resolution.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#402" target="">402</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#402">402</a>:
+ 	<span class="emphasis"><em>Wrong new expression in [some_]allocator::construct</em></span>
+     </span></dt><dd><p>Replace "new" with "::new".
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#408" target="">408</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#408">408</a>:
+ 	<span class="emphasis"><em>
+ 	Is vector&lt;reverse_iterator&lt;char*&gt; &gt; forbidden?
+ 	</em></span>
+     </span></dt><dd><p>Tweak the debug-mode checks in _Safe_iterator.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#409" target="">409</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#409">409</a>:
+ 	<span class="emphasis"><em>Closing an fstream should clear the error state</em></span>
+     </span></dt><dd><p>Have <code class="code">open</code> clear the error flags.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#431" target="">431</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#431">431</a>:
+ 	<span class="emphasis"><em>Swapping containers with unequal allocators</em></span>
+     </span></dt><dd><p>Implement Option 3, as per N1599.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#432" target="">432</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#432">432</a>:
+ 	<span class="emphasis"><em>stringbuf::overflow() makes only one write position
+ 	    available</em></span>
+     </span></dt><dd><p>Implement the resolution, beyond DR 169.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#434" target="">434</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#434">434</a>:
+ 	<span class="emphasis"><em>bitset::to_string() hard to use</em></span>
+     </span></dt><dd><p>Add three overloads, taking fewer template arguments.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#438" target="">438</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#438">438</a>:
+ 	<span class="emphasis"><em>Ambiguity in the "do the right thing" clause</em></span>
+     </span></dt><dd><p>Implement the resolution, basically cast less.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#453" target="">453</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#453">453</a>:
+ 	<span class="emphasis"><em>basic_stringbuf::seekoff need not always fail for an empty stream</em></span>
+     </span></dt><dd><p>Don't fail if the next pointer is null and newoff is zero.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#455" target="">455</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#455">455</a>:
+ 	<span class="emphasis"><em>cerr::tie() and wcerr::tie() are overspecified</em></span>
+     </span></dt><dd><p>Initialize cerr tied to cout and wcerr tied to wcout.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#464" target="">464</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#464">464</a>:
+ 	<span class="emphasis"><em>Suggestion for new member functions in standard containers</em></span>
+     </span></dt><dd><p>Add <code class="code">data()</code> to <code class="code">std::vector</code> and
+ 	<code class="code">at(const key_type&amp;)</code> to <code class="code">std::map</code>.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#508" target="">508</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#508">508</a>:
+ 	<span class="emphasis"><em>Bad parameters for ranlux64_base_01</em></span>
+     </span></dt><dd><p>Fix the parameters.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#512" target="">512</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#512">512</a>:
+ 	<span class="emphasis"><em>Seeding subtract_with_carry_01 from a single unsigned long</em></span>
+     </span></dt><dd><p>Construct a <code class="code">linear_congruential</code> engine and seed with it.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#526" target="">526</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-closed.html#526">526</a>:
+ 	<span class="emphasis"><em>Is it undefined if a function in the standard changes in
+ 	    parameters?</em></span>
+     </span></dt><dd><p>Use &amp;value.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#538" target="">538</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#538">538</a>:
+ 	<span class="emphasis"><em>241 again: Does unique_copy() require CopyConstructible
+ 	    and Assignable?</em></span>
+     </span></dt><dd><p>In case of input_iterator/output_iterator rely on Assignability of
+ 	input_iterator' value_type.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#539" target="">539</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#539">539</a>:
+ 	<span class="emphasis"><em>partial_sum and adjacent_difference should mention
+ 	    requirements</em></span>
+     </span></dt><dd><p>We were almost doing the right thing, just use std::move
+ 	in adjacent_difference.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#541" target="">541</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#541">541</a>:
+ 	<span class="emphasis"><em>shared_ptr template assignment and void</em></span>
+     </span></dt><dd><p>Add an auto_ptr&lt;void&gt; specialization.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#543" target="">543</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#543">543</a>:
+ 	<span class="emphasis"><em>valarray slice default constructor</em></span>
+     </span></dt><dd><p>Follow the straightforward proposed resolution.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#550" target="">550</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#550">550</a>:
+ 	<span class="emphasis"><em>What should the return type of pow(float,int) be?</em></span>
+     </span></dt><dd><p>In C++0x mode, remove the pow(float,int), etc., signatures.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#586" target="">586</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#586">586</a>:
+ 	<span class="emphasis"><em>string inserter not a formatted function</em></span>
+     </span></dt><dd><p>Change it to be a formatted output function (i.e. catch exceptions).
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#596" target="">596</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#596">596</a>:
+ 	<span class="emphasis"><em>27.8.1.3 Table 112 omits "a+" and "a+b" modes</em></span>
+     </span></dt><dd><p>Add the missing modes to fopen_mode.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#630" target="">630</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#630">630</a>:
+ 	<span class="emphasis"><em>arrays of valarray</em></span>
+     </span></dt><dd><p>Implement the simple resolution.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#660" target="">660</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#660">660</a>:
+ 	<span class="emphasis"><em>Missing bitwise operations</em></span>
+     </span></dt><dd><p>Add the missing operations.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#691" target="">691</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#691">691</a>:
+ 	<span class="emphasis"><em>const_local_iterator cbegin, cend missing from TR1</em></span>
+     </span></dt><dd><p>In C++0x mode add cbegin(size_type) and cend(size_type)
+ 		    to the unordered containers.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#693" target="">693</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#693">693</a>:
+ 	<span class="emphasis"><em>std::bitset::all() missing</em></span>
+     </span></dt><dd><p>Add it, consistently with the discussion.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#695" target="">695</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#695">695</a>:
+ 	<span class="emphasis"><em>ctype&lt;char&gt;::classic_table() not accessible</em></span>
+     </span></dt><dd><p>Make the member functions table and classic_table public.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#696" target="">696</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#696">696</a>:
+ 	<span class="emphasis"><em>istream::operator&gt;&gt;(int&amp;) broken</em></span>
+     </span></dt><dd><p>Implement the straightforward resolution.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#761" target="">761</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#761">761</a>:
+ 	<span class="emphasis"><em>unordered_map needs an at() member function</em></span>
+     </span></dt><dd><p>In C++0x mode, add at() and at() const.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#775" target="">775</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#775">775</a>:
+ 	<span class="emphasis"><em>Tuple indexing should be unsigned?</em></span>
+     </span></dt><dd><p>Implement the int -&gt; size_t replacements.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#776" target="">776</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#776">776</a>:
+ 	<span class="emphasis"><em>Undescribed assign function of std::array</em></span>
+     </span></dt><dd><p>In C++0x mode, remove assign, add fill.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#781" target="">781</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#781">781</a>:
+ 	<span class="emphasis"><em>std::complex should add missing C99 functions</em></span>
+     </span></dt><dd><p>In C++0x mode, add std::proj.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#809" target="">809</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#809">809</a>:
+ 	<span class="emphasis"><em>std::swap should be overloaded for array types</em></span>
+     </span></dt><dd><p>Add the overload.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#844" target="">844</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#844">844</a>:
+ 	<span class="emphasis"><em>complex pow return type is ambiguous</em></span>
+     </span></dt><dd><p>In C++0x mode, remove the pow(complex&lt;T&gt;, int) signature.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#853" target="">853</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#853">853</a>:
+ 	<span class="emphasis"><em>to_string needs updating with zero and one</em></span>
+     </span></dt><dd><p>Update / add the signatures.
+-    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#865" target="">865</a>:
++    </p></dd><dt><span class="term"><a class="link" href="../ext/lwg-defects.html#865">865</a>:
+ 	<span class="emphasis"><em>More algorithms that throw away information</em></span>
+     </span></dt><dd><p>The traditional HP / SGI return type and value is blessed
+ 		    by the resolution of the DR.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/concurrency.html gcc-4.6.0/libstdc++-v3/doc/html/manual/concurrency.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/concurrency.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/concurrency.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 15.Â  Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      mutex&#10;    , &#10;      thread&#10;    , &#10;      future&#10;    , &#10;      condition_variable&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="atomics.html" title="ChapterÂ 14.Â  Atomics"/><link rel="next" href="extensions.html" title="PartÂ III.Â  Extensions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 15.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 15.Â  Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    , &#10;      mutex&#10;    , &#10;      thread&#10;    , &#10;      future&#10;    , &#10;      condition_variable&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="atomics.html" title="ChapterÂ 14.Â  Atomics"/><link rel="next" href="extensions.html" title="PartÂ III.Â  Extensions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 15.Â 
+   Concurrency
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="atomics.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 15.Â  Concurrency"><div class="titlepage"><div><div><h1 class="title"><a id="std.concurrency"/>
++  </th><td align="right">Â <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 15.Â  Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"/>ChapterÂ 15.Â 
+   Concurrency
+-  <a id="id602270" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
++  <a id="id481702" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
+   Facilities for concurrent operation, and control thereof.
+ </p><div class="section" title="API Reference"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency.api"/>API Reference</h2></div></div></div><p>
+     All items are declared in one of four standard header files.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/configure.html gcc-4.6.0/libstdc++-v3/doc/html/manual/configure.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/configure.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/configure.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      configure&#10;    , &#10;      options&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="prev" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="next" href="make.html" title="Make"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 2.Â Setup</th><td align="right">Â <a accesskey="n" href="make.html">Next</a></td></tr></table><hr/></div><div class="section" title="Configure"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.configure"/>Configure</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      configure&#10;    , &#10;      options&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="prev" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="next" href="make.html" title="Make"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 2.Â Setup</th><td align="right">Â <a accesskey="n" href="make.html">Next</a></td></tr></table><hr/></div><div class="section" title="Configure"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.configure"/>Configure</h2></div></div></div><p>
+   When configuring libstdc++, you'll have to configure the entire
+   <span class="emphasis"><em>gccsrcdir</em></span> directory. Consider using the
+   toplevel gcc configuration option
+@@ -10,7 +10,7 @@
+   Here are all of the configure options specific to libstdc++.  Keep
+   in mind that
+    
+-   <a class="link" href="http://sourceware.org/autobook/autobook/autobook_14.html" target="">they
++   <a class="link" href="http://sourceware.org/autobook/autobook/autobook_14.html">they
+    all have opposite forms as well</a> (enable/disable and
+    with/without).  The defaults are for the <span class="emphasis"><em>current
+    development sources</em></span>, which may be different than those
+@@ -53,7 +53,7 @@
+ 	choices are 'ieee_1003.1-2001' to specify an X/Open, Standard Unix
+ 	(IEEE Std. 1003.1-2001) model based on langinfo/iconv/catgets,
+ 	'gnu' to specify a model based on functionality from the GNU C
+-	library (langinfo/iconv/gettext) (from <a class="link" href="http://sources.redhat.com/glibc/" target="">glibc</a>, the GNU C
++	library (langinfo/iconv/gettext) (from <a class="link" href="http://sources.redhat.com/glibc/">glibc</a>, the GNU C
+ 	library), or 'generic' to use a generic "C"
+ 	abstraction which consists of "C" locale info.
+      </p><p>If not explicitly specified, the configure proccess tries
+@@ -80,10 +80,24 @@
+ 	(described next).
+      </p></dd><dt><span class="term"><code class="code">--enable-threads=OPTION</code></span></dt><dd><p>Select a threading library.  A full description is
+ 	given in the
+-	general <a class="link" href="http://gcc.gnu.org/install/configure.html" target="">compiler
++	general <a class="link" href="http://gcc.gnu.org/install/configure.html">compiler
+ 	configuration instructions</a>. This option can change the
+ 	library ABI.
+-     </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-debug</code></span></dt><dd><p>Build separate debug libraries in addition to what is normally built.
++     </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time</code></span></dt><dd><p>This is an abbreviated form of
++	<code class="code">'--enable-libstdcxx-time=yes'</code>(described next).
++     </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time=OPTION</code></span></dt><dd><p>Enables link-type checks for the availability of the
++	clock_gettime clocks, used in the implementation of [time.clock],
++	and of the nanosleep and sched_yield functions, used in the
++	implementation of [thread.thread.this] of the current C++0x draft.
++	The choice OPTION=yes checks for the availability of the facilities
++	in libc and libposix4.  In case of need the latter is also linked
++	to libstdc++ as part of the build process.  OPTION=rt also searches
++	(and, in case, links) librt.   Note that the latter is not always
++	desirable because, in glibc, for example, in turn it triggers the
++	linking of libpthread too, which activates locking, a large overhead
++	for single-thread programs.  OPTION=no skips the tests completely.
++	The default is OPTION=no.
++    </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-debug</code></span></dt><dd><p>Build separate debug libraries in addition to what is normally built.
+ 	By default, the debug libraries are compiled with
+ 	<code class="code"> CXXFLAGS='-g3 -O0 -fno-inline'</code>
+ 	, are installed in <code class="code">${libdir}/debug</code>, and have the
+@@ -180,24 +194,18 @@
+ 	In addition, this generated file is used later on (by appending <code class="code">
+ 	--include bits/stdc++.h </code> to CXXFLAGS) when running the
+ 	testsuite.
++     </p></dd><dt><span class="term"><code class="code">--enable-extern-template</code>[default]</span></dt><dd><p>Use extern template to pre-instantiate all required
++ 	specializations for certain types defined in the standard libraries. 
++	These types include <code class="classname">string</code> and dependents like
++	<code class="classname">char_traits</code>, the templateized io classes,
++	<code class="classname">allocator</code>, and others.  
++	Disabling means that implicit
++	template generation will be used when compiling these types.  By
++	default, this option is on. This option can change the library ABI.
+      </p></dd><dt><span class="term"><code class="code">--disable-hosted-libstdcxx</code></span></dt><dd><p>
+      By default, a complete <span class="emphasis"><em>hosted</em></span> C++ library is
+      built.  The C++ Standard also describes a
+      <span class="emphasis"><em>freestanding</em></span> environment, in which only a
+      minimal set of headers are provided.  This option builds such an
+      environment.
+-     </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time</code></span></dt><dd><p>This is an abbreviated form of
+-	<code class="code">'--enable-libstdcxx-time=yes'</code>(described next).
+-     </p></dd><dt><span class="term"><code class="code">--enable-libstdcxx-time=OPTION</code></span></dt><dd><p>Enables link-type checks for the availability of the
+-	clock_gettime clocks, used in the implementation of [time.clock],
+-	and of the nanosleep and sched_yield functions, used in the
+-	implementation of [thread.thread.this] of the current C++0x draft.
+-	The choice OPTION=yes checks for the availability of the facilities
+-	in libc and libposix4.  In case of need the latter is also linked
+-	to libstdc++ as part of the build process.  OPTION=rt also searches
+-	(and, in case, links) librt.   Note that the latter is not always
+-	desirable because, in glibc, for example, in turn it triggers the
+-	linking of libpthread too, which activates locking, a large overhead
+-	for single-thread programs.  OPTION=no skips the tests completely.
+-	The default is OPTION=no.
+-    </p></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="setup.html">Up</a></td><td align="right">Â <a accesskey="n" href="make.html">Next</a></td></tr><tr><td align="left" valign="top">ChapterÂ 2.Â SetupÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Make</td></tr></table></div></body></html>
++     </p></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="setup.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="setup.html">Up</a></td><td align="right">Â <a accesskey="n" href="make.html">Next</a></td></tr><tr><td align="left" valign="top">ChapterÂ 2.Â SetupÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Make</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/containers.html gcc-4.6.0/libstdc++-v3/doc/html/manual/containers.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/containers.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/containers.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,17 +1,17 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 9.Â  Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="facets.html" title="Facets"/><link rel="next" href="associative.html" title="Associative"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 9.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 9.Â  Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="facets.html" title="Facets"/><link rel="next" href="associative.html" title="Associative"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 9.Â 
+   Containers
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="facets.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 9.Â  Containers"><div class="titlepage"><div><div><h1 class="title"><a id="std.containers"/>
++  </th><td align="right">Â <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 9.Â  Containers"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"/>ChapterÂ 9.Â 
+   Containers
+-  <a id="id599317" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.sequences"/>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"/>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"/>list::size() is O(n)</h4></div></div></div><p>
++  <a id="id478750" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section" title="Sequences"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.sequences"/>Sequences</h2></div></div></div><div class="section" title="list"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"/>list</h3></div></div></div><div class="section" title="list::size() is O(n)"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"/>list::size() is O(n)</h4></div></div></div><p>
+      Yes it is, and that's okay.  This is a decision that we preserved
+      when we imported SGI's STL implementation.  The following is
+-     quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html" target="">their FAQ</a>:
++     quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html">their FAQ</a>:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+        The size() member function, for list and slist, takes time
+        proportional to the number of elements in the list.  This was a
+@@ -44,12 +44,12 @@
+ 	     ...
+ 	 </pre></blockquote></div></div></div><div class="section" title="vector"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.vector"/>vector</h3></div></div></div><p>
+   </p><div class="section" title="Space Overhead Management"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.vector.management"/>Space Overhead Management</h4></div></div></div><p>
+-     In <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-04/msg00105.html" target="">this
++     In <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-04/msg00105.html">this
+      message to the list</a>, Daniel Kostecky announced work on an
+      alternate form of <code class="code">std::vector</code> that would support
+      hints on the number of elements to be over-allocated.  The design
+      was also described, along with possible implementation choices.
+    </p><p>
+-     The first two alpha releases were announced <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00048.html" target="">here</a>
+-     and <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html" target="">here</a>.
++     The first two alpha releases were announced <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00048.html">here</a>
++     and <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-07/msg00111.html">here</a>.
+    </p></div></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="facets.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right">Â <a accesskey="n" href="associative.html">Next</a></td></tr><tr><td align="left" valign="top">FacetsÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Associative</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/containers_and_c.html gcc-4.6.0/libstdc++-v3/doc/html/manual/containers_and_c.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/containers_and_c.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/containers_and_c.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="prev" href="associative.html" title="Associative"/><link rel="next" href="iterators.html" title="ChapterÂ 10.Â  Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="associative.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 9.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="containers.html" title="ChapterÂ 9.Â  Containers"/><link rel="prev" href="associative.html" title="Associative"/><link rel="next" href="iterators.html" title="ChapterÂ 10.Â  Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="associative.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 9.Â 
+   Containers
+   
+ </th><td align="right">Â <a accesskey="n" href="iterators.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers.c"/>Interacting with C</h2></div></div></div><div class="section" title="Containers vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="containers.c.vs_array"/>Containers vs. Arrays</h3></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/debug.html gcc-4.6.0/libstdc++-v3/doc/html/manual/debug.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/debug.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/debug.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_exceptions.html" title="Exceptions"/><link rel="next" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td align="left"><a accesskey="p" href="using_exceptions.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="bk01pt02.html">Next</a></td></tr></table><hr/></div><div class="section" title="Debugging Support"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.debug"/>Debugging Support</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_exceptions.html" title="Exceptions"/><link rel="next" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td align="left"><a accesskey="p" href="using_exceptions.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="bk01pt02.html">Next</a></td></tr></table><hr/></div><div class="section" title="Debugging Support"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.debug"/>Debugging Support</h2></div></div></div><p>
+   There are numerous things that can be done to improve the ease with
+   which C++ binaries are debugged when using the GNU tool chain. Here
+   are some of them.
+@@ -28,7 +28,7 @@
+   platform can be identified via the value set by the
+   PREFERRED_DEBUGGING_TYPE macro in the gcc sources.
+ </p><p>
+-  Many other options are available: please see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging%20Options" target="">"Options
++  Many other options are available: please see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#Debugging%20Options">"Options
+   for Debugging Your Program"</a> in Using the GNU Compiler
+   Collection (GCC) for a complete list.
+ </p></div><div class="section" title="Debug Versions of Library Binary Files"><div class="titlepage"><div><div><h3 class="title"><a id="debug.req"/>Debug Versions of Library Binary Files</h3></div></div></div><p>
+@@ -147,11 +147,11 @@
+ </p><p>
+   The approach described above is known to work with the following race
+   detection tools:
+-  <a class="link" href="http://valgrind.org/docs/manual/drd-manual.html" target="">
++  <a class="link" href="http://valgrind.org/docs/manual/drd-manual.html">
+   DRD</a>,
+-  <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target=""> 
++  <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html"> 
+   Helgrind</a>, and
+-  <a class="link" href="http://code.google.com/p/data-race-test" target=""> 
++  <a class="link" href="http://code.google.com/p/data-race-test"> 
+   ThreadSanitizer</a>.
+ </p><p>
+   With DRD, Helgrind and ThreadSanitizer you will need to define
+@@ -163,7 +163,7 @@
+   Refer to the documentation of each particular tool for details.
+ </p></div><div class="section" title="Using gdb"><div class="titlepage"><div><div><h3 class="title"><a id="debug.gdb"/>Using <span class="command"><strong>gdb</strong></span></h3></div></div></div><p>
+   </p><p>
+-  Many options are available for GDB itself: please see <a class="link" href="http://sources.redhat.com/gdb/current/onlinedocs/gdb/" target="">
++  Many options are available for GDB itself: please see <a class="link" href="http://sources.redhat.com/gdb/current/onlinedocs/gdb/">
+   "GDB features for C++" </a> in the GDB documentation. Also
+   recommended: the other parts of this manual.
+ </p><p>
+@@ -207,12 +207,12 @@
+   pretty-printers were not loaded.
+ </p><p>
+   For additional information on STL support and GDB please visit:
+-  <a class="link" href="http://sourceware.org/gdb/wiki/STLSupport" target=""> "GDB Support
++  <a class="link" href="http://sourceware.org/gdb/wiki/STLSupport"> "GDB Support
+   for STL" </a> in the GDB wiki.  Additionally, in-depth
+   documentation and discussion of the pretty printing feature can be
+   found in "Pretty Printing" node in the GDB manual.  You can find
+   on-line versions of the GDB user manual in GDB's homepage, at
+-  <a class="link" href="http://sourceware.org/gdb/" target=""> "GDB: The GNU Project
++  <a class="link" href="http://sourceware.org/gdb/"> "GDB: The GNU Project
+   Debugger" </a>.
+ </p></div><div class="section" title="Tracking uncaught exceptions"><div class="titlepage"><div><div><h3 class="title"><a id="debug.exceptions"/>Tracking uncaught exceptions</h3></div></div></div><p>
+   The <a class="link" href="termination.html#support.termination.verbose" title="Verbose Terminate Handler">verbose
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/debug_mode.html gcc-4.6.0/libstdc++-v3/doc/html/manual/debug_mode.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/debug_mode.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/debug_mode.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 17.Â Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_compile_checks.html" title="ChapterÂ 16.Â Compile Time Checks"/><link rel="next" href="bk01pt03ch17s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 17.Â Debug Mode</th></tr><tr><td align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 17.Â Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      debug&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_compile_checks.html" title="ChapterÂ 16.Â Compile Time Checks"/><link rel="next" href="bk01pt03ch17s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 17.Â Debug Mode</th></tr><tr><td align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 17.Â Debug Mode"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.debug_mode"/>Debug Mode</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.intro"/>Intro</h2></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="bk01pt03ch17s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 17.Â Debug Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode"/>ChapterÂ 17.Â Debug Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode.intro"/>Intro</h2></div></div></div><p>
+     By default, libstdc++ is built with efficiency in mind, and
+     therefore performs little or no error checking that is not
+     required by the C++ standard. This means that programs that
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/diagnostics.html gcc-4.6.0/libstdc++-v3/doc/html/manual/diagnostics.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/diagnostics.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/diagnostics.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 5.Â  Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="termination.html" title="Termination"/><link rel="next" href="bk01pt02ch05s02.html" title="Concept Checking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 5.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 5.Â  Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="termination.html" title="Termination"/><link rel="next" href="bk01pt02ch05s02.html" title="Concept Checking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 5.Â 
+   Diagnostics
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="termination.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 5.Â  Diagnostics"><div class="titlepage"><div><div><h1 class="title"><a id="std.diagnostics"/>
++  </th><td align="right">Â <a accesskey="n" href="bk01pt02ch05s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 5.Â  Diagnostics"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"/>ChapterÂ 5.Â 
+   Diagnostics
+-  <a id="id592934" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.exceptions"/>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"/>API Reference</h3></div></div></div><p>
++  <a id="id472366" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt02ch05s02.html">Concept Checking</a></span></dt></dl></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics.exceptions"/>Exceptions</h2></div></div></div><div class="section" title="API Reference"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"/>API Reference</h3></div></div></div><p>
+       All exception objects are defined in one of the standard header
+       files: <code class="filename">exception</code>,
+       <code class="filename">stdexcept</code>, <code class="filename">new</code>, and
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/documentation_hacking.html gcc-4.6.0/libstdc++-v3/doc/html/manual/documentation_hacking.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/documentation_hacking.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/documentation_hacking.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td align="left"><a accesskey="p" href="appendix_porting.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td align="left"><a accesskey="p" href="appendix_porting.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="internals.html">Next</a></td></tr></table><hr/></div><div class="section" title="Writing and Generating Documentation"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.doc"/>Writing and Generating Documentation</h2></div></div></div><div class="section" title="Introduction"><div class="titlepage"><div><div><h3 class="title"><a id="doc.intro"/>Introduction</h3></div></div></div><p>
+@@ -25,7 +25,7 @@
+       reference. Although divergent, this conforms to the GNU Project
+       recommendations as long as the output is of sufficient quality,
+       as per
+-      <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Documentation" target="">
++      <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Documentation">
+       GNU Manuals</a>.
+     </p></div><div class="section" title="Generating Documentation"><div class="titlepage"><div><div><h3 class="title"><a id="doc.generation"/>Generating Documentation</h3></div></div></div><p>
+       Certain Makefile rules are required by the GNU Coding
+@@ -117,19 +117,19 @@
+       supported, and are always aliased to dummy rules. These
+       unsupported formats are: <span class="emphasis"><em>info</em></span>,
+       <span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
+-    </p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"/>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id615654"/><p class="title"><b>TableÂ B.1.Â Doxygen Prerequisites</b></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col style="text-align: center"/><col style="text-align: center"/><col style="text-align: center"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">coreutils</td><td style="text-align: center">8.5</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">bash</td><td style="text-align: center">4.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">doxygen</td><td style="text-align: center">1.7.0</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">graphviz</td><td style="text-align: center">2.26</td><td style="text-align: center">graphical hierarchies</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr></tbody></table></div></div><br class="table-break"/><p>
++    </p></div><div class="section" title="Doxygen"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"/>Doxygen</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id495087"/><p class="title"><strong>TableÂ B.1.Â Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">coreutils</td><td style="text-align: center">8.5</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">bash</td><td style="text-align: center">4.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">doxygen</td><td style="text-align: center">1.7.0</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">graphviz</td><td style="text-align: center">2.26</td><td style="text-align: center">graphical hierarchies</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr></tbody></table></div></div><br class="table-break"/><p>
+ 	Prerequisite tools are Bash 2.0 or later,
+-	<a class="link" href="http://www.doxygen.org/" target="">Doxygen</a>, and
+-	the <a class="link" href="http://www.gnu.org/software/coreutils/" target="">GNU
++	<a class="link" href="http://www.doxygen.org/">Doxygen</a>, and
++	the <a class="link" href="http://www.gnu.org/software/coreutils/">GNU
+ 	coreutils</a>. (GNU versions of find, xargs, and possibly
+ 	sed and grep are used, just because the GNU versions make
+ 	things very easy.) 
+       </p><p>
+ 	To generate the pretty pictures and hierarchy
+ 	graphs, the
+-	<a class="link" href="http://www.graphviz.org" target="">Graphviz</a> package
++	<a class="link" href="http://www.graphviz.org">Graphviz</a> package
+ 	will need to be installed. For PDF
+-	output, <a class="link" href="http://www.tug.org/applications/pdftex/" target="">
++	output, <a class="link" href="http://www.tug.org/applications/pdftex/">
+ 	pdflatex</a> is required.
+       </p></div><div class="section" title="Generating the Doxygen Files"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.rules"/>Generating the Doxygen Files</h4></div></div></div><p>
+ 	The following Makefile rules run Doxygen to generate HTML
+@@ -173,7 +173,7 @@
+ 	Adding Doxygen markup to a file (informally called
+ 	<span class="quote">â<span class="quote">doxygenating</span>â</span>) is very simple. The Doxygen manual can be
+ 	found
+-	<a class="link" href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman" target="">here</a>.
++	<a class="link" href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman">here</a>.
+ 	We try to use a very-recent version of Doxygen.
+       </p><p>
+ 	For classes, use
+@@ -185,7 +185,7 @@
+ 	member functions.
+       </p><p>
+ 	Some commentary to accompany
+-	the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="">Special
++	the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html">Special
+ 	Documentation Blocks</a> section of
+ 	the Doxygen manual:
+       </p><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>For longer comments, use the Javadoc style...</p></li><li class="listitem"><p>
+@@ -263,7 +263,7 @@
+ 	writing Doxygen comments. Single and double quotes, and
+ 	separators in filenames are two common trouble spots. When in
+ 	doubt, consult the following table.
+-      </p><div class="table"><a id="id616157"/><p class="title"><b>TableÂ B.2.Â HTML to Doxygen Markup Comparison</b></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Doxygen</th></tr></thead><tbody><tr><td style="text-align: left">\</td><td style="text-align: left">\\</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">\"</td></tr><tr><td style="text-align: left">'</td><td style="text-align: left">\'</td></tr><tr><td style="text-align: left">&lt;i&gt;</td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left">&lt;b&gt;</td><td style="text-align: left">@b word</td></tr><tr><td style="text-align: left">&lt;code&gt;</td><td style="text-align: left">@c word</td></tr><tr><td style="text-align: left">&lt;em&gt;</td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left">&lt;em&gt;</td><td style="text-align: left">&lt;em&gt;two words or more&lt;/em&gt;</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"/>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id616319"/><p class="title"><b>TableÂ B.3.Â Docbook Prerequisites</b></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col style="text-align: center"/><col style="text-align: center"/><col style="text-align: center"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">docbook5-style-xsl</td><td style="text-align: center">1.76.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xsltproc</td><td style="text-align: center">1.1.26</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xmllint</td><td style="text-align: center">2.7.7</td><td style="text-align: center">validation</td></tr><tr><td style="text-align: center">dblatex</td><td style="text-align: center">0.3</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">docbook2X</td><td style="text-align: center">0.8.8</td><td style="text-align: center">info output</td></tr></tbody></table></div></div><br class="table-break"/><p>
++      </p><div class="table"><a id="id495589"/><p class="title"><strong>TableÂ B.2.Â HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Doxygen</th></tr></thead><tbody><tr><td style="text-align: left">\</td><td style="text-align: left">\\</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">\"</td></tr><tr><td style="text-align: left">'</td><td style="text-align: left">\'</td></tr><tr><td style="text-align: left">&lt;i&gt;</td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left">&lt;b&gt;</td><td style="text-align: left">@b word</td></tr><tr><td style="text-align: left">&lt;code&gt;</td><td style="text-align: left">@c word</td></tr><tr><td style="text-align: left">&lt;em&gt;</td><td style="text-align: left">@a word</td></tr><tr><td style="text-align: left">&lt;em&gt;</td><td style="text-align: left">&lt;em&gt;two words or more&lt;/em&gt;</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="section" title="Docbook"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"/>Docbook</h3></div></div></div><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"/>Prerequisites</h4></div></div></div><div class="table"><a id="id495751"/><p class="title"><strong>TableÂ B.3.Â Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col style="text-align: center" class="c1"/><col style="text-align: center" class="c2"/><col style="text-align: center" class="c3"/></colgroup><thead><tr><th style="text-align: center">Tool</th><th style="text-align: center">Version</th><th style="text-align: center">Required By</th></tr></thead><tbody><tr><td style="text-align: center">docbook5-style-xsl</td><td style="text-align: center">1.76.1</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xsltproc</td><td style="text-align: center">1.1.26</td><td style="text-align: center">all</td></tr><tr><td style="text-align: center">xmllint</td><td style="text-align: center">2.7.7</td><td style="text-align: center">validation</td></tr><tr><td style="text-align: center">dblatex</td><td style="text-align: center">0.3</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">pdflatex</td><td style="text-align: center">2007-59</td><td style="text-align: center">pdf output</td></tr><tr><td style="text-align: center">docbook2X</td><td style="text-align: center">0.8.8</td><td style="text-align: center">info output</td></tr></tbody></table></div></div><br class="table-break"/><p>
+ 	Editing the DocBook sources requires an XML editor. Many
+ 	exist: some notable options
+ 	include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
+@@ -298,16 +298,16 @@
+ 	by a vendor package like <code class="filename">libxml2</code> and <code class="filename">docbook5-schemas-5.0-4</code>
+       </p><p>
+ 	For PDF output, something that transforms valid Docbook XML to PDF is
+-	required. Possible solutions include <a class="link" href="http://dblatex.sourceforge.net" target="">dblatex</a>,
++	required. Possible solutions include <a class="link" href="http://dblatex.sourceforge.net">dblatex</a>,
+ 	<span class="command"><strong>xmlto</strong></span>, or <span class="command"><strong>prince</strong></span>. Of
+ 	these, <span class="command"><strong>dblatex</strong></span> is the default. Other
+-	options are listed on the DocBook web <a class="link" href="http://wiki.docbook.org/topic/DocBookPublishingTools" target="">pages</a>. Please
++	options are listed on the DocBook web <a class="link" href="http://wiki.docbook.org/topic/DocBookPublishingTools">pages</a>. Please
+ 	consult the <code class="email">&lt;<a class="email" href="mailto:libstdc++@gcc.gnu.org">libstdc++@gcc.gnu.org</a>&gt;</code> list when
+ 	preparing printed manuals for current best practice and
+ 	suggestions.
+       </p><p>
+ 	For Texinfo output, something that transforms valid Docbook
+-	XML to Texinfo is required. The default choice is <a class="link" href="http://docbook2x.sourceforge.net/" target="">docbook2X</a>.
++	XML to Texinfo is required. The default choice is <a class="link" href="http://docbook2x.sourceforge.net/">docbook2X</a>.
+       </p></div><div class="section" title="Generating the DocBook Files"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.rules"/>Generating the DocBook Files</h4></div></div></div><p>
+ 	The following Makefile rules generate (in order): an HTML
+ 	version of all the DocBook documentation, a PDF version of the
+@@ -347,7 +347,7 @@
+ 	</code></strong>
+       </pre><p>
+ 	Please note that individual sections and chapters of the
+-	manual can be validated by substiuting the file desired for
++	manual can be validated by substituting the file desired for
+ 	<code class="filename">xml/index.xml</code> in the command
+ 	above. Reducing scope in this manner can be helpful when
+ 	validation on the entire manual fails.
+@@ -416,14 +416,14 @@
+ Â Â Â Â </p></div></div><div class="section" title="Markup By Example"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.markup"/>Markup By Example</h4></div></div></div><p>
+ 	Complete details on Docbook markup can be found in the DocBook
+ 	Element Reference,
+-	<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html" target="">online</a>.
++	<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html">online</a>.
+ 	An incomplete reference for HTML to Docbook conversion is
+ 	detailed in the table below.
+-      </p><div class="table"><a id="id616796"/><p class="title"><b>TableÂ B.4.Â HTML to Docbook XML Markup Comparison</b></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Docbook</th></tr></thead><tbody><tr><td style="text-align: left">&lt;p&gt;</td><td style="text-align: left">&lt;para&gt;</td></tr><tr><td style="text-align: left">&lt;pre&gt;</td><td style="text-align: left">&lt;computeroutput&gt;, &lt;programlisting&gt;,
++      </p><div class="table"><a id="id496228"/><p class="title"><strong>TableÂ B.4.Â HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">HTML</th><th style="text-align: left">Docbook</th></tr></thead><tbody><tr><td style="text-align: left">&lt;p&gt;</td><td style="text-align: left">&lt;para&gt;</td></tr><tr><td style="text-align: left">&lt;pre&gt;</td><td style="text-align: left">&lt;computeroutput&gt;, &lt;programlisting&gt;,
+ 	&lt;literallayout&gt;</td></tr><tr><td style="text-align: left">&lt;ul&gt;</td><td style="text-align: left">&lt;itemizedlist&gt;</td></tr><tr><td style="text-align: left">&lt;ol&gt;</td><td style="text-align: left">&lt;orderedlist&gt;</td></tr><tr><td style="text-align: left">&lt;il&gt;</td><td style="text-align: left">&lt;listitem&gt;</td></tr><tr><td style="text-align: left">&lt;dl&gt;</td><td style="text-align: left">&lt;variablelist&gt;</td></tr><tr><td style="text-align: left">&lt;dt&gt;</td><td style="text-align: left">&lt;term&gt;</td></tr><tr><td style="text-align: left">&lt;dd&gt;</td><td style="text-align: left">&lt;listitem&gt;</td></tr><tr><td style="text-align: left">&lt;a href=""&gt;</td><td style="text-align: left">&lt;ulink url=""&gt;</td></tr><tr><td style="text-align: left">&lt;code&gt;</td><td style="text-align: left">&lt;literal&gt;, &lt;programlisting&gt;</td></tr><tr><td style="text-align: left">&lt;strong&gt;</td><td style="text-align: left">&lt;emphasis&gt;</td></tr><tr><td style="text-align: left">&lt;em&gt;</td><td style="text-align: left">&lt;emphasis&gt;</td></tr><tr><td style="text-align: left">"</td><td style="text-align: left">&lt;quote&gt;</td></tr></tbody></table></div></div><br class="table-break"/><p>
+   And examples of detailed markup for which there are no real HTML
+   equivalents are listed in the table below.
+-</p><div class="table"><a id="id616997"/><p class="title"><b>TableÂ B.5.Â Docbook XML Element Use</b></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Element</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left">&lt;structname&gt;</td><td style="text-align: left">&lt;structname&gt;char_traits&lt;/structname&gt;</td></tr><tr><td style="text-align: left">&lt;classname&gt;</td><td style="text-align: left">&lt;classname&gt;string&lt;/classname&gt;</td></tr><tr><td style="text-align: left">&lt;function&gt;</td><td style="text-align: left">
++</p><div class="table"><a id="id496429"/><p class="title"><strong>TableÂ B.5.Â Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Element</th><th style="text-align: left">Use</th></tr></thead><tbody><tr><td style="text-align: left">&lt;structname&gt;</td><td style="text-align: left">&lt;structname&gt;char_traits&lt;/structname&gt;</td></tr><tr><td style="text-align: left">&lt;classname&gt;</td><td style="text-align: left">&lt;classname&gt;string&lt;/classname&gt;</td></tr><tr><td style="text-align: left">&lt;function&gt;</td><td style="text-align: left">
+ 	<p>&lt;function&gt;clear()&lt;/function&gt;</p>
+ 	<p>&lt;function&gt;fs.clear()&lt;/function&gt;</p>
+       </td></tr><tr><td style="text-align: left">&lt;type&gt;</td><td style="text-align: left">&lt;type&gt;long long&lt;/type&gt;</td></tr><tr><td style="text-align: left">&lt;varname&gt;</td><td style="text-align: left">&lt;varname&gt;fs&lt;/varname&gt;</td></tr><tr><td style="text-align: left">&lt;literal&gt;</td><td style="text-align: left">
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/dynamic_memory.html gcc-4.6.0/libstdc++-v3/doc/html/manual/dynamic_memory.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/dynamic_memory.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/dynamic_memory.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="prev" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="next" href="termination.html" title="Termination"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td align="left"><a accesskey="p" href="support.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 4.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="prev" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="next" href="termination.html" title="Termination"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td align="left"><a accesskey="p" href="support.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 4.Â 
+   Support
+   
+ </th><td align="right">Â <a accesskey="n" href="termination.html">Next</a></td></tr></table><hr/></div><div class="section" title="Dynamic Memory"><div class="titlepage"><div><div><h2 class="title"><a id="std.support.memory"/>Dynamic Memory</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_algorithms.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_algorithms.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_algorithms.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_algorithms.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 23.Â Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_utilities.html" title="ChapterÂ 22.Â Utilities"/><link rel="next" href="ext_numerics.html" title="ChapterÂ 24.Â Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 23.Â Algorithms</th></tr><tr><td align="left"><a accesskey="p" href="ext_utilities.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 23.Â Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_utilities.html" title="ChapterÂ 22.Â Utilities"/><link rel="next" href="ext_numerics.html" title="ChapterÂ 24.Â Numerics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 23.Â Algorithms</th></tr><tr><td align="left"><a accesskey="p" href="ext_utilities.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 23.Â Algorithms"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.algorithms"/>Algorithms</h1></div></div></div><p>25.1.6 (count, count_if) is extended with two more versions of count
++</th><td align="right">Â <a accesskey="n" href="ext_numerics.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 23.Â Algorithms"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.algorithms"/>ChapterÂ 23.Â Algorithms</h2></div></div></div><p>25.1.6 (count, count_if) is extended with two more versions of count
+    and count_if.  The standard versions return their results.  The
+    additional signatures return void, but take a final parameter by
+    reference to which they assign their results, e.g.,
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_allocators.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_allocators.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_allocators.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_allocators.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 20.Â Allocators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch19s07.html" title="Diagnostics"/><link rel="next" href="bitmap_allocator.html" title="bitmap_allocator"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 20.Â Allocators</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 20.Â Allocators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch19s07.html" title="Diagnostics"/><link rel="next" href="bitmap_allocator.html" title="bitmap_allocator"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 20.Â Allocators</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch19s07.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 20.Â Allocators"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.allocator"/>Allocators</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ext_allocators.html#manual.ext.allocator.mt">mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.impl">Implementation</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_single">Single Thread Example</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_multi">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator.html">bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.impl">Implementation</a></span></dt></dl></dd></dl></div><div class="section" title="mt_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"/>mt_allocator</h2></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 20.Â Allocators"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator"/>ChapterÂ 20.Â Allocators</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_allocators.html#manual.ext.allocator.mt">mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.impl">Implementation</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_single">Single Thread Example</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_multi">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator.html">bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.impl">Implementation</a></span></dt></dl></dd></dl></div><div class="section" title="mt_allocator"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"/>mt_allocator</h2></div></div></div><p>
+ </p><div class="section" title="Intro"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.intro"/>Intro</h3></div></div></div><p>
+   The mt allocator [hereinafter referred to simply as "the allocator"]
+   is a fixed size (power of two) allocator that was initially
+@@ -212,7 +212,7 @@
+ as part of a container's constructor. However, this assumption is
+ implementation-specific, and subject to change. For an example of a
+ pool that frees memory, see the following
+-    <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup" target="">
++    <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/ext/mt_allocator/deallocate_local-6.cc?view=markup">
+     example.</a>
+ </p></div></div><div class="section" title="Single Thread Example"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.example_single"/>Single Thread Example</h3></div></div></div><p>
+ Let's start by describing how the data on a freelist is laid out in memory.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_compile_checks.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_compile_checks.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_compile_checks.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_compile_checks.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 16.Â Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03pr01.html" title=""/><link rel="next" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 16.Â Compile Time Checks</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 16.Â Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03pr01.html" title=""/><link rel="next" href="debug_mode.html" title="ChapterÂ 17.Â Debug Mode"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 16.Â Compile Time Checks</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03pr01.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 16.Â Compile Time Checks"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.compile_checks"/>Compile Time Checks</h1></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 16.Â Compile Time Checks"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.compile_checks"/>ChapterÂ 16.Â Compile Time Checks</h2></div></div></div><p>
+     Also known as concept checking.
+   </p><p>In 1999, SGI added <span class="emphasis"><em>concept checkers</em></span> to their implementation
+       of the STL:  code which checked the template parameters of
+@@ -19,7 +19,7 @@
+    </p><p>The primary author of the checking code, Jeremy Siek, had already
+       started work on a replacement implementation.  The new code has been
+       formally reviewed and accepted into
+-      <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm" target="">the
++      <a class="link" href="http://www.boost.org/libs/concept_check/concept_check.htm">the
+       Boost libraries</a>, and we are pleased to incorporate it into the
+       GNU C++ library.
+    </p><p>The new version imposes a much smaller space overhead on the generated
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_concurrency.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_concurrency.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_concurrency.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_concurrency.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 28.Â Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_demangling.html" title="ChapterÂ 27.Â Demangling"/><link rel="next" href="bk01pt03ch28s02.html" title="Implementation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 28.Â Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="ext_demangling.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 28.Â Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_demangling.html" title="ChapterÂ 27.Â Demangling"/><link rel="next" href="bk01pt03ch28s02.html" title="Implementation"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 28.Â Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="ext_demangling.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bk01pt03ch28s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 28.Â Concurrency"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.concurrency"/>Concurrency</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s03.html">Use</a></span></dt></dl></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.design"/>Design</h2></div></div></div><div class="section" title="Interface to Locks and Mutexes"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"/>Interface to Locks and Mutexes</h3></div></div></div><p>The file &lt;ext/concurrence.h&gt; contains all the higher-level
++</th><td align="right">Â <a accesskey="n" href="bk01pt03ch28s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 28.Â Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"/>ChapterÂ 28.Â Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s03.html">Use</a></span></dt></dl></div><div class="section" title="Design"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency.design"/>Design</h2></div></div></div><div class="section" title="Interface to Locks and Mutexes"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"/>Interface to Locks and Mutexes</h3></div></div></div><p>The file &lt;ext/concurrence.h&gt; contains all the higher-level
+ constructs for playing with threads. In contrast to the atomics layer,
+ the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
+ </p><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_containers.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_containers.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_containers.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_containers.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 21.Â Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bitmap_allocator.html" title="bitmap_allocator"/><link rel="next" href="bk01pt03ch21s02.html" title="HP/SGI"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 21.Â Containers</th></tr><tr><td align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 21.Â Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bitmap_allocator.html" title="bitmap_allocator"/><link rel="next" href="bk01pt03ch21s02.html" title="HP/SGI"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 21.Â Containers</th></tr><tr><td align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 21.Â Containers"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.containers"/>Containers</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.pbds">Policy Based Data Structures</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">HP/SGI</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s03.html">Deprecated HP/SGI</a></span></dt></dl></div><p>
++</th><td align="right">Â <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 21.Â Containers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"/>ChapterÂ 21.Â Containers</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.pbds">Policy Based Data Structures</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">HP/SGI</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s03.html">Deprecated HP/SGI</a></span></dt></dl></div><p>
+   </p><div class="section" title="Policy Based Data Structures"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.pbds"/>Policy Based Data Structures</h2></div></div></div><p>
+-      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html" target="">More details here</a>.
++      <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html">More details here</a>.
+     </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="extensions.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03ch21s02.html">Next</a></td></tr><tr><td align="left" valign="top">bitmap_allocatorÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â HP/SGI</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_demangling.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_demangling.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_demangling.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_demangling.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 27.Â Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_io.html" title="ChapterÂ 26.Â Input and Output"/><link rel="next" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 27.Â Demangling</th></tr><tr><td align="left"><a accesskey="p" href="ext_io.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 27.Â Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_io.html" title="ChapterÂ 26.Â Input and Output"/><link rel="next" href="ext_concurrency.html" title="ChapterÂ 28.Â Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 27.Â Demangling</th></tr><tr><td align="left"><a accesskey="p" href="ext_io.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 27.Â Demangling"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.demangle"/>Demangling</h1></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 27.Â Demangling"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"/>ChapterÂ 27.Â Demangling</h2></div></div></div><p>
+     Transforming C++ ABI identifiers (like RTTI symbols) into the
+     original C++ source identifiers is called
+     <span class="quote">â<span class="quote">demangling.</span>â</span>
+   </p><p>
+-    If you have read the <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01115.html" target="">source
++    If you have read the <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01115.html">source
+     documentation for <code class="code">namespace abi</code></a> then you are
+     aware of the cross-vendor C++ ABI in use by GCC.  One of the
+     exposed functions is used for demangling,
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_io.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_io.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_io.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_io.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 26.Â Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_iterators.html" title="ChapterÂ 25.Â Iterators"/><link rel="next" href="ext_demangling.html" title="ChapterÂ 27.Â Demangling"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 26.Â Input and Output</th></tr><tr><td align="left"><a accesskey="p" href="ext_iterators.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 26.Â Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_iterators.html" title="ChapterÂ 25.Â Iterators"/><link rel="next" href="ext_demangling.html" title="ChapterÂ 27.Â Demangling"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 26.Â Input and Output</th></tr><tr><td align="left"><a accesskey="p" href="ext_iterators.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 26.Â Input and Output"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.io"/>Input and Output</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p>
++</th><td align="right">Â <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 26.Â Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io"/>ChapterÂ 26.Â Input and Output</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p>
+     Extensions allowing <code class="code">filebuf</code>s to be constructed from
+     "C" types like  FILE*s and file descriptors.
+   </p><div class="section" title="Derived filebufs"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io.filebuf_derived"/>Derived filebufs</h2></div></div></div><p>The v2 library included non-standard extensions to construct
+@@ -39,7 +39,7 @@
+ 	 the <code class="code">fd()</code> function were removed from the standard
+ 	 filebuf.  Instead, <code class="code">&lt;ext/stdio_filebuf.h&gt;</code> contains
+ 	 a derived class called
+-	 <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html" target=""><code class="code">__gnu_cxx::stdio_filebuf</code></a>.
++	 <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00074.html"><code class="code">__gnu_cxx::stdio_filebuf</code></a>.
+ 	 This class can be constructed from a C <code class="code">FILE*</code> or a file
+ 	 descriptor, and provides the <code class="code">fd()</code> function.
+      </p></li></ul></div><p>If you want to access a <code class="code">filebuf</code>'s file descriptor to
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_iterators.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_iterators.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_iterators.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_iterators.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 25.Â Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_numerics.html" title="ChapterÂ 24.Â Numerics"/><link rel="next" href="ext_io.html" title="ChapterÂ 26.Â Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 25.Â Iterators</th></tr><tr><td align="left"><a accesskey="p" href="ext_numerics.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 25.Â Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_numerics.html" title="ChapterÂ 24.Â Numerics"/><link rel="next" href="ext_io.html" title="ChapterÂ 26.Â Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 25.Â Iterators</th></tr><tr><td align="left"><a accesskey="p" href="ext_numerics.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_io.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 25.Â Iterators"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.iterators"/>Iterators</h1></div></div></div><p>24.3.2 describes <code class="code">struct iterator</code>, which didn't exist in the
++</th><td align="right">Â <a accesskey="n" href="ext_io.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 25.Â Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.iterators"/>ChapterÂ 25.Â Iterators</h2></div></div></div><p>24.3.2 describes <code class="code">struct iterator</code>, which didn't exist in the
+    original HP STL implementation (the language wasn't rich enough at the
+    time).  For backwards compatibility, base classes are provided which
+    declare the same nested typedefs:
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_numerics.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_numerics.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_numerics.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_numerics.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 24.Â Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_algorithms.html" title="ChapterÂ 23.Â Algorithms"/><link rel="next" href="ext_iterators.html" title="ChapterÂ 25.Â Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 24.Â Numerics</th></tr><tr><td align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 24.Â Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="ext_algorithms.html" title="ChapterÂ 23.Â Algorithms"/><link rel="next" href="ext_iterators.html" title="ChapterÂ 25.Â Iterators"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 24.Â Numerics</th></tr><tr><td align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_iterators.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 24.Â Numerics"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.numerics"/>Numerics</h1></div></div></div><p>26.4, the generalized numeric operations such as accumulate, are extended
++</th><td align="right">Â <a accesskey="n" href="ext_iterators.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 24.Â Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.numerics"/>ChapterÂ 24.Â Numerics</h2></div></div></div><p>26.4, the generalized numeric operations such as accumulate, are extended
+    with the following functions:
+ </p><pre class="programlisting">
+    power (x, n);
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_utilities.html gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_utilities.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/ext_utilities.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/ext_utilities.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 22.Â Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch21s03.html" title="Deprecated HP/SGI"/><link rel="next" href="ext_algorithms.html" title="ChapterÂ 23.Â Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 22.Â Utilities</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s03.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 22.Â Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch21s03.html" title="Deprecated HP/SGI"/><link rel="next" href="ext_algorithms.html" title="ChapterÂ 23.Â Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 22.Â Utilities</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch21s03.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 22.Â Utilities"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.util"/>Utilities</h1></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 22.Â Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.util"/>ChapterÂ 22.Â Utilities</h2></div></div></div><p>
+     The &lt;functional&gt; header contains many additional functors
+     and helper functions, extending section 20.3.  They are
+     implemented in the file stl_function.h:
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/extensions.html gcc-4.6.0/libstdc++-v3/doc/html/manual/extensions.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/extensions.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/extensions.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ III.Â  Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="bk01pt03pr01.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ III.Â  Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="io_and_c.html" title="Interacting with C"/><link rel="next" href="bk01pt03pr01.html" title=""/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ III.Â 
+   Extensions
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a>Â </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right">Â <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr></table><hr/></div><div class="part" title="PartÂ III.Â  Extensions"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"/>PartÂ III.Â 
+   Extensions
+-  <a id="id602435" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="bk01pt03pr01.html"/></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_allocators.html">20. Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#manual.ext.allocator.mt">mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.impl">Implementation</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_single">Single Thread Example</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_multi">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator.html">bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.impl">Implementation</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ext_containers.html">21. Containers</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.pbds">Policy Based Data Structures</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">HP/SGI</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s03.html">Deprecated HP/SGI</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">22. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">23. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">24. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">25. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">26. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">27. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">28. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s03.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="spine.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with CÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â </td></tr></table></div></body></html>
++  <a id="id481867" class="indexterm"/>
++</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="preface"><a href="bk01pt03pr01.html"/></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s03.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch17s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.methods">Methods</a></span></dt><dt><span class="section"><a href="bk01pt03ch17s04.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_allocators.html">20. Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#manual.ext.allocator.mt">mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="ext_allocators.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.impl">Implementation</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_single">Single Thread Example</a></span></dt><dt><span class="section"><a href="ext_allocators.html#allocator.mt.example_multi">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator.html">bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.impl">Implementation</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="ext_containers.html">21. Containers</a></span></dt><dd><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.pbds">Policy Based Data Structures</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s02.html">HP/SGI</a></span></dt><dt><span class="section"><a href="bk01pt03ch21s03.html">Deprecated HP/SGI</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_utilities.html">22. Utilities</a></span></dt><dt><span class="chapter"><a href="ext_algorithms.html">23. Algorithms</a></span></dt><dt><span class="chapter"><a href="ext_numerics.html">24. Numerics</a></span></dt><dt><span class="chapter"><a href="ext_iterators.html">25. Iterators</a></span></dt><dt><span class="chapter"><a href="ext_io.html">26. Input and Output</a></span></dt><dd><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></dd><dt><span class="chapter"><a href="ext_demangling.html">27. Demangling</a></span></dt><dt><span class="chapter"><a href="ext_concurrency.html">28. Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s02.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="bk01pt03ch28s02.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch28s03.html">Use</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="io_and_c.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="spine.html">Up</a></td><td align="right">Â <a accesskey="n" href="bk01pt03pr01.html">Next</a></td></tr><tr><td align="left" valign="top">Interacting with CÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â </td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/facets.html gcc-4.6.0/libstdc++-v3/doc/html/manual/facets.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/facets.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/facets.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="localization.html" title="ChapterÂ 8.Â  Localization"/><link rel="prev" href="localization.html" title="ChapterÂ 8.Â  Localization"/><link rel="next" href="containers.html" title="ChapterÂ 9.Â  Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 8.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="localization.html" title="ChapterÂ 8.Â  Localization"/><link rel="prev" href="localization.html" title="ChapterÂ 8.Â  Localization"/><link rel="next" href="containers.html" title="ChapterÂ 9.Â  Containers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td align="left"><a accesskey="p" href="localization.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 8.Â 
+   Localization
+   
+-</th><td align="right">Â <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.facet"/>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"/>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"/>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id597127"/>Specializations</h5></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr/></div><div class="section" title="Facets"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.facet"/>Facets</h2></div></div></div><div class="section" title="ctype"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"/>ctype</h3></div></div></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"/>Implementation</h4></div></div></div><div class="section" title="Specializations"><div class="titlepage"><div><div><h5 class="title"><a id="id476560"/>Specializations</h5></div></div></div><p>
+ For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
+ conversions are made between the internal character set (always UCS4
+ on GNU/Linux) and whatever the currently selected locale for the
+@@ -50,23 +50,23 @@
+    </p></li><li class="listitem"><p>
+        Rename abstract base class. See if just smash-overriding is a
+        better approach. Clarify, add sanity to naming.
+-     </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id597252"/><p><span class="citetitle"><em class="citetitle">
++     </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id476684"/><p><span class="citetitle"><em class="citetitle">
+       The GNU C Library
+-    </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2007 FSF. </span><span class="pagenums">Chapters 6  Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="id597292"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2007 FSF. </span><span class="pagenums">Chapters 6  Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="id476724"/><p><span class="citetitle"><em class="citetitle">
+       Correspondence
+-    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id597318"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id476750"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 14882:1998 Programming languages - C++
+-    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id597337"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id476769"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 9899:1999 Programming languages - C
+-    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id597356"/><p><span class="biblioid">
++    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id476788"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
+       </em>. </span><span class="copyright">Copyright Â© 1999 
+-      The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id597385"/><p><span class="citetitle"><em class="citetitle">
++      The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="id476817"/><p><span class="citetitle"><em class="citetitle">
+       The C++ Programming Language, Special Edition
+     </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley
+-      . </span></span></p></div><div class="biblioentry"><a id="id597424"/><p><span class="citetitle"><em class="citetitle">
++      . </span></span></p></div><div class="biblioentry"><a id="id476856"/><p><span class="citetitle"><em class="citetitle">
+       Standard C++ IOStreams and Locales
+     </em>. </span><span class="subtitle">
+       Advanced Programmer's Guide and Reference
+@@ -409,39 +409,39 @@
+       </p></li><li class="listitem"><p>
+       wchar_t/char internal buffers and conversions between
+       internal/external buffers?
+-      </p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id598074"/><p><span class="citetitle"><em class="citetitle">
++      </p></li></ul></div></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id477506"/><p><span class="citetitle"><em class="citetitle">
+       The GNU C Library
+     </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2007 FSF. </span><span class="pagenums">
+       Chapters 6 Character Set Handling and 7 Locales and Internationalization
+-    . </span></p></div><div class="biblioentry"><a id="id598113"/><p><span class="citetitle"><em class="citetitle">
++    . </span></p></div><div class="biblioentry"><a id="id477546"/><p><span class="citetitle"><em class="citetitle">
+       Correspondence
+-    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id598139"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id477571"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 14882:1998 Programming languages - C++
+-    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id598158"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id477590"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 9899:1999 Programming languages - C
+-    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id598177"/><p><span class="biblioid">
++    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id477609"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
+     </em>. </span><span class="copyright">Copyright Â© 2008 
+ 	The Open Group/The Institute of Electrical and Electronics
+ 	Engineers, Inc.
+-      . </span></p></div><div class="biblioentry"><a id="id598206"/><p><span class="citetitle"><em class="citetitle">
++      . </span></p></div><div class="biblioentry"><a id="id477639"/><p><span class="citetitle"><em class="citetitle">
+       The C++ Programming Language, Special Edition
+     </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley
+-      . </span></span></p></div><div class="biblioentry"><a id="id598245"/><p><span class="citetitle"><em class="citetitle">
++      . </span></span></p></div><div class="biblioentry"><a id="id477677"/><p><span class="citetitle"><em class="citetitle">
+       Standard C++ IOStreams and Locales
+     </em>. </span><span class="subtitle">
+       Advanced Programmer's Guide and Reference
+     . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley Longman
+-      . </span></span></p></div><div class="biblioentry"><a id="id598292"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id477724"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       A brief description of Normative Addendum 1
+-    </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry"><a id="id598321"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry"><a id="id477754"/><p><span class="biblioid">
+ 	. </span><span class="citetitle"><em class="citetitle">
+ 	  The Unicode HOWTO
+-	</em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry"><a id="id598347"/><p><span class="biblioid">
++	</em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry"><a id="id477779"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       UTF-8 and Unicode FAQ for Unix/Linux
+     </em>. </span><span class="author"><span class="firstname">Markus</span> <span class="surname">Khun</span>. </span></p></div></div></div><div class="section" title="messages"><div class="titlepage"><div><div><h3 class="title"><a id="manual.localization.facet.messages"/>messages</h3></div></div></div><p>
+@@ -685,37 +685,37 @@
+    model. As of this writing, it is unknown how to query to see
+    if a specified message catalog exists using the gettext
+    package.
+-   </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id599021"/><p><span class="citetitle"><em class="citetitle">
++   </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id478453"/><p><span class="citetitle"><em class="citetitle">
+       The GNU C Library
+     </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling, and 7 Locales and Internationalization
+-    . </span></p></div><div class="biblioentry"><a id="id599061"/><p><span class="citetitle"><em class="citetitle">
++    . </span></p></div><div class="biblioentry"><a id="id478493"/><p><span class="citetitle"><em class="citetitle">
+       Correspondence
+-    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id599086"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id478519"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 14882:1998 Programming languages - C++
+-    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id599105"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id478538"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 9899:1999 Programming languages - C
+-    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id599124"/><p><span class="biblioid">
++    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id478557"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
+     </em>. </span><span class="copyright">Copyright Â© 2008 
+ 	The Open Group/The Institute of Electrical and Electronics
+ 	Engineers, Inc.
+-      . </span></p></div><div class="biblioentry"><a id="id599154"/><p><span class="citetitle"><em class="citetitle">
++      . </span></p></div><div class="biblioentry"><a id="id478586"/><p><span class="citetitle"><em class="citetitle">
+       The C++ Programming Language, Special Edition
+     </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley
+-      . </span></span></p></div><div class="biblioentry"><a id="id599192"/><p><span class="citetitle"><em class="citetitle">
++      . </span></span></p></div><div class="biblioentry"><a id="id478624"/><p><span class="citetitle"><em class="citetitle">
+       Standard C++ IOStreams and Locales
+     </em>. </span><span class="subtitle">
+       Advanced Programmer's Guide and Reference
+     . </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley Longman
+-      . </span></span></p></div><div class="biblioentry"><a id="id599239"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id478672"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	API Specifications, Java Platform
+       </em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
+ java.util.Locale, java.util.ResourceBundle
+-    . </span></p></div><div class="biblioentry"><a id="id599261"/><p><span class="biblioid">
++    . </span></p></div><div class="biblioentry"><a id="id478694"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       GNU gettext tools, version 0.10.38, Native Language Support
+       Library and Tools.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/fstreams.html gcc-4.6.0/libstdc++-v3/doc/html/manual/fstreams.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/fstreams.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/fstreams.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="stringstreams.html" title="Memory Based Streams"/><link rel="next" href="io_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="stringstreams.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="stringstreams.html" title="Memory Based Streams"/><link rel="next" href="io_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="stringstreams.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
+   Input and Output
+   
+ </th><td align="right">Â <a accesskey="n" href="io_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="File Based Streams"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.filestreams"/>File Based Streams</h2></div></div></div><div class="section" title="Copying a File"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.copying_a_file"/>Copying a File</h3></div></div></div><p>
+@@ -138,7 +138,7 @@
+    </p><p>
+       An instructive thread from comp.lang.c++.moderated delved off into
+       this topic starting more or less at
+-      <a class="link" href="http://groups.google.com/group/comp.std.c++/browse_thread/thread/f87b4abd7954a87/946a3eb9921e382d?q=comp.std.c%2B%2B+binary+iostream#946a3eb9921e382d" target="">this</a>
++      <a class="link" href="http://groups.google.com/group/comp.std.c++/browse_thread/thread/f87b4abd7954a87/946a3eb9921e382d?q=comp.std.c%2B%2B+binary+iostream#946a3eb9921e382d">this</a>
+       post and continuing to the end of the thread. (The subject heading is "binary iostreams" on both comp.std.c++
+       and comp.lang.c++.moderated.) Take special note of the replies by James Kanze and Dietmar KÃŒhl.
+    </p><p>Briefly, the problems of byte ordering and type sizes mean that
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html gcc-4.6.0/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="prev" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="next" href="numerics_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td align="left"><a accesskey="p" href="numerics.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 12.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="prev" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="next" href="numerics_and_c.html" title="Interacting with C"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td align="left"><a accesskey="p" href="numerics.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 12.Â 
+   Numerics
+   
+ </th><td align="right">Â <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr></table><hr/></div><div class="section" title="Generalized Operations"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.generalized_ops"/>Generalized Operations</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/internals.html gcc-4.6.0/libstdc++-v3/doc/html/manual/internals.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/internals.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/internals.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      internals&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation"/><link rel="next" href="test.html" title="Test"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      internals&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation"/><link rel="next" href="test.html" title="Test"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="test.html">Next</a></td></tr></table><hr/></div><div class="section" title="Porting to New Hardware or Operating Systems"><div class="titlepage"><div><div><h2 class="title"><a id="appendix.porting.internals"/>Porting to New Hardware or Operating Systems</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/intro.html gcc-4.6.0/libstdc++-v3/doc/html/manual/intro.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/intro.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/intro.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ I.Â  Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="spine.html" title="The GNU C++ Library Manual"/><link rel="next" href="status.html" title="ChapterÂ 1.Â Status"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ I.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>PartÂ I.Â  Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="spine.html" title="The GNU C++ Library Manual"/><link rel="prev" href="spine.html" title="The GNU C++ Library Manual"/><link rel="next" href="status.html" title="ChapterÂ 1.Â Status"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">PartÂ I.Â 
+   Introduction
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="spine.html">Prev</a>Â </td><th width="60%" align="center">The GNU C++ Library Manual</th><td align="right">Â <a accesskey="n" href="status.html">Next</a></td></tr></table><hr/></div><div class="part" title="PartÂ I.Â  Introduction"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"/>PartÂ I.Â 
+   Introduction
+-  <a id="id531452" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="spine.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="spine.html">Up</a></td><td align="right">Â <a accesskey="n" href="status.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library ManualÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â ChapterÂ 1.Â Status</td></tr></table></div></body></html>
++  <a id="id400676" class="indexterm"/>
++</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="spine.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="spine.html">Up</a></td><td align="right">Â <a accesskey="n" href="status.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ Library ManualÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â ChapterÂ 1.Â Status</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/io.html gcc-4.6.0/libstdc++-v3/doc/html/manual/io.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/io.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/io.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 13.Â  Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="numerics_and_c.html" title="Interacting with C"/><link rel="next" href="streambufs.html" title="Stream Buffers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 13.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 13.Â  Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="numerics_and_c.html" title="Interacting with C"/><link rel="next" href="streambufs.html" title="Stream Buffers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 13.Â 
+   Input and Output
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 13.Â  Input and Output"><div class="titlepage"><div><div><h1 class="title"><a id="std.io"/>
++  </th><td align="right">Â <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 13.Â  Input and Output"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"/>ChapterÂ 13.Â 
+   Input and Output
+-  <a id="id601039" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.objects"/>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
++  <a id="id480471" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section" title="Iostream Objects"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.objects"/>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
+       only include the headers you really need.  Many people simply include
+       &lt;iostream&gt; when they don't need to -- and that can <span class="emphasis"><em>penalize
+       your runtime as well.</em></span>  Here are some tips on which header to use
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/io_and_c.html gcc-4.6.0/libstdc++-v3/doc/html/manual/io_and_c.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/io_and_c.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/io_and_c.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="fstreams.html" title="File Based Streams"/><link rel="next" href="atomics.html" title="ChapterÂ 14.Â  Atomics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="fstreams.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="fstreams.html" title="File Based Streams"/><link rel="next" href="atomics.html" title="ChapterÂ 14.Â  Atomics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="fstreams.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
+   Input and Output
+   
+ </th><td align="right">Â <a accesskey="n" href="atomics.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.c"/>Interacting with C</h2></div></div></div><div class="section" title="Using FILE* and file descriptors"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.FILE"/>Using FILE* and file descriptors</h3></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/iterators.html gcc-4.6.0/libstdc++-v3/doc/html/manual/iterators.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/iterators.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/iterators.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 10.Â  Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="containers_and_c.html" title="Interacting with C"/><link rel="next" href="algorithms.html" title="ChapterÂ 11.Â  Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 10.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 10.Â  Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="containers_and_c.html" title="Interacting with C"/><link rel="next" href="algorithms.html" title="ChapterÂ 11.Â  Algorithms"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 10.Â 
+   Iterators
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="containers_and_c.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 10.Â  Iterators"><div class="titlepage"><div><div><h1 class="title"><a id="std.iterators"/>
++  </th><td align="right">Â <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 10.Â  Iterators"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"/>ChapterÂ 10.Â 
+   Iterators
+-  <a id="id600205" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators.predefined"/>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"/>Iterators vs. Pointers</h3></div></div></div><p>
++  <a id="id479637" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section" title="Predefined"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators.predefined"/>Predefined</h2></div></div></div><div class="section" title="Iterators vs. Pointers"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"/>Iterators vs. Pointers</h3></div></div></div><p>
+      The following
+ FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
+ iterators are not implemented as pointers.  They are a generalization
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/license.html gcc-4.6.0/libstdc++-v3/doc/html/manual/license.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/license.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/license.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,11 +1,11 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="prev" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="next" href="bugs.html" title="Bugs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td align="left"><a accesskey="p" href="status.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 1.Â Status</th><td align="right">Â <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr/></div><div class="section" title="License"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.license"/>License</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="prev" href="status.html" title="ChapterÂ 1.Â Status"/><link rel="next" href="bugs.html" title="Bugs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td align="left"><a accesskey="p" href="status.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 1.Â Status</th><td align="right">Â <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr/></div><div class="section" title="License"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.license"/>License</h2></div></div></div><p>
+     There are two licenses affecting GNU libstdc++: one for the code,
+     and one for the documentation.
+     </p><p>
+       There is a license section in the FAQ regarding common <a class="link" href="../faq.html#faq.license">questions</a>. If you have more
+-      questions, ask the FSF or the <a class="link" href="http://gcc.gnu.org/lists.html" target="">gcc mailing list</a>.
++      questions, ask the FSF or the <a class="link" href="http://gcc.gnu.org/lists.html">gcc mailing list</a>.
+     </p><div class="section" title="The Code: GPL"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.license.gpl"/>The Code: GPL</h3></div></div></div><p>
+       The source code is distributed under the <a class="link" href="appendix_gpl.html" title="AppendixÂ D.Â  GNU General Public License version 3">GNU General Public License version 3</a>,
+       with the addition under section 7 of an exception described in
+@@ -16,7 +16,7 @@
+ <br/>
+ VersionÂ 3.1,Â 31Â MarchÂ 2009<br/>
+ <br/>
+-CopyrightÂ (C)Â 2009Â <a class="link" href="http://www.fsf.org" target="">FreeÂ SoftwareÂ Foundation,Â Inc.</a><br/>
++CopyrightÂ (C)Â 2009Â <a class="link" href="http://www.fsf.org">FreeÂ SoftwareÂ Foundation,Â Inc.</a><br/>
+ <br/>
+ EveryoneÂ isÂ permittedÂ toÂ copyÂ andÂ distributeÂ verbatimÂ copiesÂ ofÂ this<br/>
+ licenseÂ document,Â butÂ changingÂ itÂ isÂ notÂ allowed.<br/>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/localization.html gcc-4.6.0/libstdc++-v3/doc/html/manual/localization.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/localization.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/localization.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 8.Â  Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="strings.html" title="ChapterÂ 7.Â  Strings"/><link rel="next" href="facets.html" title="Facets"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 8.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 8.Â  Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="strings.html" title="ChapterÂ 7.Â  Strings"/><link rel="next" href="facets.html" title="Facets"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 8.Â 
+   Localization
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="strings.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 8.Â  Localization"><div class="titlepage"><div><div><h1 class="title"><a id="std.localization"/>
++  </th><td align="right">Â <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 8.Â  Localization"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"/>ChapterÂ 8.Â 
+   Localization
+-  <a id="id596473" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.locales"/>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"/>locale</h3></div></div></div><p>
++  <a id="id475905" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt></dl></dd></dl></div><div class="section" title="Locales"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization.locales"/>Locales</h2></div></div></div><div class="section" title="locale"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"/>locale</h3></div></div></div><p>
+ Describes the basic locale object, including nested
+ classes id, facet, and the reference-counted implementation object,
+ class _Impl.
+@@ -403,28 +403,28 @@
+        What should non-required facet instantiations do?  If the
+        generic implementation is provided, then how to end-users
+        provide specializations?
+-   </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id596835"/><p><span class="citetitle"><em class="citetitle">
++   </p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id476268"/><p><span class="citetitle"><em class="citetitle">
+       The GNU C Library
+     </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2007 FSF. </span><span class="pagenums">
+       Chapters 6 Character Set Handling and 7 Locales and
+       Internationalization
+-    . </span></p></div><div class="biblioentry"><a id="id596875"/><p><span class="citetitle"><em class="citetitle">
++    . </span></p></div><div class="biblioentry"><a id="id476307"/><p><span class="citetitle"><em class="citetitle">
+       Correspondence
+-    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id596901"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright Â© 2002 . </span></p></div><div class="biblioentry"><a id="id476333"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 14882:1998 Programming languages - C++
+-    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id596920"/><p><span class="citetitle"><em class="citetitle">
++    </em>. </span><span class="copyright">Copyright Â© 1998 ISO. </span></p></div><div class="biblioentry"><a id="id476352"/><p><span class="citetitle"><em class="citetitle">
+       ISO/IEC 9899:1999 Programming languages - C
+-    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id596939"/><p><span class="biblioid">
++    </em>. </span><span class="copyright">Copyright Â© 1999 ISO. </span></p></div><div class="biblioentry"><a id="id476371"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
+     </em>. </span><span class="copyright">Copyright Â© 2008 
+ 	The Open Group/The Institute of Electrical and Electronics
+ 	Engineers, Inc.
+-      . </span></p></div><div class="biblioentry"><a id="id596968"/><p><span class="citetitle"><em class="citetitle">
++      . </span></p></div><div class="biblioentry"><a id="id476400"/><p><span class="citetitle"><em class="citetitle">
+       The C++ Programming Language, Special Edition
+     </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley
+-      . </span></span></p></div><div class="biblioentry"><a id="id597007"/><p><span class="citetitle"><em class="citetitle">
++      . </span></span></p></div><div class="biblioentry"><a id="id476439"/><p><span class="citetitle"><em class="citetitle">
+       Standard C++ IOStreams and Locales
+     </em>. </span><span class="subtitle">
+       Advanced Programmer's Guide and Reference
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/make.html gcc-4.6.0/libstdc++-v3/doc/html/manual/make.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/make.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/make.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,7 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="prev" href="configure.html" title="Configure"/><link rel="next" href="using.html" title="ChapterÂ 3.Â Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td align="left"><a accesskey="p" href="configure.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 2.Â Setup</th><td align="right">Â <a accesskey="n" href="using.html">Next</a></td></tr></table><hr/></div><div class="section" title="Make"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.make"/>Make</h2></div></div></div><p>If you have never done this before, you should read the basic
+-      <a class="link" href="http://gcc.gnu.org/install/" target="">GCC Installation
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="setup.html" title="ChapterÂ 2.Â Setup"/><link rel="prev" href="configure.html" title="Configure"/><link rel="next" href="using.html" title="ChapterÂ 3.Â Using"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td align="left"><a accesskey="p" href="configure.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 2.Â Setup</th><td align="right">Â <a accesskey="n" href="using.html">Next</a></td></tr></table><hr/></div><div class="section" title="Make"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.make"/>Make</h2></div></div></div><p>If you have never done this before, you should read the basic
++      <a class="link" href="http://gcc.gnu.org/install/">GCC Installation
+       Instructions</a> first.  Read <span class="emphasis"><em>all of them</em></span>.
+       <span class="emphasis"><em>Twice.</em></span>
+    </p><p>Then type: <span class="command"><strong>make</strong></span>, and congratulations, you've
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/memory.html gcc-4.6.0/libstdc++-v3/doc/html/manual/memory.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/memory.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/memory.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="pairs.html" title="Pairs"/><link rel="next" href="traits.html" title="Traits"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td align="left"><a accesskey="p" href="pairs.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="pairs.html" title="Pairs"/><link rel="next" href="traits.html" title="Traits"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td align="left"><a accesskey="p" href="pairs.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
+   Utilities
+   
+ </th><td align="right">Â <a accesskey="n" href="traits.html">Next</a></td></tr></table><hr/></div><div class="section" title="Memory"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.memory"/>Memory</h2></div></div></div><p>
+@@ -58,7 +58,7 @@
+     The easiest way of fulfilling the requirements is to call
+     <code class="function">operator new</code> each time a container needs
+     memory, and to call <code class="function">operator delete</code> each time
+-    the container releases memory. This method may be <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html" target="">slower</a>
++    the container releases memory. This method may be <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html">slower</a>
+     than caching the allocations and re-using previously-allocated
+     memory, but has the advantage of working correctly across a wide
+     variety of hardware and operating systems, including large
+@@ -93,7 +93,7 @@
+     or loading and unloading shared objects in memory. As such, using
+     caching allocators on systems that do not support
+     <code class="function">abi::__cxa_atexit</code> is not recommended.
+-  </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"/>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id593653"/>Interface Design</h5></div></div></div><p>
++  </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"/>Implementation</h4></div></div></div><div class="section" title="Interface Design"><div class="titlepage"><div><div><h5 class="title"><a id="id473085"/>Interface Design</h5></div></div></div><p>
+      The only allocator interface that
+      is supported is the standard C++ interface. As such, all STL
+      containers have been adjusted, and all external allocators have
+@@ -106,7 +106,7 @@
+    </p><p>
+      The base class that <code class="classname">allocator</code> is derived from
+      may not be user-configurable.
+-</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id593682"/>Selecting Default Allocation Policy</h5></div></div></div><p>
++</p></div><div class="section" title="Selecting Default Allocation Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id473115"/>Selecting Default Allocation Policy</h5></div></div></div><p>
+      It's difficult to pick an allocation strategy that will provide
+    maximum utility, without excessively penalizing some behavior. In
+    fact, it's difficult just deciding which typical actions to measure
+@@ -120,8 +120,8 @@
+        Over multiple iterations, various STL container
+      objects have elements inserted to some maximum amount. A variety
+      of allocators are tested.
+-     Test source for <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/sequence.cc?view=markup" target="">sequence</a>
+-     and <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/associative.cc?view=markup" target="">associative</a>
++     Test source for <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/sequence.cc?view=markup">sequence</a>
++     and <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert/associative.cc?view=markup">associative</a>
+      containers.
+        </p></li><li class="listitem"><p>
+        Insertion and erasure in a multi-threaded environment.
+@@ -130,20 +130,20 @@
+      on a per-thread basis, as well as measuring thread contention
+      for memory resources.
+      Test source
+-    <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup" target="">here</a>.
++    <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/testsuite/performance/23_containers/insert_erase/associative.cc?view=markup">here</a>.
+        </p></li><li class="listitem"><p>
+ 	 A threaded producer/consumer model.
+        </p><p>
+        Test source for
+-     <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup" target="">sequence</a>
++     <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/sequence.cc?view=markup">sequence</a>
+      and
+-     <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup" target="">associative</a>
++     <a class="link" href="http://gcc.gnu.org/viewcvs/trunk/libstdc++-v3/testsuite/performance/23_containers/producer_consumer/associative.cc?view=markup">associative</a>
+      containers.
+      </p></li></ol></div><p>
+      The current default choice for
+      <code class="classname">allocator</code> is
+      <code class="classname">__gnu_cxx::new_allocator</code>.
+-   </p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id593793"/>Disabling Memory Caching</h5></div></div></div><p>
++   </p></div><div class="section" title="Disabling Memory Caching"><div class="titlepage"><div><div><h5 class="title"><a id="id473225"/>Disabling Memory Caching</h5></div></div></div><p>
+       In use, <code class="classname">allocator</code> may allocate and
+       deallocate using implementation-specified strategies and
+       heuristics. Because of this, every call to an allocator object's
+@@ -308,29 +308,29 @@
+ 	 A high-performance allocator that uses a bit-map to keep track
+ 	 of the used and unused memory locations. It has its own
+ 	 documentation, found <a class="link" href="bitmap_allocator.html" title="bitmap_allocator">here</a>.
+-       </p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id594244"/><p><span class="citetitle"><em class="citetitle">
++       </p></li></ol></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id473676"/><p><span class="citetitle"><em class="citetitle">
+     ISO/IEC 14882:1998 Programming languages - C++
+     </em>. </span>
+       isoc++_1998
+-    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="id594259"/><p><span class="biblioid">
++    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="id473691"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       The Standard Librarian: What Are Allocators Good For?
+     </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
+ 	C/C++ Users Journal
+-      . </span></span></p></div><div class="biblioentry"><a id="id594292"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id473725"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       The Hoard Memory Allocator
+-    </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="id594318"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="id473750"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Reconsidering Custom Memory Allocation
+-    </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright Â© 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="id594371"/><p><span class="biblioid">
++    </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright Â© 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="id473804"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Allocator Types
+     </em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername">
+ 	C/C++ Users Journal
+-      . </span></span></p></div><div class="biblioentry"><a id="id594413"/><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
++      . </span></span></p></div><div class="biblioentry"><a id="id473845"/><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright Â© 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
+ 	Addison Wesley
+-      . </span></span></p></div><div class="biblioentry"><a id="id594450"/><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"/>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"/>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
++      . </span></span></p></div><div class="biblioentry"><a id="id473882"/><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section" title="auto_ptr"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"/>auto_ptr</h3></div></div></div><div class="section" title="Limitations"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"/>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
+    happen with misuse of the <code class="classname">auto_ptr</code> class
+    template (called <acronym class="acronym">AP</acronym> here) would take some
+    time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
+@@ -446,7 +446,7 @@
+ Derived classes override those functions to destroy resources in a context
+ where the correct dynamic type is known. This is an application of the
+ technique known as type erasure.
+-  </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"/>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id594810"/>Class Hierarchy</h5></div></div></div><p>
++  </p></div><div class="section" title="Implementation"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"/>Implementation</h4></div></div></div><div class="section" title="Class Hierarchy"><div class="titlepage"><div><div><h5 class="title"><a id="id474243"/>Class Hierarchy</h5></div></div></div><p>
+ A <code class="classname">shared_ptr&lt;T&gt;</code> contains a pointer of
+ type <span class="type">T*</span> and an object of type
+ <code class="classname">__shared_count</code>. The shared_count contains a
+@@ -488,14 +488,14 @@
+ Unlike the other <code class="classname">_Sp_counted_*</code> classes, this one is parameterized on the
+ type of object, not the type of pointer; this is purely a convenience
+ that simplifies the implementation slightly.
+-    </p></dd></dl></div></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id594989"/>Thread Safety</h5></div></div></div><p>
++    </p></dd></dl></div></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h5 class="title"><a id="id474421"/>Thread Safety</h5></div></div></div><p>
+ C++0x-only features are: rvalue-ref/move support, allocator support,
+ aliasing constructor, make_shared &amp; allocate_shared. Additionally,
+ the constructors taking <code class="classname">auto_ptr</code> parameters are
+ deprecated in C++0x mode.
+     </p><p>
+ The
+-<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="">Thread
++<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety">Thread
+ Safety</a> section of the Boost shared_ptr documentation says "shared_ptr
+ objects offer the same level of thread safety as built-in types."
+ The implementation must ensure that concurrent updates to separate shared_ptr
+@@ -538,7 +538,7 @@
+ shared_ptr in libstdc++ the compiler and library are fixed, which
+ makes things much simpler: we have an atomic CAS or we don't, see Lock
+ Policy below for details.
+-</p></div><div class="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id595059"/>Selecting Lock Policy</h5></div></div></div><p>
++</p></div><div class="section" title="Selecting Lock Policy"><div class="titlepage"><div><div><h5 class="title"><a id="id474491"/>Selecting Lock Policy</h5></div></div></div><p>
+     </p><p>
+ There is a single <code class="classname">_Sp_counted_base</code> class,
+ which is a template parameterized on the enum
+@@ -558,7 +558,7 @@
+        <span class="type">_S_Atomic</span>
+        </p><p>
+ Selected when GCC supports a builtin atomic compare-and-swap operation
+-on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html" target="">Atomic
++on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html">Atomic
+ Builtins</a>.)  The reference counts are maintained using a lock-free
+ algorithm and GCC's atomic builtins, which provide the required memory
+ synchronisation.
+@@ -579,7 +579,7 @@
+        <code class="filename">ext/atomicity.h</code>, which detect if the program
+        is multi-threaded.  If only one thread of execution exists in
+        the program then less expensive non-atomic operations are used.
+-     </p></div><div class="section" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h5 class="title"><a id="id595181"/>Dual C++0x and TR1 Implementation</h5></div></div></div><p>
++     </p></div><div class="section" title="Dual C++0x and TR1 Implementation"><div class="titlepage"><div><div><h5 class="title"><a id="id474613"/>Dual C++0x and TR1 Implementation</h5></div></div></div><p>
+ The interface of <code class="classname">tr1::shared_ptr</code> was extended for C++0x
+ with support for rvalue-references and the other features from N2351.
+ The <code class="classname">_Sp_counted_base</code> base class is implemented in
+@@ -596,7 +596,7 @@
+ C++0x and TR1 modes needs to diverge further then it might be necessary to
+ duplicate <code class="classname">_Sp_counted_base</code> and only make changes to
+ the C++0x version.
+-</p></div><div class="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id595237"/>Related functions and classes</h5></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,
++</p></div><div class="section" title="Related functions and classes"><div class="titlepage"><div><div><h5 class="title"><a id="id474669"/>Related functions and classes</h5></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,
+ <code class="code">const_pointer_cast</code></span></dt><dd><p>
+ As noted in N2351, these functions can be implemented non-intrusively using
+ the alias constructor.  However the aliasing constructor is only available
+@@ -629,13 +629,13 @@
+ As well as the extra constructors, this implementation also needs some
+ members of _Sp_counted_deleter to be protected where they could otherwise
+ be private.
+-    </p></dd></dl></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"/>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id595386"/>Examples</h5></div></div></div><p>
++    </p></dd></dl></div></div></div><div class="section" title="Use"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"/>Use</h4></div></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h5 class="title"><a id="id474818"/>Examples</h5></div></div></div><p>
+       Examples of use can be found in the testsuite, under
+       <code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>,
+       <code class="filename">testsuite/20_util/shared_ptr</code>
+       and
+       <code class="filename">testsuite/20_util/weak_ptr</code>.
+-    </p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id595416"/>Unresolved Issues</h5></div></div></div><p>
++    </p></div><div class="section" title="Unresolved Issues"><div class="titlepage"><div><div><h5 class="title"><a id="id474848"/>Unresolved Issues</h5></div></div></div><p>
+       The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
+       clause in the C++0x working draft is not implemented in GCC.
+     </p><p>
+@@ -676,22 +676,22 @@
+     code to work with, Peter Dimov in particular for his help and
+     invaluable advice on thread safety.  Phillip Jordan and Paolo
+     Carlini for the lock policy implementation.
+-  </p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id595509"/><p><span class="biblioid">
++  </p></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"/>Bibliography</h4></div></div></div><div class="biblioentry"><a id="id474942"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Improving shared_ptr for C++0x, Revision 2
+     </em>. </span><span class="subtitle">
+       N2351
+-    . </span></p></div><div class="biblioentry"><a id="id595531"/><p><span class="biblioid">
++    . </span></p></div><div class="biblioentry"><a id="id474963"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       C++ Standard Library Active Issues List
+     </em>. </span><span class="subtitle">
+       N2456
+-    . </span></p></div><div class="biblioentry"><a id="id595552"/><p><span class="biblioid">
++    . </span></p></div><div class="biblioentry"><a id="id474984"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       Working Draft, Standard for Programming Language C++
+     </em>. </span><span class="subtitle">
+       N2461
+-    . </span></p></div><div class="biblioentry"><a id="id595573"/><p><span class="biblioid">shared_ptr
++    . </span></p></div><div class="biblioentry"><a id="id475006"/><p><span class="biblioid">shared_ptr
+     . </span><span class="citetitle"><em class="citetitle">
+       Boost C++ Libraries documentation, shared_ptr
+     </em>. </span><span class="subtitle">
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/numerics.html gcc-4.6.0/libstdc++-v3/doc/html/manual/numerics.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/numerics.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/numerics.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 12.Â  Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="algorithms.html" title="ChapterÂ 11.Â  Algorithms"/><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 12.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 12.Â  Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="algorithms.html" title="ChapterÂ 11.Â  Algorithms"/><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 12.Â 
+   Numerics
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="algorithms.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 12.Â  Numerics"><div class="titlepage"><div><div><h1 class="title"><a id="std.numerics"/>
++  </th><td align="right">Â <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 12.Â  Numerics"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"/>ChapterÂ 12.Â 
+   Numerics
+-  <a id="id600692" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.complex"/>Complex</h2></div></div></div><p>
++  <a id="id480125" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section" title="Complex"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.complex"/>Complex</h2></div></div></div><p>
+   </p><div class="section" title="complex Processing"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"/>complex Processing</h3></div></div></div><p>
+     </p><p>Using <code class="code">complex&lt;&gt;</code> becomes even more comple- er, sorry,
+       <span class="emphasis"><em>complicated</em></span>, with the not-quite-gratuitously-incompatible
+@@ -16,7 +16,7 @@
+       compiled a list of C++98 and C99 conflict points; his description of
+       C's new type versus those of C++ and how to get them playing together
+       nicely is
+-<a class="link" href="http://david.tribble.com/text/cdiffs.htm#C99-complex" target="">here</a>.
++<a class="link" href="http://david.tribble.com/text/cdiffs.htm#C99-complex">here</a>.
+    </p><p><code class="code">complex&lt;&gt;</code> is intended to be instantiated with a
+       floating-point type.  As long as you meet that and some other basic
+       requirements, then the resulting instantiation has all of the usual
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/numerics_and_c.html gcc-4.6.0/libstdc++-v3/doc/html/manual/numerics_and_c.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/numerics_and_c.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/numerics_and_c.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations"/><link rel="next" href="io.html" title="ChapterÂ 13.Â  Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 12.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="numerics.html" title="ChapterÂ 12.Â  Numerics"/><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations"/><link rel="next" href="io.html" title="ChapterÂ 13.Â  Input and Output"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 12.Â 
+   Numerics
+   
+ </th><td align="right">Â <a accesskey="n" href="io.html">Next</a></td></tr></table><hr/></div><div class="section" title="Interacting with C"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics.c"/>Interacting with C</h2></div></div></div><div class="section" title="Numerics vs. Arrays"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.array"/>Numerics vs. Arrays</h3></div></div></div><p>One of the major reasons why FORTRAN can chew through numbers so well
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/pairs.html gcc-4.6.0/libstdc++-v3/doc/html/manual/pairs.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/pairs.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/pairs.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="next" href="memory.html" title="Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td align="left"><a accesskey="p" href="utilities.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="next" href="memory.html" title="Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td align="left"><a accesskey="p" href="utilities.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
+   Utilities
+   
+ </th><td align="right">Â <a accesskey="n" href="memory.html">Next</a></td></tr></table><hr/></div><div class="section" title="Pairs"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.pairs"/>Pairs</h2></div></div></div><p>The <code class="code">pair&lt;T1,T2&gt;</code> is a simple and handy way to
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/parallel_mode.html gcc-4.6.0/libstdc++-v3/doc/html/manual/parallel_mode.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/parallel_mode.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/parallel_mode.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 18.Â Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch17s04.html" title="Design"/><link rel="next" href="bk01pt03ch18s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 18.Â Parallel Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 18.Â Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      parallel&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch17s04.html" title="Design"/><link rel="next" href="bk01pt03ch18s02.html" title="Semantics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 18.Â Parallel Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch17s04.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 18.Â Parallel Mode"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.parallel_mode"/>Parallel Mode</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel
++</th><td align="right">Â <a accesskey="n" href="bk01pt03ch18s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 18.Â Parallel Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode"/>ChapterÂ 18.Â Parallel Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s02.html">Semantics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s03.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s04.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dt><span class="section"><a href="bk01pt03ch18s04.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch18s05.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel
+ implementation of many algorithms the C++ Standard Library.
+ </p><p>
+ Several of the standard algorithms, for instance
+@@ -13,11 +13,11 @@
+ specific compiler flag.
+ </p><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode.intro"/>Intro</h2></div></div></div><p>The following library components in the include
+ <code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
+-<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id606616"/><p><span class="citetitle"><em class="citetitle">
++<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id486049"/><p><span class="citetitle"><em class="citetitle">
+       Parallelization of Bulk Operations for STL Dictionaries
+     </em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Leonor</span> <span class="surname">Frias</span>. </span><span class="copyright">Copyright Â© 2007 . </span><span class="publisher"><span class="publishername">
+ 	Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
+-      . </span></span></p></div><div class="biblioentry"><a id="id606659"/><p><span class="citetitle"><em class="citetitle">
++      . </span></span></p></div><div class="biblioentry"><a id="id486091"/><p><span class="citetitle"><em class="citetitle">
+       The Multi-Core Standard Template Library
+     </em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Peter</span> <span class="surname">Sanders</span>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Putze</span>. </span><span class="copyright">Copyright Â© 2007 . </span><span class="publisher"><span class="publishername">
+ 	 Euro-Par 2007: Parallel Processing. (LNCS 4641)
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/profile_mode.html gcc-4.6.0/libstdc++-v3/doc/html/manual/profile_mode.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/profile_mode.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/profile_mode.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 19.Â Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch18s05.html" title="Testing"/><link rel="next" href="bk01pt03ch19s02.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 19.Â Profile Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 19.Â Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      library&#10;    , &#10;      profile&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="extensions.html" title="PartÂ III.Â  Extensions"/><link rel="prev" href="bk01pt03ch18s05.html" title="Testing"/><link rel="next" href="bk01pt03ch19s02.html" title="Design"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 19.Â Profile Mode</th></tr><tr><td align="left"><a accesskey="p" href="bk01pt03ch18s05.html">Prev</a>Â </td><th width="60%" align="center">PartÂ III.Â 
+   Extensions
+   
+-</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 19.Â Profile Mode"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext.profile_mode"/>Profile Mode</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.intro"/>Intro</h2></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="bk01pt03ch19s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 19.Â Profile Mode"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode"/>ChapterÂ 19.Â Profile Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s02.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s02.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s03.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s04.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s05.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s06.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s06.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="bk01pt03ch19s07.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dt><span class="section"><a href="bk01pt03ch19s07.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section" title="Intro"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode.intro"/>Intro</h2></div></div></div><p>
+   <span class="emphasis"><em>Goal: </em></span>Give performance improvement advice based on
+   recognition of suboptimal usage patterns of the standard library.
+   </p><p>
+@@ -12,7 +12,7 @@
+   various components at interesting entry/exit points to/from the standard
+   library.  Process trace, recognize suboptimal patterns, give advice.
+   For details, see
+-  <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36" target="">paper presented at
++  <a class="link" href="http://dx.doi.org/10.1109/CGO.2009.36">paper presented at
+    CGO 2009</a>.
+   </p><p>
+   <span class="emphasis"><em>Strengths: </em></span>
+@@ -138,7 +138,7 @@
+    call context.
+    (Environment variable not supported.)
+    </p></li></ul></div><p>
+-  </p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id610508"/><p><span class="citetitle"><em class="citetitle">
++  </p></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"/>Bibliography</h2></div></div></div><div class="biblioentry"><a id="id489940"/><p><span class="citetitle"><em class="citetitle">
+       Perflint: A Context Sensitive Performance Advisor for C++ Programs
+     </em>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright Â© 2009 . </span><span class="publisher"><span class="publishername">
+ 	Proceedings of the 2009 International Symposium on Code Generation
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/setup.html gcc-4.6.0/libstdc++-v3/doc/html/manual/setup.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/setup.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/setup.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,9 +1,9 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 2.Â Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="bugs.html" title="Bugs"/><link rel="next" href="configure.html" title="Configure"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 2.Â Setup</th></tr><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 2.Â Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="bugs.html" title="Bugs"/><link rel="next" href="configure.html" title="Configure"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 2.Â Setup</th></tr><tr><td align="left"><a accesskey="p" href="bugs.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
+   Introduction
+   
+-</th><td align="right">Â <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 2.Â Setup"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro.setup"/>Setup</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
++</th><td align="right">Â <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 2.Â Setup"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"/>ChapterÂ 2.Â Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
+    and properly built binaries useful for linking to other software is
+    a multi-step process. Steps include getting the sources,
+    configuring and building the sources, testing, and installation.
+@@ -22,9 +22,9 @@
+    </p><div class="section" title="Prerequisites"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.prereq"/>Prerequisites</h2></div></div></div><p>
+   Because libstdc++ is part of GCC, the primary source for
+    installation instructions is
+-   <a class="link" href="http://gcc.gnu.org/install/" target="">the GCC install page</a>.
++   <a class="link" href="http://gcc.gnu.org/install/">the GCC install page</a>.
+    In particular, list of prerequisite software needed to build the library
+-   <a class="link" href="http://gcc.gnu.org/install/prerequisites.html" target="">
++   <a class="link" href="http://gcc.gnu.org/install/prerequisites.html">
+    starts with those requirements.</a> The same pages also list
+    the tools you will need if you wish to modify the source.
+ </p><p>
+@@ -32,7 +32,7 @@
+   </p><p>As of GCC 4.0.1 the minimum version of binutils required to build
+       libstdc++ is <code class="code">2.15.90.0.1.1</code>. You can get snapshots
+       (as well as releases) of binutils from
+-      <a class="link" href="ftp://sources.redhat.com/pub/binutils/" target="">
++      <a class="link" href="ftp://sources.redhat.com/pub/binutils/">
+       ftp://sources.redhat.com/pub/binutils</a>.
+       Older releases of libstdc++ do not require such a recent version,
+       but to take full advantage of useful space-saving features and
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_code_style.html gcc-4.6.0/libstdc++-v3/doc/html/manual/source_code_style.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_code_style.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/source_code_style.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions"/><link rel="next" href="source_design_notes.html" title="Design Notes"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td align="left"><a accesskey="p" href="source_organization.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions"/><link rel="next" href="source_design_notes.html" title="Design Notes"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td align="left"><a accesskey="p" href="source_organization.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
+   Contributing
+   
+ </th><td align="right">Â <a accesskey="n" href="source_design_notes.html">Next</a></td></tr></table><hr/></div><div class="section" title="Coding Style"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.coding_style"/>Coding Style</h2></div></div></div><p>
+@@ -197,13 +197,13 @@
+ Â Â Â Â Â Â itÂ isÂ intendedÂ toÂ precedeÂ theÂ recommendationsÂ ofÂ theÂ GNUÂ Coding<br/>
+ Â Â Â Â Â Â Standard,Â whichÂ canÂ beÂ referencedÂ inÂ fullÂ here:<br/>
+ <br/>
+-Â Â Â Â Â Â <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Formatting" target="">http://www.gnu.org/prep/standards/standards.html#Formatting</a><br/>
++Â Â Â Â Â Â <a class="link" href="http://www.gnu.org/prep/standards/standards.html#Formatting">http://www.gnu.org/prep/standards/standards.html#Formatting</a><br/>
+ <br/>
+ Â Â Â Â Â Â TheÂ restÂ ofÂ thisÂ isÂ alsoÂ interestingÂ reading,Â butÂ skipÂ theÂ "Design<br/>
+ Â Â Â Â Â Â Advice"Â part.<br/>
+ <br/>
+ Â Â Â Â Â Â TheÂ GCCÂ codingÂ conventionsÂ areÂ here,Â andÂ areÂ alsoÂ useful:<br/>
+-Â Â Â Â Â Â <a class="link" href="http://gcc.gnu.org/codingconventions.html" target="">http://gcc.gnu.org/codingconventions.html</a><br/>
++Â Â Â Â Â Â <a class="link" href="http://gcc.gnu.org/codingconventions.html">http://gcc.gnu.org/codingconventions.html</a><br/>
+ <br/>
+ Â Â Â Â Â Â InÂ addition,Â becauseÂ itÂ doesn'tÂ seemÂ toÂ beÂ statedÂ explicitlyÂ anywhere<br/>
+ Â Â Â Â Â Â else,Â thereÂ isÂ anÂ 80Â columnÂ sourceÂ limit.<br/>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_design_notes.html gcc-4.6.0/libstdc++-v3/doc/html/manual/source_design_notes.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_design_notes.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/source_design_notes.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="source_code_style.html" title="Coding Style"/><link rel="next" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td align="left"><a accesskey="p" href="source_code_style.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="source_code_style.html" title="Coding Style"/><link rel="next" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td align="left"><a accesskey="p" href="source_code_style.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
+   Contributing
+   
+ </th><td align="right">Â <a accesskey="n" href="appendix_porting.html">Next</a></td></tr></table><hr/></div><div class="section" title="Design Notes"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.design_notes"/>Design Notes</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_organization.html gcc-4.6.0/libstdc++-v3/doc/html/manual/source_organization.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/source_organization.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/source_organization.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="next" href="source_code_style.html" title="Coding Style"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="prev" href="appendix_contributing.html" title="AppendixÂ A.Â  Contributing"/><link rel="next" href="source_code_style.html" title="Coding Style"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ A.Â 
+   Contributing
+   
+ </th><td align="right">Â <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr/></div><div class="section" title="Directory Layout and Source Conventions"><div class="titlepage"><div><div><h2 class="title"><a id="contrib.organization"/>Directory Layout and Source Conventions</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/spine.html gcc-4.6.0/libstdc++-v3/doc/html/manual/spine.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/spine.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/spine.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,10 +1,10 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="../spine.html" title="The GNU C++ Library"/><link rel="prev" href="../spine.html" title="The GNU C++ Library"/><link rel="next" href="intro.html" title="PartÂ I.Â  Introduction"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td align="left"><a accesskey="p" href="../spine.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr/></div><div class="book" title="The GNU C++ Library Manual"><div class="titlepage"><div><div><h1 class="title"><a id="manual-index"/>The GNU C++ Library Manual</h1></div><div><p class="copyright">Copyright Â© 2009, 2010 
+-      <a class="link" href="http://www.fsf.org" target="">FSF</a>
+-    </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id533702"/><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="../spine.html" title="The GNU C++ Library"/><link rel="prev" href="../spine.html" title="The GNU C++ Library"/><link rel="next" href="intro.html" title="PartÂ I.Â  Introduction"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td align="left"><a accesskey="p" href="../spine.html">Prev</a>Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr/></div><div class="book" title="The GNU C++ Library Manual"><div class="titlepage"><div><div><h1 class="title"><a id="manual-index"/>The GNU C++ Library Manual</h1></div><div><p class="copyright">Copyright Â© 2009, 2010 
++      <a class="link" href="http://www.fsf.org">FSF</a>
++    </p></div><div><div class="legalnotice" title="Legal Notice"><a id="id399399"/><p>
+       <a class="link" href="license.html" title="License">License</a>
+-    </p></div></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="part"><a href="intro.html">I. 
++    </p></div></div></div><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="part"><a href="intro.html">I. 
+   Introduction
+   
+ </a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="bk01pt02.html">II. 
+@@ -61,7 +61,7 @@
+   
+ </a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D. 
+     <acronym class="acronym">GNU</acronym> General Public License version 3
+-  </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>B.1. <a href="appendix_porting.html#id614754">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>1.1. <a href="status.html#id533556">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id518456">C++ 200x Implementation Status</a></dt><dt>1.3. <a href="status.html#id576790">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id582361">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id586478">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id586707">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id587011">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id587217">C++ 200x Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id587646">C++ 200x Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id587895">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id588036">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id588211">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id588257">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id588311">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id588608">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id588731">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id588843">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id602987">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id603361">Debugging Containers C++0x</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id604948">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id607071">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id607953">Profile Diagnostics</a></dt><dt>20.1. <a href="bitmap_allocator.html#id611395">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id615654">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id616157">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id616319">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id616796">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id616997">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id622712">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id622942">Extension Allocators Continued</a></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="../spine.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ LibraryÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â PartÂ I.Â 
++  </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>B.1. <a href="appendix_porting.html#id494186">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#id410184">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#id414053">C++ 200x Implementation Status</a></dt><dt>1.3. <a href="status.html#id456195">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#id461766">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#id465910">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#id466139">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#id466443">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#id466649">C++ 200x Library Headers</a></dt><dt>3.5. <a href="using_headers.html#id467078">C++ 200x Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#id467327">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#id467468">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#id467644">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#id467690">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#id467743">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#id468041">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#id468164">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#id468275">Extension Parallel Headers</a></dt><dt>17.1. <a href="bk01pt03ch17s03.html#id482419">Debugging Containers</a></dt><dt>17.2. <a href="bk01pt03ch17s03.html#id482793">Debugging Containers C++0x</a></dt><dt>18.1. <a href="bk01pt03ch18s03.html#id484380">Parallel Algorithms</a></dt><dt>19.1. <a href="bk01pt03ch19s02.html#id486504">Profile Code Location</a></dt><dt>19.2. <a href="bk01pt03ch19s07.html#id487386">Profile Diagnostics</a></dt><dt>20.1. <a href="bitmap_allocator.html#id490827">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#id495087">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#id495589">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#id495751">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#id496228">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#id496429">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#id502145">Extension Allocators</a></dt><dt>B.7. <a href="api.html#id502375">Extension Allocators Continued</a></dt></dl></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="../spine.html">Prev</a>Â </td><td align="center">Â </td><td align="right">Â <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td align="left" valign="top">The GNU C++ LibraryÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â PartÂ I.Â 
+   Introduction
+   
+ </td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/status.html gcc-4.6.0/libstdc++-v3/doc/html/manual/status.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/status.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/status.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 1.Â Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="next" href="license.html" title="License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 1.Â Status</th></tr><tr><td align="left"><a accesskey="p" href="intro.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 1.Â Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="next" href="license.html" title="License"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 1.Â Status</th></tr><tr><td align="left"><a accesskey="p" href="intro.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
+   Introduction
+   
+-</th><td align="right">Â <a accesskey="n" href="license.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 1.Â Status"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro.status"/>Status</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.iso"/>Implementation Status</h2></div></div></div><div class="section" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"/>C++ 1998/2003</h3></div></div></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"/>Implementation Status</h4></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="license.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 1.Â Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"/>ChapterÂ 1.Â Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status.iso"/>Implementation Status</h2></div></div></div><div class="section" title="C++ 1998/2003"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"/>C++ 1998/2003</h3></div></div></div><div class="section" title="Implementation Status"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"/>Implementation Status</h4></div></div></div><p>
+ This status table is based on the table of contents of ISO/IEC 14882:2003.
+ </p><p>
+ This page describes the C++ support in mainline GCC SVN, not in any
+ particular release.
+-</p><div class="table"><a id="id533556"/><p class="title"><b>TableÂ 1.1.Â C++ 1998/2003 Implementation Status</b></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
++</p><div class="table"><a id="id410184"/><p class="title"><strong>TableÂ 1.1.Â C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>18</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Language support</em></span>
+@@ -144,8 +144,8 @@
+       a get area exists will... whatever <code class="code">fflush()</code> does, I think.
+    </p></div></div><div class="section" title="C++ 200x"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.200x"/>C++ 200x</h3></div></div></div><p>
+ This table is based on the table of contents of ISO/IEC
+-JTC1 SC22 WG21 Doc No: N3092 Date: 2010-03-26
+-Final Committee Draft, Standard for Programming Language C++
++JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11
++Final Draft International Standard, Standard for Programming Language C++
+ </p><p>
+ In this implementation <code class="literal">-std=gnu++0x</code> or
+ <code class="literal">-std=c++0x</code> flags must be used to enable language
+@@ -155,13 +155,12 @@
+ <code class="constant">__GXX_EXPERIMENTAL_CXX0X__</code> is used to check for the
+ presence of the required flag.
+ </p><p>
+-This page describes the C++0x support in mainline GCC SVN, not in any
+-particular release.
+-</p><div class="table"><a id="id518456"/><p class="title"><b>TableÂ 1.2.Â C++ 200x Implementation Status</b></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
++This page describes the C++0x support in the GCC 4.6 release series.
++</p><div class="table"><a id="id414053"/><p class="title"><strong>TableÂ 1.2.Â C++ 200x Implementation Status</strong></p><div class="table-contents"><table summary="C++ 200x Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>18</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Language support</em></span>
+-      </td></tr><tr><td style="text-align: left">18.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.2</td><td style="text-align: left">Types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing offsetof, max_align_t</td></tr><tr><td style="text-align: left">18.3</td><td style="text-align: left">Implementation properties</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.1</td><td style="text-align: left">Numeric Limits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.1.1</td><td style="text-align: left">Class template <code class="code">numeric_limits</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.1.2</td><td style="text-align: left"><code class="code">numeric_limits</code> members</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.1.3</td><td style="text-align: left"><code class="code">float_round_style</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.1.4</td><td style="text-align: left"><code class="code">float_denorm_style</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.1.5</td><td style="text-align: left"><code class="code">numeric_limits</code> specializations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.2</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.4</td><td style="text-align: left">Integer types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.4.1</td><td style="text-align: left">Header <code class="code">&lt;cstdint&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.5</td><td style="text-align: left">Start and termination</td><td style="text-align: left">Partial</td><td style="text-align: left">C library dependency for quick_exit, at_quick_exit</td></tr><tr><td style="text-align: left">18.6</td><td style="text-align: left">Dynamic memory management</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7</td><td style="text-align: left">Type identification</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.1</td><td style="text-align: left">Class type_info</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.2</td><td style="text-align: left">Class bad_cast</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.3</td><td style="text-align: left">Class bad_typeid</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8</td><td style="text-align: left">Exception handling</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.1</td><td style="text-align: left">Class exception</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.2</td><td style="text-align: left">Violating exception-specifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.3</td><td style="text-align: left">Abnormal termination</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.4</td><td style="text-align: left"><code class="code">uncaught_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.5</td><td style="text-align: left">Exception Propagation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.6</td><td style="text-align: left"><code class="code">nested_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9</td><td style="text-align: left">Initializer lists</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9.1</td><td style="text-align: left">Initializer list constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9.2</td><td style="text-align: left">Initializer list access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.9.3</td><td style="text-align: left">Initializer list range access</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.10</td><td style="text-align: left">Other runtime support</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">18.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.2</td><td style="text-align: left">Types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing offsetof, max_align_t</td></tr><tr><td style="text-align: left">18.3</td><td style="text-align: left">Implementation properties</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.2</td><td style="text-align: left">Numeric Limits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.2.3</td><td style="text-align: left">Class template <code class="code">numeric_limits</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.2.4</td><td style="text-align: left"><code class="code">numeric_limits</code> members</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.2.5</td><td style="text-align: left"><code class="code">float_round_style</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.3.2.6</td><td style="text-align: left"><code class="code">float_denorm_style</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.2.7</td><td style="text-align: left"><code class="code">numeric_limits</code> specializations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.3.3</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.4</td><td style="text-align: left">Integer types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.4.1</td><td style="text-align: left">Header <code class="code">&lt;cstdint&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">18.5</td><td style="text-align: left">Start and termination</td><td style="text-align: left">Partial</td><td style="text-align: left">C library dependency for quick_exit, at_quick_exit</td></tr><tr><td style="text-align: left">18.6</td><td style="text-align: left">Dynamic memory management</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7</td><td style="text-align: left">Type identification</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.1</td><td style="text-align: left">Class type_info</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.2</td><td style="text-align: left">Class bad_cast</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.7.3</td><td style="text-align: left">Class bad_typeid</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8</td><td style="text-align: left">Exception handling</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.1</td><td style="text-align: left">Class exception</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.2</td><td style="text-align: left">Class bad_exception</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.3</td><td style="text-align: left">Abnormal termination</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.4</td><td style="text-align: left"><code class="code">uncaught_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.5</td><td style="text-align: left">Exception Propagation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.8.6</td><td style="text-align: left"><code class="code">nested_exception</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9</td><td style="text-align: left">Initializer lists</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9.1</td><td style="text-align: left">Initializer list constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.9.2</td><td style="text-align: left">Initializer list access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">18.9.3</td><td style="text-align: left">Initializer list range access</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">18.10</td><td style="text-align: left">Other runtime support</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>19</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Diagnostics</em></span>
+@@ -169,12 +168,22 @@
+ 	<span class="emphasis"><em>20</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>General utilities</em></span>
+-      </td></tr><tr><td style="text-align: left">20.1</td><td style="text-align: left">General</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3</td><td style="text-align: left">Utility components</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.1</td><td style="text-align: left">Operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.2</td><td style="text-align: left">Swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.3</td><td style="text-align: left"><code class="code">forward</code> and <code class="code">move</code> helpers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.4</td><td style="text-align: left">Function template <code class="code">declval</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5</td><td style="text-align: left">Pairs</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5.2</td><td style="text-align: left">Class template <code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5.3</td><td style="text-align: left">Tuple-like access to <code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5.5</td><td style="text-align: left">Piecewise construction</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4</td><td style="text-align: left">Tuples</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2</td><td style="text-align: left">Class template <code class="code">tuple</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5</td><td style="text-align: left">Class template <code class="code">bitset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6</td><td style="text-align: left">Compile-time rational arithmetic</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.1</td><td style="text-align: left">Class template <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.2</td><td style="text-align: left">Arithmetic on <code class="code">ratio</code> types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.3</td><td style="text-align: left">Comparison of <code class="code">ratio</code> types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.4</td><td style="text-align: left">SI types for <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7</td><td style="text-align: left">Metaprogramming and type traits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2</td><td style="text-align: left">Header <code class="code">&lt;type_traits&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.3</td><td style="text-align: left">Helper classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.4</td><td style="text-align: left">Unary Type Traits</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.4.1</td><td style="text-align: left">Primary type categories</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.4.2</td><td style="text-align: left">Composite type traits</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.7.4.3</td><td style="text-align: left">Type properties</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing is_trivially_copyable, is_nothrow_constructible</td></tr><tr><td style="text-align: left">20.7.5</td><td style="text-align: left">Relationships between types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.7.6</td><td style="text-align: left">Transformations between types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing underlying_type</td></tr><tr><td style="text-align: left">20.7.6.1</td><td style="text-align: left">Const-volatile modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.6.2</td><td style="text-align: left">Reference modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.6.3</td><td style="text-align: left">Sign modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.6.4</td><td style="text-align: left">Array modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.6.5</td><td style="text-align: left">Pointer modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.6.6</td><td style="text-align: left">Other transformations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8</td><td style="text-align: left">Function objects</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.3</td><td style="text-align: left">Base</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.4</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.5</td><td style="text-align: left">Arithmetic operation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.6</td><td style="text-align: left">Comparisons</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.7</td><td style="text-align: left">Logical operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.8</td><td style="text-align: left">Bitwise operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.9</td><td style="text-align: left">Negators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.10</td><td style="text-align: left">Function template <code class="code">bind</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.11</td><td style="text-align: left">Adaptors for pointers to functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.12</td><td style="text-align: left">Adaptors for pointers to members</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.13</td><td style="text-align: left">Function template <code class="code">mem_fn</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing overloads for reference-qualified member functions</td></tr><tr><td style="text-align: left">20.8.14</td><td style="text-align: left">Polymorphic function wrappers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.14.1</td><td style="text-align: left">Class <code class="code">bad_function_call</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.14.2</td><td style="text-align: left">Class template <code class="code">function</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing allocator support</td></tr><tr><td style="text-align: left">20.8.15</td><td style="text-align: left">Class template <code class="code">hash</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9</td><td style="text-align: left">Memory</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.1</td><td style="text-align: left">Allocator argument tag</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.2</td><td style="text-align: left"><code class="code">uses_allocator</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.3</td><td style="text-align: left">Pointer traits</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.4</td><td style="text-align: left">Allocator traits</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.5</td><td style="text-align: left">The default allocator</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.6</td><td style="text-align: left">Scoped allocator adaptor</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.6.1</td><td style="text-align: left">Scoped allocator adaptor member types</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.6.2</td><td style="text-align: left">Scoped allocator adaptor constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.6.3</td><td style="text-align: left">Scoped allocator adaptor members</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7</td><td style="text-align: left">Raw storage iterator</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.8</td><td style="text-align: left">Temporary buffers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.9</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.9.1</td><td style="text-align: left"><code class="code">addressof</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.9.2</td><td style="text-align: left"><code class="code">uninitialized_copy</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.9.3</td><td style="text-align: left"><code class="code">uninitialized_fill</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.9.4</td><td style="text-align: left"><code class="code">uninitialized_fill_n</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.10</td><td style="text-align: left">Class template <code class="code">unique_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.11</td><td style="text-align: left">Smart pointers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.11.1</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.11.2</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">20.1</td><td style="text-align: left">General</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2</td><td style="text-align: left">Utility components</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2.1</td><td style="text-align: left">Operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2.2</td><td style="text-align: left">Swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2.3</td><td style="text-align: left"><code class="code">forward</code> and <code class="code">move</code> helpers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.2.4</td><td style="text-align: left">Function template <code class="code">declval</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3</td><td style="text-align: left">Pairs</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.2</td><td style="text-align: left">Class template <code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.3</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.4</td><td style="text-align: left">Tuple-like access to <code class="code">pair</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.3.5</td><td style="text-align: left">Piecewise construction</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4</td><td style="text-align: left">Tuples</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2</td><td style="text-align: left">Class template <code class="code">tuple</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.1</td><td style="text-align: left">Construction</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.2</td><td style="text-align: left">Assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.3</td><td style="text-align: left">Swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.4.2.4</td><td style="text-align: left">Tuple creation functions</td><td style="text-align: left">Partial</td><td style="text-align: left"><code class="code">tuple_cat</code> should be a single variadic signature (DR 1385)</td></tr><tr><td style="text-align: left">20.4.2.5</td><td style="text-align: left">Tuple helper classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.6</td><td style="text-align: left">Element access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.7</td><td style="text-align: left">Relational operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.4.2.8</td><td style="text-align: left">Tuple traits</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.4.2.9</td><td style="text-align: left">Tuple specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5</td><td style="text-align: left">Class template <code class="code">bitset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5.1</td><td style="text-align: left"><code class="code">bitset</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5.2</td><td style="text-align: left"><code class="code">bitset</code> members</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5.3</td><td style="text-align: left"><code class="code">bitset</code> hash support</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.5.4</td><td style="text-align: left"><code class="code">bitset</code> operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6</td><td style="text-align: left">Memory</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.2</td><td style="text-align: left">Header <code class="code">&lt;memory&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.6.3</td><td style="text-align: left">Pointer traits</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.6.4</td><td style="text-align: left">Pointer safety</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.6.5</td><td style="text-align: left">Align</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.6</td><td style="text-align: left">Allocator argument tag</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.7</td><td style="text-align: left"><code class="code">uses_allocator</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.6.8</td><td style="text-align: left">Allocator traits</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.9</td><td style="text-align: left">The default allocator</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.10</td><td style="text-align: left">Raw storage iterator</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.11</td><td style="text-align: left">Temporary buffers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.12</td><td style="text-align: left">Specialized algorithms</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.12.1</td><td style="text-align: left"><code class="code">addressof</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.12.2</td><td style="text-align: left"><code class="code">uninitialized_copy</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.12.3</td><td style="text-align: left"><code class="code">uninitialized_fill</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.12.4</td><td style="text-align: left"><code class="code">uninitialized_fill_n</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.6.13</td><td style="text-align: left">C library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7</td><td style="text-align: left">Smart pointers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.1</td><td style="text-align: left">Class template <code class="code">unique_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2</td><td style="text-align: left">Shared-ownership pointers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2.1</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2.2</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">
+ 	<p>
+ 	  Uses code from
+-	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="">boost::shared_ptr</a>.
++	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>.
+ 	</p>
+-      </td></tr><tr><td style="text-align: left">20.9.11.3</td><td style="text-align: left">Class template <code class="code">weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.11.4</td><td style="text-align: left">Class template <code class="code">emable_shared_from_this</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.9.11.5</td><td style="text-align: left"><code class="code">shared_ptr</code> atomic access</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.11.6</td><td style="text-align: left">Hash support</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.9.12</td><td style="text-align: left">Pointer safety</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.9.13</td><td style="text-align: left">Align</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.16</td><td style="text-align: left">C library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10</td><td style="text-align: left">Time utilities</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.1</td><td style="text-align: left">Clock requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.2</td><td style="text-align: left">Time-related traits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.2.1</td><td style="text-align: left"><code class="code">treat_as_floating_point</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.2.2</td><td style="text-align: left"><code class="code">duration_values</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.2.3</td><td style="text-align: left">Specializations of <code class="code">common_type</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.3</td><td style="text-align: left">Class template <code class="code">duration</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.4</td><td style="text-align: left">Class template <code class="code">time_point</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.5</td><td style="text-align: left">Clocks</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.5.1</td><td style="text-align: left">Class <code class="code">system_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.5.2</td><td style="text-align: left">Class <code class="code">monotonic_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.5.3</td><td style="text-align: left">Class <code class="code">high_resolution_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11</td><td style="text-align: left">Date and time functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12</td><td style="text-align: left">Class <code class="code">type_index</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">20.7.2.3</td><td style="text-align: left">Class template <code class="code">weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2.4</td><td style="text-align: left">Class template <code class="code">emable_shared_from_this</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.7.2.5</td><td style="text-align: left"><code class="code">shared_ptr</code> atomic access</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.7.2.6</td><td style="text-align: left">Smart pointer hash support</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8</td><td style="text-align: left">Function objects</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.3</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.4</td><td style="text-align: left">Arithmetic operation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.5</td><td style="text-align: left">Comparisons</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.6</td><td style="text-align: left">Logical operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.7</td><td style="text-align: left">Bitwise operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.8</td><td style="text-align: left">Negators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.9</td><td style="text-align: left">Function template <code class="code">bind</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.10</td><td style="text-align: left">Function template <code class="code">mem_fn</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing overloads for reference-qualified member functions</td></tr><tr><td style="text-align: left">20.8.11</td><td style="text-align: left">Polymorphic function wrappers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.8.11.1</td><td style="text-align: left">Class <code class="code">bad_function_call</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.8.11.2</td><td style="text-align: left">Class template <code class="code">function</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing allocator support</td></tr><tr><td style="text-align: left">20.8.12</td><td style="text-align: left">Class template <code class="code">hash</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9</td><td style="text-align: left">Metaprogramming and type traits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.2</td><td style="text-align: left">Header <code class="code">&lt;type_traits&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.3</td><td style="text-align: left">Helper classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.4</td><td style="text-align: left">Unary Type Traits</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.4.1</td><td style="text-align: left">Primary type categories</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.4.2</td><td style="text-align: left">Composite type traits</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.9.4.3</td><td style="text-align: left">Type properties</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing is_trivially_copyable,
++      is_assignable, is_copy_assignable, is_move_assignable,
++      is_trivially_constructible, is_trivially_default_constructible,
++      is_trivially_copy_constructible, is_trivially_move_constructible,
++      is_trivially_assignable, is_trivially_default_assignable,
++      is_trivially_copy_assignable, is_trivially_move_assignable,
++      is_trivially_destructible,
++      is_nothrow_assignable,
++      is_nothrow_copy_assignable, is_nothrow_move_assignable,
++      is_nothrow_destructible
++      </td></tr><tr><td style="text-align: left">20.9.5</td><td style="text-align: left">Type property queries</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.6</td><td style="text-align: left">Relationships between types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7</td><td style="text-align: left">Transformations between types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.1</td><td style="text-align: left">Const-volatile modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.2</td><td style="text-align: left">Reference modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.3</td><td style="text-align: left">Sign modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.4</td><td style="text-align: left">Array modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.5</td><td style="text-align: left">Pointer modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.9.7.6</td><td style="text-align: left">Other transformations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10</td><td style="text-align: left">Compile-time rational arithmetic</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.2</td><td style="text-align: left">Header <code class="code">&lt;ratio&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.3</td><td style="text-align: left">Class template <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.4</td><td style="text-align: left">Arithmetic on <code class="code">ratio</code>s</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.5</td><td style="text-align: left">Comparison of <code class="code">ratio</code>s</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.10.6</td><td style="text-align: left">SI types for <code class="code">ratio</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11</td><td style="text-align: left">Time utilities</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.3</td><td style="text-align: left">Clock requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.4</td><td style="text-align: left">Time-related traits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.4.1</td><td style="text-align: left"><code class="code">treat_as_floating_point</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.4.2</td><td style="text-align: left"><code class="code">duration_values</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.4.3</td><td style="text-align: left">Specializations of <code class="code">common_type</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">20.11.5</td><td style="text-align: left">Class template <code class="code">duration</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td style="text-align: left">20.11.6</td><td style="text-align: left">Class template <code class="code">time_point</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.7</td><td style="text-align: left">Clocks</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.7.1</td><td style="text-align: left">Class <code class="code">system_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.11.7.2</td><td style="text-align: left">Class <code class="code">steady_clock</code></td><td style="text-align: left">N</td><td style="text-align: left">Support old <code class="code">monotonic_clock</code> spec instead</td></tr><tr><td style="text-align: left">20.11.7.3</td><td style="text-align: left">Class <code class="code">high_resolution_clock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">20.11.8</td><td style="text-align: left">Date and time functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12</td><td style="text-align: left">Scoped allocator adaptor</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12.1</td><td style="text-align: left">Header <code class="code">&lt;scoped_allocator&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12.2</td><td style="text-align: left">Scoped allocator adaptor member types</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12.3</td><td style="text-align: left">Scoped allocator adaptor constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12.4</td><td style="text-align: left">Scoped allocator adaptor members</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.12.5</td><td style="text-align: left">Scoped allocator operators</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">20.13</td><td style="text-align: left">Class <code class="code">type_index</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>21</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Strings</em></span>
+@@ -186,7 +195,7 @@
+ 	<span class="emphasis"><em>23</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Containers</em></span>
+-      </td></tr><tr><td style="text-align: left">23.1</td><td style="text-align: left">General</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2</td><td style="text-align: left">Container requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.1</td><td style="text-align: left">General container requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.2</td><td style="text-align: left">Data races</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.1</td><td style="text-align: left">Class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.2</td><td style="text-align: left">Class template <code class="code">deque</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.3</td><td style="text-align: left">Class template <code class="code">forward_list</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.4</td><td style="text-align: left">Class template <code class="code">list</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.5</td><td style="text-align: left">Container adaptors</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.5.1</td><td style="text-align: left">Class template <code class="code">queue</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.5.2</td><td style="text-align: left">Class template <code class="code">priority_queue</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.5.3</td><td style="text-align: left">Class template <code class="code">stack</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.6</td><td style="text-align: left">Class template <code class="code">vector</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.7</td><td style="text-align: left">Class <code class="code">vector&lt;bool&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.1</td><td style="text-align: left">Class template <code class="code">map</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.2</td><td style="text-align: left">Class template <code class="code">multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.3</td><td style="text-align: left">Class template <code class="code">set</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.4</td><td style="text-align: left">Class template <code class="code">multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.1</td><td style="text-align: left">Class template <code class="code">unordered_map</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.2</td><td style="text-align: left">Class template <code class="code">unordered_multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.3</td><td style="text-align: left">Class template <code class="code">unordered_set</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.4</td><td style="text-align: left">Class template <code class="code">unordered_multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">23.1</td><td style="text-align: left">General</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2</td><td style="text-align: left">Container requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.1</td><td style="text-align: left">General container requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.2</td><td style="text-align: left">Container data races</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.2.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3</td><td style="text-align: left">Sequence containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.2</td><td style="text-align: left">Class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.3</td><td style="text-align: left">Class template <code class="code">deque</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.4</td><td style="text-align: left">Class template <code class="code">forward_list</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.5</td><td style="text-align: left">Class template <code class="code">list</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.6</td><td style="text-align: left">Class template <code class="code">vector</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.3.7</td><td style="text-align: left">Class <code class="code">vector&lt;bool&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4</td><td style="text-align: left">Associative containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.4</td><td style="text-align: left">Class template <code class="code">map</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.5</td><td style="text-align: left">Class template <code class="code">multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.6</td><td style="text-align: left">Class template <code class="code">set</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.4.7</td><td style="text-align: left">Class template <code class="code">multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.4</td><td style="text-align: left">Class template <code class="code">unordered_map</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.5</td><td style="text-align: left">Class template <code class="code">unordered_multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.6</td><td style="text-align: left">Class template <code class="code">unordered_set</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.5.7</td><td style="text-align: left">Class template <code class="code">unordered_multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.6</td><td style="text-align: left">Container adaptors</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.6.1</td><td style="text-align: left">Class template <code class="code">queue</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.6.2</td><td style="text-align: left">Class template <code class="code">priority_queue</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">23.6.3</td><td style="text-align: left">Class template <code class="code">stack</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>24</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Iterators</em></span>
+@@ -198,11 +207,14 @@
+       <span class="emphasis"><em>26</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Numerics</em></span>
+-      </td></tr><tr><td style="text-align: left">26.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.2</td><td style="text-align: left">Numeric type requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.3</td><td style="text-align: left">The floating-point environment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.4</td><td style="text-align: left">Complex numbers</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5</td><td style="text-align: left">Random number generation</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.2</td><td style="text-align: left">Header <code class="code">&lt;random&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.3</td><td style="text-align: left">Random number engine class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.3.1</td><td style="text-align: left">Class template <code class="code">linear_congruential_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.2</td><td style="text-align: left">Class template <code class="code">mersenne_twister_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.3</td><td style="text-align: left">Class template <code class="code">subtract_with_carry_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4</td><td style="text-align: left">Random number engine adaptor class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.4.1</td><td style="text-align: left">Class template <code class="code">discard_block_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.2</td><td style="text-align: left">Class template <code class="code">independent_bits_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.3</td><td style="text-align: left">Class template <code class="code">shuffle_order_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.5</td><td style="text-align: left">Engines and engine adaptors with predefined parameters</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.6</td><td style="text-align: left">Class <code class="code">random_device</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.7</td><td style="text-align: left">Utilities</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.7.1</td><td style="text-align: left">Class <code class="code">seed_seq</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.7.2</td><td style="text-align: left">Function template <code class="code">generate_canonical</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8</td><td style="text-align: left">Random number distribution class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.1</td><td style="text-align: left">Uniform distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.1.1</td><td style="text-align: left">Class template <code class="code">uniform_int_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.1.2</td><td style="text-align: left">Class template <code class="code">uniform_real_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2</td><td style="text-align: left">Bernoulli distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.1</td><td style="text-align: left">Class <code class="code">bernoulli_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.2</td><td style="text-align: left">Class template <code class="code">binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.3</td><td style="text-align: left">Class template <code class="code">geometric_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.4</td><td style="text-align: left">Class template <code class="code">negative_binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3</td><td style="text-align: left">Poisson distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.1</td><td style="text-align: left">Class template <code class="code">poisson_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.2</td><td style="text-align: left">Class template <code class="code">exponential_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.3</td><td style="text-align: left">Class template <code class="code">gamma_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.4</td><td style="text-align: left">Class template <code class="code">weibull_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.5</td><td style="text-align: left">Class template <code class="code">extreme_value_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4</td><td style="text-align: left">Normal distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.1</td><td style="text-align: left">Class template <code class="code">normal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.2</td><td style="text-align: left">Class template <code class="code">lognormal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.3</td><td style="text-align: left">Class template <code class="code">chi_squared_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.4</td><td style="text-align: left">Class template <code class="code">cauchy_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.5</td><td style="text-align: left">Class template <code class="code">fisher_f_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.6</td><td style="text-align: left">Class template <code class="code">student_t_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5</td><td style="text-align: left">Sampling distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.1</td><td style="text-align: left">Class template <code class="code">discrete_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.2</td><td style="text-align: left">Class template <code class="code">piecewise_constant_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.3</td><td style="text-align: left">Class template <code class="code">piecewise_linear_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6</td><td style="text-align: left">Numeric arrays</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.1</td><td style="text-align: left">Header <code class="code">&lt;valarray&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.2</td><td style="text-align: left">Class template <code class="code">valarray</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.3</td><td style="text-align: left"><code class="code">valarray</code> non-member operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.4</td><td style="text-align: left">Class <code class="code">slice</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.5</td><td style="text-align: left">Class template <code class="code">slice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.6</td><td style="text-align: left">The <code class="code">gslice</code> class</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.7</td><td style="text-align: left">Class template <code class="code">gslice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.8</td><td style="text-align: left">Class template <code class="code">mask_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.9</td><td style="text-align: left">Class template <code class="code">indirect_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">26.6.10</td><td style="text-align: left"><code class="code">valarray</code> range access</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7</td><td style="text-align: left">Generalized numeric operations</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.1</td><td style="text-align: left"><code class="code">accumulate</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.2</td><td style="text-align: left"><code class="code">inner_product</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.3</td><td style="text-align: left"><code class="code">partial_sum</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.4</td><td style="text-align: left"><code class="code">adjacent_difference</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.5</td><td style="text-align: left">iota</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.8</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">26.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.2</td><td style="text-align: left">Numeric type requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.3</td><td style="text-align: left">The floating-point environment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.4</td><td style="text-align: left">Complex numbers</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5</td><td style="text-align: left">Random number generation</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.2</td><td style="text-align: left">Header <code class="code">&lt;random&gt;</code> synopsis</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.3</td><td style="text-align: left">Random number engine class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.3.1</td><td style="text-align: left">Class template <code class="code">linear_congruential_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.2</td><td style="text-align: left">Class template <code class="code">mersenne_twister_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.3.3</td><td style="text-align: left">Class template <code class="code">subtract_with_carry_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4</td><td style="text-align: left">Random number engine adaptor class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.4.2</td><td style="text-align: left">Class template <code class="code">discard_block_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.3</td><td style="text-align: left">Class template <code class="code">independent_bits_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.4.4</td><td style="text-align: left">Class template <code class="code">shuffle_order_engine</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.5</td><td style="text-align: left">Engines and engine adaptors with predefined parameters</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.6</td><td style="text-align: left">Class <code class="code">random_device</code></td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">26.5.7</td><td style="text-align: left">Utilities</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.7.1</td><td style="text-align: left">Class <code class="code">seed_seq</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.7.2</td><td style="text-align: left">Function template <code class="code">generate_canonical</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8</td><td style="text-align: left">Random number distribution class templates</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2</td><td style="text-align: left">Uniform distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.1</td><td style="text-align: left">Class template <code class="code">uniform_int_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.2.2</td><td style="text-align: left">Class template <code class="code">uniform_real_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3</td><td style="text-align: left">Bernoulli distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.1</td><td style="text-align: left">Class <code class="code">bernoulli_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.2</td><td style="text-align: left">Class template <code class="code">binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.3</td><td style="text-align: left">Class template <code class="code">geometric_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.3.4</td><td style="text-align: left">Class template <code class="code">negative_binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4</td><td style="text-align: left">Poisson distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.1</td><td style="text-align: left">Class template <code class="code">poisson_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.2</td><td style="text-align: left">Class template <code class="code">exponential_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.3</td><td style="text-align: left">Class template <code class="code">gamma_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.4</td><td style="text-align: left">Class template <code class="code">weibull_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.4.5</td><td style="text-align: left">Class template <code class="code">extreme_value_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5</td><td style="text-align: left">Normal distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.1</td><td style="text-align: left">Class template <code class="code">normal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.2</td><td style="text-align: left">Class template <code class="code">lognormal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.3</td><td style="text-align: left">Class template <code class="code">chi_squared_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.4</td><td style="text-align: left">Class template <code class="code">cauchy_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.5</td><td style="text-align: left">Class template <code class="code">fisher_f_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.5.6</td><td style="text-align: left">Class template <code class="code">student_t_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.6</td><td style="text-align: left">Sampling distributions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.6.1</td><td style="text-align: left">Class template <code class="code">discrete_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.6.2</td><td style="text-align: left">Class template <code class="code">piecewise_constant_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.5.8.6.3</td><td style="text-align: left">Class template <code class="code">piecewise_linear_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6</td><td style="text-align: left">Numeric arrays</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.1</td><td style="text-align: left">Header <code class="code">&lt;valarray&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">26.6.2</td><td style="text-align: left">Class template <code class="code">valarray</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr><td style="text-align: left">26.6.3</td><td style="text-align: left"><code class="code">valarray</code> non-member operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.4</td><td style="text-align: left">Class <code class="code">slice</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.5</td><td style="text-align: left">Class template <code class="code">slice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.6</td><td style="text-align: left">The <code class="code">gslice</code> class</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.7</td><td style="text-align: left">Class template <code class="code">gslice_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.8</td><td style="text-align: left">Class template <code class="code">mask_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.9</td><td style="text-align: left">Class template <code class="code">indirect_array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.6.10</td><td style="text-align: left"><code class="code">valarray</code> range access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7</td><td style="text-align: left">Generalized numeric operations</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.1</td><td style="text-align: left">Header <code class="code">&lt;numeric&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.2</td><td style="text-align: left"><code class="code">accumulate</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.3</td><td style="text-align: left"><code class="code">inner_product</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.4</td><td style="text-align: left"><code class="code">partial_sum</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.5</td><td style="text-align: left"><code class="code">adjacent_difference</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.7.6</td><td style="text-align: left">iota</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">26.8</td><td style="text-align: left">C Library</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>27</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Input/output library</em></span>
+-      </td></tr><tr><td style="text-align: left">27.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2</td><td style="text-align: left">Iostreams requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2.1</td><td style="text-align: left">Imbue Limitations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2.2</td><td style="text-align: left">Positioning Type Limitations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.2.3</td><td style="text-align: left">Thread safety</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.3</td><td style="text-align: left">Forward declarations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4</td><td style="text-align: left">Standard iostream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4.1</td><td style="text-align: left">Narrow stream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4.2</td><td style="text-align: left">Wide stream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.5</td><td style="text-align: left">Iostreams base classes</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr><td style="text-align: left">27.6</td><td style="text-align: left">Stream buffers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.7</td><td style="text-align: left">Formatting and manipulators</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.8</td><td style="text-align: left">String-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.9</td><td style="text-align: left">File-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">27.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2</td><td style="text-align: left">Iostreams requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2.1</td><td style="text-align: left">Imbue Limitations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.2.2</td><td style="text-align: left">Positioning Type Limitations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.2.3</td><td style="text-align: left">Thread safety</td><td style="text-align: left">Partial</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.3</td><td style="text-align: left">Forward declarations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4</td><td style="text-align: left">Standard iostream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4.1</td><td style="text-align: left">Overview</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4.2</td><td style="text-align: left">Narrow stream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">27.4.3</td><td style="text-align: left">Wide stream objects</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.5</td><td style="text-align: left">Iostreams base classes</td><td style="text-align: left">Partial</td><td style="text-align: left">
++        Missing move and swap operations on <code class="code">basic_ios</code>. Missing
++       	<code class="code">make_error_code</code> and <code class="code">make_error_condition</code>.
++      </td></tr><tr><td style="text-align: left">27.6</td><td style="text-align: left">Stream buffers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.7</td><td style="text-align: left">Formatting and manipulators</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.8</td><td style="text-align: left">String-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">27.9</td><td style="text-align: left">File-based streams</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing move and swap operations</td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>28</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Regular expressions</em></span>
+@@ -210,15 +222,18 @@
+ 	<span class="emphasis"><em>29</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Atomic operations</em></span>
+-      </td></tr><tr><td style="text-align: left">29.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.2</td><td style="text-align: left">Header <code class="code">&lt;atomic&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.3</td><td style="text-align: left">Order and consistency</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.4</td><td style="text-align: left">Lock-free property</td><td style="text-align: left">Y</td><td style="text-align: left">Based on _GLIBCXX_ATOMIC_PROPERTY</td></tr><tr><td style="text-align: left">29.5</td><td style="text-align: left">Atomic types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.5.1</td><td style="text-align: left">Integral types</td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">29.5.2</td><td style="text-align: left">Address types</td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">29.5.3</td><td style="text-align: left">Generic types</td><td style="text-align: left">Y</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">29.6</td><td style="text-align: left">Operations on atomic types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.7</td><td style="text-align: left">Flag Type and operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.8</td><td style="text-align: left">Fences</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">29.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.2</td><td style="text-align: left">Header <code class="code">&lt;atomic&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.3</td><td style="text-align: left">Order and consistency</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">29.4</td><td style="text-align: left">Lock-free property</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing <code class="code">ATOMIC_BOOL_LOCK_FREE</code> and
++        <code class="code">ATOMIC_POINTER_LOCK_FREE</code>.
++        Based on _GLIBCXX_ATOMIC_PROPERTY
++      </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">29.5</td><td style="text-align: left">Atomic types</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing constexpr</td></tr><tr><td style="text-align: left">29.6</td><td style="text-align: left">Operations on atomic types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">29.7</td><td style="text-align: left">Flag Type and operations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">29.8</td><td style="text-align: left">Fences</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>30</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Thread support</em></span>
+-      </td></tr><tr><td style="text-align: left">30.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.3</td><td style="text-align: left">Threads</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.3.1</td><td style="text-align: left">Class <code class="code">thread</code></td><td style="text-align: left">Partial</td><td style="text-align: left"><code class="code">thread::id</code> is not trivially copyable</td></tr><tr><td style="text-align: left">30.3.2</td><td style="text-align: left">Namespace <code class="code">this_thread</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4</td><td style="text-align: left">Mutual exclusion</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1</td><td style="text-align: left">Mutex requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.1</td><td style="text-align: left">Class <code class="code">mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.2</td><td style="text-align: left">Class <code class="code">recursive_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2</td><td style="text-align: left">Timed mutex requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2.1</td><td style="text-align: left">Class <code class="code">timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2.2</td><td style="text-align: left">Class <code class="code">recursive_timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.3</td><td style="text-align: left">Locks</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.3.1</td><td style="text-align: left">Class template <code class="code">lock_guard</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.3.2</td><td style="text-align: left">Class template <code class="code">unique_lock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.4</td><td style="text-align: left">Generic locking algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.5</td><td style="text-align: left">Call once</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.5.1</td><td style="text-align: left"><code class="code">once_flag</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.5.2</td><td style="text-align: left"><code class="code">call_once</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.5</td><td style="text-align: left">Condition variables</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing notify_all_at_thread_exit</td></tr><tr><td style="text-align: left">30.5.1</td><td style="text-align: left">Class <code class="code">condition_variable</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.5.2</td><td style="text-align: left">Class <code class="code">condition_variable_any</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6</td><td style="text-align: left">Futures</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.1</td><td style="text-align: left">Overview</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.2</td><td style="text-align: left">Error handling</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.3</td><td style="text-align: left">Class <code class="code">future_error</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.4</td><td style="text-align: left">Associated asynchronous state</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.5</td><td style="text-align: left">Class template <code class="code">promise</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing set_*_at_thread_exit</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.6</td><td style="text-align: left">Class template <code class="code">future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing future_status and future::share()</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.7</td><td style="text-align: left">Class template <code class="code">shared_future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing future_status</td></tr><tr><td style="text-align: left">30.6.9</td><td style="text-align: left">Function template <code class="code">async</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.10</td><td style="text-align: left">Class template <code class="code">packaged_task</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing make_ready_at_thread_exit</td></tr><tr><td style="text-align: left">
++      </td></tr><tr><td style="text-align: left">30.1</td><td style="text-align: left">General</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.3</td><td style="text-align: left">Threads</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.3.1</td><td style="text-align: left">Class <code class="code">thread</code></td><td style="text-align: left">Partial</td><td style="text-align: left"><code class="code">thread::id</code> comparisons not well-defined</td></tr><tr><td style="text-align: left">30.3.2</td><td style="text-align: left">Namespace <code class="code">this_thread</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4</td><td style="text-align: left">Mutual exclusion</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1</td><td style="text-align: left">Mutex requirements</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.1</td><td style="text-align: left">In general</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.2</td><td style="text-align: left">Mutex types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.2.1</td><td style="text-align: left">Class <code class="code">mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.2.2</td><td style="text-align: left">Class <code class="code">recursive_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.3</td><td style="text-align: left">Timed mutex types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.3.1</td><td style="text-align: left">Class <code class="code">timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.1.3.2</td><td style="text-align: left">Class <code class="code">recursive_timed_mutex</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2</td><td style="text-align: left">Locks</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2.1</td><td style="text-align: left">Class template <code class="code">lock_guard</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.2.2</td><td style="text-align: left">Class template <code class="code">unique_lock</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.3</td><td style="text-align: left">Generic locking algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.4</td><td style="text-align: left">Call once</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.4.1</td><td style="text-align: left">Struct <code class="code">once_flag</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.4.4.2</td><td style="text-align: left">Function <code class="code">call_once</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.5</td><td style="text-align: left">Condition variables</td><td style="text-align: left">Partial</td><td style="text-align: left">Missing notify_all_at_thread_exit</td></tr><tr><td style="text-align: left">30.5.1</td><td style="text-align: left">Class <code class="code">condition_variable</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.5.2</td><td style="text-align: left">Class <code class="code">condition_variable_any</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6</td><td style="text-align: left">Futures</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.1</td><td style="text-align: left">Overview</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.2</td><td style="text-align: left">Error handling</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.3</td><td style="text-align: left">Class <code class="code">future_error</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">30.6.4</td><td style="text-align: left">Shared state</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.5</td><td style="text-align: left">Class template <code class="code">promise</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing set_*_at_thread_exit</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.6</td><td style="text-align: left">Class template <code class="code">future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing future_status and future::share()</td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.7</td><td style="text-align: left">Class template <code class="code">shared_future</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing future_status</td></tr><tr><td style="text-align: left">30.6.8</td><td style="text-align: left">Function template <code class="code">async</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #B0B0B0"><td style="text-align: left">30.6.9</td><td style="text-align: left">Class template <code class="code">packaged_task</code></td><td style="text-align: left">Partial</td><td style="text-align: left">Missing make_ready_at_thread_exit</td></tr><tr><td style="text-align: left">
+       	<span class="emphasis"><em>Appendix D</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Compatibility features</em></span>
+-      </td></tr><tr><td style="text-align: left">D.1</td><td style="text-align: left">Increment operator with <code class="code">bool</code> operand</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.2</td><td style="text-align: left"><code class="code">static</code> keyword</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.3</td><td style="text-align: left">Access declarations</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.4</td><td style="text-align: left"><code class="code">register</code> keyword</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.5</td><td style="text-align: left">Dynamic exception specifications</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.6</td><td style="text-align: left">C standard library headers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.7</td><td style="text-align: left">Old iostreams members</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.8</td><td style="text-align: left">char* streams</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.9</td><td style="text-align: left">Binders</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.10</td><td style="text-align: left"><code class="code">auto_ptr</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="C++ TR1"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"/>C++ TR1</h3></div></div></div><p>
++      </td></tr><tr><td style="text-align: left">D.1</td><td style="text-align: left">Increment operator with <code class="code">bool</code> operand</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.2</td><td style="text-align: left"><code class="code">register</code> keyword</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.3</td><td style="text-align: left">Implicit declaration of copy functions</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.4</td><td style="text-align: left">Dynamic exception specifications</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.5</td><td style="text-align: left">C standard library headers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.6</td><td style="text-align: left">Old iostreams members</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.7</td><td style="text-align: left"><code class="code">char*</code> streams</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.8</td><td style="text-align: left">Function objects</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.9</td><td style="text-align: left">Binders</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.10</td><td style="text-align: left"><code class="code">auto_ptr</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">D.11</td><td style="text-align: left">Violating exception-specifications</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="C++ TR1"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr1"/>C++ TR1</h3></div></div></div><p>
+ This table is based on the table of contents of ISO/IEC DTR 19768
+ Doc No: N1836=05-0096 Date: 2005-06-24
+ Draft Technical Report on C++ Library Extensions
+@@ -229,10 +244,10 @@
+ </p><p>
+ This page describes the TR1 support in mainline GCC SVN, not in any particular
+ release.
+-</p><div class="table"><a id="id576790"/><p class="title"><b>TableÂ 1.3.Â C++ TR1 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"><span class="emphasis"><em>2</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td style="text-align: left">2.1</td><td style="text-align: left">Reference wrappers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.1</td><td style="text-align: left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.1</td><td style="text-align: left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.2</td><td style="text-align: left"><code class="code">reference_wrapper</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.3</td><td style="text-align: left"><code class="code">reference_wrapper</code> access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.4</td><td style="text-align: left"><code class="code">reference_wrapper</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.5</td><td style="text-align: left"><code class="code">reference_wrapper</code> helper functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2</td><td style="text-align: left">Smart pointers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.1</td><td style="text-align: left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.2</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left">Â </td><td style="text-align: left">
++</p><div class="table"><a id="id456195"/><p class="title"><strong>TableÂ 1.3.Â C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left"><span class="emphasis"><em>2</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td style="text-align: left">2.1</td><td style="text-align: left">Reference wrappers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.1</td><td style="text-align: left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2</td><td style="text-align: left">Class template <code class="code">reference_wrapper</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.1</td><td style="text-align: left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.2</td><td style="text-align: left"><code class="code">reference_wrapper</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.3</td><td style="text-align: left"><code class="code">reference_wrapper</code> access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.4</td><td style="text-align: left"><code class="code">reference_wrapper</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.1.2.5</td><td style="text-align: left"><code class="code">reference_wrapper</code> helper functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2</td><td style="text-align: left">Smart pointers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.1</td><td style="text-align: left">Additions to header <code class="code">&lt;memory&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.2</td><td style="text-align: left">Class <code class="code">bad_weak_ptr</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3</td><td style="text-align: left">Class template <code class="code">shared_ptr</code></td><td style="text-align: left">Â </td><td style="text-align: left">
+ 	<p>
+ 	  Uses code from
+-	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="">boost::shared_ptr</a>.
++	  <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</a>.
+ 	</p>
+       </td></tr><tr><td style="text-align: left">2.2.3.1</td><td style="text-align: left"><code class="code">shared_ptr</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.2</td><td style="text-align: left"><code class="code">shared_ptr</code> destructor</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.3</td><td style="text-align: left"><code class="code">shared_ptr</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.4</td><td style="text-align: left"><code class="code">shared_ptr</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.5</td><td style="text-align: left"><code class="code">shared_ptr</code> observers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.6</td><td style="text-align: left"><code class="code">shared_ptr</code> comparison</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.7</td><td style="text-align: left"><code class="code">shared_ptr</code> I/O</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.8</td><td style="text-align: left"><code class="code">shared_ptr</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.9</td><td style="text-align: left"><code class="code">shared_ptr</code> casts</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.3.10</td><td style="text-align: left"><code class="code">get_deleter</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4</td><td style="text-align: left">Class template <code class="code">weak_ptr</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.1</td><td style="text-align: left"><code class="code">weak_ptr</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.2</td><td style="text-align: left"><code class="code">weak_ptr</code> destructor</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.3</td><td style="text-align: left"><code class="code">weak_ptr</code> assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.4</td><td style="text-align: left"><code class="code">weak_ptr</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.5</td><td style="text-align: left"><code class="code">weak_ptr</code> observers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.6</td><td style="text-align: left"><code class="code">weak_ptr</code> comparison</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.4.7</td><td style="text-align: left"><code class="code">weak_ptr</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">2.2.5</td><td style="text-align: left">Class template <code class="code">enable_shared_from_this</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>3</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Function Objects</em></span></td></tr><tr><td style="text-align: left">3.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.2</td><td style="text-align: left">Additions to <code class="code">&lt;functional&gt; synopsis</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.3</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.4</td><td style="text-align: left">Function return types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.5</td><td style="text-align: left">Function template <code class="code">mem_fn</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.6</td><td style="text-align: left">Function object binders</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.6.1</td><td style="text-align: left">Class template <code class="code">is_bind_expression</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.6.2</td><td style="text-align: left">Class template <code class="code">is_placeholder</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.6.3</td><td style="text-align: left">Function template <code class="code">bind</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.6.4</td><td style="text-align: left">Placeholders</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7</td><td style="text-align: left">Polymorphic function wrappers</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.1</td><td style="text-align: left">Class <code class="code">bad_function_call</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.1.1</td><td style="text-align: left"><code class="code">bad_function_call</code> constructor</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2</td><td style="text-align: left">Class template <code class="code">function</code></td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.1</td><td style="text-align: left"><code class="code">function</code> construct/copy/destroy</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.2</td><td style="text-align: left"><code class="code">function</code> modifiers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.3</td><td style="text-align: left"><code class="code">function</code> capacity</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.4</td><td style="text-align: left"><code class="code">function</code> invocation</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.5</td><td style="text-align: left"><code class="code">function</code> target access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.6</td><td style="text-align: left">undefined operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.7</td><td style="text-align: left">null pointer comparison operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">3.7.2.8</td><td style="text-align: left">specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>4</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Metaprogramming and type traits</em></span></td></tr><tr><td style="text-align: left">4.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.2</td><td style="text-align: left">Header <code class="code">&lt;type_traits&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.3</td><td style="text-align: left">Helper classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.4</td><td style="text-align: left">General Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.5</td><td style="text-align: left">Unary Type Traits</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.5.1</td><td style="text-align: left">Primary Type Categories</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.5.2</td><td style="text-align: left">Composite type traits</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.5.3</td><td style="text-align: left">Type properties</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.6</td><td style="text-align: left">Relationships between types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.7</td><td style="text-align: left">Transformations between types</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.7.1</td><td style="text-align: left">Const-volatile modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.7.2</td><td style="text-align: left">Reference modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.7.3</td><td style="text-align: left">Array modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.7.4</td><td style="text-align: left">Pointer modifications</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.8</td><td style="text-align: left">Other transformations</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">4.9</td><td style="text-align: left">Implementation requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>5</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Numerical Facilities</em></span></td></tr><tr><td style="text-align: left">5.1</td><td style="text-align: left">Random number generation</td><td style="text-align: left">Â </td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.1</td><td style="text-align: left">Requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.2</td><td style="text-align: left">Header <code class="code">&lt;random&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.3</td><td style="text-align: left">Class template <code class="code">variate_generator</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4</td><td style="text-align: left">Random number engine class templates</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.1</td><td style="text-align: left">Class template <code class="code">linear_congruential</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.2</td><td style="text-align: left">Class template <code class="code">mersenne_twister</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.3</td><td style="text-align: left">Class template <code class="code">subtract_with_carry</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.4</td><td style="text-align: left">Class template <code class="code">subtract_with_carry_01</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.5</td><td style="text-align: left">Class template <code class="code">discard_block</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.4.6</td><td style="text-align: left">Class template <code class="code">xor_combine</code></td><td style="text-align: left">Y</td><td style="text-align: left">operator()() per N2079</td></tr><tr><td style="text-align: left">5.1.5</td><td style="text-align: left">Engines with predefined parameters</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.6</td><td style="text-align: left">Class <code class="code">random_device</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7</td><td style="text-align: left">Random distribution class templates</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.1</td><td style="text-align: left">Class template <code class="code">uniform_int</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.2</td><td style="text-align: left">Class <code class="code">bernoulli_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.3</td><td style="text-align: left">Class template <code class="code">geometric_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.4</td><td style="text-align: left">Class template <code class="code">poisson_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.5</td><td style="text-align: left">Class template <code class="code">binomial_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.6</td><td style="text-align: left">Class template <code class="code">uniform_real</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.7</td><td style="text-align: left">Class template <code class="code">exponential_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.8</td><td style="text-align: left">Class template <code class="code">normal_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.1.7.9</td><td style="text-align: left">Class template <code class="code">gamma_distribution</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2</td><td style="text-align: left">Mathematical special functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1</td><td style="text-align: left">Additions to header <code class="code">&lt;cmath&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.1</td><td style="text-align: left">associated Laguerre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.2</td><td style="text-align: left">associated Legendre functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.3</td><td style="text-align: left">beta function</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.4</td><td style="text-align: left">(complete) elliptic integral of the first kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.5</td><td style="text-align: left">(complete) elliptic integral of the second kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.6</td><td style="text-align: left">(complete) elliptic integral of the third kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.7</td><td style="text-align: left">confluent hypergeometric functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.8</td><td style="text-align: left">regular modified cylindrical Bessel functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.9</td><td style="text-align: left">cylindrical Bessel functions (of the first kind)</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.10</td><td style="text-align: left">irregular modified cylindrical Bessel functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.11</td><td style="text-align: left">cylindrical Neumann functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.12</td><td style="text-align: left">(incomplete) elliptic integral of the first kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.13</td><td style="text-align: left">(incomplete) elliptic integral of the second kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.14</td><td style="text-align: left">(incomplete) elliptic integral of the third kind</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.15</td><td style="text-align: left">exponential integral</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.16</td><td style="text-align: left">Hermite polynomials</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.17</td><td style="text-align: left">hypergeometric functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.18</td><td style="text-align: left">Laguerre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.19</td><td style="text-align: left">Legendre polynomials</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.20</td><td style="text-align: left">Riemann zeta function</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.21</td><td style="text-align: left">spherical Bessel functions (of the first kind)</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.22</td><td style="text-align: left">spherical associated Legendre functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.1.23</td><td style="text-align: left">spherical Neumann functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">5.2.2</td><td style="text-align: left">Additions to header <code class="code">&lt;math.h&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>6</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Containers</em></span></td></tr><tr><td style="text-align: left">6.1</td><td style="text-align: left">Tuple types</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.1</td><td style="text-align: left">Header <code class="code">&lt;tuple&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.2</td><td style="text-align: left">Additions to header <code class="code">&lt;utility&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3</td><td style="text-align: left">Class template <code class="code">tuple</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3.1</td><td style="text-align: left">Construction</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3.2</td><td style="text-align: left">Tuple creation functions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3.3</td><td style="text-align: left">Tuple helper classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3.4</td><td style="text-align: left">Element access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.3.5</td><td style="text-align: left">Relational operators</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.1.4</td><td style="text-align: left">Pairs</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2</td><td style="text-align: left">Fixed size array</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.1</td><td style="text-align: left">Header <code class="code">&lt;array&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2</td><td style="text-align: left">Class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2.1</td><td style="text-align: left"><code class="code">array</code> constructors, copy, and assignment</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2.2</td><td style="text-align: left"><code class="code">array</code> specialized algorithms</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2.3</td><td style="text-align: left"><code class="code">array</code> size</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2.4</td><td style="text-align: left">Zero sized <code class="code">array</code>s</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.2.2.5</td><td style="text-align: left">Tuple interface to class template <code class="code">array</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3</td><td style="text-align: left">Unordered associative containers</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.1</td><td style="text-align: left">Unordered associative container requirements</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.1.1</td><td style="text-align: left">Exception safety guarantees</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.2</td><td style="text-align: left">Additions to header <code class="code">&lt;functional&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.3</td><td style="text-align: left">Class template <code class="code">hash</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4</td><td style="text-align: left">Unordered associative container classes</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.1</td><td style="text-align: left">Header <code class="code">&lt;unordered_set&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.2</td><td style="text-align: left">Header <code class="code">&lt;unordered_map&gt;</code> synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.3</td><td style="text-align: left">Class template <code class="code">unordered_set</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.3.1</td><td style="text-align: left"><code class="code">unordered_set</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.3.2</td><td style="text-align: left"><code class="code">unordered_set</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.4</td><td style="text-align: left">Class template <code class="code">unordered_map</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.4.1</td><td style="text-align: left"><code class="code">unordered_map</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.4.2</td><td style="text-align: left"><code class="code">unordered_map</code> element access</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.4.3</td><td style="text-align: left"><code class="code">unordered_map</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.5</td><td style="text-align: left">Class template <code class="code">unordered_multiset</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.5.1</td><td style="text-align: left"><code class="code">unordered_multiset</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.5.2</td><td style="text-align: left"><code class="code">unordered_multiset</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.6</td><td style="text-align: left">Class template <code class="code">unordered_multimap</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.6.1</td><td style="text-align: left"><code class="code">unordered_multimap</code> constructors</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">6.3.4.6.2</td><td style="text-align: left"><code class="code">unordered_multimap</code> swap</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>7</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>Regular Expressions</em></span></td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.1</td><td style="text-align: left">Definitions</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.2</td><td style="text-align: left">Requirements</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.3</td><td style="text-align: left">Regular expressions summary</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.4</td><td style="text-align: left">Header <code class="code">&lt;regex&gt;</code> synopsis</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5</td><td style="text-align: left">Namespace <code class="code">tr1::regex_constants</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.1</td><td style="text-align: left">Bitmask Type <code class="code">syntax_option_type</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.2</td><td style="text-align: left">Bitmask Type <code class="code">regex_constants::match_flag_type</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.5.3</td><td style="text-align: left">Implementation defined <code class="code">error_type</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.6</td><td style="text-align: left">Class <code class="code">regex_error</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.7</td><td style="text-align: left">Class template <code class="code">regex_traits</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8</td><td style="text-align: left">Class template <code class="code">basic_regex</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.1</td><td style="text-align: left"><code class="code">basic_regex</code> constants</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.2</td><td style="text-align: left"><code class="code">basic_regex</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.3</td><td style="text-align: left"><code class="code">basic_regex</code> assign</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.4</td><td style="text-align: left"><code class="code">basic_regex</code> constant operations</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.5</td><td style="text-align: left"><code class="code">basic_regex</code> locale</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.6</td><td style="text-align: left"><code class="code">basic_regex</code> swap</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.7</td><td style="text-align: left"><code class="code">basic_regex</code> non-member functions</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.8.7.1</td><td style="text-align: left"><code class="code">basic_regex</code> non-member swap</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9</td><td style="text-align: left">Class template <code class="code">sub_match</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9.1</td><td style="text-align: left"><code class="code">sub_match</code> members</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.9.2</td><td style="text-align: left"><code class="code">sub_match</code> non-member operators</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10</td><td style="text-align: left">Class template <code class="code">match_results</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.1</td><td style="text-align: left"><code class="code">match_results</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.2</td><td style="text-align: left"><code class="code">match_results</code> size</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.3</td><td style="text-align: left"><code class="code">match_results</code> element access</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.4</td><td style="text-align: left"><code class="code">match_results</code> formatting</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.5</td><td style="text-align: left"><code class="code">match_results</code> allocator</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.10.6</td><td style="text-align: left"><code class="code">match_results</code> swap</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11</td><td style="text-align: left">Regular expression algorithms</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.1</td><td style="text-align: left">exceptions</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.2</td><td style="text-align: left"><code class="code">regex_match</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.3</td><td style="text-align: left"><code class="code">regex_search</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.11.4</td><td style="text-align: left"><code class="code">regex_replace</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12</td><td style="text-align: left">Regular expression Iterators</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1</td><td style="text-align: left">Class template <code class="code">regex_iterator</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.1</td><td style="text-align: left"><code class="code">regex_iterator</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.2</td><td style="text-align: left"><code class="code">regex_iterator</code> comparisons</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.3</td><td style="text-align: left"><code class="code">regex_iterator</code> dereference</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.1.4</td><td style="text-align: left"><code class="code">regex_iterator</code> increment</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2</td><td style="text-align: left">Class template <code class="code">regex_token_iterator</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.1</td><td style="text-align: left"><code class="code">regex_token_iterator</code> constructors</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.2</td><td style="text-align: left"><code class="code">regex_token_iterator</code> comparisons</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.3</td><td style="text-align: left"><code class="code">regex_token_iterator</code> dereference</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.12.2.4</td><td style="text-align: left"><code class="code">regex_token_iterator</code> increment</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">7.13</td><td style="text-align: left">Modified ECMAScript regular expression grammar</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left"><span class="emphasis"><em>8</em></span></td><td colspan="3" style="text-align: left"><span class="emphasis"><em>C Compatibility</em></span></td></tr><tr><td style="text-align: left">8.1</td><td style="text-align: left">Additions to header <code class="code">&lt;complex&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.2</td><td style="text-align: left">Function <code class="code">acos</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.3</td><td style="text-align: left">Function <code class="code">asin</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.4</td><td style="text-align: left">Function <code class="code">atan</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.5</td><td style="text-align: left">Function <code class="code">acosh</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.6</td><td style="text-align: left">Function <code class="code">asinh</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.7</td><td style="text-align: left">Function <code class="code">atanh</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.8</td><td style="text-align: left">Function <code class="code">fabs</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.1.9</td><td style="text-align: left">Additional Overloads</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.2</td><td style="text-align: left">Header <code class="code">&lt;ccomplex&gt;</code></td><td style="text-align: left">N</td><td style="text-align: left">DR 551</td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.3</td><td style="text-align: left">Header <code class="code">&lt;complex.h&gt;</code></td><td style="text-align: left">N</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.4</td><td style="text-align: left">Additions to header <code class="code">&lt;cctype&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.4.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.4.2</td><td style="text-align: left">Function <code class="code">isblank</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.5</td><td style="text-align: left">Additions to header <code class="code">&lt;ctype.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.6</td><td style="text-align: left">Header <code class="code">&lt;cfenv&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.6.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.6.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.7</td><td style="text-align: left">Header <code class="code">&lt;fenv.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.8</td><td style="text-align: left">Additions to header <code class="code">&lt;cfloat&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.9</td><td style="text-align: left">Additions to header <code class="code">&lt;float.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10</td><td style="text-align: left">Additions to header <code class="code">&lt;ios&gt;</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.10.2</td><td style="text-align: left">Function <code class="code">hexfloat</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.11</td><td style="text-align: left">Header <code class="code">&lt;cinttypes&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.11.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">DR 557</td></tr><tr><td style="text-align: left">8.11.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.12</td><td style="text-align: left">Header <code class="code">&lt;inttypes.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.13</td><td style="text-align: left">Additions to header <code class="code">&lt;climits&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.14</td><td style="text-align: left">Additions to header <code class="code">&lt;limits.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr style="background-color: #C8B0B0"><td style="text-align: left">8.15</td><td style="text-align: left">Additions to header <code class="code">&lt;locale&gt;</code></td><td style="text-align: left">N</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.16</td><td style="text-align: left">Additions to header <code class="code">&lt;cmath&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.16.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.16.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.16.3</td><td style="text-align: left">Function template definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.16.4</td><td style="text-align: left">Additional overloads</td><td style="text-align: left">Y</td><td style="text-align: left">DR 568; DR 550</td></tr><tr><td style="text-align: left">8.17</td><td style="text-align: left">Additions to header <code class="code">&lt;math.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.18</td><td style="text-align: left">Additions to header <code class="code">&lt;cstdarg&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.19</td><td style="text-align: left">Additions to header <code class="code">&lt;stdarg.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.20</td><td style="text-align: left">The header <code class="code">&lt;cstdbool&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.21</td><td style="text-align: left">The header <code class="code">&lt;stdbool.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.22</td><td style="text-align: left">The header <code class="code">&lt;cstdint&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.22.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.22.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.23</td><td style="text-align: left">The header <code class="code">&lt;stdint.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.24</td><td style="text-align: left">Additions to header <code class="code">&lt;cstdio&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.24.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.24.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.24.3</td><td style="text-align: left">Additional format specifiers</td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.24.4</td><td style="text-align: left">Additions to header <code class="code">&lt;stdio.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.25</td><td style="text-align: left">Additions to header <code class="code">&lt;cstdlib&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.25.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.25.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.25.3</td><td style="text-align: left">Function <code class="code">abs</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.25.4</td><td style="text-align: left">Function <code class="code">div</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.26</td><td style="text-align: left">Additions to header <code class="code">&lt;stdlib.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.27</td><td style="text-align: left">Header <code class="code">&lt;ctgmath&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.28</td><td style="text-align: left">Header <code class="code">&lt;tgmath.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">DR 551</td></tr><tr><td style="text-align: left">8.29</td><td style="text-align: left">Additions to header <code class="code">&lt;ctime&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.30</td><td style="text-align: left">Additions to header <code class="code">&lt;cwchar&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.30.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.30.2</td><td style="text-align: left">Definitions</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.30.3</td><td style="text-align: left">Additional wide format specifiers</td><td style="text-align: left">Y</td><td style="text-align: left">C library dependency</td></tr><tr><td style="text-align: left">8.31</td><td style="text-align: left">Additions to header <code class="code">&lt;wchar.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.32</td><td style="text-align: left">Additions to header <code class="code">&lt;cwctype&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.32.1</td><td style="text-align: left">Synopsis</td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.32.2</td><td style="text-align: left">Function <code class="code">iswblank</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr><tr><td style="text-align: left">8.33</td><td style="text-align: left">Additions to header <code class="code">&lt;wctype.h&gt;</code></td><td style="text-align: left">Y</td><td style="text-align: left">Â </td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="C++ TR 24733"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.tr24733"/>C++ TR 24733</h3></div></div></div><p>
+ This table is based on the table of contents of
+@@ -242,7 +257,7 @@
+ </p><p>
+ This page describes the TR 24733 support in mainline GCC SVN, not in any
+ particular release.
+-</p><div class="table"><a id="id582361"/><p class="title"><b>TableÂ 1.4.Â C++ TR 24733 Implementation Status</b></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
++</p><div class="table"><a id="id461766"/><p class="title"><strong>TableÂ 1.4.Â C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><thead><tr><th style="text-align: left">Section</th><th style="text-align: left">Description</th><th style="text-align: left">Status</th><th style="text-align: left">Comments</th></tr></thead><tbody><tr><td style="text-align: left">
+ 	<span class="emphasis"><em>0</em></span>
+       </td><td colspan="3" style="text-align: left">
+ 	<span class="emphasis"><em>Introduction</em></span>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/streambufs.html gcc-4.6.0/libstdc++-v3/doc/html/manual/streambufs.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/streambufs.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/streambufs.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,15 +1,15 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="next" href="stringstreams.html" title="Memory Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td align="left"><a accesskey="p" href="io.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="next" href="stringstreams.html" title="Memory Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td align="left"><a accesskey="p" href="io.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
+   Input and Output
+   
+ </th><td align="right">Â <a accesskey="n" href="stringstreams.html">Next</a></td></tr></table><hr/></div><div class="section" title="Stream Buffers"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.streambufs"/>Stream Buffers</h2></div></div></div><div class="section" title="Derived streambuf Classes"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.derived"/>Derived streambuf Classes</h3></div></div></div><p>
+     </p><p>Creating your own stream buffers for I/O can be remarkably easy.
+       If you are interested in doing so, we highly recommend two very
+       excellent books:
+-      <a class="link" href="http://www.angelikalanger.com/iostreams.html" target="">Standard C++
++      <a class="link" href="http://www.angelikalanger.com/iostreams.html">Standard C++
+       IOStreams and Locales</a> by Langer and Kreft, ISBN 0-201-18395-1, and
+-      <a class="link" href="http://www.josuttis.com/libbook/" target="">The C++ Standard Library</a>
++      <a class="link" href="http://www.josuttis.com/libbook/">The C++ Standard Library</a>
+       by Nicolai Josuttis, ISBN 0-201-37926-0.  Both are published by
+       Addison-Wesley, who isn't paying us a cent for saying that, honest.
+    </p><p>Here is a simple example, io/outbuf1, from the Josuttis text.  It
+@@ -55,7 +55,7 @@
+     }
+    </pre><p>Try it yourself!  More examples can be found in 3.1.x code, in
+       <code class="code">include/ext/*_filebuf.h</code>, and in this article by James Kanze:
+-      <a class="link" href="http://kanze.james.neuf.fr/articles/fltrsbf1.html" target="">Filtering
++      <a class="link" href="http://kanze.james.neuf.fr/articles/fltrsbf1.html">Filtering
+       Streambufs</a>.
+    </p></div><div class="section" title="Buffering"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.buffering"/>Buffering</h3></div></div></div><p>First, are you sure that you understand buffering?  Particularly
+       the fact that C++ may not, in fact, have anything to do with it?
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/strings.html gcc-4.6.0/libstdc++-v3/doc/html/manual/strings.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/strings.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/strings.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 7.Â  Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="traits.html" title="Traits"/><link rel="next" href="localization.html" title="ChapterÂ 8.Â  Localization"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 7.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 7.Â  Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="traits.html" title="Traits"/><link rel="next" href="localization.html" title="ChapterÂ 8.Â  Localization"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 7.Â 
+   Strings
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="traits.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 7.Â  Strings"><div class="titlepage"><div><div><h1 class="title"><a id="std.strings"/>
++  </th><td align="right">Â <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 7.Â  Strings"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"/>ChapterÂ 7.Â 
+   Strings
+-  <a id="id595652" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings.string"/>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"/>Simple Transformations</h3></div></div></div><p>
++  <a id="id475084" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section" title="String Classes"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings.string"/>String Classes</h2></div></div></div><div class="section" title="Simple Transformations"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"/>Simple Transformations</h3></div></div></div><p>
+       Here are Standard, simple, and portable ways to perform common
+       transformations on a <code class="code">string</code> instance, such as
+       "convert to all upper case." The word transformations
+@@ -64,7 +64,7 @@
+       are overloaded names (declared in <code class="code">&lt;cctype&gt;</code> and
+       <code class="code">&lt;locale&gt;</code>) so the template-arguments for
+       <code class="code">transform&lt;&gt;</code> cannot be deduced, as explained in
+-      <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-11/msg00180.html" target="">this
++      <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-11/msg00180.html">this
+       message</a>.
+       
+       At minimum, you can write short wrappers like
+@@ -91,7 +91,7 @@
+       optimize named temporaries out of existence.
+    </p></div><div class="section" title="Case Sensitivity"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.case"/>Case Sensitivity</h3></div></div></div><p>
+     </p><p>The well-known-and-if-it-isn't-well-known-it-ought-to-be
+-      <a class="link" href="http://www.gotw.ca/gotw/" target="">Guru of the Week</a>
++      <a class="link" href="http://www.gotw.ca/gotw/">Guru of the Week</a>
+       discussions held on Usenet covered this topic in January of 1998.
+       Briefly, the challenge was, <span class="quote">â<span class="quote">write a 'ci_string' class which
+       is identical to the standard 'string' class, but is
+@@ -108,10 +108,10 @@
+    assert( strcmp( s.c_str(), "AbCdE" ) == 0 );
+    assert( strcmp( s.c_str(), "abcde" ) != 0 ); </pre><p>The solution is surprisingly easy.  The original answer was
+    posted on Usenet, and a revised version appears in Herb Sutter's
+-   book <span class="emphasis"><em>Exceptional C++</em></span> and on his website as <a class="link" href="http://www.gotw.ca/gotw/029.htm" target="">GotW 29</a>.
++   book <span class="emphasis"><em>Exceptional C++</em></span> and on his website as <a class="link" href="http://www.gotw.ca/gotw/029.htm">GotW 29</a>.
+    </p><p>See?  Told you it was easy!</p><p>
+      <span class="emphasis"><em>Added June 2000:</em></span> The May 2000 issue of C++
+-     Report contains a fascinating <a class="link" href="http://lafstern.org/matt/col2_new.pdf" target=""> article</a> by
++     Report contains a fascinating <a class="link" href="http://lafstern.org/matt/col2_new.pdf"> article</a> by
+      Matt Austern (yes, <span class="emphasis"><em>the</em></span> Matt Austern) on why
+      case-insensitive comparisons are not as easy as they seem, and
+      why creating a class is the <span class="emphasis"><em>wrong</em></span> way to go
+@@ -123,7 +123,7 @@
+       that nobody ever called me on it...)  The GotW question and answer
+       remain useful instructional tools, however.
+    </p><p><span class="emphasis"><em>Added September 2000:</em></span>  James Kanze provided a link to a
+-      <a class="link" href="http://www.unicode.org/reports/tr21/tr21-5.html" target="">Unicode
++      <a class="link" href="http://www.unicode.org/reports/tr21/tr21-5.html">Unicode
+       Technical Report discussing case handling</a>, which provides some
+       very good information.
+    </p></div><div class="section" title="Arbitrary Character Types"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.character_types"/>Arbitrary Character Types</h3></div></div></div><p>
+@@ -169,15 +169,15 @@
+       works and can be specialized even for <code class="code">int</code> and other
+       built-in types.
+    </p><p>If you want to use your own special character class, then you have
+-      <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00163.html" target="">a lot
++      <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00163.html">a lot
+       of work to do</a>, especially if you with to use i18n features
+       (facets require traits information but don't have a traits argument).
+-   </p><p>Another example of how to specialize char_traits was given <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00260.html" target="">on the
++   </p><p>Another example of how to specialize char_traits was given <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00260.html">on the
+       mailing list</a> and at a later date was put into the file <code class="code">
+       include/ext/pod_char_traits.h</code>.  We agree
+       that the way it's used with basic_string (scroll down to main())
+-      doesn't look nice, but that's because <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00236.html" target="">the
+-      nice-looking first attempt</a> turned out to <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html" target="">not
++      doesn't look nice, but that's because <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00236.html">the
++      nice-looking first attempt</a> turned out to <a class="link" href="http://gcc.gnu.org/ml/libstdc++/2002-08/msg00242.html">not
+       be conforming C++</a>, due to the rule that CharT must be a POD.
+       (See how tricky this is?)
+    </p></div><div class="section" title="Tokenizing"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.token"/>Tokenizing</h3></div></div></div><p>
+@@ -280,7 +280,7 @@
+       their application from a Win32 platform, they discover that they
+       are relying on special functions offered by the CString class.
+    </p><p>Things are not as bad as they seem.  In
+-      <a class="link" href="http://gcc.gnu.org/ml/gcc/1999-04n/msg00236.html" target="">this
++      <a class="link" href="http://gcc.gnu.org/ml/gcc/1999-04n/msg00236.html">this
+       message</a>, Joe Buck points out a few very important things:
+    </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The Standard <code class="code">string</code> supports all the operations
+ 	     that CString does, with three exceptions.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/stringstreams.html gcc-4.6.0/libstdc++-v3/doc/html/manual/stringstreams.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/stringstreams.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/stringstreams.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="streambufs.html" title="Stream Buffers"/><link rel="next" href="fstreams.html" title="File Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="streambufs.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="io.html" title="ChapterÂ 13.Â  Input and Output"/><link rel="prev" href="streambufs.html" title="Stream Buffers"/><link rel="next" href="fstreams.html" title="File Based Streams"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td align="left"><a accesskey="p" href="streambufs.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 13.Â 
+   Input and Output
+   
+ </th><td align="right">Â <a accesskey="n" href="fstreams.html">Next</a></td></tr></table><hr/></div><div class="section" title="Memory Based Streams"><div class="titlepage"><div><div><h2 class="title"><a id="std.io.memstreams"/>Memory Based Streams</h2></div></div></div><div class="section" title="Compatibility With strstream"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.memstreams.compat"/>Compatibility With strstream</h3></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/support.html gcc-4.6.0/libstdc++-v3/doc/html/manual/support.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/support.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/support.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,14 +1,14 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 4.Â  Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="next" href="dynamic_memory.html" title="Dynamic Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 4.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 4.Â  Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="next" href="dynamic_memory.html" title="Dynamic Memory"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 4.Â 
+   Support
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="bk01pt02.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 4.Â  Support"><div class="titlepage"><div><div><h1 class="title"><a id="std.support"/>
++  </th><td align="right">Â <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 4.Â  Support"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"/>ChapterÂ 4.Â 
+   Support
+-  <a id="id592185" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p>
++  <a id="id471617" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p>
+     This part deals with the functions called and objects created
+     automatically during the course of a program's existence.
+   </p><p>
+@@ -58,7 +58,7 @@
+     traits classes to give access to various implementation
+     defined-aspects of the fundamental types. The traits classes --
+     fourteen in total -- are all specializations of the template class
+-    <code class="classname">numeric_limits</code>, documented <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00593.html" target="">here</a>
++    <code class="classname">numeric_limits</code>, documented <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00593.html">here</a>
+     and defined as follows:
+     </p><pre class="programlisting">
+    template&lt;typename T&gt;
+@@ -116,14 +116,14 @@
+      overloading won't do what you expect. (This is why
+      <span class="command"><strong>g++</strong></span> has a magic extension, so that
+      <code class="constant">NULL</code> is always a pointer.)
+-    </p><p>In his book <a class="link" href="http://www.awprofessional.com/titles/0-201-92488-9/" target=""><span class="emphasis"><em>Effective
++    </p><p>In his book <a class="link" href="http://www.awprofessional.com/titles/0-201-92488-9/"><span class="emphasis"><em>Effective
+     C++</em></span></a>, Scott Meyers points out that the best way
+     to solve this problem is to not overload on pointer-vs-integer
+     types to begin with.  He also offers a way to make your own magic
+     <code class="constant">NULL</code> that will match pointers before it
+     matches integers.
+     </p><p>See
+-      <a class="link" href="http://www.awprofessional.com/titles/0-201-31015-5/" target="">the
++      <a class="link" href="http://www.awprofessional.com/titles/0-201-31015-5/">the
+       Effective C++ CD example</a>
+     </p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right">Â <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr><tr><td align="left" valign="top">PartÂ II.Â 
+     Standard Contents
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/termination.html gcc-4.6.0/libstdc++-v3/doc/html/manual/termination.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/termination.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/termination.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory"/><link rel="next" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 4.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="support.html" title="ChapterÂ 4.Â  Support"/><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory"/><link rel="next" href="diagnostics.html" title="ChapterÂ 5.Â  Diagnostics"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 4.Â 
+   Support
+   
+ </th><td align="right">Â <a accesskey="n" href="diagnostics.html">Next</a></td></tr></table><hr/></div><div class="section" title="Termination"><div class="titlepage"><div><div><h2 class="title"><a id="std.support.termination"/>Termination</h2></div></div></div><div class="section" title="Termination Handlers"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.handlers"/>Termination Handlers</h3></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/test.html gcc-4.6.0/libstdc++-v3/doc/html/manual/test.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/test.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/test.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      test&#10;    , &#10;      testsuite&#10;    , &#10;      performance&#10;    , &#10;      conformance&#10;    , &#10;      ABI&#10;    , &#10;      exception safety&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems"/><link rel="next" href="abi.html" title="ABI Policy and Guidelines"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td align="left"><a accesskey="p" href="internals.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      test&#10;    , &#10;      testsuite&#10;    , &#10;      performance&#10;    , &#10;      conformance&#10;    , &#10;      ABI&#10;    , &#10;      exception safety&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="appendix_porting.html" title="AppendixÂ B.Â  Porting and Maintenance"/><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems"/><link rel="next" href="abi.html" title="ABI Policy and Guidelines"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td align="left"><a accesskey="p" href="internals.html">Prev</a>Â </td><th width="60%" align="center">AppendixÂ B.Â 
+   Porting and Maintenance
+   
+ </th><td align="right">Â <a accesskey="n" href="abi.html">Next</a></td></tr></table><hr/></div><div class="section" title="Test"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup.test"/>Test</h2></div></div></div><p>
+@@ -146,9 +146,9 @@
+        output, and the executable output (if any).
+      </p><p>
+        Archives of test results for various versions and platforms are
+-       available on the GCC website in the <a class="link" href="http://gcc.gnu.org/gcc-4.3/buildstat.html" target="">build
++       available on the GCC website in the <a class="link" href="http://gcc.gnu.org/gcc-4.3/buildstat.html">build
+        status</a> section of each individual release, and are also
+-       archived on a daily basis on the <a class="link" href="http://gcc.gnu.org/ml/gcc-testresults/current" target="">gcc-testresults</a>
++       archived on a daily basis on the <a class="link" href="http://gcc.gnu.org/ml/gcc-testresults/current">gcc-testresults</a>
+        mailing list. Please check either of these places for a similar
+        combination of source version, operating system, and host CPU.
+      </p></div><div class="section" title="Variations"><div class="titlepage"><div><div><h4 class="title"><a id="test.run.variations"/>Variations</h4></div></div></div><p>
+@@ -493,7 +493,7 @@
+        reporting functions including:
+        </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section" title="Special Topics"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"/>Special Topics</h3></div></div></div><div class="section" title="Qualifying Exception Safety Guarantees"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"/>
+   Qualifying Exception Safety Guarantees
+-  <a id="id619257" class="indexterm"/>
++  <a id="id498690" class="indexterm"/>
+ </h4></div></div></div><div class="section" title="Overview"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"/>Overview</h5></div></div></div><p>
+ 	 Testing is composed of running a particular test sequence,
+ 	 and looking at what happens to the surrounding code when
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/traits.html gcc-4.6.0/libstdc++-v3/doc/html/manual/traits.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/traits.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/traits.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="memory.html" title="Memory"/><link rel="next" href="strings.html" title="ChapterÂ 7.Â  Strings"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td align="left"><a accesskey="p" href="memory.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="utilities.html" title="ChapterÂ 6.Â  Utilities"/><link rel="prev" href="memory.html" title="Memory"/><link rel="next" href="strings.html" title="ChapterÂ 7.Â  Strings"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td align="left"><a accesskey="p" href="memory.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 6.Â 
+   Utilities
+   
+ </th><td align="right">Â <a accesskey="n" href="strings.html">Next</a></td></tr></table><hr/></div><div class="section" title="Traits"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.traits"/>Traits</h2></div></div></div><p>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,15 +1,15 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 3.Â Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="make.html" title="Make"/><link rel="next" href="using_headers.html" title="Headers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 3.Â Using</th></tr><tr><td align="left"><a accesskey="p" href="make.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 3.Â Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="intro.html" title="PartÂ I.Â  Introduction"/><link rel="prev" href="make.html" title="Make"/><link rel="next" href="using_headers.html" title="Headers"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 3.Â Using</th></tr><tr><td align="left"><a accesskey="p" href="make.html">Prev</a>Â </td><th width="60%" align="center">PartÂ I.Â 
+   Introduction
+   
+-</th><td align="right">Â <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 3.Â Using"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro.using"/>Using</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section" title="Command Options"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.flags"/>Command Options</h2></div></div></div><p>
++</th><td align="right">Â <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 3.Â Using"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"/>ChapterÂ 3.Â Using</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section" title="Command Options"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.flags"/>Command Options</h2></div></div></div><p>
+       The set of features available in the GNU C++ library is shaped
+       by
+-      several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2//gcc/Invoking-GCC.html" target="">GCC
++      several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2//gcc/Invoking-GCC.html">GCC
+       Command Options</a>. Options that impact libstdc++ are
+       enumerated and detailed in the table below.
+     </p><p>
+       By default, <span class="command"><strong>g++</strong></span> is equivalent to  <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect.
+-    </p><div class="table"><a id="id586478"/><p class="title"><b>TableÂ 3.1.Â C++ Command Options</b></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><thead><tr><th style="text-align: left">Option Flags</th><th style="text-align: left">Description</th></tr></thead><tbody><tr><td style="text-align: left"><code class="literal">-std=c++98</code></td><td style="text-align: left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++98</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-std=c++0x</code></td><td style="text-align: left">Use the working draft of the upcoming ISO C++0x standard.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++0x</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-fexceptions</code></td><td style="text-align: left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td style="text-align: left"><code class="literal">-frtti</code></td><td style="text-align: left">As above, but RTTI-free dialect.</td></tr><tr><td style="text-align: left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td style="text-align: left">For ISO C++0x &lt;thread&gt;, &lt;future&gt;,
++    </p><div class="table"><a id="id465910"/><p class="title"><strong>TableÂ 3.1.Â C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><thead><tr><th style="text-align: left">Option Flags</th><th style="text-align: left">Description</th></tr></thead><tbody><tr><td style="text-align: left"><code class="literal">-std=c++98</code></td><td style="text-align: left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++98</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-std=c++0x</code></td><td style="text-align: left">Use the working draft of the upcoming ISO C++0x standard.</td></tr><tr><td style="text-align: left"><code class="literal">-std=gnu++0x</code></td><td style="text-align: left">As directly above, with GNU extensions.</td></tr><tr><td style="text-align: left"><code class="literal">-fexceptions</code></td><td style="text-align: left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td style="text-align: left"><code class="literal">-frtti</code></td><td style="text-align: left">As above, but RTTI-free dialect.</td></tr><tr><td style="text-align: left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td style="text-align: left">For ISO C++0x &lt;thread&gt;, &lt;future&gt;,
+       &lt;mutex&gt;, or &lt;condition_variable&gt;.</td></tr><tr><td style="text-align: left"><code class="literal">-fopenmp</code></td><td style="text-align: left">For <a class="link" href="parallel_mode.html" title="ChapterÂ 18.Â Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break"/></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="make.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="intro.html">Up</a></td><td align="right">Â <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td align="left" valign="top">MakeÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Headers</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_concurrency.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_concurrency.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_concurrency.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_concurrency.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_dynamic_or_shared.html" title="Linking"/><link rel="next" href="using_exceptions.html" title="Exceptions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr/></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.concurrency"/>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_dynamic_or_shared.html" title="Linking"/><link rel="next" href="using_exceptions.html" title="Exceptions"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr/></div><div class="section" title="Concurrency"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.concurrency"/>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
+       of multithreaded applications which use the Standard C++
+       library.  This information is GCC-specific since the C++
+       standard does not address matters of multithreaded applications.
+@@ -34,7 +34,7 @@
+       AFAIK, none of this is properly documented anywhere other than
+       in ``gcc -dumpspecs'' (look at lib and cpp entries).
+    </p></div><div class="section" title="Thread Safety"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.thread_safety"/>Thread Safety</h3></div></div></div><p>
+-We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="">SGI STL</a> definition of thread safety.
++We currently use the <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI STL</a> definition of thread safety.
+ </p><p>The library strives to be thread-safe when all of the following
+ 	 conditions are met:
+       </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>The system's libc is itself thread-safe,
+@@ -53,7 +53,7 @@
+ 	 Requisite command-line flags are used for atomic operations
+ 	 and threading. Examples of this include <code class="code">-pthread</code>
+ 	 and <code class="code">-march=native</code>, although specifics vary
+-	 depending on the host environment. See <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html" target="">Machine
++	 depending on the host environment. See <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html">Machine
+ 	 Dependent Options</a>.
+        </p></li><li class="listitem"><p>
+ 	   An implementation of atomicity.h functions
+@@ -161,9 +161,9 @@
+       threaded and non-threaded code), see Chapter 17.
+    </p><p>Two excellent pages to read when working with the Standard C++
+       containers and threads are
+-      <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html" target="">SGI's
++      <a class="link" href="http://www.sgi.com/tech/stl/thread_safety.html">SGI's
+       http://www.sgi.com/tech/stl/thread_safety.html</a> and
+-      <a class="link" href="http://www.sgi.com/tech/stl/Allocators.html" target="">SGI's
++      <a class="link" href="http://www.sgi.com/tech/stl/Allocators.html">SGI's
+       http://www.sgi.com/tech/stl/Allocators.html</a>.
+    </p><p><span class="emphasis"><em>However, please ignore all discussions about the user-level
+       configuration of the lock implementation inside the STL
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_namespaces.html" title="Namespaces"/><link rel="next" href="using_concurrency.html" title="Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td align="left"><a accesskey="p" href="using_namespaces.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr/></div><div class="section" title="Linking"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.linkage"/>Linking</h2></div></div></div><div class="section" title="Almost Nothing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"/>Almost Nothing</h3></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_namespaces.html" title="Namespaces"/><link rel="next" href="using_concurrency.html" title="Concurrency"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td align="left"><a accesskey="p" href="using_namespaces.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr/></div><div class="section" title="Linking"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.linkage"/>Linking</h2></div></div></div><div class="section" title="Almost Nothing"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"/>Almost Nothing</h3></div></div></div><p>
+ 	Or as close as it gets: freestanding. This is a minimal
+ 	configuration, with only partial support for the standard
+ 	library. Assume only the following header files can be used:
+@@ -51,10 +51,10 @@
+       But how?
+     </p><p>
+ A quick read of the relevant part of the GCC
+-      manual, <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b" target="">Compiling
++      manual, <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Invoking-G_002b_002b.html#Invoking-G_002b_002b">Compiling
+       C++ Programs</a>, specifies linking against a C++
+       library. More details from the
+-      GCC <a class="link" href="http://gcc.gnu.org/faq.html#rpath" target="">FAQ</a>,
++      GCC <a class="link" href="http://gcc.gnu.org/faq.html#rpath">FAQ</a>,
+       which states <span class="emphasis"><em>GCC does not, by default, specify a
+       location so that the dynamic linker can find dynamic libraries at
+       runtime.</em></span>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_exceptions.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_exceptions.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_exceptions.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_exceptions.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      exception&#10;    , &#10;      error&#10;    , &#10;      exception neutrality&#10;    , &#10;      exception safety&#10;    , &#10;      exception propagation&#10;    , &#10;      -fno-exceptions&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_concurrency.html" title="Concurrency"/><link rel="next" href="debug.html" title="Debugging Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td align="left"><a accesskey="p" href="using_concurrency.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr/></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.exceptions"/>Exceptions</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      C++&#10;    , &#10;      exception&#10;    , &#10;      error&#10;    , &#10;      exception neutrality&#10;    , &#10;      exception safety&#10;    , &#10;      exception propagation&#10;    , &#10;      -fno-exceptions&#10;    "/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_concurrency.html" title="Concurrency"/><link rel="next" href="debug.html" title="Debugging Support"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td align="left"><a accesskey="p" href="using_concurrency.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr/></div><div class="section" title="Exceptions"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.exceptions"/>Exceptions</h2></div></div></div><p>
+ The C++ language provides language support for stack unwinding
+ with <code class="literal">try</code> and <code class="literal">catch</code> blocks and
+ the <code class="literal">throw</code> keyword.
+@@ -113,7 +113,7 @@
+     support <code class="literal">try</code> and <code class="literal">catch</code> blocks
+     and thrown objects. (Language support
+     for <code class="literal">-fno-exceptions</code> is documented in the GNU
+-    GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options" target="">manual</a>.)
++    GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options">manual</a>.)
+   </p><p>Before detailing the library support
+     for <code class="literal">-fno-exceptions</code>, first a passing note on
+     the things lost when this flag is used: it will break exceptions
+@@ -266,7 +266,7 @@
+   }
+   catch(...)
+   { this-&gt;_M_setstate(ios_base::badbit); }
+-</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id591326"/><p><span class="biblioid">
++</pre></div></div><div class="bibliography" title="Bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"/>Bibliography</h3></div></div></div><div class="biblioentry"><a id="id470759"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
+       </em>. </span><span class="pagenums">
+@@ -274,34 +274,34 @@
+     . </span><span class="copyright">Copyright Â© 2008 
+ 	The Open Group/The Institute of Electrical and Electronics
+ 	Engineers, Inc.
+-      . </span></p></div><div class="biblioentry"><a id="id591359"/><p><span class="biblioid">
++      . </span></p></div><div class="biblioentry"><a id="id470792"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Error and Exception Handling
+       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
+ 	Boost
+-      . </span></span></p></div><div class="biblioentry"><a id="id591392"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id470825"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Exception-Safety in Generic Components
+       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
+ 	Boost
+-      . </span></span></p></div><div class="biblioentry"><a id="id591426"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id470858"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Standard Library Exception Policy
+       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
+ 	WG21 N1077
+-      . </span></span></p></div><div class="biblioentry"><a id="id591459"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id470891"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	ia64 c++ abi exception handling
+       </em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
+ 	GNU
+-      . </span></span></p></div><div class="biblioentry"><a id="id591492"/><p><span class="biblioid">
++      . </span></span></p></div><div class="biblioentry"><a id="id470924"/><p><span class="biblioid">
+       . </span><span class="citetitle"><em class="citetitle">
+ 	Appendix E: Standard-Library Exception Safety
+-      </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id591518"/><p><span class="citetitle"><em class="citetitle">
++      </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="id470950"/><p><span class="citetitle"><em class="citetitle">
+       Exceptional C++
+     </em>. </span><span class="pagenums">
+       Exception-Safety Issues and Techniques
+-    . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="id591538"/><p><span class="biblioid">
++    . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="id470970"/><p><span class="biblioid">
+     . </span><span class="citetitle"><em class="citetitle">
+       GCC Bug 25191: exception_defines.h #defines try/catch
+     </em>. </span></p></div></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using_concurrency.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right">Â <a accesskey="n" href="debug.html">Next</a></td></tr><tr><td align="left" valign="top">ConcurrencyÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Debugging Support</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_headers.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_headers.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_headers.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_headers.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="next" href="using_macros.html" title="Macros"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td align="left"><a accesskey="p" href="using.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr/></div><div class="section" title="Headers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.headers"/>Headers</h2></div></div></div><div class="section" title="Header Files"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"/>Header Files</h3></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="next" href="using_macros.html" title="Macros"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td align="left"><a accesskey="p" href="using.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr/></div><div class="section" title="Headers"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.headers"/>Headers</h2></div></div></div><div class="section" title="Header Files"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"/>Header Files</h3></div></div></div><p>
+      The C++ standard specifies the entire set of header files that
+      must be available to all hosted implementations.  Actually, the
+      word "files" is a misnomer, since the contents of the
+@@ -20,19 +20,19 @@
+      upcoming 200x standard.
+    </p><p>
+      C++98/03 include files. These are available in the default compilation mode, i.e. <code class="code">-std=c++98</code> or <code class="code">-std=gnu++98</code>.
+-   </p><div class="table"><a id="id586707"/><p class="title"><b>TableÂ 3.2.Â C++ 1998 Library Headers</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">complex</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td></tr><tr><td style="text-align: left"><code class="filename">fstream</code></td><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td><td style="text-align: left"><code class="filename">iosfwd</code></td></tr><tr><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td><td style="text-align: left"><code class="filename">list</code></td></tr><tr><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td></tr><tr><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td></tr><tr><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id587011"/><p class="title"><b>TableÂ 3.3.Â C++ 1998 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">ciso646</code></td></tr><tr><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td></tr><tr><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p>
++   </p><div class="table"><a id="id466139"/><p class="title"><strong>TableÂ 3.2.Â C++ 1998 Library Headers</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">complex</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td></tr><tr><td style="text-align: left"><code class="filename">fstream</code></td><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td><td style="text-align: left"><code class="filename">iosfwd</code></td></tr><tr><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td><td style="text-align: left"><code class="filename">list</code></td></tr><tr><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td></tr><tr><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td></tr><tr><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id466443"/><p class="title"><strong>TableÂ 3.3.Â C++ 1998 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">ciso646</code></td></tr><tr><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td></tr><tr><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p>
+ C++0x include files. These are only available in C++0x compilation
+ mode, i.e. <code class="literal">-std=c++0x</code> or <code class="literal">-std=gnu++0x</code>.
+-</p><p/><div class="table"><a id="id587217"/><p class="title"><b>TableÂ 3.4.Â C++ 200x Library Headers</b></p><div class="table-contents"><table summary="C++ 200x Library Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">array</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">chrono</code></td><td style="text-align: left"><code class="filename">complex</code></td></tr><tr><td style="text-align: left"><code class="filename">condition_variable</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td><td style="text-align: left"><code class="filename">forward_list</code></td><td style="text-align: left"><code class="filename">fstream</code></td></tr><tr><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">future</code></td><td style="text-align: left"><code class="filename">initalizer_list</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td></tr><tr><td style="text-align: left"><code class="filename">iosfwd</code></td><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td></tr><tr><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">mutex</code></td></tr><tr><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">random</code></td></tr><tr><td style="text-align: left"><code class="filename">ratio</code></td><td style="text-align: left"><code class="filename">regex</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">system_error</code></td><td style="text-align: left"><code class="filename">thread</code></td></tr><tr><td style="text-align: left"><code class="filename">tuple</code></td><td style="text-align: left"><code class="filename">type_traits</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id587646"/><p class="title"><b>TableÂ 3.5.Â C++ 200x Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ 200x Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">ccomplex</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cfenv</code></td></tr><tr><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">cinttypes</code></td><td style="text-align: left"><code class="filename">ciso646</code></td><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td></tr><tr><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstdbool</code></td></tr><tr><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdint</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctgmath</code></td><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cuchar</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
++</p><p/><div class="table"><a id="id466649"/><p class="title"><strong>TableÂ 3.4.Â C++ 200x Library Headers</strong></p><div class="table-contents"><table summary="C++ 200x Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">algorithm</code></td><td style="text-align: left"><code class="filename">array</code></td><td style="text-align: left"><code class="filename">bitset</code></td><td style="text-align: left"><code class="filename">chrono</code></td><td style="text-align: left"><code class="filename">complex</code></td></tr><tr><td style="text-align: left"><code class="filename">condition_variable</code></td><td style="text-align: left"><code class="filename">deque</code></td><td style="text-align: left"><code class="filename">exception</code></td><td style="text-align: left"><code class="filename">forward_list</code></td><td style="text-align: left"><code class="filename">fstream</code></td></tr><tr><td style="text-align: left"><code class="filename">functional</code></td><td style="text-align: left"><code class="filename">future</code></td><td style="text-align: left"><code class="filename">initalizer_list</code></td><td style="text-align: left"><code class="filename">iomanip</code></td><td style="text-align: left"><code class="filename">ios</code></td></tr><tr><td style="text-align: left"><code class="filename">iosfwd</code></td><td style="text-align: left"><code class="filename">iostream</code></td><td style="text-align: left"><code class="filename">istream</code></td><td style="text-align: left"><code class="filename">iterator</code></td><td style="text-align: left"><code class="filename">limits</code></td></tr><tr><td style="text-align: left"><code class="filename">list</code></td><td style="text-align: left"><code class="filename">locale</code></td><td style="text-align: left"><code class="filename">map</code></td><td style="text-align: left"><code class="filename">memory</code></td><td style="text-align: left"><code class="filename">mutex</code></td></tr><tr><td style="text-align: left"><code class="filename">new</code></td><td style="text-align: left"><code class="filename">numeric</code></td><td style="text-align: left"><code class="filename">ostream</code></td><td style="text-align: left"><code class="filename">queue</code></td><td style="text-align: left"><code class="filename">random</code></td></tr><tr><td style="text-align: left"><code class="filename">ratio</code></td><td style="text-align: left"><code class="filename">regex</code></td><td style="text-align: left"><code class="filename">set</code></td><td style="text-align: left"><code class="filename">sstream</code></td><td style="text-align: left"><code class="filename">stack</code></td></tr><tr><td style="text-align: left"><code class="filename">stdexcept</code></td><td style="text-align: left"><code class="filename">streambuf</code></td><td style="text-align: left"><code class="filename">string</code></td><td style="text-align: left"><code class="filename">system_error</code></td><td style="text-align: left"><code class="filename">thread</code></td></tr><tr><td style="text-align: left"><code class="filename">tuple</code></td><td style="text-align: left"><code class="filename">type_traits</code></td><td style="text-align: left"><code class="filename">typeinfo</code></td><td style="text-align: left"><code class="filename">unordered_map</code></td><td style="text-align: left"><code class="filename">unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">utility</code></td><td style="text-align: left"><code class="filename">valarray</code></td><td style="text-align: left"><code class="filename">vector</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id467078"/><p class="title"><strong>TableÂ 3.5.Â C++ 200x Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 200x Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cassert</code></td><td style="text-align: left"><code class="filename">ccomplex</code></td><td style="text-align: left"><code class="filename">cctype</code></td><td style="text-align: left"><code class="filename">cerrno</code></td><td style="text-align: left"><code class="filename">cfenv</code></td></tr><tr><td style="text-align: left"><code class="filename">cfloat</code></td><td style="text-align: left"><code class="filename">cinttypes</code></td><td style="text-align: left"><code class="filename">ciso646</code></td><td style="text-align: left"><code class="filename">climits</code></td><td style="text-align: left"><code class="filename">clocale</code></td></tr><tr><td style="text-align: left"><code class="filename">cmath</code></td><td style="text-align: left"><code class="filename">csetjmp</code></td><td style="text-align: left"><code class="filename">csignal</code></td><td style="text-align: left"><code class="filename">cstdarg</code></td><td style="text-align: left"><code class="filename">cstdbool</code></td></tr><tr><td style="text-align: left"><code class="filename">cstddef</code></td><td style="text-align: left"><code class="filename">cstdint</code></td><td style="text-align: left"><code class="filename">cstdlib</code></td><td style="text-align: left"><code class="filename">cstdio</code></td><td style="text-align: left"><code class="filename">cstring</code></td></tr><tr><td style="text-align: left"><code class="filename">ctgmath</code></td><td style="text-align: left"><code class="filename">ctime</code></td><td style="text-align: left"><code class="filename">cuchar</code></td><td style="text-align: left"><code class="filename">cwchar</code></td><td style="text-align: left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
+   In addition, TR1 includes as:
+-</p><div class="table"><a id="id587895"/><p class="title"><b>TableÂ 3.6.Â C++ TR 1 Library Headers</b></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/array</code></td><td style="text-align: left"><code class="filename">tr1/complex</code></td><td style="text-align: left"><code class="filename">tr1/memory</code></td><td style="text-align: left"><code class="filename">tr1/functional</code></td><td style="text-align: left"><code class="filename">tr1/random</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/regex</code></td><td style="text-align: left"><code class="filename">tr1/tuple</code></td><td style="text-align: left"><code class="filename">tr1/type_traits</code></td><td style="text-align: left"><code class="filename">tr1/unordered_map</code></td><td style="text-align: left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/utility</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id588036"/><p class="title"><b>TableÂ 3.7.Â C++ TR 1 Library Headers for C Library Facilities</b></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/ccomplex</code></td><td style="text-align: left"><code class="filename">tr1/cfenv</code></td><td style="text-align: left"><code class="filename">tr1/cfloat</code></td><td style="text-align: left"><code class="filename">tr1/cmath</code></td><td style="text-align: left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/climits</code></td><td style="text-align: left"><code class="filename">tr1/cstdarg</code></td><td style="text-align: left"><code class="filename">tr1/cstdbool</code></td><td style="text-align: left"><code class="filename">tr1/cstdint</code></td><td style="text-align: left"><code class="filename">tr1/cstdio</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/cstdlib</code></td><td style="text-align: left"><code class="filename">tr1/ctgmath</code></td><td style="text-align: left"><code class="filename">tr1/ctime</code></td><td style="text-align: left"><code class="filename">tr1/cwchar</code></td><td style="text-align: left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p>Decimal floating-point arithmetic is available if the C++
++</p><div class="table"><a id="id467327"/><p class="title"><strong>TableÂ 3.6.Â C++ TR 1 Library Headers</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/array</code></td><td style="text-align: left"><code class="filename">tr1/complex</code></td><td style="text-align: left"><code class="filename">tr1/memory</code></td><td style="text-align: left"><code class="filename">tr1/functional</code></td><td style="text-align: left"><code class="filename">tr1/random</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/regex</code></td><td style="text-align: left"><code class="filename">tr1/tuple</code></td><td style="text-align: left"><code class="filename">tr1/type_traits</code></td><td style="text-align: left"><code class="filename">tr1/unordered_map</code></td><td style="text-align: left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/utility</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id467468"/><p class="title"><strong>TableÂ 3.7.Â C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">tr1/ccomplex</code></td><td style="text-align: left"><code class="filename">tr1/cfenv</code></td><td style="text-align: left"><code class="filename">tr1/cfloat</code></td><td style="text-align: left"><code class="filename">tr1/cmath</code></td><td style="text-align: left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/climits</code></td><td style="text-align: left"><code class="filename">tr1/cstdarg</code></td><td style="text-align: left"><code class="filename">tr1/cstdbool</code></td><td style="text-align: left"><code class="filename">tr1/cstdint</code></td><td style="text-align: left"><code class="filename">tr1/cstdio</code></td></tr><tr><td style="text-align: left"><code class="filename">tr1/cstdlib</code></td><td style="text-align: left"><code class="filename">tr1/ctgmath</code></td><td style="text-align: left"><code class="filename">tr1/ctime</code></td><td style="text-align: left"><code class="filename">tr1/cwchar</code></td><td style="text-align: left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break"/><p>Decimal floating-point arithmetic is available if the C++
+ compiler supports scalar decimal floating-point types defined via
+ <code class="code">__attribute__((mode(SD|DD|LD)))</code>.
+-</p><div class="table"><a id="id588211"/><p class="title"><b>TableÂ 3.8.Â C++ TR 24733 Decimal Floating-Point Header</b></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
++</p><div class="table"><a id="id467644"/><p class="title"><strong>TableÂ 3.8.Â C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col style="text-align: left" class="c1"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
+   Also included are files for the C++ ABI interface:
+-</p><div class="table"><a id="id588257"/><p class="title"><b>TableÂ 3.9.Â C++ ABI Headers</b></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cxxabi.h</code></td><td style="text-align: left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
++</p><div class="table"><a id="id467690"/><p class="title"><strong>TableÂ 3.9.Â C++ ABI Headers</strong></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">cxxabi.h</code></td><td style="text-align: left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break"/><p>
+   And a large variety of extensions.
+-</p><div class="table"><a id="id588311"/><p class="title"><b>TableÂ 3.10.Â Extension Headers</b></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">ext/algorithm</code></td><td style="text-align: left"><code class="filename">ext/atomicity.h</code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/cast.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/codecvt_specializations.h</code></td><td style="text-align: left"><code class="filename">ext/concurrence.h</code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/enc_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/functional</code></td><td style="text-align: left"><code class="filename">ext/iterator</code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/memory</code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/numeric</code></td><td style="text-align: left"><code class="filename">ext/numeric_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/pod_char_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/rb_tree</code></td><td style="text-align: left"><code class="filename">ext/rope</code></td><td style="text-align: left"><code class="filename">ext/slist</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/stdio_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/typelist.h</code></td><td style="text-align: left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id588608"/><p class="title"><b>TableÂ 3.11.Â Extension Debug Headers</b></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">debug/bitset</code></td><td style="text-align: left"><code class="filename">debug/deque</code></td><td style="text-align: left"><code class="filename">debug/list</code></td><td style="text-align: left"><code class="filename">debug/map</code></td><td style="text-align: left"><code class="filename">debug/set</code></td></tr><tr><td style="text-align: left"><code class="filename">debug/string</code></td><td style="text-align: left"><code class="filename">debug/unordered_map</code></td><td style="text-align: left"><code class="filename">debug/unordered_set</code></td><td style="text-align: left"><code class="filename">debug/vector</code></td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id588731"/><p class="title"><b>TableÂ 3.12.Â Extension Profile Headers</b></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">profile/bitset</code></td><td style="text-align: left"><code class="filename">profile/deque</code></td><td style="text-align: left"><code class="filename">profile/list</code></td><td style="text-align: left"><code class="filename">profile/map</code></td></tr><tr><td style="text-align: left"><code class="filename">profile/set</code></td><td style="text-align: left"><code class="filename">profile/unordered_map</code></td><td style="text-align: left"><code class="filename">profile/unordered_set</code></td><td style="text-align: left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id588843"/><p class="title"><b>TableÂ 3.13.Â Extension Parallel Headers</b></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col style="text-align: left"/><col style="text-align: left"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">parallel/algorithm</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="Mixing Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"/>Mixing Headers</h3></div></div></div><p> A few simple rules.
++</p><div class="table"><a id="id467743"/><p class="title"><strong>TableÂ 3.10.Â Extension Headers</strong></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">ext/algorithm</code></td><td style="text-align: left"><code class="filename">ext/atomicity.h</code></td><td style="text-align: left"><code class="filename">ext/array_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/bitmap_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/cast.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/codecvt_specializations.h</code></td><td style="text-align: left"><code class="filename">ext/concurrence.h</code></td><td style="text-align: left"><code class="filename">ext/debug_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/enc_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/functional</code></td><td style="text-align: left"><code class="filename">ext/iterator</code></td><td style="text-align: left"><code class="filename">ext/malloc_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/memory</code></td><td style="text-align: left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/new_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/numeric</code></td><td style="text-align: left"><code class="filename">ext/numeric_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td style="text-align: left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/pod_char_traits.h</code></td><td style="text-align: left"><code class="filename">ext/pool_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/rb_tree</code></td><td style="text-align: left"><code class="filename">ext/rope</code></td><td style="text-align: left"><code class="filename">ext/slist</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/stdio_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td style="text-align: left"><code class="filename">ext/throw_allocator.h</code></td><td style="text-align: left"><code class="filename">ext/typelist.h</code></td><td style="text-align: left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td style="text-align: left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id468041"/><p class="title"><strong>TableÂ 3.11.Â Extension Debug Headers</strong></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/><col style="text-align: left" class="c5"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">debug/bitset</code></td><td style="text-align: left"><code class="filename">debug/deque</code></td><td style="text-align: left"><code class="filename">debug/list</code></td><td style="text-align: left"><code class="filename">debug/map</code></td><td style="text-align: left"><code class="filename">debug/set</code></td></tr><tr><td style="text-align: left"><code class="filename">debug/string</code></td><td style="text-align: left"><code class="filename">debug/unordered_map</code></td><td style="text-align: left"><code class="filename">debug/unordered_set</code></td><td style="text-align: left"><code class="filename">debug/vector</code></td><td class="auto-generated">Â </td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id468164"/><p class="title"><strong>TableÂ 3.12.Â Extension Profile Headers</strong></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/><col style="text-align: left" class="c3"/><col style="text-align: left" class="c4"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">profile/bitset</code></td><td style="text-align: left"><code class="filename">profile/deque</code></td><td style="text-align: left"><code class="filename">profile/list</code></td><td style="text-align: left"><code class="filename">profile/map</code></td></tr><tr><td style="text-align: left"><code class="filename">profile/set</code></td><td style="text-align: left"><code class="filename">profile/unordered_map</code></td><td style="text-align: left"><code class="filename">profile/unordered_set</code></td><td style="text-align: left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break"/><p/><div class="table"><a id="id468275"/><p class="title"><strong>TableÂ 3.13.Â Extension Parallel Headers</strong></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col style="text-align: left" class="c1"/><col style="text-align: left" class="c2"/></colgroup><tbody><tr><td style="text-align: left"><code class="filename">parallel/algorithm</code></td><td style="text-align: left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="Mixing Headers"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"/>Mixing Headers</h3></div></div></div><p> A few simple rules.
+ </p><p>First, mixing different dialects of the standard headers is not
+ possible. It's an all-or-nothing affair. Thus, code like
+ </p><pre class="programlisting">
+@@ -100,5 +100,5 @@
+ ! ./stdc++.h.gch
+ . /mnt/share/bld/H-x86-gcc.20071201/include/c++/4.3.0/iostream
+ . /mnt/share/bld/H-x86-gcc.20071201include/c++/4.3.0/string
+-</pre><p>The exclamation point to the left of the <code class="code">stdc++.h.gch</code> listing means that the generated PCH file was used, and thus the </p><p/><p> Detailed information about creating precompiled header files can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html" target="">documentation</a>.
++</pre><p>The exclamation point to the left of the <code class="code">stdc++.h.gch</code> listing means that the generated PCH file was used, and thus the </p><p/><p> Detailed information about creating precompiled header files can be found in the GCC <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html">documentation</a>.
+ </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="using.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="using.html">Up</a></td><td align="right">Â <a accesskey="n" href="using_macros.html">Next</a></td></tr><tr><td align="left" valign="top">ChapterÂ 3.Â UsingÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Macros</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_macros.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_macros.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_macros.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_macros.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_headers.html" title="Headers"/><link rel="next" href="using_namespaces.html" title="Namespaces"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td align="left"><a accesskey="p" href="using_headers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr/></div><div class="section" title="Macros"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.macros"/>Macros</h2></div></div></div><p>
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_headers.html" title="Headers"/><link rel="next" href="using_namespaces.html" title="Namespaces"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td align="left"><a accesskey="p" href="using_headers.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr/></div><div class="section" title="Macros"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.macros"/>Macros</h2></div></div></div><p>
+      All library macros begin with <code class="code">_GLIBCXX_</code>.
+    </p><p>
+      Furthermore, all pre-processor macros, switches, and
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_namespaces.html gcc-4.6.0/libstdc++-v3/doc/html/manual/using_namespaces.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/using_namespaces.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/using_namespaces.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_macros.html" title="Macros"/><link rel="next" href="using_dynamic_or_shared.html" title="Linking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td align="left"><a accesskey="p" href="using_macros.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr/></div><div class="section" title="Namespaces"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.namespaces"/>Namespaces</h2></div></div></div><div class="section" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"/>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="using.html" title="ChapterÂ 3.Â Using"/><link rel="prev" href="using_macros.html" title="Macros"/><link rel="next" href="using_dynamic_or_shared.html" title="Linking"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td align="left"><a accesskey="p" href="using_macros.html">Prev</a>Â </td><th width="60%" align="center">ChapterÂ 3.Â Using</th><td align="right">Â <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr/></div><div class="section" title="Namespaces"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using.namespaces"/>Namespaces</h2></div></div></div><div class="section" title="Available Namespaces"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"/>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
+ </p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
+ within namespace std." This includes namespaces nested
+ within <code class="code">namespace std</code>, such as <code class="code">namespace
+@@ -11,7 +11,7 @@
+ </p></li><li class="listitem"><p>__gnu_</p><p>Indicating one of several GNU extensions. Choices
+ include <code class="code">__gnu_cxx</code>, <code class="code">__gnu_debug</code>, <code class="code">__gnu_parallel</code>,
+ and <code class="code">__gnu_pbds</code>.
+-</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html" target="">documentation</a>.
++</p></li></ul></div><p> A complete list of implementation namespaces (including namespace contents) is available in the generated source <a class="link" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html">documentation</a>.
+ </p></div><div class="section" title="namespace std"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.std"/>namespace std</h3></div></div></div><p>
+       One standard requirement is that the library components are defined
+       in <code class="code">namespace std::</code>. Thus, in order to use these types or
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/utilities.html gcc-4.6.0/libstdc++-v3/doc/html/manual/utilities.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/manual/utilities.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/manual/utilities.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,17 +1,17 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 6.Â  Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="bk01pt02ch05s02.html" title="Concept Checking"/><link rel="next" href="pairs.html" title="Pairs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 6.Â 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>ChapterÂ 6.Â  Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><meta name="keywords" content="&#10;      ISO C++&#10;    , &#10;      library&#10;    "/><link rel="home" href="../spine.html" title="The GNU C++ Library"/><link rel="up" href="bk01pt02.html" title="PartÂ II.Â  Standard Contents"/><link rel="prev" href="bk01pt02ch05s02.html" title="Concept Checking"/><link rel="next" href="pairs.html" title="Pairs"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ChapterÂ 6.Â 
+   Utilities
+   
+ </th></tr><tr><td align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a>Â </td><th width="60%" align="center">PartÂ II.Â 
+     Standard Contents
+-  </th><td align="right">Â <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 6.Â  Utilities"><div class="titlepage"><div><div><h1 class="title"><a id="std.util"/>
++  </th><td align="right">Â <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr/></div><div class="chapter" title="ChapterÂ 6.Â  Utilities"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"/>ChapterÂ 6.Â 
+   Utilities
+-  <a id="id593161" class="indexterm"/>
+-</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.functors"/>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone.  Many people
++  <a id="id472594" class="indexterm"/>
++</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section" title="Functors"><div class="titlepage"><div><div><h2 class="title"><a id="std.util.functors"/>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone.  Many people
+       get slightly the wrong idea.  In the interest of not reinventing
+       the wheel, we will refer you to the introduction to the functor
+       concept written by SGI as chapter of their STL, in
+-      <a class="link" href="http://www.sgi.com/tech/stl/functors.html" target="">their
++      <a class="link" href="http://www.sgi.com/tech/stl/functors.html">their
+       http://www.sgi.com/tech/stl/functors.html</a>.
+    </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td align="left"><a accesskey="p" href="bk01pt02ch05s02.html">Prev</a>Â </td><td align="center"><a accesskey="u" href="bk01pt02.html">Up</a></td><td align="right">Â <a accesskey="n" href="pairs.html">Next</a></td></tr><tr><td align="left" valign="top">Concept CheckingÂ </td><td align="center"><a accesskey="h" href="../spine.html">Home</a></td><td align="right" valign="top">Â Pairs</td></tr></table></div></body></html>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/html/spine.html gcc-4.6.0/libstdc++-v3/doc/html/spine.html
+--- gcc-4.6.0.orig/libstdc++-v3/doc/html/spine.html	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/html/spine.html	2011-05-05 23:39:58.659199000 +0000
+@@ -1,8 +1,8 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+-<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="next" href="manual/spine.html" title="The GNU C++ Library Manual"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td align="left">Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="manual/spine.html">Next</a></td></tr></table><hr/></div><div class="set" title="The GNU C++ Library" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"/>The GNU C++ Library</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"/> <span class="surname"/></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright Â© 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 
+-      <a class="link" href="http://www.fsf.org" target="">FSF</a>
+-    </p></div></div><hr/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="book"><a href="manual/spine.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. 
++<html xmlns="http://www.w3.org/1999/xhtml"><head><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"/><link rel="home" href="spine.html" title="The GNU C++ Library"/><link rel="next" href="manual/spine.html" title="The GNU C++ Library Manual"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td align="left">Â </td><th width="60%" align="center">Â </th><td align="right">Â <a accesskey="n" href="manual/spine.html">Next</a></td></tr></table><hr/></div><div class="set" title="The GNU C++ Library" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"/>The GNU C++ Library</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"/> <span class="surname"/></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright Â© 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 
++      <a class="link" href="http://www.fsf.org">FSF</a>
++    </p></div></div><hr/></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="book"><a href="manual/spine.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I. 
+   Introduction
+   
+ </a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.200x">C++ 200x</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/bk01pt02.html">II. 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/xml/manual/documentation_hacking.xml gcc-4.6.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml
+--- gcc-4.6.0.orig/libstdc++-v3/doc/xml/manual/documentation_hacking.xml	2011-02-08 18:33:31.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml	2011-05-05 23:39:58.659199000 +0000
+@@ -746,7 +746,7 @@
+ 
+       <para>
+ 	Please note that individual sections and chapters of the
+-	manual can be validated by substiuting the file desired for
++	manual can be validated by substituting the file desired for
+ 	<filename>xml/index.xml</filename> in the command
+ 	above. Reducing scope in this manner can be helpful when
+ 	validation on the entire manual fails.
+@@ -987,4 +987,4 @@
+ 
+ </section>
+ </section>
+-</section>
+\ No newline at end of file
++</section>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/doc/xml/manual/status_cxx200x.xml gcc-4.6.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml
+--- gcc-4.6.0.orig/libstdc++-v3/doc/xml/manual/status_cxx200x.xml	2011-02-10 00:54:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/doc/xml/manual/status_cxx200x.xml	2011-05-05 23:39:58.659199000 +0000
+@@ -15,8 +15,8 @@
+ 
+ <para>
+ This table is based on the table of contents of ISO/IEC
+-JTC1 SC22 WG21 Doc No: N3092 Date: 2010-03-26
+-Final Committee Draft, Standard for Programming Language C++
++JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11
++Final Draft International Standard, Standard for Programming Language C++
+ </para>
+ 
+ <para>
+@@ -30,8 +30,7 @@
+ </para>
+ 
+ <para>
+-This page describes the C++0x support in mainline GCC SVN, not in any
+-particular release.
++This page describes the C++0x support in the GCC 4.6 release series.
+ </para>
+ 
+ <!-- Status is Yes or No, Broken/Partial-->
+@@ -92,46 +91,46 @@
+     </row>
+ 
+     <row>
+-      <entry>18.3.1</entry>
++      <entry>18.3.2</entry>
+       <entry>Numeric Limits</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>18.3.1.1</entry>
++      <entry>18.3.2.3</entry>
+       <entry>Class template <code>numeric_limits</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>18.3.1.2</entry>
++      <entry>18.3.2.4</entry>
+       <entry><code>numeric_limits</code> members</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>18.3.1.3</entry>
++      <entry>18.3.2.5</entry>
+       <entry><code>float_round_style</code></entry>
+       <entry>N</entry>
+       <entry/>
+     </row>
+     <row>
+       <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>18.3.1.4</entry>
++      <entry>18.3.2.6</entry>
+       <entry><code>float_denorm_style</code></entry>
+       <entry>N</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>18.3.1.5</entry>
++      <entry>18.3.2.7</entry>
+       <entry><code>numeric_limits</code> specializations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+ 
+     <row>
+-      <entry>18.3.2</entry>
++      <entry>18.3.3</entry>
+       <entry>C Library</entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -200,7 +199,7 @@
+     </row>
+     <row>
+       <entry>18.8.2</entry>
+-      <entry>Violating exception-specifications</entry>
++      <entry>Class bad_exception</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -343,66 +342,66 @@
+     </row>
+     <row>
+       <entry>20.2</entry>
+-      <entry>Requirements</entry>
+-      <entry/>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>20.3</entry>
+       <entry>Utility components</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.1</entry>
++      <entry>20.2.1</entry>
+       <entry>Operators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.2</entry>
++      <entry>20.2.2</entry>
+       <entry>Swap</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.3</entry>
++      <entry>20.2.3</entry>
+       <entry><code>forward</code> and <code>move</code> helpers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.4</entry>
++      <entry>20.2.4</entry>
+       <entry>Function template <code>declval</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.5</entry>
++      <entry>20.3</entry>
+       <entry>Pairs</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.5.1</entry>
++      <entry>20.3.1</entry>
+       <entry>In general</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.5.2</entry>
++      <entry>20.3.2</entry>
+       <entry>Class template <code>pair</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.5.3</entry>
++      <entry>20.3.3</entry>
++      <entry>Specialized algorithms</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.3.4</entry>
+       <entry>Tuple-like access to <code>pair</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.3.5.5</entry>
++      <entry>20.3.5</entry>
+       <entry>Piecewise construction</entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -422,6 +421,62 @@
+     <row>
+       <entry>20.4.2</entry>
+       <entry>Class template <code>tuple</code></entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.1</entry>
++      <entry>Construction</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.2</entry>
++      <entry>Assignment</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.3</entry>
++      <entry>Swap</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#B0B0B0" ?>
++      <entry>20.4.2.4</entry>
++      <entry>Tuple creation functions</entry>
++      <entry>Partial</entry>
++      <entry><code>tuple_cat</code> should be a single variadic signature (DR 1385)</entry>
++    </row>
++    <row>
++      <entry>20.4.2.5</entry>
++      <entry>Tuple helper classes</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.6</entry>
++      <entry>Element access</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.7</entry>
++      <entry>Relational operators</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.4.2.8</entry>
++      <entry>Tuple traits</entry>
++      <entry>N</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.4.2.9</entry>
++      <entry>Tuple specialized algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -432,130 +487,198 @@
+       <entry/>
+     </row>
+     <row>
++      <entry>20.5.1</entry>
++      <entry><code>bitset</code> constructors</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.5.2</entry>
++      <entry><code>bitset</code> members</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.5.3</entry>
++      <entry><code>bitset</code> hash support</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.5.4</entry>
++      <entry><code>bitset</code> operators</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
+       <entry>20.6</entry>
+-      <entry>Compile-time rational arithmetic</entry>
++      <entry>Memory</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.6.1</entry>
+-      <entry>Class template <code>ratio</code></entry>
+-      <entry>Y</entry>
++      <entry>In general</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.6.2</entry>
+-      <entry>Arithmetic on <code>ratio</code> types</entry>
+-      <entry>Y</entry>
++      <entry>Header <code>&lt;memory&gt;</code> synopsis</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>20.6.3</entry>
+-      <entry>Comparison of <code>ratio</code> types</entry>
+-      <entry>Y</entry>
++      <entry>Pointer traits</entry>
++      <entry>N</entry>
+       <entry/>
+     </row>
+     <row>
++      <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>20.6.4</entry>
+-      <entry>SI types for <code>ratio</code></entry>
+-      <entry>Y</entry>
++      <entry>Pointer safety</entry>
++      <entry>Partial</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7</entry>
+-      <entry>Metaprogramming and type traits</entry>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.6.5</entry>
++      <entry>Align</entry>
++      <entry>N</entry>
+       <entry/>
++    </row>
++    <row>
++      <entry>20.6.6</entry>
++      <entry>Allocator argument tag</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.1</entry>
+-      <entry>Requirements</entry>
++      <entry>20.6.7</entry>
++      <entry><code>uses_allocator</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.2</entry>
+-      <entry>Header <code>&lt;type_traits&gt;</code> synopsis</entry>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.6.8</entry>
++      <entry>Allocator traits</entry>
++      <entry>N</entry>
+       <entry/>
++    </row>
++    <row>
++      <entry>20.6.9</entry>
++      <entry>The default allocator</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.3</entry>
+-      <entry>Helper classes</entry>
++      <entry>20.6.10</entry>
++      <entry>Raw storage iterator</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.4</entry>
+-      <entry>Unary Type Traits</entry>
++      <entry>20.6.11</entry>
++      <entry>Temporary buffers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.4.1</entry>
+-      <entry>Primary type categories</entry>
++      <entry>20.6.12</entry>
++      <entry>Specialized algorithms</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.6.12.1</entry>
++      <entry><code>addressof</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.4.2</entry>
+-      <entry>Composite type traits</entry>
++      <entry>20.6.12.2</entry>
++      <entry><code>uninitialized_copy</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.7.4.3</entry>
+-      <entry>Type properties</entry>
+-      <entry>Partial</entry>
+-      <entry>Missing is_trivially_copyable, is_nothrow_constructible</entry>
++      <entry>20.6.12.3</entry>
++      <entry><code>uninitialized_fill</code></entry>
++      <entry>Y</entry>
++      <entry/>
+     </row>
+     <row>
+-      <entry>20.7.5</entry>
+-      <entry>Relationships between types</entry>
++      <entry>20.6.12.4</entry>
++      <entry><code>uninitialized_fill_n</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.7.6</entry>
+-      <entry>Transformations between types</entry>
+-      <entry>Partial</entry>
+-      <entry>Missing underlying_type</entry>
++      <entry>20.6.13</entry>
++      <entry>C library</entry>
++      <entry>Y</entry>
++      <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.1</entry>
+-      <entry>Const-volatile modifications</entry>
++      <entry>20.7</entry>
++      <entry>Smart pointers</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.7.1</entry>
++      <entry>Class template <code>unique_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.2</entry>
+-      <entry>Reference modifications</entry>
++      <entry>20.7.2</entry>
++      <entry>Shared-ownership pointers</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.3</entry>
+-      <entry>Sign modifications</entry>
++      <entry>20.7.2.1</entry>
++      <entry>Class <code>bad_weak_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.4</entry>
+-      <entry>Array modifications</entry>
++      <entry>20.7.2.2</entry>
++      <entry>Class template <code>shared_ptr</code></entry>
++      <entry>Y</entry>
++      <entry>
++	<para>
++	  Uses code from
++	  <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>.
++	</para>
++      </entry>
++    </row>
++    <row>
++      <entry>20.7.2.3</entry>
++      <entry>Class template <code>weak_ptr</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.5</entry>
+-      <entry>Pointer modifications</entry>
++      <entry>20.7.2.4</entry>
++      <entry>Class template <code>emable_shared_from_this</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.7.6.6</entry>
+-      <entry>Other transformations</entry>
++      <?dbhtml bgcolor="#B0B0B0" ?>
++      <entry>20.7.2.5</entry>
++      <entry><code>shared_ptr</code> atomic access</entry>
++      <entry>Partial</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>20.7.2.6</entry>
++      <entry>Smart pointer hash support</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -568,363 +691,320 @@
+     <row>
+       <entry>20.8.1</entry>
+       <entry>Definitions</entry>
+-      <entry>Y</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.8.2</entry>
+       <entry>Requirements</entry>
+-      <entry>Y</entry>
+       <entry/>
+-    </row>
+-    <row>
+-      <entry>20.8.3</entry>
+-      <entry>Base</entry>
+-      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.4</entry>
++      <entry>20.8.3</entry>
+       <entry>Class template <code>reference_wrapper</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.5</entry>
++      <entry>20.8.4</entry>
+       <entry>Arithmetic operation</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.6</entry>
++      <entry>20.8.5</entry>
+       <entry>Comparisons</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.7</entry>
++      <entry>20.8.6</entry>
+       <entry>Logical operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.8</entry>
++      <entry>20.8.7</entry>
+       <entry>Bitwise operations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.9</entry>
++      <entry>20.8.8</entry>
+       <entry>Negators</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.10</entry>
++      <entry>20.8.9</entry>
+       <entry>Function template <code>bind</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.11</entry>
+-      <entry>Adaptors for pointers to functions</entry>
+-      <entry>Y</entry>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>20.8.12</entry>
+-      <entry>Adaptors for pointers to members</entry>
+-      <entry>Y</entry>
+-      <entry/>
+-    </row>
+-    <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.8.13</entry>
++      <entry>20.8.10</entry>
+       <entry>Function template <code>mem_fn</code></entry>
+       <entry>Partial</entry>
+       <entry>Missing overloads for reference-qualified member functions</entry>
+     </row>
+     <row>
+-      <entry>20.8.14</entry>
++      <entry>20.8.11</entry>
+       <entry>Polymorphic function wrappers</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.8.14.1</entry>
++      <entry>20.8.11.1</entry>
+       <entry>Class <code>bad_function_call</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.8.14.2</entry>
++      <entry>20.8.11.2</entry>
+       <entry>Class template <code>function</code></entry>
+       <entry>Partial</entry>
+       <entry>Missing allocator support</entry>
+     </row>
+     <row>
+-      <entry>20.8.15</entry>
++      <entry>20.8.12</entry>
+       <entry>Class template <code>hash</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.9</entry>
+-      <entry>Memory</entry>
++      <entry>Metaprogramming and type traits</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.9.1</entry>
+-      <entry>Allocator argument tag</entry>
++      <entry>Requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>20.9.2</entry>
+-      <entry><code>uses_allocator</code></entry>
+-      <entry>Y</entry>
++      <entry>Header <code>&lt;type_traits&gt;</code> synopsis</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>20.9.3</entry>
+-      <entry>Pointer traits</entry>
+-      <entry>N</entry>
++      <entry>Helper classes</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>20.9.4</entry>
+-      <entry>Allocator traits</entry>
+-      <entry>N</entry>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>20.9.5</entry>
+-      <entry>The default allocator</entry>
++      <entry>Unary Type Traits</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>20.9.6</entry>
+-      <entry>Scoped allocator adaptor</entry>
+-      <entry/>
+-      <entry/>
+-    </row>
+-    <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>20.9.6.1</entry>
+-      <entry>Scoped allocator adaptor member types</entry>
+-      <entry>N</entry>
++      <entry>20.9.4.1</entry>
++      <entry>Primary type categories</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>20.9.6.2</entry>
+-      <entry>Scoped allocator adaptor constructors</entry>
+-      <entry>N</entry>
++      <entry>20.9.4.2</entry>
++      <entry>Composite type traits</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>20.9.6.3</entry>
+-      <entry>Scoped allocator adaptor members</entry>
+-      <entry>N</entry>
+-      <entry/>
++      <?dbhtml bgcolor="#B0B0B0" ?>
++      <entry>20.9.4.3</entry>
++      <entry>Type properties</entry>
++      <entry>Partial</entry>
++      <entry>Missing is_trivially_copyable,
++      is_assignable, is_copy_assignable, is_move_assignable,
++      is_trivially_constructible, is_trivially_default_constructible,
++      is_trivially_copy_constructible, is_trivially_move_constructible,
++      is_trivially_assignable, is_trivially_default_assignable,
++      is_trivially_copy_assignable, is_trivially_move_assignable,
++      is_trivially_destructible,
++      is_nothrow_assignable,
++      is_nothrow_copy_assignable, is_nothrow_move_assignable,
++      is_nothrow_destructible
++      </entry>
+     </row>
+     <row>
+-      <entry>20.9.7</entry>
+-      <entry>Raw storage iterator</entry>
++      <entry>20.9.5</entry>
++      <entry>Type property queries</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.8</entry>
+-      <entry>Temporary buffers</entry>
++      <entry>20.9.6</entry>
++      <entry>Relationships between types</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.9</entry>
+-      <entry>Specialized algorithms</entry>
++      <entry>20.9.7</entry>
++      <entry>Transformations between types</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.9.1</entry>
+-      <entry><code>addressof</code></entry>
++      <entry>20.9.7.1</entry>
++      <entry>Const-volatile modifications</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.9.2</entry>
+-      <entry><code>uninitialized_copy</code></entry>
++      <entry>20.9.7.2</entry>
++      <entry>Reference modifications</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.9.3</entry>
+-      <entry><code>uninitialized_fill</code></entry>
++      <entry>20.9.7.3</entry>
++      <entry>Sign modifications</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.9.4</entry>
+-      <entry><code>uninitialized_fill_n</code></entry>
++      <entry>20.9.7.4</entry>
++      <entry>Array modifications</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.10</entry>
+-      <entry>Class template <code>unique_ptr</code></entry>
++      <entry>20.9.7.5</entry>
++      <entry>Pointer modifications</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.11</entry>
+-      <entry>Smart pointers</entry>
+-      <entry/>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>20.9.11.1</entry>
+-      <entry>Class <code>bad_weak_ptr</code></entry>
++      <entry>20.9.7.6</entry>
++      <entry>Other transformations</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.11.2</entry>
+-      <entry>Class template <code>shared_ptr</code></entry>
+-      <entry>Y</entry>
+-      <entry>
+-	<para>
+-	  Uses code from
+-	  <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>.
+-	</para>
+-      </entry>
+-    </row>
+-    <row>
+-      <entry>20.9.11.3</entry>
+-      <entry>Class template <code>weak_ptr</code></entry>
+-      <entry>Y</entry>
++      <entry>20.10</entry>
++      <entry>Compile-time rational arithmetic</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.11.4</entry>
+-      <entry>Class template <code>emable_shared_from_this</code></entry>
+-      <entry>Y</entry>
++      <entry>20.10.1</entry>
++      <entry>In general</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.9.11.5</entry>
+-      <entry><code>shared_ptr</code> atomic access</entry>
+-      <entry>Partial</entry>
++      <entry>20.10.2</entry>
++      <entry>Header <code>&lt;ratio&gt;</code> synopsis</entry>
++      <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.11.6</entry>
+-      <entry>Hash support</entry>
++      <entry>20.10.3</entry>
++      <entry>Class template <code>ratio</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>20.9.12</entry>
+-      <entry>Pointer safety</entry>
+-      <entry>Partial</entry>
++      <entry>20.10.4</entry>
++      <entry>Arithmetic on <code>ratio</code>s</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+-      <entry>20.9.13</entry>
+-      <entry>Align</entry>
+-      <entry>N</entry>
++      <entry>20.10.5</entry>
++      <entry>Comparison of <code>ratio</code>s</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.9.16</entry>
+-      <entry>C library</entry>
++      <entry>20.10.6</entry>
++      <entry>SI types for <code>ratio</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10</entry>
++      <entry>20.11</entry>
+       <entry>Time utilities</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.1</entry>
++      <entry>20.11.3</entry>
+       <entry>Clock requirements</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.2</entry>
++      <entry>20.11.4</entry>
+       <entry>Time-related traits</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.2.1</entry>
++      <entry>20.11.4.1</entry>
+       <entry><code>treat_as_floating_point</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.2.2</entry>
++      <entry>20.11.4.2</entry>
+       <entry><code>duration_values</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.2.3</entry>
++      <entry>20.11.4.3</entry>
+       <entry>Specializations of <code>common_type</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.3</entry>
++      <?dbhtml bgcolor="#B0B0B0" ?>
++      <entry>20.11.5</entry>
+       <entry>Class template <code>duration</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
++      <entry>Partial</entry>
++      <entry>Missing constexpr for non-member arithmetic operations</entry>
+     </row>
+     <row>
+-      <entry>20.10.4</entry>
++      <entry>20.11.6</entry>
+       <entry>Class template <code>time_point</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.5</entry>
++      <entry>20.11.7</entry>
+       <entry>Clocks</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.5.1</entry>
++      <entry>20.11.7.1</entry>
+       <entry>Class <code>system_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.10.5.2</entry>
+-      <entry>Class <code>monotonic_clock</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.11.7.2</entry>
++      <entry>Class <code>steady_clock</code></entry>
++      <entry>N</entry>
++      <entry>Support old <code>monotonic_clock</code> spec instead</entry>
+     </row>
+     <row>
+-      <entry>20.10.5.3</entry>
++      <entry>20.11.7.3</entry>
+       <entry>Class <code>high_resolution_clock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>20.11</entry>
++      <entry>20.11.8</entry>
+       <entry>Date and time functions</entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -932,6 +1012,48 @@
+     <row>
+       <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>20.12</entry>
++      <entry>Scoped allocator adaptor</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.12.1</entry>
++      <entry>Header <code>&lt;scoped_allocator&gt;</code> synopsis</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.12.2</entry>
++      <entry>Scoped allocator adaptor member types</entry>
++      <entry>N</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.12.3</entry>
++      <entry>Scoped allocator adaptor constructors</entry>
++      <entry>N</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.12.4</entry>
++      <entry>Scoped allocator adaptor members</entry>
++      <entry>N</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.12.5</entry>
++      <entry>Scoped allocator operators</entry>
++      <entry>N</entry>
++      <entry/>
++    </row>
++    <row>
++      <?dbhtml bgcolor="#C8B0B0" ?>
++      <entry>20.13</entry>
+       <entry>Class <code>type_index</code></entry>
+       <entry>N</entry>
+       <entry/>
+@@ -1261,7 +1383,7 @@
+     </row>
+     <row>
+       <entry>23.2.2</entry>
+-      <entry>Data races</entry>
++      <entry>Container data races</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -1290,50 +1412,26 @@
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.3.1</entry>
+-      <entry>Class template <code>array</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
+-    </row>
+-    <row>
+       <entry>23.3.2</entry>
+-      <entry>Class template <code>deque</code></entry>
++      <entry>Class template <code>array</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>23.3.3</entry>
+-      <entry>Class template <code>forward_list</code></entry>
++      <entry>Class template <code>deque</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>23.3.4</entry>
+-      <entry>Class template <code>list</code></entry>
++      <entry>Class template <code>forward_list</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>23.3.5</entry>
+-      <entry>Container adaptors</entry>
+-      <entry/>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>23.3.5.1</entry>
+-      <entry>Class template <code>queue</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>23.3.5.2</entry>
+-      <entry>Class template <code>priority_queue</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>23.3.5.3</entry>
+-      <entry>Class template <code>stack</code></entry>
++      <entry>Class template <code>list</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -1356,25 +1454,25 @@
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.4.1</entry>
++      <entry>23.4.4</entry>
+       <entry>Class template <code>map</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.4.2</entry>
++      <entry>23.4.5</entry>
+       <entry>Class template <code>multimap</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.4.3</entry>
++      <entry>23.4.6</entry>
+       <entry>Class template <code>set</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.4.4</entry>
++      <entry>23.4.7</entry>
+       <entry>Class template <code>multiset</code></entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -1386,30 +1484,54 @@
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.5.1</entry>
++      <entry>23.5.4</entry>
+       <entry>Class template <code>unordered_map</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.5.2</entry>
++      <entry>23.5.5</entry>
+       <entry>Class template <code>unordered_multimap</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.5.3</entry>
++      <entry>23.5.6</entry>
+       <entry>Class template <code>unordered_set</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>23.5.4</entry>
++      <entry>23.5.7</entry>
+       <entry>Class template <code>unordered_multiset</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
++      <entry>23.6</entry>
++      <entry>Container adaptors</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>23.6.1</entry>
++      <entry>Class template <code>queue</code></entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>23.6.2</entry>
++      <entry>Class template <code>priority_queue</code></entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>23.6.3</entry>
++      <entry>Class template <code>stack</code></entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
+       <entry>
+ 	<emphasis>24</emphasis>
+       </entry>
+@@ -1621,19 +1743,19 @@
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.4.1</entry>
++      <entry>26.5.4.2</entry>
+       <entry>Class template <code>discard_block_engine</code></entry>
+       <entry>Y</entry>
+       <entry>Missing constexpr</entry>
+     </row>
+     <row>
+-      <entry>26.5.4.2</entry>
++      <entry>26.5.4.3</entry>
+       <entry>Class template <code>independent_bits_engine</code></entry>
+       <entry>Y</entry>
+       <entry>Missing constexpr</entry>
+     </row>
+     <row>
+-      <entry>26.5.4.3</entry>
++      <entry>26.5.4.4</entry>
+       <entry>Class template <code>shuffle_order_engine</code></entry>
+       <entry>Y</entry>
+       <entry>Missing constexpr</entry>
+@@ -1675,151 +1797,151 @@
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.1</entry>
++      <entry>26.5.8.2</entry>
+       <entry>Uniform distributions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.1.1</entry>
++      <entry>26.5.8.2.1</entry>
+       <entry>Class template <code>uniform_int_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.1.2</entry>
++      <entry>26.5.8.2.2</entry>
+       <entry>Class template <code>uniform_real_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.2</entry>
++      <entry>26.5.8.3</entry>
+       <entry>Bernoulli distributions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.2.1</entry>
++      <entry>26.5.8.3.1</entry>
+       <entry>Class <code>bernoulli_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.2.2</entry>
++      <entry>26.5.8.3.2</entry>
+       <entry>Class template <code>binomial_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.2.3</entry>
++      <entry>26.5.8.3.3</entry>
+       <entry>Class template <code>geometric_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.2.4</entry>
++      <entry>26.5.8.3.4</entry>
+       <entry>Class template <code>negative_binomial_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3</entry>
++      <entry>26.5.8.4</entry>
+       <entry>Poisson distributions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3.1</entry>
++      <entry>26.5.8.4.1</entry>
+       <entry>Class template <code>poisson_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3.2</entry>
++      <entry>26.5.8.4.2</entry>
+       <entry>Class template <code>exponential_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3.3</entry>
++      <entry>26.5.8.4.3</entry>
+       <entry>Class template <code>gamma_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3.4</entry>
++      <entry>26.5.8.4.4</entry>
+       <entry>Class template <code>weibull_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.3.5</entry>
++      <entry>26.5.8.4.5</entry>
+       <entry>Class template <code>extreme_value_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4</entry>
++      <entry>26.5.8.5</entry>
+       <entry>Normal distributions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.1</entry>
++      <entry>26.5.8.5.1</entry>
+       <entry>Class template <code>normal_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.2</entry>
++      <entry>26.5.8.5.2</entry>
+       <entry>Class template <code>lognormal_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.3</entry>
++      <entry>26.5.8.5.3</entry>
+       <entry>Class template <code>chi_squared_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.4</entry>
++      <entry>26.5.8.5.4</entry>
+       <entry>Class template <code>cauchy_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.5</entry>
++      <entry>26.5.8.5.5</entry>
+       <entry>Class template <code>fisher_f_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.4.6</entry>
++      <entry>26.5.8.5.6</entry>
+       <entry>Class template <code>student_t_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.5</entry>
++      <entry>26.5.8.6</entry>
+       <entry>Sampling distributions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.5.1</entry>
++      <entry>26.5.8.6.1</entry>
+       <entry>Class template <code>discrete_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.5.2</entry>
++      <entry>26.5.8.6.2</entry>
+       <entry>Class template <code>piecewise_constant_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>26.5.8.5.3</entry>
++      <entry>26.5.8.6.3</entry>
+       <entry>Class template <code>piecewise_linear_distribution</code></entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -1837,10 +1959,11 @@
+       <entry/>
+     </row>
+     <row>
++      <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>26.6.2</entry>
+       <entry>Class template <code>valarray</code></entry>
+-      <entry>Y</entry>
+-      <entry/>
++      <entry>Partial</entry>
++      <entry>Missing move and swap operations</entry>
+     </row>
+     <row>
+       <entry>26.6.3</entry>
+@@ -1885,10 +2008,9 @@
+       <entry/>
+     </row>
+     <row>
+-      <?dbhtml bgcolor="#C8B0B0" ?>
+       <entry>26.6.10</entry>
+       <entry><code>valarray</code> range access</entry>
+-      <entry>N</entry>
++      <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+@@ -1899,30 +2021,36 @@
+     </row>
+     <row>
+       <entry>26.7.1</entry>
+-      <entry><code>accumulate</code></entry>
++      <entry>Header <code>&lt;numeric&gt;</code> synopsis</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>26.7.2</entry>
+-      <entry><code>inner_product</code></entry>
++      <entry><code>accumulate</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>26.7.3</entry>
+-      <entry><code>partial_sum</code></entry>
++      <entry><code>inner_product</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>26.7.4</entry>
+-      <entry><code>adjacent_difference</code></entry>
++      <entry><code>partial_sum</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>26.7.5</entry>
++      <entry><code>adjacent_difference</code></entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>26.7.6</entry>
+       <entry>iota</entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -1986,12 +2114,18 @@
+     </row>
+     <row>
+       <entry>27.4.1</entry>
+-      <entry>Narrow stream objects</entry>
++      <entry>Overview</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <entry>27.4.2</entry>
++      <entry>Narrow stream objects</entry>
++      <entry>Y</entry>
++      <entry/>
++    </row>
++    <row>
++      <entry>27.4.3</entry>
+       <entry>Wide stream objects</entry>
+       <entry>Y</entry>
+       <entry/>
+@@ -2001,7 +2135,10 @@
+       <entry>27.5</entry>
+       <entry>Iostreams base classes</entry>
+       <entry>Partial</entry>
+-      <entry>Missing move and swap operations</entry>
++      <entry>
++        Missing move and swap operations on <code>basic_ios</code>. Missing
++       	<code>make_error_code</code> and <code>make_error_condition</code>.
++      </entry>
+     </row>
+     <row>
+       <entry>27.6</entry>
+@@ -2155,33 +2292,20 @@
+       <entry/>
+     </row>
+     <row>
++      <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>29.4</entry>
+       <entry>Lock-free property</entry>
+-      <entry>Y</entry>
+-      <entry>Based on _GLIBCXX_ATOMIC_PROPERTY</entry>
++      <entry>Partial</entry>
++      <entry>Missing <code>ATOMIC_BOOL_LOCK_FREE</code> and
++        <code>ATOMIC_POINTER_LOCK_FREE</code>.
++        Based on _GLIBCXX_ATOMIC_PROPERTY
++      </entry>
+     </row>
+     <row>
++      <?dbhtml bgcolor="#B0B0B0" ?>
+       <entry>29.5</entry>
+       <entry>Atomic types</entry>
+-      <entry/>
+-      <entry/>
+-    </row>
+-    <row>
+-      <entry>29.5.1</entry>
+-      <entry>Integral types</entry>
+-      <entry>Y</entry>
+-      <entry>Missing constexpr</entry>
+-    </row>
+-    <row>
+-      <entry>29.5.2</entry>
+-      <entry>Address types</entry>
+-      <entry>Y</entry>
+-      <entry>Missing constexpr</entry>
+-    </row>
+-    <row>
+-      <entry>29.5.3</entry>
+-      <entry>Generic types</entry>
+-      <entry>Y</entry>
++      <entry>Partial</entry>
+       <entry>Missing constexpr</entry>
+     </row>
+     <row>
+@@ -2234,7 +2358,7 @@
+       <entry>30.3.1</entry>
+       <entry>Class <code>thread</code></entry>
+       <entry>Partial</entry>
+-      <entry><code>thread::id</code> is not trivially copyable</entry>
++      <entry><code>thread::id</code> comparisons not well-defined</entry>
+     </row>
+     <row>
+       <entry>30.3.2</entry>
+@@ -2256,73 +2380,85 @@
+     </row>
+     <row>
+       <entry>30.4.1.1</entry>
++      <entry>In general</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>30.4.1.2</entry>
++      <entry>Mutex types</entry>
++      <entry/>
++      <entry/>
++    </row>
++    <row>
++      <entry>30.4.1.2.1</entry>
+       <entry>Class <code>mutex</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.1.2</entry>
++      <entry>30.4.1.2.2</entry>
+       <entry>Class <code>recursive_mutex</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.2</entry>
+-      <entry>Timed mutex requirements</entry>
++      <entry>30.4.1.3</entry>
++      <entry>Timed mutex types</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.2.1</entry>
++      <entry>30.4.1.3.1</entry>
+       <entry>Class <code>timed_mutex</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.2.2</entry>
++      <entry>30.4.1.3.2</entry>
+       <entry>Class <code>recursive_timed_mutex</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.3</entry>
++      <entry>30.4.2</entry>
+       <entry>Locks</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.3.1</entry>
++      <entry>30.4.2.1</entry>
+       <entry>Class template <code>lock_guard</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.3.2</entry>
++      <entry>30.4.2.2</entry>
+       <entry>Class template <code>unique_lock</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.4</entry>
++      <entry>30.4.3</entry>
+       <entry>Generic locking algorithms</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.5</entry>
++      <entry>30.4.4</entry>
+       <entry>Call once</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.5.1</entry>
+-      <entry><code>once_flag</code></entry>
++      <entry>30.4.4.1</entry>
++      <entry>Struct <code>once_flag</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+-      <entry>30.4.5.2</entry>
+-      <entry><code>call_once</code></entry>
++      <entry>30.4.4.2</entry>
++      <entry>Function <code>call_once</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -2371,7 +2507,7 @@
+     </row>
+     <row>
+       <entry>30.6.4</entry>
+-      <entry>Associated asynchronous state</entry>
++      <entry>Shared state</entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+@@ -2397,14 +2533,14 @@
+       <entry>Missing future_status</entry>
+     </row>
+     <row>
+-      <entry>30.6.9</entry>
++      <entry>30.6.8</entry>
+       <entry>Function template <code>async</code></entry>
+       <entry>Y</entry>
+       <entry/>
+     </row>
+     <row>
+       <?dbhtml bgcolor="#B0B0B0" ?>
+-      <entry>30.6.10</entry>
++      <entry>30.6.9</entry>
+       <entry>Class template <code>packaged_task</code></entry>
+       <entry>Partial</entry>
+       <entry>Missing make_ready_at_thread_exit</entry>
+@@ -2425,43 +2561,43 @@
+     </row>
+     <row>
+       <entry>D.2</entry>
+-      <entry><code>static</code> keyword</entry>
++      <entry><code>register</code> keyword</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.3</entry>
+-      <entry>Access declarations</entry>
++      <entry>Implicit declaration of copy functions</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.4</entry>
+-      <entry><code>register</code> keyword</entry>
++      <entry>Dynamic exception specifications</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.5</entry>
+-      <entry>Dynamic exception specifications</entry>
++      <entry>C standard library headers</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.6</entry>
+-      <entry>C standard library headers</entry>
++      <entry>Old iostreams members</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.7</entry>
+-      <entry>Old iostreams members</entry>
++      <entry><code>char*</code> streams</entry>
+       <entry/>
+       <entry/>
+     </row>
+     <row>
+       <entry>D.8</entry>
+-      <entry>char* streams</entry>
++      <entry>Function objects</entry>
+       <entry/>
+       <entry/>
+     </row>
+@@ -2477,6 +2613,12 @@
+       <entry/>
+       <entry/>
+     </row>
++    <row>
++      <entry>D.11</entry>
++      <entry>Violating exception-specifications</entry>
++      <entry/>
++      <entry/>
++    </row>
+ 
+   </tbody>
+ </tgroup>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/Makefile.am gcc-4.6.0/libstdc++-v3/include/Makefile.am
+--- gcc-4.6.0.orig/libstdc++-v3/include/Makefile.am	2011-03-15 23:39:02.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/Makefile.am	2011-05-01 05:10:17.062926000 +0000
+@@ -1201,6 +1201,7 @@
+ 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
+ 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
+ 	for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \
++	  ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
+ 	  ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \
+ 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+ 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/Makefile.in gcc-4.6.0/libstdc++-v3/include/Makefile.in
+--- gcc-4.6.0.orig/libstdc++-v3/include/Makefile.in	2011-03-15 23:39:02.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/Makefile.in	2011-05-01 05:10:17.062926000 +0000
+@@ -1585,6 +1585,7 @@
+ 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
+ 	$(mkinstalldirs) $(DESTDIR)${host_installdir}
+ 	for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \
++	  ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
+ 	  ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \
+ 	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+ 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/bits/random.h gcc-4.6.0/libstdc++-v3/include/bits/random.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/bits/random.h	2011-03-14 18:17:51.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/bits/random.h	2011-03-26 10:02:34.684994000 +0000
+@@ -3782,7 +3782,9 @@
+ 	explicit
+ 	param_type(_IntType __k = 1, double __p = 0.5)
+ 	: _M_k(__k), _M_p(__p)
+-	{ }
++	{
++	  _GLIBCXX_DEBUG_ASSERT((_M_k > 0) && (_M_p > 0.0) && (_M_p <= 1.0));
++	}
+ 
+ 	_IntType
+ 	k() const
+@@ -3803,12 +3805,12 @@
+ 
+       explicit
+       negative_binomial_distribution(_IntType __k = 1, double __p = 0.5)
+-      : _M_param(__k, __p), _M_gd(__k, __p / (1.0 - __p))
++      : _M_param(__k, __p), _M_gd(__k, (1.0 - __p) / __p)
+       { }
+ 
+       explicit
+       negative_binomial_distribution(const param_type& __p)
+-      : _M_param(__p), _M_gd(__p.k(), __p.p() / (1.0 - __p.p()))
++      : _M_param(__p), _M_gd(__p.k(), (1.0 - __p.p()) / __p.p())
+       { }
+ 
+       /**
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/bits/random.tcc gcc-4.6.0/libstdc++-v3/include/bits/random.tcc
+--- gcc-4.6.0.orig/libstdc++-v3/include/bits/random.tcc	2011-03-14 18:17:51.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/bits/random.tcc	2011-03-26 10:02:34.684994000 +0000
+@@ -1100,7 +1100,7 @@
+ 	  param_type;
+ 	
+ 	const double __y =
+-	  _M_gd(__urng, param_type(__p.k(), __p.p() / (1.0 - __p.p())));
++	  _M_gd(__urng, param_type(__p.k(), (1.0 - __p.p()) / __p.p()));
+ 
+ 	std::poisson_distribution<result_type> __poisson(__y);
+ 	return __poisson(__urng);
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/bits/unique_ptr.h gcc-4.6.0/libstdc++-v3/include/bits/unique_ptr.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/bits/unique_ptr.h	2011-01-31 20:46:43.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/bits/unique_ptr.h	2011-04-17 21:46:20.464236000 +0000
+@@ -79,6 +79,8 @@
+ 		      "can't delete pointer to incomplete type");
+ 	delete [] __ptr;
+       }
++
++      template<typename _Up> void operator()(_Up*) const = delete;
+     };
+ 
+   /// 20.7.12.2 unique_ptr for single objects.
+@@ -100,11 +102,11 @@
+ 	typedef decltype( __test<_Del>(0)) type;
+       };
+ 
+-      typedef std::tuple<_Tp*, _Dp>  	__tuple_type;
+-      __tuple_type 			_M_t;
++      typedef std::tuple<typename _Pointer::type, _Dp>  __tuple_type;
++      __tuple_type                                      _M_t;
+ 
+     public:
+-      typedef typename _Pointer::type	pointer;
++      typedef typename _Pointer::type   pointer;
+       typedef _Tp                       element_type;
+       typedef _Dp                       deleter_type;
+ 
+@@ -151,7 +153,7 @@
+ 		   && std::is_convertible<_Ep, _Dp>::value))>
+ 	     ::type>
+ 	unique_ptr(unique_ptr<_Up, _Ep>&& __u)
+-	: _M_t(__u.release(), std::forward<deleter_type>(__u.get_deleter()))
++	: _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
+ 	{ }
+ 
+ #if _GLIBCXX_USE_DEPRECATED
+@@ -171,7 +173,7 @@
+       operator=(unique_ptr&& __u)
+       {
+ 	reset(__u.release());
+-	get_deleter() = std::move(__u.get_deleter());
++	get_deleter() = std::forward<deleter_type>(__u.get_deleter());
+ 	return *this;
+       }
+ 
+@@ -184,7 +186,7 @@
+ 	operator=(unique_ptr<_Up, _Ep>&& __u)
+ 	{
+ 	  reset(__u.release());
+-	  get_deleter() = std::move(__u.get_deleter());
++	  get_deleter() = std::forward<_Ep>(__u.get_deleter());
+ 	  return *this;
+ 	}
+ 
+@@ -304,7 +306,7 @@
+ 
+       template<typename _Up, typename _Ep>
+ 	unique_ptr(unique_ptr<_Up, _Ep>&& __u)
+-	: _M_t(__u.release(), std::forward<deleter_type>(__u.get_deleter()))
++	: _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
+ 	{ }
+ 
+       // Destructor.
+@@ -315,7 +317,7 @@
+       operator=(unique_ptr&& __u)
+       {
+ 	reset(__u.release());
+-	get_deleter() = std::move(__u.get_deleter());
++	get_deleter() = std::forward<deleter_type>(__u.get_deleter());
+ 	return *this;
+       }
+ 
+@@ -324,7 +326,7 @@
+ 	operator=(unique_ptr<_Up, _Ep>&& __u)
+ 	{
+ 	  reset(__u.release());
+-	  get_deleter() = std::move(__u.get_deleter());
++	  get_deleter() = std::forward<_Ep>(__u.get_deleter());
+ 	  return *this;
+ 	}
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/ext/algorithm gcc-4.6.0/libstdc++-v3/include/ext/algorithm
+--- gcc-4.6.0.orig/libstdc++-v3/include/ext/algorithm	2011-02-12 21:26:21.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/ext/algorithm	2011-04-07 04:50:23.945614000 +0000
+@@ -471,6 +471,9 @@
+     }
+ #endif
+ 
++#ifdef __GXX_EXPERIMENTAL_CXX0X__
++  using std::is_sorted;
++#else
+   // is_sorted, a predicated testing whether a range is sorted in
+   // nondescending order.  This is an extension, not part of the C++
+   // standard.
+@@ -526,6 +529,7 @@
+ 	  return false;
+       return true;
+     }
++#endif  // __GXX_EXPERIMENTAL_CXX0X__
+ 
+   /**
+    *  @brief Find the median of three values.
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/ext/numeric gcc-4.6.0/libstdc++-v3/include/ext/numeric
+--- gcc-4.6.0.orig/libstdc++-v3/include/ext/numeric	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/ext/numeric	2011-04-07 04:50:23.945614000 +0000
+@@ -123,6 +123,9 @@
+     power(_Tp __x, _Integer __n)
+     { return __power(__x, __n); }
+ 
++#ifdef __GXX_EXPERIMENTAL_CXX0X__
++  using std::iota;
++#else
+   /**
+    *  This is an SGI extension.
+    *  @ingroup SGIextensions
+@@ -141,9 +144,9 @@
+       while (__first != __last)
+ 	*__first++ = __value++;
+     }
++#endif  // __GXX_EXPERIMENTAL_CXX0X__
+ 
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace
+ 
+ #endif
+-
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/ext/sso_string_base.h gcc-4.6.0/libstdc++-v3/include/ext/sso_string_base.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/ext/sso_string_base.h	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/ext/sso_string_base.h	2011-05-04 14:48:41.239179000 +0000
+@@ -411,7 +411,7 @@
+ 		    // Allocate more space.
+ 		    __capacity = __len + 1;
+ 		    _CharT* __another = _M_create(__capacity, __len);
+-		    _S_copy(__another, _M_data(), __len);
++		    this->_S_copy(__another, _M_data(), __len);
+ 		    _M_dispose();
+ 		    _M_data(__another);
+ 		    _M_capacity(__capacity);
+@@ -451,7 +451,7 @@
+ 
+ 	// Check for out_of_range and length_error exceptions.
+ 	__try
+-	  { _S_copy_chars(_M_data(), __beg, __end); }
++	  { this->_S_copy_chars(_M_data(), __beg, __end); }
+ 	__catch(...)
+ 	  {
+ 	    _M_dispose();
+@@ -473,7 +473,7 @@
+ 	}
+ 
+       if (__n)
+-	_S_assign(_M_data(), __n, __c);
++	this->_S_assign(_M_data(), __n, __c);
+ 
+       _M_set_length(__n);
+     }
+@@ -498,7 +498,7 @@
+ 	    }
+ 
+ 	  if (__rsize)
+-	    _S_copy(_M_data(), __rcs._M_data(), __rsize);
++	    this->_S_copy(_M_data(), __rcs._M_data(), __rsize);
+ 
+ 	  _M_set_length(__rsize);
+ 	}
+@@ -520,14 +520,14 @@
+ 	      || __res > size_type(_S_local_capacity))
+ 	    {
+ 	      _CharT* __tmp = _M_create(__res, __capacity);
+-	      _S_copy(__tmp, _M_data(), _M_length() + 1);
++	      this->_S_copy(__tmp, _M_data(), _M_length() + 1);
+ 	      _M_dispose();
+ 	      _M_data(__tmp);
+ 	      _M_capacity(__res);
+ 	    }
+ 	  else if (!_M_is_local())
+ 	    {
+-	      _S_copy(_M_local_data, _M_data(), _M_length() + 1);
++	      this->_S_copy(_M_local_data, _M_data(), _M_length() + 1);
+ 	      _M_destroy(__capacity);
+ 	      _M_data(_M_local_data);
+ 	    }
+@@ -546,12 +546,12 @@
+       _CharT* __r = _M_create(__new_capacity, _M_capacity());
+ 
+       if (__pos)
+-	_S_copy(__r, _M_data(), __pos);
++	this->_S_copy(__r, _M_data(), __pos);
+       if (__s && __len2)
+-	_S_copy(__r + __pos, __s, __len2);
++	this->_S_copy(__r + __pos, __s, __len2);
+       if (__how_much)
+-	_S_copy(__r + __pos + __len2,
+-		_M_data() + __pos + __len1, __how_much);
++	this->_S_copy(__r + __pos + __len2,
++		      _M_data() + __pos + __len1, __how_much);
+       
+       _M_dispose();
+       _M_data(__r);
+@@ -566,8 +566,7 @@
+       const size_type __how_much = _M_length() - __pos - __n;
+ 
+       if (__how_much && __n)
+-	_S_move(_M_data() + __pos, _M_data() + __pos + __n,
+-		__how_much);
++	this->_S_move(_M_data() + __pos, _M_data() + __pos + __n, __how_much);
+ 
+       _M_set_length(_M_length() - __n);
+     }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/ext/vstring.h gcc-4.6.0/libstdc++-v3/include/ext/vstring.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/ext/vstring.h	2011-02-17 01:24:37.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/ext/vstring.h	2011-05-04 14:48:41.239179000 +0000
+@@ -1359,7 +1359,7 @@
+ 				   && __i2 <= _M_iend());
+ 	  __glibcxx_requires_valid_range(__k1, __k2);
+ 	  typedef typename std::__is_integer<_InputIterator>::__type _Integral;
+-	  return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
++	  return this->_M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral());
+ 	}
+ 
+       // Specializations for the common case of pointer and iterator:
+@@ -1914,7 +1914,7 @@
+ 
+ 	int __r = traits_type::compare(this->_M_data(), __str.data(), __len);
+ 	if (!__r)
+-	  __r = _S_compare(__size, __osize);
++	  __r = this->_S_compare(__size, __osize);
+ 	return __r;
+       }
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/ext/vstring.tcc gcc-4.6.0/libstdc++-v3/include/ext/vstring.tcc
+--- gcc-4.6.0.orig/libstdc++-v3/include/ext/vstring.tcc	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/ext/vstring.tcc	2011-05-04 14:48:41.239179000 +0000
+@@ -466,7 +466,7 @@
+       int __r = traits_type::compare(this->_M_data() + __pos,
+ 				     __str.data(), __len);
+       if (!__r)
+-	__r = _S_compare(__n, __osize);
++	__r = this->_S_compare(__n, __osize);
+       return __r;
+     }
+ 
+@@ -485,7 +485,7 @@
+       int __r = traits_type::compare(this->_M_data() + __pos1,
+ 				     __str.data() + __pos2, __len);
+       if (!__r)
+-	__r = _S_compare(__n1, __n2);
++	__r = this->_S_compare(__n1, __n2);
+       return __r;
+     }
+ 
+@@ -501,7 +501,7 @@
+       const size_type __len = std::min(__size, __osize);
+       int __r = traits_type::compare(this->_M_data(), __s, __len);
+       if (!__r)
+-	__r = _S_compare(__size, __osize);
++	__r = this->_S_compare(__size, __osize);
+       return __r;
+     }
+ 
+@@ -518,7 +518,7 @@
+       const size_type __len = std::min(__n1, __osize);
+       int __r = traits_type::compare(this->_M_data() + __pos, __s, __len);
+       if (!__r)
+-	__r = _S_compare(__n1, __osize);
++	__r = this->_S_compare(__n1, __osize);
+       return __r;
+     }
+ 
+@@ -535,7 +535,7 @@
+       const size_type __len = std::min(__n1, __n2);
+       int __r = traits_type::compare(this->_M_data() + __pos, __s, __len);
+       if (!__r)
+-	__r = _S_compare(__n1, __n2);
++	__r = this->_S_compare(__n1, __n2);
+       return __r;
+     }
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/losertree.h gcc-4.6.0/libstdc++-v3/include/parallel/losertree.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/losertree.h	2011-02-11 10:11:41.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/losertree.h	2011-05-03 17:54:35.276552000 +0000
+@@ -1,6 +1,6 @@
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the terms
+@@ -116,7 +116,11 @@
+        * @brief The destructor.
+        */
+       ~_LoserTreeBase()
+-      { ::operator delete(_M_losers); }
++      {
++	for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
++	  _M_losers[__i].~_Loser();
++	::operator delete(_M_losers);
++      }
+ 
+       /**
+        * @brief Initializes the sequence "_M_source" with the element "__key".
+@@ -131,15 +135,15 @@
+       {
+ 	unsigned int __pos = _M_k + __source;
+ 
+-	if(_M_first_insert)
++	if (_M_first_insert)
+ 	  {
+-	    // Construct all keys, so we can easily deconstruct them.
++	    // Construct all keys, so we can easily destruct them.
+ 	    for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
+-	      new(&(_M_losers[__i]._M_key)) _Tp(__key);
++	      ::new(&(_M_losers[__i]._M_key)) _Tp(__key);
+ 	    _M_first_insert = false;
+ 	  }
+ 	else
+-	  new(&(_M_losers[__pos]._M_key)) _Tp(__key);
++	  _M_losers[__pos]._M_key = __key;
+ 
+ 	_M_losers[__pos]._M_sup = __sup;
+ 	_M_losers[__pos]._M_source = __source;
+@@ -379,7 +383,7 @@
+       }
+ 
+       ~_LoserTreePointerBase()
+-      { ::operator delete[](_M_losers); }
++      { delete[] _M_losers; }
+ 
+       int __get_min_source()
+       { return _M_losers[0]._M_source; }
+@@ -577,7 +581,7 @@
+       _Compare _M_comp;
+ 
+     public:
+-      _LoserTreeUnguardedBase(unsigned int __k, const _Tp __sentinel,
++      _LoserTreeUnguardedBase(unsigned int __k, const _Tp& __sentinel,
+ 			      _Compare __comp = std::less<_Tp>())
+       : _M_comp(__comp)
+       {
+@@ -590,15 +594,24 @@
+ 	_M_losers = static_cast<_Loser*>(::operator new(2 * _M_k
+ 							* sizeof(_Loser)));
+ 
+-	for (unsigned int __i = _M_k + _M_ik - 1; __i < (2 * _M_k); ++__i)
+-	  {
+-	    _M_losers[__i]._M_key = __sentinel;
++        for (unsigned int __i = 0; __i < _M_k; ++__i)
++          {
++	    ::new(&(_M_losers[__i]._M_key)) _Tp(__sentinel);
++	    _M_losers[__i]._M_source = -1;
++	  }
++        for (unsigned int __i = _M_k + _M_ik - 1; __i < (2 * _M_k); ++__i)
++          {
++	    ::new(&(_M_losers[__i]._M_key)) _Tp(__sentinel);
+ 	    _M_losers[__i]._M_source = -1;
+ 	  }
+       }
+ 
+       ~_LoserTreeUnguardedBase()
+-      { ::operator delete(_M_losers); }
++      {
++	for (unsigned int __i = 0; __i < (2 * _M_k); ++__i)
++	  _M_losers[__i].~_Loser();
++	::operator delete(_M_losers);
++      }
+ 
+       int
+       __get_min_source()
+@@ -615,7 +628,7 @@
+       {
+ 	unsigned int __pos = _M_k + __source;
+ 
+-	new(&(_M_losers[__pos]._M_key)) _Tp(__key);
++	::new(&(_M_losers[__pos]._M_key)) _Tp(__key);
+ 	_M_losers[__pos]._M_source = __source;
+       }
+     };
+@@ -634,7 +647,7 @@
+       using _Base::_M_losers;
+ 
+   public:
+-      _LoserTreeUnguarded(unsigned int __k, const _Tp __sentinel,
++      _LoserTreeUnguarded(unsigned int __k, const _Tp& __sentinel,
+ 			  _Compare __comp = std::less<_Tp>())
+       : _Base::_LoserTreeUnguardedBase(__k, __sentinel, __comp)
+       { }
+@@ -721,7 +734,7 @@
+       using _Base::_M_losers;
+ 
+     public:
+-      _LoserTreeUnguarded(unsigned int __k, const _Tp __sentinel,
++      _LoserTreeUnguarded(unsigned int __k, const _Tp& __sentinel,
+ 			  _Compare __comp = std::less<_Tp>())
+       : _Base::_LoserTreeUnguardedBase(__k, __sentinel, __comp)
+       { }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/multiway_merge.h gcc-4.6.0/libstdc++-v3/include/parallel/multiway_merge.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/multiway_merge.h	2011-01-24 16:44:30.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/multiway_merge.h	2011-05-03 17:54:35.276552000 +0000
+@@ -1045,11 +1045,12 @@
+ 	_ValueType;
+ 
+       // __k sequences.
+-      _SeqNumber __k = static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
++      const _SeqNumber __k
++	= static_cast<_SeqNumber>(__seqs_end - __seqs_begin);
+ 
+-      _ThreadIndex __num_threads = omp_get_num_threads();
++      const _ThreadIndex __num_threads = omp_get_num_threads();
+ 
+-      _DifferenceType __num_samples =
++      const _DifferenceType __num_samples =
+ 	__gnu_parallel::_Settings::get().merge_oversampling * __num_threads;
+ 
+       _ValueType* __samples = static_cast<_ValueType*>
+@@ -1096,6 +1097,10 @@
+ 	      __pieces[__slab][__seq].second =
+ 		_GLIBCXX_PARALLEL_LENGTH(__seqs_begin[__seq]);
+ 	  }
++
++      for (_SeqNumber __s = 0; __s < __k; ++__s)
++	for (_DifferenceType __i = 0; __i < __num_samples; ++__i)
++	  __samples[__s * __num_samples + __i].~_ValueType();
+       ::operator delete(__samples);
+     }
+ 
+@@ -1258,10 +1263,10 @@
+ 	__length = std::min<_DifferenceTp>(__length, __total_length);
+ 
+ 	if (__total_length == 0 || __k == 0)
+-	{
+-          delete[] __ne_seqs;
+-          return __target;
+-	}
++	  {
++	    delete[] __ne_seqs;
++	    return __target;
++	  }
+ 
+ 	std::vector<std::pair<_DifferenceType, _DifferenceType> >* __pieces;
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/multiway_mergesort.h gcc-4.6.0/libstdc++-v3/include/parallel/multiway_mergesort.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/multiway_mergesort.h	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/multiway_mergesort.h	2011-05-03 17:54:35.276552000 +0000
+@@ -378,6 +378,8 @@
+ 
+ #     pragma omp barrier
+ 
++      for (_DifferenceType __i = 0; __i < __length_local; ++__i)
++	__sd->_M_temporary[__iam][__i].~_ValueType();
+       ::operator delete(__sd->_M_temporary[__iam]);
+     }
+ 
+@@ -413,6 +415,7 @@
+       // shared variables
+       _PMWMSSortingData<_RAIter> __sd;
+       _DifferenceType* __starts;
++      _DifferenceType __size;
+ 
+ #     pragma omp parallel num_threads(__num_threads)
+       {
+@@ -427,7 +430,7 @@
+ 
+ 	  if (!__exact)
+ 	    {
+-	      _DifferenceType __size =
++	      __size =
+ 		(_Settings::get().sort_mwms_oversampling * __num_threads - 1)
+ 		* __num_threads;
+ 	      __sd._M_samples = static_cast<_ValueType*>
+@@ -463,7 +466,11 @@
+       delete[] __sd._M_temporary;
+ 
+       if (!__exact)
+-	::operator delete(__sd._M_samples);
++	{
++	  for (_DifferenceType __i = 0; __i < __size; ++__i)
++	    __sd._M_samples[__i].~_ValueType();
++	  ::operator delete(__sd._M_samples);
++	}
+ 
+       delete[] __sd._M_offsets;
+       delete[] __sd._M_pieces;
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/par_loop.h gcc-4.6.0/libstdc++-v3/include/parallel/par_loop.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/par_loop.h	2009-11-06 11:39:35.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/par_loop.h	2011-05-03 17:54:35.276552000 +0000
+@@ -91,8 +91,7 @@
+ 	_ThreadIndex __iam = omp_get_thread_num();
+ 
+ 	// Neutral element.
+-	_Result* __reduct = static_cast<_Result*>
+-	  (::operator new(sizeof(_Result)));
++	_Result* __reduct;
+ 
+ 	_DifferenceType
+ 	  __start = equally_split_point(__length, __num_threads, __iam),
+@@ -100,7 +99,7 @@
+ 
+ 	if (__start < __stop)
+ 	  {
+-	    new(__reduct) _Result(__f(__o, __begin + __start));
++	    __reduct = new _Result(__f(__o, __begin + __start));
+ 	    ++__start;
+ 	    __constructed[__iam] = true;
+ 	  }
+@@ -110,18 +109,26 @@
+ 	for (; __start < __stop; ++__start)
+ 	  *__reduct = __r(*__reduct, __f(__o, __begin + __start));
+ 
+-	__thread_results[__iam] = *__reduct;
++	if (__constructed[__iam])
++	  {
++	    ::new(&__thread_results[__iam]) _Result(*__reduct);
++	    delete __reduct;
++	  }
+       } //parallel
+ 
+       for (_ThreadIndex __i = 0; __i < __num_threads; ++__i)
+ 	if (__constructed[__i])
+-	  __output = __r(__output, __thread_results[__i]);
++	  {
++	    __output = __r(__output, __thread_results[__i]);
++	    __thread_results[__i].~_Result();
++	  }
+ 
+       // Points to last element processed (needed as return value for
+       // some algorithms like transform).
+       __f._M_finish_iterator = __begin + __length;
+ 
+-      delete[] __thread_results;
++      ::operator delete(__thread_results);
++
+       delete[] __constructed;
+ 
+       return __o;
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/partial_sum.h gcc-4.6.0/libstdc++-v3/include/parallel/partial_sum.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/partial_sum.h	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/partial_sum.h	2011-05-03 17:54:35.276552000 +0000
+@@ -184,7 +184,10 @@
+ 					__bin_op, __sums[__iam]);
+       } //parallel
+ 
++      for (_ThreadIndex __i = 0; __i < __num_threads; ++__i)
++	__sums[__i].~_ValueType();
+       ::operator delete(__sums);
++
+       delete[] __borders;
+ 
+       return __result + __n;
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/quicksort.h gcc-4.6.0/libstdc++-v3/include/parallel/quicksort.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/quicksort.h	2010-01-12 00:51:50.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/quicksort.h	2011-05-03 17:54:35.276552000 +0000
+@@ -1,6 +1,6 @@
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the terms
+@@ -82,6 +82,8 @@
+       _DifferenceType __split = __parallel_partition(__begin, __end,
+ 						     __pred, __num_threads);
+ 
++      for (_DifferenceType __s = 0; __s < __num_samples; ++__s)
++	__samples[__s].~_ValueType();
+       ::operator delete(__samples);
+ 
+       return __split;
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/parallel/random_shuffle.h gcc-4.6.0/libstdc++-v3/include/parallel/random_shuffle.h
+--- gcc-4.6.0.orig/libstdc++-v3/include/parallel/random_shuffle.h	2011-01-03 20:52:22.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/parallel/random_shuffle.h	2011-05-03 17:54:35.276552000 +0000
+@@ -1,6 +1,6 @@
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the terms
+@@ -209,7 +209,7 @@
+           _ThreadIndex __target_p = __bin_proc[__target_bin];
+ 
+           // Last column [__d->_M_num_threads] stays unchanged.
+-          ::new(&(__temporaries[__target_p][__dist[__target_bin + 1]++]))
++	  ::new(&(__temporaries[__target_p][__dist[__target_bin + 1]++]))
+               _ValueType(*(__source + __i + __start));
+ 	}
+ 
+@@ -227,8 +227,8 @@
+ 	    (__sd->_M_temporaries[__iam]
+ 	     + (__b == __d->_M_bins_begin
+ 		? 0 : __sd->_M_dist[__b][__d->_M_num_threads])),
+-	  * __end = (__sd->_M_temporaries[__iam]
+-		     + __sd->_M_dist[__b + 1][__d->_M_num_threads]);
++	    *__end = (__sd->_M_temporaries[__iam]
++		      + __sd->_M_dist[__b + 1][__d->_M_num_threads]);
+ 
+           __sequential_random_shuffle(__begin, __end, __rng);
+           std::copy(__begin, __end, __sd->_M_source + __global_offset
+@@ -236,6 +236,8 @@
+ 		       ? 0 : __sd->_M_dist[__b][__d->_M_num_threads]));
+ 	}
+ 
++      for (_SequenceIndex __i = 0; __i < __offset; ++__i)
++	__sd->_M_temporaries[__iam][__i].~_ValueType();
+       ::operator delete(__sd->_M_temporaries[__iam]);
+     }
+ 
+@@ -501,6 +503,9 @@
+           delete[] __dist0;
+           delete[] __dist1;
+           delete[] __oracles;
++	  
++	  for (_DifferenceType __i = 0; __i < __n; ++__i)
++	    __target[__i].~_ValueType();
+           ::operator delete(__target);
+ 	}
+       else
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/complex gcc-4.6.0/libstdc++-v3/include/std/complex
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/complex	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/complex	2011-04-29 23:19:59.635228000 +0000
+@@ -1046,7 +1046,17 @@
+       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
+ 
+       _GLIBCXX_CONSTEXPR complex(float __r = 0.0f, float __i = 0.0f)
++#ifdef __GXX_EXPERIMENTAL_CXX0X__
++      // The list-initialization extension to __complex__ types is
++      // not available in GCC 4.6.  Thus libstdc++/48760 cannot be
++      // fixed in C++0x mode, unfortunately.
+       : _M_value(__r + __i * 1.0fi) { }
++#else
++      {
++	__real__ _M_value = __r;
++	__imag__ _M_value = __i;
++      }
++#endif
+ 
+       explicit _GLIBCXX_CONSTEXPR complex(const complex<double>&);
+       explicit _GLIBCXX_CONSTEXPR complex(const complex<long double>&);	
+@@ -1186,7 +1196,17 @@
+       _GLIBCXX_CONSTEXPR complex(_ComplexT __z) : _M_value(__z) { }
+ 
+       _GLIBCXX_CONSTEXPR complex(double __r = 0.0, double __i = 0.0)
++#ifdef __GXX_EXPERIMENTAL_CXX0X__
++      // The list-initialization extension to __complex__ types is
++      // not available in GCC 4.6.  Thus libstdc++/48760 cannot be
++      // fixed in C++0x mode, unfortunately.
+       : _M_value(__r + __i * 1.0i) { }
++#else
++      {
++	__real__ _M_value = __r;
++	__imag__ _M_value = __i;
++      }
++#endif
+ 
+       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
+       : _M_value(__z.__rep()) { }
+@@ -1328,7 +1348,17 @@
+ 
+       _GLIBCXX_CONSTEXPR complex(long double __r = 0.0L, 
+ 				 long double __i = 0.0L)
++#ifdef __GXX_EXPERIMENTAL_CXX0X__
++      // The list-initialization extension to __complex__ types is
++      // not available in GCC 4.6.  Thus libstdc++/48760 cannot be
++      // fixed in C++0x mode, unfortunately.
+       : _M_value(__r + __i * 1.0Li) { }
++#else
++      {
++	__real__ _M_value = __r;
++	__imag__ _M_value = __i;
++      }
++#endif
+ 
+       _GLIBCXX_CONSTEXPR complex(const complex<float>& __z)
+       : _M_value(__z.__rep()) { }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/functional gcc-4.6.0/libstdc++-v3/include/std/functional
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/functional	2011-03-16 16:59:24.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/functional	2011-04-23 17:51:31.617668000 +0000
+@@ -212,19 +212,6 @@
+       static const bool value = sizeof(__test((_Tp*)0)) == 1;
+     };
+ 
+-  /// Turns a function type into a function pointer type
+-  template<typename _Tp, bool _IsFunctionType = is_function<_Tp>::value>
+-    struct _Function_to_function_pointer
+-    {
+-      typedef _Tp type;
+-    };
+-
+-  template<typename _Tp>
+-    struct _Function_to_function_pointer<_Tp, true>
+-    {
+-      typedef _Tp* type;
+-    };
+-
+   /**
+    * Invoke a function object, which may be either a member pointer or a
+    * function object. The first parameter will tell which.
+@@ -235,20 +222,33 @@
+ 	     (!is_member_pointer<_Functor>::value
+ 	      && !is_function<_Functor>::value
+ 	      && !is_function<typename remove_pointer<_Functor>::type>::value),
+-	     typename result_of<_Functor(_Args...)>::type
++	     typename result_of<_Functor(_Args&&...)>::type
+ 	   >::type
+     __invoke(_Functor& __f, _Args&&... __args)
+     {
+       return __f(std::forward<_Args>(__args)...);
+     }
+ 
++  template<typename _Functor, typename... _Args>
++    inline
++    typename enable_if<
++             (is_member_pointer<_Functor>::value
++              && !is_function<_Functor>::value
++              && !is_function<typename remove_pointer<_Functor>::type>::value),
++             typename result_of<_Functor(_Args&&...)>::type
++           >::type
++    __invoke(_Functor& __f, _Args&&... __args)
++    {
++      return mem_fn(__f)(std::forward<_Args>(__args)...);
++    }
++
+   // To pick up function references (that will become function pointers)
+   template<typename _Functor, typename... _Args>
+     inline
+     typename enable_if<
+ 	     (is_pointer<_Functor>::value
+ 	      && is_function<typename remove_pointer<_Functor>::type>::value),
+-	     typename result_of<_Functor(_Args...)>::type
++	     typename result_of<_Functor(_Args&&...)>::type
+ 	   >::type
+     __invoke(_Functor __f, _Args&&... __args)
+     {
+@@ -263,40 +263,43 @@
+   template<bool _Unary, bool _Binary, typename _Tp>
+     struct _Reference_wrapper_base_impl;
+ 
+-  // Not a unary_function or binary_function, so try a weak result type.
++  // None of the nested argument types.
+   template<typename _Tp>
+     struct _Reference_wrapper_base_impl<false, false, _Tp>
+     : _Weak_result_type<_Tp>
+     { };
+ 
+-  // unary_function but not binary_function
++  // Nested argument_type only.
+   template<typename _Tp>
+     struct _Reference_wrapper_base_impl<true, false, _Tp>
+-    : unary_function<typename _Tp::argument_type,
+-		     typename _Tp::result_type>
+-    { };
++    : _Weak_result_type<_Tp>
++    {
++      typedef typename _Tp::argument_type argument_type;
++    };
+ 
+-  // binary_function but not unary_function
++  // Nested first_argument_type and second_argument_type only.
+   template<typename _Tp>
+     struct _Reference_wrapper_base_impl<false, true, _Tp>
+-    : binary_function<typename _Tp::first_argument_type,
+-		      typename _Tp::second_argument_type,
+-		      typename _Tp::result_type>
+-    { };
++    : _Weak_result_type<_Tp>
++    {
++      typedef typename _Tp::first_argument_type first_argument_type;
++      typedef typename _Tp::second_argument_type second_argument_type;
++    };
+ 
+-  // Both unary_function and binary_function. Import result_type to
+-  // avoid conflicts.
++  // All the nested argument types.
+    template<typename _Tp>
+     struct _Reference_wrapper_base_impl<true, true, _Tp>
+-    : unary_function<typename _Tp::argument_type,
+-		     typename _Tp::result_type>,
+-      binary_function<typename _Tp::first_argument_type,
+-		      typename _Tp::second_argument_type,
+-		      typename _Tp::result_type>
++    : _Weak_result_type<_Tp>
+     {
+-      typedef typename _Tp::result_type result_type;
++      typedef typename _Tp::argument_type argument_type;
++      typedef typename _Tp::first_argument_type first_argument_type;
++      typedef typename _Tp::second_argument_type second_argument_type;
+     };
+ 
++  _GLIBCXX_HAS_NESTED_TYPE(argument_type)
++  _GLIBCXX_HAS_NESTED_TYPE(first_argument_type)
++  _GLIBCXX_HAS_NESTED_TYPE(second_argument_type)
++
+   /**
+    *  Derives from unary_function or binary_function when it
+    *  can. Specializations handle all of the easy cases. The primary
+@@ -306,8 +309,9 @@
+   template<typename _Tp>
+     struct _Reference_wrapper_base
+     : _Reference_wrapper_base_impl<
+-      _Derives_from_unary_function<_Tp>::value,
+-      _Derives_from_binary_function<_Tp>::value,
++      __has_argument_type<_Tp>::value,
++      __has_first_argument_type<_Tp>::value
++      && __has_second_argument_type<_Tp>::value,
+       _Tp>
+     { };
+ 
+@@ -422,12 +426,8 @@
+     class reference_wrapper
+     : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
+     {
+-      // If _Tp is a function type, we can't form result_of<_Tp(...)>,
+-      // so turn it into a function pointer type.
+-      typedef typename _Function_to_function_pointer<_Tp>::type
+-	_M_func_type;
+-
+       _Tp* _M_data;
++
+     public:
+       typedef _Tp type;
+ 
+@@ -456,7 +456,7 @@
+       { return *_M_data; }
+ 
+       template<typename... _Args>
+-	typename result_of<_M_func_type(_Args...)>::type
++	typename result_of<_Tp&(_Args&&...)>::type
+ 	operator()(_Args&&... __args) const
+ 	{
+ 	  return __invoke(get(), std::forward<_Args>(__args)...);
+@@ -476,6 +476,12 @@
+     cref(const _Tp& __t)
+     { return reference_wrapper<const _Tp>(__t); }
+ 
++  template<typename _Tp>
++    void ref(const _Tp&&) = delete;
++
++  template<typename _Tp>
++    void cref(const _Tp&&) = delete;
++
+   /// Partial specialization.
+   template<typename _Tp>
+     inline reference_wrapper<_Tp>
+@@ -1586,7 +1592,7 @@
+ 	_M_get_pointer(const _Any_data& __source)
+ 	{
+ 	  const _Functor* __ptr =
+-	    __stored_locally? &__source._M_access<_Functor>()
++	    __stored_locally? std::__addressof(__source._M_access<_Functor>())
+ 	    /* have stored a pointer */ : __source._M_access<_Functor*>();
+ 	  return const_cast<_Functor*>(__ptr);
+ 	}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/future gcc-4.6.0/libstdc++-v3/include/std/future
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/future	2011-03-16 16:59:24.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/future	2011-04-23 17:51:31.617668000 +0000
+@@ -142,11 +142,19 @@
+     future<typename result_of<_Fn(_Args...)>::type>
+     async(launch __policy, _Fn&& __fn, _Args&&... __args);
+ 
++  template<typename _FnCheck, typename _Fn, typename... _Args>
++    struct __async_sfinae_helper
++    {
++      typedef future<typename result_of<_Fn(_Args...)>::type> type;
++    };
++
++  template<typename _Fn, typename... _Args>
++    struct __async_sfinae_helper<launch, _Fn, _Args...>
++    { };
++
+   template<typename _Fn, typename... _Args>
+     typename
+-    enable_if<!is_same<typename decay<_Fn>::type, launch>::value,
+-              future<decltype(std::declval<_Fn>()(std::declval<_Args>()...))>
+-             >::type
++    __async_sfinae_helper<typename decay<_Fn>::type, _Fn, _Args...>::type
+     async(_Fn&& __fn, _Args&&... __args);
+ 
+ #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \
+@@ -1366,9 +1374,7 @@
+   /// async, potential overload
+   template<typename _Fn, typename... _Args>
+     inline typename
+-    enable_if<!is_same<typename decay<_Fn>::type, launch>::value,
+-              future<decltype(std::declval<_Fn>()(std::declval<_Args>()...))>
+-             >::type
++    __async_sfinae_helper<typename decay<_Fn>::type, _Fn, _Args...>::type
+     async(_Fn&& __fn, _Args&&... __args)
+     {
+       return async(launch::any, std::forward<_Fn>(__fn),
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/istream gcc-4.6.0/libstdc++-v3/include/std/istream
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/istream	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/istream	2011-04-15 16:19:39.427080000 +0000
+@@ -495,8 +495,9 @@
+        *  If @c rdbuf() is null or if @c sputbackc() fails, sets badbit in
+        *  the error state.
+        *
+-       *  @note  Since no characters are extracted, the next call to
+-       *         @c gcount() will return 0, as required by DR 60.
++       *  @note  This function first clears eofbit.  Since no characters
++       *         are extracted, the next call to @c gcount() will return 0,
++       *         as required by DR 60.
+       */
+       __istream_type& 
+       putback(char_type __c);
+@@ -510,8 +511,9 @@
+        *  If @c rdbuf() is null or if @c sungetc() fails, sets badbit in
+        *  the error state.
+        *
+-       *  @note  Since no characters are extracted, the next call to
+-       *         @c gcount() will return 0, as required by DR 60.
++       *  @note  This function first clears eofbit.  Since no characters
++       *         are extracted, the next call to @c gcount() will return 0,
++       *         as required by DR 60.
+       */
+       __istream_type& 
+       unget();
+@@ -543,9 +545,10 @@
+        *
+        *  @note  This function does not count the number of characters
+        *         extracted, if any, and therefore does not affect the next
+-       *         call to @c gcount().
++       *         call to @c gcount().  At variance with putback, unget and
++       *         seekg, eofbit is not cleared first.
+       */
+-      pos_type 
++      pos_type
+       tellg();
+ 
+       /**
+@@ -556,11 +559,11 @@
+        *  If @c fail() is not true, calls @c rdbuf()->pubseekpos(pos).  If
+        *  that function fails, sets failbit.
+        *
+-       *  @note  This function does not count the number of characters
+-       *         extracted, if any, and therefore does not affect the next
+-       *         call to @c gcount().
++       *  @note  This function first clears eofbit.  It does not count the
++       *         number of characters extracted, if any, and therefore does
++       *         not affect the next call to @c gcount().
+       */
+-      __istream_type& 
++      __istream_type&
+       seekg(pos_type);
+ 
+       /**
+@@ -572,9 +575,9 @@
+        *  If @c fail() is not true, calls @c rdbuf()->pubseekoff(off,dir).
+        *  If that function fails, sets failbit.
+        *
+-       *  @note  This function does not count the number of characters
+-       *         extracted, if any, and therefore does not affect the next
+-       *         call to @c gcount().
++       *  @note  This function first clears eofbit.  It does not count the
++       *         number of characters extracted, if any, and therefore does
++       *         not affect the next call to @c gcount().
+       */
+       __istream_type& 
+       seekg(off_type, ios_base::seekdir);
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/tuple gcc-4.6.0/libstdc++-v3/include/std/tuple
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/tuple	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/tuple	2011-04-15 14:52:57.782706000 +0000
+@@ -1,6 +1,6 @@
+ // <tuple> -*- C++ -*-
+ 
+-// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -177,10 +177,10 @@
+         _Tuple_impl(const _Tuple_impl<_Idx, _UElements...>& __in)
+ 	: _Inherited(__in._M_tail()), _Base(__in._M_head()) { }
+ 
+-      template<typename... _UElements>
+-        _Tuple_impl(_Tuple_impl<_Idx, _UElements...>&& __in)
++      template<typename _UHead, typename... _UTails>
++        _Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+ 	: _Inherited(std::move(__in._M_tail())),
+-	  _Base(std::move(__in._M_head())) { }
++	  _Base(std::forward<_UHead>(__in._M_head())) { }
+ 
+       _Tuple_impl&
+       operator=(const _Tuple_impl& __in)
+@@ -193,7 +193,7 @@
+       _Tuple_impl&
+       operator=(_Tuple_impl&& __in)
+       {
+-	_M_head() = std::move(__in._M_head());
++	_M_head() = std::forward<_Head>(__in._M_head());
+ 	_M_tail() = std::move(__in._M_tail());
+ 	return *this;
+       }
+@@ -207,11 +207,11 @@
+ 	  return *this;
+ 	}
+ 
+-      template<typename... _UElements>
++      template<typename _UHead, typename... _UTails>
+         _Tuple_impl&
+-        operator=(_Tuple_impl<_Idx, _UElements...>&& __in)
++        operator=(_Tuple_impl<_Idx, _UHead, _UTails...>&& __in)
+         {
+-	  _M_head() = std::move(__in._M_head());
++	  _M_head() = std::forward<_UHead>(__in._M_head());
+ 	  _M_tail() = std::move(__in._M_tail());
+ 	  return *this;
+ 	}
+@@ -672,7 +672,7 @@
+ 		       const tuple<_UElements...>& __u,
+ 		       const __index_holder<_UIdx...>&)
+     { return tuple<_TElements..., _UElements...>
+-	(std::move(get<_TIdx>(__t))..., get<_UIdx>(__u)...); }
++	(std::forward<_TElements>(get<_TIdx>(__t))..., get<_UIdx>(__u)...); }
+ 
+   template<typename... _TElements, std::size_t... _TIdx,
+ 	   typename... _UElements, std::size_t... _UIdx>
+@@ -682,7 +682,7 @@
+ 		       tuple<_UElements...>&& __u,
+ 		       const __index_holder<_UIdx...>&)
+     { return tuple<_TElements..., _UElements...>
+-	(get<_TIdx>(__t)..., std::move(get<_UIdx>(__u))...); }
++	(get<_TIdx>(__t)..., std::forward<_UElements>(get<_UIdx>(__u))...); }
+ 
+   template<typename... _TElements, std::size_t... _TIdx,
+ 	   typename... _UElements, std::size_t... _UIdx> 
+@@ -692,7 +692,8 @@
+ 		       tuple<_UElements...>&& __u,
+ 		       const __index_holder<_UIdx...>&)
+     { return tuple<_TElements..., _UElements...>
+-	(std::move(get<_TIdx>(__t))..., std::move(get<_UIdx>(__u))...); }
++	(std::forward<_TElements>(get<_TIdx>(__t))...,
++	 std::forward<_UElements>(get<_UIdx>(__u))...); }
+ 
+   template<typename... _TElements, typename... _UElements>
+     inline tuple<_TElements..., _UElements...> 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/include/std/type_traits gcc-4.6.0/libstdc++-v3/include/std/type_traits
+--- gcc-4.6.0.orig/libstdc++-v3/include/std/type_traits	2011-01-30 22:39:36.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/include/std/type_traits	2011-04-23 17:51:31.617668000 +0000
+@@ -1140,12 +1140,92 @@
+   template<typename _Signature>
+     class result_of;
+ 
++  template<typename _MemPtr, typename _Arg>
++    struct _Result_of_memobj;
++
++  template<typename _Res, typename _Class, typename _Arg>
++    struct _Result_of_memobj<_Res _Class::*, _Arg>
++    {
++    private:
++      typedef _Res _Class::* _Func;
++
++      template<typename _Tp>
++	static _Tp _S_get(const _Class&);
++      template<typename _Tp>
++	static decltype(*std::declval<_Tp>()) _S_get(...);
++        
++    public:
++      typedef
++        decltype(_S_get<_Arg>(std::declval<_Arg>()).*std::declval<_Func>())
++        __type;
++    };
++
++  template<typename _MemPtr, typename _Arg, typename... _ArgTypes>
++    struct _Result_of_memfun;
++
++  template<typename _Res, typename _Class, typename _Arg, typename... _Args>
++    struct _Result_of_memfun<_Res _Class::*, _Arg, _Args...>
++    {
++    private:
++      typedef _Res _Class::* _Func;
++
++      template<typename _Tp>
++	static _Tp _S_get(const _Class&);
++      template<typename _Tp>
++	static decltype(*std::declval<_Tp>()) _S_get(...);
++        
++    public:
++      typedef
++        decltype((_S_get<_Arg>(std::declval<_Arg>()).*std::declval<_Func>())
++            (std::declval<_Args>()...) )
++        __type;
++    };
++
++  template<bool, bool, typename _Functor, typename... _ArgTypes>
++    struct _Result_of_impl;
++
+   template<typename _Functor, typename... _ArgTypes>
+-    struct result_of<_Functor(_ArgTypes...)>
++    struct _Result_of_impl<false, false, _Functor, _ArgTypes...>
+     {
+       typedef
+         decltype( std::declval<_Functor>()(std::declval<_ArgTypes>()...) )
+-        type;
++        __type;
++    };
++
++  template<typename _MemPtr, typename _Arg>
++    struct _Result_of_impl<true, false, _MemPtr, _Arg>
++    : _Result_of_memobj<typename remove_reference<_MemPtr>::type, _Arg>
++    {
++      typedef typename _Result_of_memobj<
++	typename remove_reference<_MemPtr>::type, _Arg>::__type
++	__type;
++    };
++
++  template<typename _MemPtr, typename _Arg, typename... _ArgTypes>
++    struct _Result_of_impl<false, true, _MemPtr, _Arg, _ArgTypes...>
++    : _Result_of_memfun<typename remove_reference<_MemPtr>::type, _Arg,
++                        _ArgTypes...>
++    {
++      typedef typename _Result_of_memfun<
++	typename remove_reference<_MemPtr>::type, _Arg, _ArgTypes...>::__type
++	__type;
++    };
++
++  template<typename _Functor, typename... _ArgTypes>
++    struct result_of<_Functor(_ArgTypes...)>
++    : _Result_of_impl<is_member_object_pointer<
++                        typename remove_reference<_Functor>::type >::value,
++                      is_member_function_pointer<
++			typename remove_reference<_Functor>::type >::value,
++		      _Functor, _ArgTypes...>
++    {
++      typedef typename _Result_of_impl<
++	is_member_object_pointer<
++	  typename remove_reference<_Functor>::type >::value,
++        is_member_function_pointer<
++	  typename remove_reference<_Functor>::type >::value,
++       	_Functor, _ArgTypes...>::__type
++	type;
+     };
+ 
+   /**
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/libsupc++/exception_ptr.h gcc-4.6.0/libstdc++-v3/libsupc++/exception_ptr.h
+--- gcc-4.6.0.orig/libstdc++-v3/libsupc++/exception_ptr.h	2011-01-15 00:27:10.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/libsupc++/exception_ptr.h	2011-04-01 01:07:46.674562000 +0000
+@@ -137,7 +137,7 @@
+       operator==(const exception_ptr&, const exception_ptr&) throw() 
+       __attribute__ ((__pure__));
+ 
+-      const type_info*
++      const class type_info*
+       __cxa_exception_type() const throw() __attribute__ ((__pure__));
+     };
+ 
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/libsupc++/nested_exception.h gcc-4.6.0/libstdc++-v3/libsupc++/nested_exception.h
+--- gcc-4.6.0.orig/libstdc++-v3/libsupc++/nested_exception.h	2011-03-16 16:59:24.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/libsupc++/nested_exception.h	2011-04-01 01:07:46.674562000 +0000
+@@ -117,7 +117,7 @@
+   // with a type that has an accessible nested_exception base.
+   template<typename _Ex>
+     inline void
+-    __throw_with_nested(_Ex&& __ex, const nested_exception* = 0)
++    __throw_with_nested(_Ex&& __ex, const nested_exception*)
+     { throw __ex; }
+ 
+   template<typename _Ex>
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc	2011-04-16 02:04:56.934910000 +0000
+@@ -0,0 +1,30 @@
++// { dg-options "-std=gnu++0x " }
++// { dg-do compile }
++
++// Copyright (C) 2011 Free Software Foundation
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <memory>
++
++struct B { };
++struct D : B { };
++
++// libstdc++/48631
++D d;
++std::default_delete<B[]> db;
++typedef decltype(db(&d)) type; // { dg-error "use of deleted function" }
++// { dg-error "declared here" "" { target *-*-* } 83 }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/function/48541.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/function/48541.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/function/48541.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/function/48541.cc	2011-04-10 16:34:34.736528000 +0000
+@@ -0,0 +1,40 @@
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile }
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++//
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// libstdc++/48451
++
++#include <functional>
++
++struct X {
++  void operator () () const { }
++  float operator & () const { return 1.2345; }
++};
++
++void test01()
++{
++  X x;
++  std::function<void()> f(x);
++  f();
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/hash/chi2_quality.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/hash/chi2_quality.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/hash/chi2_quality.cc	2011-03-01 00:40:53.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/hash/chi2_quality.cc	2011-04-19 03:58:04.677754000 +0000
+@@ -183,6 +183,10 @@
+ void
+ test_document_words()
+ {
++  // That file is 187587 single-word lines.  To avoid a timeout, just skip
++  // this part, which would take up to 95% of the program runtime (with
++  // SAMPLES == 10000), if we're not supposed to run anywhere that long.
++#if SAMPLES >= 100000
+   bool test __attribute__((unused)) = true;
+   const std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+   std::ifstream in(f_name);
+@@ -199,6 +203,7 @@
+   const unsigned long k = words.size() / 20;
+   double chi2 = chi2_hash(words, k);
+   VERIFY( chi2 < k*1.1 );
++#endif
+ }
+ 
+ int
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc	2010-01-25 18:02:41.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/24803.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-options "-std=gnu++0x" }
+ // { dg-do compile }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -46,12 +46,18 @@
+ 
+ void test01()
+ {
++  test_type* null_tt = 0;
++  const test_type* null_ttc = 0;
+   int zero;
+ 
+   std::reference_wrapper<double (int)>* pr1(0);
+   verify_return_type((*pr1)(0), double());
+   std::reference_wrapper<double (*)(int)>* pr2(0);
+   verify_return_type((*pr2)(0), double());
++  std::reference_wrapper<int (test_type::*)()>* pr3(0);
++  verify_return_type((*pr3)(null_tt), int());
++  std::reference_wrapper<int (test_type::*)()const>* pr4(0);
++  verify_return_type((*pr4)(null_ttc), int());
+   std::reference_wrapper<functor1>* pr5(0);
+ 
+   // libstdc++/24803
+@@ -62,6 +68,10 @@
+   verify_return_type((*pr1b)(0, 0), double());
+   std::reference_wrapper<double (*)(int, char)>* pr2b(0);
+   verify_return_type((*pr2b)(0, 0), double());
++  std::reference_wrapper<int (test_type::*)(char)>* pr3b(0);
++  verify_return_type((*pr3b)(null_tt,zero), int());
++  std::reference_wrapper<int (test_type::*)()const>* pr4b(0);
++  verify_return_type((*pr4b)(null_ttc), int());
+   std::reference_wrapper<functor2>* pr5b(0);
+ 
+   // libstdc++/24803
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke-2.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -0,0 +1,47 @@
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile}
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++//
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING.  If not, write to the Free
++// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
++// USA.
++
++// 20.6.4 function object return types [func.ret]
++#include <functional>
++
++struct X
++{
++    int f(int) { return 0; }
++    int i;
++};
++
++void test01()
++{
++  typedef int (X::*mfp)(int);
++  typedef int X::*mp;
++  mfp m = &X::f;
++  mp m2 = &X::i;
++  X x = { };
++  std::ref(m)(x, 1);
++  std::ref(m)(&x, 1);
++  int& i1 = std::ref(m2)(x);
++  int& i2 = std::ref(m2)(&x);
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc	2010-01-25 18:02:41.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -1,6 +1,6 @@
+ // { dg-options "-std=gnu++0x" }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -36,6 +36,7 @@
+   int foo_c(float x)  const          { return truncate_float(x); }
+   int foo_v(float x)  volatile       { return truncate_float(x); }
+   int foo_cv(float x) const volatile { return truncate_float(x); }
++  int foo_varargs(float x, ...)      { return truncate_float(x); }
+ 
+   int operator()(float x)
+   {
+@@ -69,6 +70,13 @@
+ 
+   ::get_seventeen get_sev;
+   ::X x;
++  ::X* xp = &x;
++  int (::X::* p_foo)(float) = &::X::foo;
++  int (::X::* p_foo_c)(float) const = &::X::foo_c;
++  int (::X::* p_foo_v)(float) volatile = &::X::foo_v;
++  int (::X::* p_foo_cv)(float) const volatile = &::X::foo_cv;
++  int (::X::* p_foo_varargs)(float, ...) = &::X::foo_varargs;
++  int ::X::* p_bar = &::X::bar;
+ 
+   const float pi = 3.14;
+ 
+@@ -77,8 +85,26 @@
+   VERIFY(ref(seventeen)() == 17);
+ 
+   // Function pointers
+-  VERIFY(cref(&truncate_float)(pi) == 3);
+-  VERIFY(cref(&seventeen)() == 17);
++  VERIFY(cref(truncate_float)(pi) == 3);
++  VERIFY(cref(seventeen)() == 17);
++
++  // Member function pointers
++  VERIFY(ref(p_foo)(x, pi) == 3);
++  VERIFY(ref(p_foo)(xp, pi) == 3);
++  VERIFY(ref(p_foo_c)(x, pi) == 3);
++  VERIFY(ref(p_foo_c)(xp, pi) == 3);
++  VERIFY(ref(p_foo_v)(x, pi) == 3);
++  VERIFY(ref(p_foo_v)(xp, pi) == 3);
++  VERIFY(ref(p_foo_cv)(x, pi) == 3);
++  VERIFY(ref(p_foo_cv)(xp, pi) == 3);
++  // VERIFY(ref(p_foo_varargs)(x, pi) == 3);
++  // VERIFY(ref(p_foo_varargs)(xp, pi, 1, 1) == 3);
++  // VERIFY(ref(p_foo_varargs)(x, pi, 1, 1) == 3);
++  // VERIFY(ref(p_foo_varargs)(xp, pi) == 3);
++
++  // Member data pointers
++  VERIFY(ref(p_bar)(x) == 17);
++  VERIFY(ref(p_bar)(xp) == 17);
+ 
+   // Function objects
+   VERIFY(ref(get_sev)() == 17);
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/ref_neg.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -0,0 +1,44 @@
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 20.8.3 Class template reference_wrapper
++
++// { dg-do compile }
++// { dg-options "-std=gnu++0x" }
++
++#include <functional>
++
++struct X { };
++X rval();
++X&& rvalref();
++
++void test01()
++{
++  std::ref(1);          // { dg-error "deleted" }
++  std::cref(1);         // { dg-error "deleted" }
++  std::ref( int() );    // { dg-error "deleted" }
++  std::cref( int() );   // { dg-error "deleted" }
++  std::ref(rval());     // { dg-error "deleted" }
++  std::cref(rvalref()); // { dg-error "deleted" }
++}
++
++int main()
++{
++  test02();
++}
++
++// { dg-excess-errors "" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -0,0 +1,148 @@
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++//
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++//
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <functional>
++#include <type_traits>
++
++struct S { };
++
++struct S0
++{
++  typedef int argument_type;
++};
++
++struct S1
++{
++  typedef float first_argument_type;
++};
++
++struct S2
++{
++  typedef char second_argument_type;
++};
++
++struct S01 : S0, S1 { };
++struct S02 : S0, S2 { };
++struct S12 : S1, S2 { };
++
++struct S012 : S0, S1, S2 { };
++
++using std::__sfinae_types;
++using std::integral_constant;
++using std::remove_cv;
++
++_GLIBCXX_HAS_NESTED_TYPE(argument_type)
++_GLIBCXX_HAS_NESTED_TYPE(first_argument_type)
++_GLIBCXX_HAS_NESTED_TYPE(second_argument_type)
++
++template<typename T>
++  struct has_arg_type : __has_argument_type<T>
++  { };
++
++template<typename T>
++  struct has_1st_arg_type : __has_first_argument_type<T>
++  { };
++
++template<typename T>
++  struct has_2nd_arg_type : __has_second_argument_type<T>
++  { };
++
++template<typename T, bool = has_arg_type<T>::value>
++struct test_arg_type
++{
++  static_assert( !has_arg_type<std::reference_wrapper<T>>::value,
++      "reference_wrapper has no nested argument_type");
++};
++
++template<typename T>
++struct test_arg_type<T, true>
++{
++  typedef std::reference_wrapper<T> ref;
++
++  static_assert( has_arg_type<ref>::value,
++      "reference_wrapper has nested argument_type");
++
++  static_assert(
++      std::is_same< typename T::argument_type,
++                    typename ref::argument_type >::value,
++      "reference_wrapper has the correct argument_type");
++};
++
++template<typename T,
++         bool = has_1st_arg_type<T>::value && has_2nd_arg_type<T>::value>
++struct test_1st_2nd_arg_types
++{
++  typedef std::reference_wrapper<T> ref;
++
++  static_assert( !has_1st_arg_type<ref>::value,
++      "reference_wrapper has no nested first_argument_type");
++
++  static_assert( !has_2nd_arg_type<ref>::value,
++      "reference_wrapper has no nested second_argument_type");
++};
++
++template<typename T>
++struct test_1st_2nd_arg_types<T, true>
++{
++  typedef std::reference_wrapper<T> ref;
++
++  static_assert( has_1st_arg_type<ref>::value,
++      "reference_wrapper has nested first_argument_type");
++
++  static_assert( has_2nd_arg_type<ref>::value,
++      "reference_wrapper has nested second_argument_type");
++
++  static_assert(
++      std::is_same< typename T::first_argument_type,
++                    typename ref::first_argument_type>::value,
++      "reference_wrapper has correct first_argument_type");
++
++  static_assert(
++      std::is_same< typename T::second_argument_type,
++                    typename ref::second_argument_type>::value,
++      "reference_wrapper has correct second_argument_type");
++};
++
++
++template<typename T>
++  void test()
++  {
++    test_arg_type<T> t;
++    test_arg_type<const T> tc;
++    test_arg_type<volatile T> tv;
++    test_arg_type<const volatile T> tcv;
++    test_1st_2nd_arg_types<T> t12;
++    test_1st_2nd_arg_types<const T> t12c;
++    test_1st_2nd_arg_types<volatile T> t12v;
++    test_1st_2nd_arg_types<const volatile T> t12cv;
++  }
++
++int main()
++{
++  test<S>();
++  test<S0>();
++  test<S1>();
++  test<S2>();
++  test<S01>();
++  test<S02>();
++  test<S12>();
++  test<S012>();
++}
++
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc	2009-04-09 15:00:19.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc	2011-04-23 17:51:31.617668000 +0000
+@@ -1,6 +1,7 @@
++// { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -19,10 +20,6 @@
+ 
+ #include <functional>
+ #include <type_traits>
+-#include <testsuite_hooks.h>
+-#include <testsuite_tr1.h>
+-
+-using namespace __gnu_test;
+ 
+ struct X {};
+ 
+@@ -41,43 +38,18 @@
+ 
+ void test01()
+ {
+-  bool test __attribute__((unused)) = true;
+-
+   using std::reference_wrapper;
+   using std::is_same;
+-  using std::is_convertible;
+-  using std::unary_function;
+-  using std::binary_function;
+ 
+   // Check result_type typedef
+-  VERIFY((is_same<reference_wrapper<int_result_type>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<derives_unary>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<derives_binary>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<derives_unary_binary>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<int(void)>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<int(*)(void)>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<int (::X::*)()>::result_type, int>::value));
+-  VERIFY((is_same<reference_wrapper<int (::X::*)(float)>::result_type, int>::value));
+-
+-  // Check derivation from unary_function
+-  VERIFY((is_convertible<reference_wrapper<derives_unary>*, unary_function<int, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<derives_unary_binary>*, unary_function<int, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int(int)>*, unary_function<int, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int(*)(int)>*, unary_function<int, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)()>*, unary_function< ::X*, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)() const>*, unary_function<const ::X*, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)() volatile>*, unary_function<volatile ::X*, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)() const volatile>*, unary_function<const volatile ::X*, int>*>::value));
+-
+-  // Check derivation from binary_function
+-  VERIFY((is_convertible<reference_wrapper<derives_binary>*, binary_function<int, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<derives_unary_binary>*, binary_function<int, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int(int, float)>*, binary_function<int, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int(*)(int, float)>*, binary_function<int, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)(float)>*, binary_function< ::X*, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) const>*, binary_function<const ::X*, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) volatile>*, binary_function<volatile ::X*, float, int>*>::value));
+-  VERIFY((is_convertible<reference_wrapper<int (::X::*)(float) const volatile>*, binary_function<const volatile ::X*, float, int>*>::value));
++  static_assert( is_same<reference_wrapper<int_result_type>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<derives_unary>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<derives_binary>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<derives_unary_binary>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<int(void)>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<int(*)(void)>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<int (::X::*)()>::result_type, int>::value, "has result_type" );
++  static_assert( is_same<reference_wrapper<int (::X::*)(float)>::result_type, int>::value, "has result_type" );
+ }
+ 
+ int main()
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/48476.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/48476.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/48476.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/48476.cc	2011-04-15 14:52:57.782706000 +0000
+@@ -0,0 +1,51 @@
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <tuple>
++#include <type_traits>
++#include <memory>
++#include <testsuite_hooks.h>
++
++template<typename T>
++  typename std::decay<T>::type copy(T&& x)
++  { return std::forward<T>(x); }
++
++// libstdc++/48476
++void test01()
++{
++  bool test __attribute__((unused)) = true;
++
++  std::shared_ptr<int> p(new int()), q, r;
++  
++  std::tuple<std::shared_ptr<int>&, int>  t0(p, 23), t1(q, 0);
++  t1 = copy(t0);  // shall be equivalent to
++                  // q = p; std::get<1>(t1) = std::get<1>(t0);
++  VERIFY( q == p ); 
++
++  std::tuple<std::shared_ptr<int>&, char> t2(r, 0);
++  t2 = copy(t1);  // shall be equivalent to
++                  // r = q; std::get<1>(t2) = std::get<1>(t1);
++  VERIFY( r == q );
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc	2011-04-15 14:52:57.782706000 +0000
+@@ -0,0 +1,27 @@
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <tuple>
++
++void f()
++{
++  int i = 0;
++  std::tuple<int&, int> t __attribute__((unused)) = std::forward_as_tuple(i, 0);
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/tuple/creation_functions/48476.cc	2011-04-15 14:52:57.782706000 +0000
+@@ -0,0 +1,85 @@
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <tuple>
++#include <type_traits>
++#include <testsuite_hooks.h>
++
++template<typename T>
++  typename std::decay<T>::type copy(T&& x)
++  { return std::forward<T>(x); }
++
++template<typename... Args1, typename... Args2>
++  void
++  check_tuple_cat(std::tuple<Args1...> t1, std::tuple<Args2...> t2)
++  {
++    bool test __attribute__((unused)) = true;
++
++    typedef std::tuple<Args1..., Args2...> concatenated;
++  
++    auto cat1 = std::tuple_cat(     t1,       t2 );
++    auto cat2 = std::tuple_cat(copy(t1),      t2 );
++    auto cat3 = std::tuple_cat(     t1,  copy(t2));
++    auto cat4 = std::tuple_cat(copy(t1), copy(t2));
++  
++    static_assert( std::is_same<decltype(cat1), concatenated>::value, "" );
++    static_assert( std::is_same<decltype(cat2), concatenated>::value, "" );
++    static_assert( std::is_same<decltype(cat3), concatenated>::value, "" );
++    static_assert( std::is_same<decltype(cat4), concatenated>::value, "" );
++  
++    VERIFY( cat1 == cat2 );
++    VERIFY( cat1 == cat3 );
++    VERIFY( cat1 == cat4 );
++  }
++
++// libstdc++/48476
++void test01()
++{
++  int i = 0;
++  std::tuple<> t0;
++  std::tuple<int&> t1(i);
++  std::tuple<int&, int> t2(i, 0);
++  std::tuple<int const&, int, double> t3(i, 0, 0);
++  
++  check_tuple_cat(t0, t0);
++  check_tuple_cat(t0, t1);
++  check_tuple_cat(t0, t2);
++  check_tuple_cat(t0, t3);
++  
++  check_tuple_cat(t1, t0);
++  check_tuple_cat(t1, t1);
++  check_tuple_cat(t1, t2);
++  check_tuple_cat(t1, t3);
++  
++  check_tuple_cat(t2, t0);
++  check_tuple_cat(t2, t1);
++  check_tuple_cat(t2, t2);
++  check_tuple_cat(t2, t3);
++  
++  check_tuple_cat(t3, t0);
++  check_tuple_cat(t3, t1);
++  check_tuple_cat(t3, t2);
++  check_tuple_cat(t3, t3);
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc	2011-04-16 00:55:53.691210000 +0000
+@@ -0,0 +1,78 @@
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <memory>
++#include <testsuite_hooks.h>
++
++struct Deleter
++{
++  Deleter() = default;
++  Deleter(const Deleter&) = default;
++  Deleter(Deleter&&) = default;
++  
++  Deleter&
++  operator=(const Deleter&)
++  {
++    bool test __attribute__((unused)) = true;
++    VERIFY( true );
++    return *this;
++  }
++
++  Deleter&
++  operator=(Deleter&&)
++  {
++    bool test __attribute__((unused)) = true;
++    VERIFY( false );
++    return *this;
++  }
++
++  template<class T>
++    void
++    operator()(T*) const { }
++};
++
++struct DDeleter : Deleter { };
++
++// libstdc++/48635
++void test01()
++{
++  Deleter d;
++
++  std::unique_ptr<int, Deleter&> p1(nullptr, d), p2(nullptr, d);
++  p2 = std::move(p1);
++
++  DDeleter dd;
++
++  std::unique_ptr<int, DDeleter&> p1t(nullptr, dd);
++  std::unique_ptr<int, Deleter&> p2t(nullptr, d);
++  p2t = std::move(p1t);
++
++  std::unique_ptr<int[], Deleter&> p1a(nullptr, d), p2a(nullptr, d);
++  p2a = std::move(p1a);
++
++  std::unique_ptr<int[], DDeleter&> p1at(nullptr, dd);
++  std::unique_ptr<int[], Deleter&> p2at(nullptr, d);
++  p2at = std::move(p1at);
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	2011-04-17 21:46:20.464236000 +0000
+@@ -0,0 +1,50 @@
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile }
++
++// Copyright (C) 2011 Free Software Foundation
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License
++// along with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <memory>
++
++struct D;
++
++struct B
++{
++ B& operator=(D&) = delete; // { dg-error "declared here" }
++
++ template<class T>
++   void operator()(T*) const {}
++};
++
++struct D : B { };
++
++// libstdc++/48635
++void f()
++{
++  B b;
++  D d;
++
++  std::unique_ptr<int, B&> ub(nullptr, b);
++  std::unique_ptr<int, D&> ud(nullptr, d);
++  ub = std::move(ud);
++// { dg-error "use of deleted function" "" { target *-*-* } 189 }
++
++  std::unique_ptr<int[], B&> uba(nullptr, b);
++  std::unique_ptr<int[], D&> uda(nullptr, d);
++  uba = std::move(uda);
++// { dg-error "use of deleted function" "" { target *-*-* } 329 }
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc	2011-04-02 15:34:01.424147000 +0000
+@@ -0,0 +1,41 @@
++// { dg-do compile }
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++// 20.7.1 Class template unique_ptr [unique.ptr]
++
++#include <memory>
++
++// PR libstdc++/48398
++
++struct my_deleter
++{
++  typedef int* pointer;
++
++  void operator()( pointer p ) { delete p; }
++};
++
++void test01()
++{
++  std::unique_ptr<void, my_deleter> p( new int() );
++
++  p.get();
++  p.reset();
++
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc	2010-04-24 09:21:23.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/unique_ptr/requirements/pointer_type.cc	2011-04-02 15:34:01.424147000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-do compile }
+ // { dg-options "-std=gnu++0x" }
+ 
+-// Copyright (C) 2010 Free Software Foundation
++// Copyright (C) 2010, 2011 Free Software Foundation
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -25,13 +25,13 @@
+ 
+ struct A
+ {
+-  void operator()(void* p) const { }
++  void operator()(void*) const { }
+ };
+ 
+ struct B
+ {
+   typedef char* pointer;
+-  void operator()(pointer p) const { }
++  void operator()(pointer) const { }
+ };
+ 
+ int main()
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc	2011-03-16 16:59:24.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc	2011-04-16 02:04:56.934910000 +0000
+@@ -44,7 +44,7 @@
+ 
+ // { dg-warning "note" "" { target *-*-* } 354 }
+ // { dg-warning "note" "" { target *-*-* } 1086 }
+-// { dg-warning "note" "" { target *-*-* } 467 }
++// { dg-warning "note" "" { target *-*-* } 469 }
+ // { dg-warning "note" "" { target *-*-* } 587 }
+ // { dg-warning "note" "" { target *-*-* } 1050 }
+ // { dg-warning "note" "" { target *-*-* } 1056 }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc gcc-4.6.0/libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/26_numerics/accumulate/48750.cc	2011-05-03 17:54:35.276552000 +0000
+@@ -0,0 +1,70 @@
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <vector> 
++#include <numeric>
++
++class NaturalParameters
++{
++public:
++
++  NaturalParameters()
++  : m_data(2)
++  {  }
++
++  std::vector<double>::const_iterator
++  begin() const
++  { return m_data.begin(); }
++
++  std::vector<double>::const_iterator
++  end() const
++  { return m_data.begin(); }
++
++  NaturalParameters& 
++  operator+=(const NaturalParameters&)
++  { return *this; }
++
++private:
++  std::vector<double> m_data;
++};
++
++inline
++NaturalParameters
++operator+(const NaturalParameters& a, const NaturalParameters& b)
++{
++  NaturalParameters tmp = a;
++  return tmp += b;
++}
++
++// libstdc++/48750
++void test01()
++{
++  // Used to fail in parallel-mode with a segfault.
++  for (std::size_t i = 0; i < 1000; ++i)
++    {
++      std::vector<NaturalParameters> ChildrenNP(1000);
++      NaturalParameters init;
++      NaturalParameters NP = std::accumulate(ChildrenNP.begin(),
++					     ChildrenNP.end(), init); 
++    }
++}
++
++int main()
++{
++  test01();
++  return 0;    
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc gcc-4.6.0/libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/26_numerics/complex/cons/48760.cc	2011-04-29 23:19:59.635228000 +0000
+@@ -0,0 +1,56 @@
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <complex>
++#include <limits>
++#include <testsuite_hooks.h>
++
++template<typename T>
++  void do_test01()
++  {
++    bool test __attribute__((unused)) = true;
++
++    if (std::numeric_limits<T>::has_quiet_NaN)
++      {
++	std::complex<T> c1(T(0), std::numeric_limits<T>::quiet_NaN());
++	VERIFY( c1.real() == T(0) );
++	VERIFY( std::isnan(c1.imag()) );
++
++	std::complex<T> c2(std::numeric_limits<T>::quiet_NaN(), T(0));
++	VERIFY( std::isnan(c2.real()) );
++	VERIFY( c2.imag() == T(0) );
++
++	std::complex<T> c3(std::numeric_limits<T>::quiet_NaN(),
++			   std::numeric_limits<T>::quiet_NaN());
++	VERIFY( std::isnan(c3.real()) );
++	VERIFY( std::isnan(c3.imag()) );
++      }
++  }
++
++// libstdc++/48760
++void test01()
++{
++  do_test01<float>();
++  do_test01<double>();
++  do_test01<long double>();
++}
++
++int main()
++{
++  test01();
++  return 0;
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc gcc-4.6.0/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc	2010-09-22 19:40:43.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/4.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,6 +1,6 @@
+ // { dg-require-fileio "" }
+ 
+-// Copyright (C) 2010 Free Software Foundation, Inc.
++// Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -21,6 +21,7 @@
+ 
+ #include <fstream>
+ #include <cwchar>
++#include <cstring>
+ #include <testsuite_hooks.h>
+ 
+ void test01()
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc	2010-11-06 03:35:46.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-options "-std=gnu++0x" }
+ // { dg-do compile }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -28,5 +28,5 @@
+   return 0;
+ }
+ 
+-// { dg-error "deleted" "" { target *-*-* } 571 }
++// { dg-error "deleted" "" { target *-*-* } 572 }
+ // { dg-prune-output "include" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc	2010-11-06 03:35:46.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-options "-std=gnu++0x" }
+ // { dg-do compile }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -28,5 +28,5 @@
+   return 0;
+ }
+ 
+-// { dg-error "deleted" "" { target *-*-* } 610 }
++// { dg-error "deleted" "" { target *-*-* } 611 }
+ // { dg-prune-output "include" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc	2010-11-06 03:35:46.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-options "-std=gnu++0x" }
+ // { dg-do compile }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -29,5 +29,5 @@
+   return 0;
+ }
+ 
+-// { dg-error "deleted" "" { target *-*-* } 571 }
++// { dg-error "deleted" "" { target *-*-* } 572 }
+ // { dg-prune-output "include" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc	2010-11-06 03:35:46.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,7 +1,7 @@
+ // { dg-options "-std=gnu++0x" }
+ // { dg-do compile }
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -29,5 +29,5 @@
+   return 0;
+ }
+ 
+-// { dg-error "deleted" "" { target *-*-* } 610 }
++// { dg-error "deleted" "" { target *-*-* } 611 }
+ // { dg-prune-output "include" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc	2010-11-02 02:35:28.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -2,7 +2,7 @@
+ // { dg-do compile }
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ 
+ // This library is free software; you can redistribute it and/or
+ // modify it under the terms of the GNU General Public License as
+@@ -27,7 +27,7 @@
+   return 0;
+ }
+ 
+-// { dg-error "operator" "" { target *-*-* } 427 }
+ // { dg-error "operator" "" { target *-*-* } 428 }
+ // { dg-error "operator" "" { target *-*-* } 429 }
++// { dg-error "operator" "" { target *-*-* } 430 }
+ // { dg-excess-errors "In file included from" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc	2010-11-02 02:35:28.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -2,7 +2,7 @@
+ // { dg-do compile }
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ 
+ // This library is free software; you can redistribute it and/or
+ // modify it under the terms of the GNU General Public License as
+@@ -28,6 +28,6 @@
+   return 0;
+ }
+ 
+-// { dg-error "operator" "" { target *-*-* } 384 }
+ // { dg-error "operator" "" { target *-*-* } 385 }
+ // { dg-error "operator" "" { target *-*-* } 386 }
++// { dg-error "operator" "" { target *-*-* } 387 }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc	2010-11-02 02:35:28.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -2,7 +2,7 @@
+ // { dg-do compile }
+ // -*- C++ -*-
+ 
+-// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
++// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ 
+ // This library is free software; you can redistribute it and/or
+ // modify it under the terms of the GNU General Public License as
+@@ -28,6 +28,6 @@
+   return 0;
+ }
+ 
+-// { dg-error "operator" "" { target *-*-* } 362 }
+ // { dg-error "operator" "" { target *-*-* } 363 }
+ // { dg-error "operator" "" { target *-*-* } 364 }
++// { dg-error "operator" "" { target *-*-* } 365 }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/iota/cxx0x.cc gcc-4.6.0/libstdc++-v3/testsuite/ext/iota/cxx0x.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/iota/cxx0x.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/ext/iota/cxx0x.cc	2011-04-07 04:11:12.125752000 +0000
+@@ -0,0 +1,28 @@
++// { dg-do compile }
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <ext/numeric>
++#include <vector>
++
++void foo()
++{
++  std::vector<int> v;
++  iota(v.begin(), v.end(), 0);
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc gcc-4.6.0/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/ext/is_sorted/cxx0x.cc	2011-04-07 04:11:12.125752000 +0000
+@@ -0,0 +1,28 @@
++// { dg-do compile }
++// { dg-options "-std=gnu++0x" }
++
++// Copyright (C) 2011 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING3.  If not see
++// <http://www.gnu.org/licenses/>.
++
++#include <ext/algorithm>
++#include <vector>
++
++void foo()
++{
++  std::vector<int> v;
++  is_sorted(v.begin(), v.end());
++}
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2011-03-04 21:51:56.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc	2011-05-03 17:54:35.276552000 +0000
+@@ -3,6 +3,9 @@
+ 
+ // -*- C++ -*-
+ 
++// Otherwise we may get *multiple* errors.
++#undef _GLIBCXX_PARALLEL
++
+ // Copyright (C) 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc	2009-04-09 15:00:19.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,6 +1,6 @@
+ // 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+ //
+-// Copyright (C) 2005, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2005, 2009, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -22,6 +22,7 @@
+ 
+ // libstdc++/23781
+ #include <tr1/unordered_map>
++#include <cstddef>
+ 
+ std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
+ std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc gcc-4.6.0/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc	2009-04-09 15:00:19.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc	2011-04-12 09:05:41.338189000 +0000
+@@ -1,6 +1,6 @@
+ // 2005-09-10  Paolo Carlini  <pcarlini@suse.de>
+ //
+-// Copyright (C) 2005, 2009 Free Software Foundation, Inc.
++// Copyright (C) 2005, 2009, 2011 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -22,6 +22,7 @@
+ 
+ // libstdc++/23781
+ #include <tr1/unordered_set>
++#include <cstddef>
+ 
+ std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
+ std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/util/testsuite_abi.cc gcc-4.6.0/libstdc++-v3/testsuite/util/testsuite_abi.cc
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/util/testsuite_abi.cc	2011-03-21 19:11:27.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/util/testsuite_abi.cc	2011-04-10 16:19:41.897059000 +0000
+@@ -193,6 +193,7 @@
+       known_versions.push_back("GLIBCXX_3.4.13");
+       known_versions.push_back("GLIBCXX_3.4.14");
+       known_versions.push_back("GLIBCXX_3.4.15");
++      known_versions.push_back("GLIBCXX_3.4.16");
+       known_versions.push_back("GLIBCXX_LDBL_3.4");
+       known_versions.push_back("GLIBCXX_LDBL_3.4.7");
+       known_versions.push_back("GLIBCXX_LDBL_3.4.10");
+diff -Naur gcc-4.6.0.orig/libstdc++-v3/testsuite/util/testsuite_common_types.h gcc-4.6.0/libstdc++-v3/testsuite/util/testsuite_common_types.h
+--- gcc-4.6.0.orig/libstdc++-v3/testsuite/util/testsuite_common_types.h	2011-01-18 11:12:06.000000000 +0000
++++ gcc-4.6.0/libstdc++-v3/testsuite/util/testsuite_common_types.h	2011-04-12 09:05:41.338189000 +0000
+@@ -1,7 +1,7 @@
+ // -*- C++ -*-
+ // typelist for the C++ library testsuite. 
+ //
+-// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
++// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -37,6 +37,7 @@
+ #include <list>
+ #include <deque>
+ #include <string>
++#include <limits>
+ 
+ #include <map>
+ #include <set>
+diff -Naur gcc-4.6.0.orig/lto-plugin/lto-plugin.c gcc-4.6.0/lto-plugin/lto-plugin.c
+--- gcc-4.6.0.orig/lto-plugin/lto-plugin.c	2011-01-25 15:29:02.000000000 +0000
++++ gcc-4.6.0/lto-plugin/lto-plugin.c	2011-04-05 12:13:27.610737000 +0000
+@@ -851,11 +851,11 @@
+       /* We pass the offset of the actual file, not the archive header.
+          Can't use PRIx64, because that's C99, so we have to print the
+ 	 64-bit hex int as two 32-bit ones. */
+-      int lo, hi;
++      int lo, hi, t;
+       lo = file->offset & 0xffffffff;
+       hi = ((int64_t)file->offset >> 32) & 0xffffffff;
+-      int t = hi ? asprintf (&objname, "%s@0x%x%08x", file->name, lo, hi)
+-		: asprintf (&objname, "%s@0x%x", file->name, lo);
++      t = hi ? asprintf (&objname, "%s@0x%x%08x", file->name, lo, hi)
++	     : asprintf (&objname, "%s@0x%x", file->name, lo);
+       check (t >= 0, LDPL_FATAL, "asprintf failed");
+       lto_file.name = objname;
+     }
Index: patches/ncurses-5.9-branch_update-1.patch
===================================================================
--- patches/ncurses-5.9-branch_update-1.patch	(revision 7d97f36d6c68f7a3e42aeabc0732ea935a9c68d5)
+++ 	(revision )
@@ -1,9921 +1,0 @@
-Submitted By: Joe Ciccone <jciccone@gmail.com>
-Date: 2011-04-16
-Initial Package Version: 5.9
-Origin: Upstream
-Upstream Status: From Upstream
-Description: Update NCurses with the periodic fixes posted at
-             ftp://invisible-island.net/ncurses/5.9/
-
-             This patch includes the following fixes:
-
-             ncurses-5.9-20110409.patch.gz
-
-diff -Naur ncurses-5.9.orig/NEWS ncurses-5.9/NEWS
---- ncurses-5.9.orig/NEWS	2011-04-03 20:02:42.000000000 -0400
-+++ ncurses-5.9/NEWS	2011-04-16 13:56:50.767211046 -0400
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written        --
- -- authorization.                                                            --
- -------------------------------------------------------------------------------
---- $Id: NEWS,v 1.1682 2011/04/04 00:02:42 tom Exp $
-+-- $Id: NEWS,v 1.1686 2011/04/10 00:05:44 tom Exp $
- -------------------------------------------------------------------------------
- 
- This is a log of changes that ncurses has gone through since Zeyd started
-@@ -45,6 +45,15 @@
- Changes through 1.9.9e did not credit all contributions;
- it is not possible to add this information.
- 
-+20110409
-+	+ fixes to build c++ binding with clang 3.0 (patch by Alexander
-+	  Kolesen).
-+	+ add check for unctrl.h in test/configure, to work around breakage in
-+	  some ncurses packages.
-+	+ add "--disable-widec" option to test/configure script.
-+	+ add "--with-curses-colr" and "--with-curses-5lib" options to the
-+	  test/configure script to address testing with very old machines.
-+
- 20110404 5.9 release for upload to ftp.gnu.org
- 
- 20110402
-diff -Naur ncurses-5.9.orig/c++/cursesf.h ncurses-5.9/c++/cursesf.h
---- ncurses-5.9.orig/c++/cursesf.h	2005-08-13 14:08:24.000000000 -0400
-+++ ncurses-5.9/c++/cursesf.h	2011-04-16 13:56:50.767211046 -0400
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
-+ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc.              *
-  *                                                                          *
-  * Permission is hereby granted, free of charge, to any person obtaining a  *
-  * copy of this software and associated documentation files (the            *
-@@ -31,7 +31,7 @@
-  *   Author: Juergen Pfeifer, 1997                                          *
-  ****************************************************************************/
- 
--// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
-+// $Id: cursesf.h,v 1.29 2011/04/09 18:07:01 Alexander.Kolesen Exp $
- 
- #ifndef NCURSES_CURSESF_H_incl
- #define NCURSES_CURSESF_H_incl 1
-@@ -681,7 +681,7 @@
- 		   const T* p_UserData = STATIC_CAST(T*)(0),
- 		   bool with_frame=FALSE,
- 		   bool autoDelete_Fields=FALSE)
--    : NCursesForm (Fields, with_frame, autoDelete_Fields) {
-+    : NCursesForm (&Fields, with_frame, autoDelete_Fields) {
-       if (form)
- 	set_user (const_cast<void *>(p_UserData));
-   };
-@@ -694,7 +694,7 @@
- 		   const T* p_UserData = STATIC_CAST(T*)(0),
- 		   bool with_frame=FALSE,
- 		   bool autoDelete_Fields=FALSE)
--    : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
-+    : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x,
- 		   with_frame, autoDelete_Fields) {
-       if (form)
- 	set_user (const_cast<void *>(p_UserData));
-diff -Naur ncurses-5.9.orig/c++/cursesm.h ncurses-5.9/c++/cursesm.h
---- ncurses-5.9.orig/c++/cursesm.h	2005-08-13 14:10:36.000000000 -0400
-+++ ncurses-5.9/c++/cursesm.h	2011-04-16 13:56:50.767211046 -0400
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
-+ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc.              *
-  *                                                                          *
-  * Permission is hereby granted, free of charge, to any person obtaining a  *
-  * copy of this software and associated documentation files (the            *
-@@ -31,7 +31,7 @@
-  *   Author: Juergen Pfeifer, 1997                                          *
-  ****************************************************************************/
- 
--// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
-+// $Id: cursesm.h,v 1.26 2011/04/09 18:07:08 Alexander.Kolesen Exp $
- 
- #ifndef NCURSES_CURSESM_H_incl
- #define NCURSES_CURSESM_H_incl 1
-@@ -639,7 +639,7 @@
- 		   const T* p_UserData = STATIC_CAST(T*)(0),
- 		   bool with_frame=FALSE,
- 		   bool autoDelete_Items=FALSE)
--    : NCursesMenu (Items, with_frame, autoDelete_Items) {
-+    : NCursesMenu (&Items, with_frame, autoDelete_Items) {
-       if (menu)
- 	set_user (const_cast<void *>(p_UserData));
-   };
-@@ -651,7 +651,7 @@
- 		   int begin_x = 0,
- 		   const T* p_UserData = STATIC_CAST(T*)(0),
- 		   bool with_frame=FALSE)
--    : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
-+    : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) {
-       if (menu)
- 	set_user (const_cast<void *>(p_UserData));
-   };
-diff -Naur ncurses-5.9.orig/dist.mk ncurses-5.9/dist.mk
---- ncurses-5.9.orig/dist.mk	2011-04-04 18:42:20.000000000 -0400
-+++ ncurses-5.9/dist.mk	2011-04-16 13:56:50.767211046 -0400
-@@ -25,7 +25,7 @@
- # use or other dealings in this Software without prior written               #
- # authorization.                                                             #
- ##############################################################################
--# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $
-+# $Id: dist.mk,v 1.811 2011/04/09 16:14:30 tom Exp $
- # Makefile for creating ncurses distributions.
- #
- # This only needs to be used directly as a makefile by developers, but
-@@ -37,7 +37,7 @@
- # These define the major/minor/patch versions of ncurses.
- NCURSES_MAJOR = 5
- NCURSES_MINOR = 9
--NCURSES_PATCH = 20110404
-+NCURSES_PATCH = 20110409
- 
- # We don't append the patch to the version, since this only applies to releases
- VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
-diff -Naur ncurses-5.9.orig/include/ncurses_defs ncurses-5.9/include/ncurses_defs
---- ncurses-5.9.orig/include/ncurses_defs	2011-03-22 05:17:59.000000000 -0400
-+++ ncurses-5.9/include/ncurses_defs	2011-04-16 13:56:50.767211046 -0400
-@@ -1,4 +1,4 @@
--# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $
-+# $Id: ncurses_defs,v 1.47 2011/04/09 20:40:48 tom Exp $
- ##############################################################################
- # Copyright (c) 2000-2010,2011 Free Software Foundation, Inc.                #
- #                                                                            #
-@@ -153,6 +153,7 @@
- HAVE_TYPEINFO
- HAVE_TYPE_ATTR_T
- HAVE_TYPE_SIGACTION
-+HAVE_UNCTRL_H	1
- HAVE_UNISTD_H
- HAVE_UNLINK
- HAVE_USE_DEFAULT_COLORS
-diff -Naur ncurses-5.9.orig/test/aclocal.m4 ncurses-5.9/test/aclocal.m4
---- ncurses-5.9.orig/test/aclocal.m4	2011-03-24 04:28:07.000000000 -0400
-+++ ncurses-5.9/test/aclocal.m4	2011-04-16 13:56:50.767211046 -0400
-@@ -26,7 +26,7 @@
- dnl authorization.                                                           *
- dnl***************************************************************************
- dnl
--dnl $Id: aclocal.m4,v 1.50 2011/03/24 08:28:07 tom Exp $
-+dnl $Id: aclocal.m4,v 1.52 2011/04/09 22:22:11 tom Exp $
- dnl
- dnl Author: Thomas E. Dickey
- dnl
-@@ -533,7 +533,7 @@
- CF_CURSES_LIBS
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
-+dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
- dnl ------------------
- dnl Look for the curses headers.
- AC_DEFUN([CF_CURSES_CPPFLAGS],[
-@@ -542,13 +542,19 @@
- cf_cv_curses_incdir=no
- case $host_os in #(vi
- hpux10.*) #(vi
--	test -d /usr/include/curses_colr && \
--	cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+	if test "x$cf_cv_screen" = "xcurses_colr"
-+	then
-+		test -d /usr/include/curses_colr && \
-+		cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+	fi
- 	;;
- sunos3*|sunos4*)
--	test -d /usr/5lib && \
--	test -d /usr/5include && \
--	cf_cv_curses_incdir="-I/usr/5include"
-+	if test "x$cf_cv_screen" = "xcurses_5lib"
-+	then
-+		test -d /usr/5lib && \
-+		test -d /usr/5include && \
-+		cf_cv_curses_incdir="-I/usr/5include"
-+	fi
- 	;;
- esac
- ])
-@@ -558,7 +564,7 @@
- CF_TERM_HEADER
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32
-+dnl CF_CURSES_FUNCS version: 16 updated: 2011/04/09 18:19:55
- dnl ---------------
- dnl Curses-functions are a little complicated, since a lot of them are macros.
- AC_DEFUN([CF_CURSES_FUNCS],
-@@ -566,6 +572,7 @@
- AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
- AC_REQUIRE([CF_XOPEN_CURSES])
- AC_REQUIRE([CF_CURSES_TERM_H])
-+AC_REQUIRE([CF_CURSES_UNCTRL_H])
- for cf_func in $1
- do
- 	CF_UPPER(cf_tr_func,$cf_func)
-@@ -624,7 +631,7 @@
- AC_CHECK_HEADERS($cf_cv_ncurses_header)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18
-+dnl CF_CURSES_LIBS version: 34 updated: 2011/04/09 14:51:08
- dnl --------------
- dnl Look for the curses libraries.  Older curses implementations may require
- dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
-@@ -644,16 +651,23 @@
-     AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
-     ;;
- hpux10.*) #(vi
--    AC_CHECK_LIB(cur_colr,initscr,[
--        CF_ADD_LIBS(-lcur_colr)
--        ac_cv_func_initscr=yes
--        ],[
--    AC_CHECK_LIB(Hcurses,initscr,[
--        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
--        CF_ADD_LIBS(-lHcurses)
--        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
--        ac_cv_func_initscr=yes
--        ])])
-+	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
-+	# next (1998), and xcurses "newer" (2000).  There is no header file for
-+	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
-+	# term.h) for cur_colr
-+	if test "x$cf_cv_screen" = "xcurses_colr"
-+	then
-+		AC_CHECK_LIB(cur_colr,initscr,[
-+			CF_ADD_LIBS(-lcur_colr)
-+			ac_cv_func_initscr=yes
-+			],[
-+		AC_CHECK_LIB(Hcurses,initscr,[
-+			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-+			CF_ADD_LIBS(-lHcurses)
-+			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-+			ac_cv_func_initscr=yes
-+			])])
-+	fi
-     ;;
- linux*)
- 	case `arch 2>/dev/null` in
-@@ -671,9 +685,12 @@
- 	esac
-     ;;
- sunos3*|sunos4*)
--    if test -d /usr/5lib ; then
--      CF_ADD_LIBDIR(/usr/5lib)
--      CF_ADD_LIBS(-lcurses -ltermcap)
-+	if test "x$cf_cv_screen" = "xcurses_5lib"
-+	then
-+		if test -d /usr/5lib ; then
-+			CF_ADD_LIBDIR(/usr/5lib)
-+			CF_ADD_LIBS(-lcurses -ltermcap)
-+		fi
-     fi
-     ac_cv_func_initscr=yes
-     ;;
-@@ -738,7 +755,7 @@
- 
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49
-+dnl CF_CURSES_TERM_H version: 9 updated: 2011/04/09 18:19:55
- dnl ----------------
- dnl SVr4 curses should have term.h as well (where it puts the definitions of
- dnl the low-level interface).  This may not be true in old/broken implementations,
-@@ -752,9 +769,17 @@
- 
- # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
- # for <term.h> if we do not find the variant.
--for cf_header in \
--	`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
--	term.h
-+
-+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
-+	cf_header_list="$cf_header_item $cf_header_list"
-+	;;
-+esac
-+
-+for cf_header in $cf_header_list
- do
- 	AC_TRY_COMPILE([
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -799,6 +824,61 @@
- 	;;
- esac
- ])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CURSES_UNCTRL_H version: 1 updated: 2011/04/09 18:19:55
-+dnl ------------------
-+dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
-+dnl may put it in a subdirectory (along with ncurses' other headers, of
-+dnl course).  Packages which put the headers in inconsistent locations are
-+dnl broken).
-+AC_DEFUN([CF_CURSES_UNCTRL_H],
-+[
-+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-+
-+AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
-+
-+# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
-+# for <unctrl.h> if we do not find the variant.
-+
-+cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
-+	cf_header_list="$cf_header_item $cf_header_list"
-+	;;
-+esac
-+
-+for cf_header in $cf_header_list
-+do
-+	AC_TRY_COMPILE([
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <${cf_header}>],
-+	[WINDOW *x],
-+	[cf_cv_unctrl_header=$cf_header
-+	 break],
-+	[cf_cv_unctrl_header=no])
-+done
-+
-+case $cf_cv_unctrl_header in #(vi
-+no)
-+	AC_MSG_WARN(unctrl.h header not found)
-+	;;
-+esac
-+])
-+
-+case $cf_cv_unctrl_header in #(vi
-+unctrl.h) #(vi
-+	AC_DEFINE(HAVE_UNCTRL_H)
-+	;;
-+ncurses/unctrl.h) #(vi
-+	AC_DEFINE(HAVE_NCURSES_UNCTRL_H)
-+	;;
-+ncursesw/unctrl.h)
-+	AC_DEFINE(HAVE_NCURSESW_UNCTRL_H)
-+	;;
-+esac
-+])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
- dnl ------------------
-diff -Naur ncurses-5.9.orig/test/configure ncurses-5.9/test/configure
---- ncurses-5.9.orig/test/configure	2011-03-24 04:29:40.000000000 -0400
-+++ ncurses-5.9/test/configure	2011-04-16 13:56:50.779211046 -0400
-@@ -105,42 +105,6 @@
- : ${ac_max_here_lines=38}
- 
- ac_unique_file="ncurses.c"
--# Factoring default headers for most tests.
--ac_includes_default="\
--#include <stdio.h>
--#if HAVE_SYS_TYPES_H
--# include <sys/types.h>
--#endif
--#if HAVE_SYS_STAT_H
--# include <sys/stat.h>
--#endif
--#if STDC_HEADERS
--# include <stdlib.h>
--# include <stddef.h>
--#else
--# if HAVE_STDLIB_H
--#  include <stdlib.h>
--# endif
--#endif
--#if HAVE_STRING_H
--# if !STDC_HEADERS && HAVE_MEMORY_H
--#  include <memory.h>
--# endif
--# include <string.h>
--#endif
--#if HAVE_STRINGS_H
--# include <strings.h>
--#endif
--#if HAVE_INTTYPES_H
--# include <inttypes.h>
--#else
--# if HAVE_STDINT_H
--#  include <stdint.h>
--# endif
--#endif
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif"
- 
- # Initialize some variables set by options.
- ac_init_help=
-@@ -687,11 +651,13 @@
-   --with-dbmalloc         test: use Conor Cahill's dbmalloc library
-   --with-valgrind         test: use valgrind
-   --disable-leaks         test: free permanent memory, analyze leaks
-+--disable-widec           disable checks for wide-character functions
-   --with-curses-dir=DIR   directory in which (n)curses is installed
--  --with-5lib             use SunOS sysv-libraries
-   --with-ncursesw         use wide ncurses-libraries (installed)
-   --with-ncurses          use ncurses-libraries (installed)
-   --with-pdcurses         compile/link with pdcurses X11 library
-+  --with-curses-colr      compile/link with HPUX 10.x color-curses
-+  --with-curses-5lib      compile/link with SunOS 5lib curses
-   --with-Xaw3d            link with Xaw 3d library
-   --with-neXtaw           link with neXT Athena library
-   --with-XawPlus          link with Athena-Plus library
-@@ -891,7 +857,7 @@
- fi
- for ac_site_file in $CONFIG_SITE; do
-   if test -r "$ac_site_file"; then
--    { echo "$as_me:894: loading site script $ac_site_file" >&5
-+    { echo "$as_me:860: loading site script $ac_site_file" >&5
- echo "$as_me: loading site script $ac_site_file" >&6;}
-     cat "$ac_site_file" >&5
-     . "$ac_site_file"
-@@ -902,7 +868,7 @@
-   # Some versions of bash will fail to source /dev/null (special
-   # files actually), so we avoid doing that.
-   if test -f "$cache_file"; then
--    { echo "$as_me:905: loading cache $cache_file" >&5
-+    { echo "$as_me:871: loading cache $cache_file" >&5
- echo "$as_me: loading cache $cache_file" >&6;}
-     case $cache_file in
-       [\\/]* | ?:[\\/]* ) . $cache_file;;
-@@ -910,7 +876,7 @@
-     esac
-   fi
- else
--  { echo "$as_me:913: creating cache $cache_file" >&5
-+  { echo "$as_me:879: creating cache $cache_file" >&5
- echo "$as_me: creating cache $cache_file" >&6;}
-   >$cache_file
- fi
-@@ -926,21 +892,21 @@
-   eval ac_new_val="\$ac_env_${ac_var}_value"
-   case $ac_old_set,$ac_new_set in
-     set,)
--      { echo "$as_me:929: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+      { echo "$as_me:895: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-       ac_cache_corrupted=: ;;
-     ,set)
--      { echo "$as_me:933: error: \`$ac_var' was not set in the previous run" >&5
-+      { echo "$as_me:899: error: \`$ac_var' was not set in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-       ac_cache_corrupted=: ;;
-     ,);;
-     *)
-       if test "x$ac_old_val" != "x$ac_new_val"; then
--        { echo "$as_me:939: error: \`$ac_var' has changed since the previous run:" >&5
-+        { echo "$as_me:905: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
--        { echo "$as_me:941:   former value:  $ac_old_val" >&5
-+        { echo "$as_me:907:   former value:  $ac_old_val" >&5
- echo "$as_me:   former value:  $ac_old_val" >&2;}
--        { echo "$as_me:943:   current value: $ac_new_val" >&5
-+        { echo "$as_me:909:   current value: $ac_new_val" >&5
- echo "$as_me:   current value: $ac_new_val" >&2;}
-         ac_cache_corrupted=:
-       fi;;
-@@ -959,9 +925,9 @@
-   fi
- done
- if $ac_cache_corrupted; then
--  { echo "$as_me:962: error: changes in the environment can compromise the build" >&5
-+  { echo "$as_me:928: error: changes in the environment can compromise the build" >&5
- echo "$as_me: error: changes in the environment can compromise the build" >&2;}
--  { { echo "$as_me:964: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+  { { echo "$as_me:930: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
- echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -982,10 +948,10 @@
- echo "#! $SHELL" >conftest.sh
- echo  "exit 0"   >>conftest.sh
- chmod +x conftest.sh
--if { (echo "$as_me:985: PATH=\".;.\"; conftest.sh") >&5
-+if { (echo "$as_me:951: PATH=\".;.\"; conftest.sh") >&5
-   (PATH=".;."; conftest.sh) 2>&5
-   ac_status=$?
--  echo "$as_me:988: \$? = $ac_status" >&5
-+  echo "$as_me:954: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
-   ac_path_separator=';'
- else
-@@ -1017,7 +983,7 @@
-   fi
- done
- if test -z "$ac_aux_dir"; then
--  { { echo "$as_me:1020: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-+  { { echo "$as_me:986: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
- echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -1027,11 +993,11 @@
- 
- # Make sure we can run config.sub.
- $ac_config_sub sun4 >/dev/null 2>&1 ||
--  { { echo "$as_me:1030: error: cannot run $ac_config_sub" >&5
-+  { { echo "$as_me:996: error: cannot run $ac_config_sub" >&5
- echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-    { (exit 1); exit 1; }; }
- 
--echo "$as_me:1034: checking build system type" >&5
-+echo "$as_me:1000: checking build system type" >&5
- echo $ECHO_N "checking build system type... $ECHO_C" >&6
- if test "${ac_cv_build+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1040,16 +1006,16 @@
- test -z "$ac_cv_build_alias" &&
-   ac_cv_build_alias=`$ac_config_guess`
- test -z "$ac_cv_build_alias" &&
--  { { echo "$as_me:1043: error: cannot guess build type; you must specify one" >&5
-+  { { echo "$as_me:1009: error: cannot guess build type; you must specify one" >&5
- echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-    { (exit 1); exit 1; }; }
- ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
--  { { echo "$as_me:1047: error: $ac_config_sub $ac_cv_build_alias failed." >&5
-+  { { echo "$as_me:1013: error: $ac_config_sub $ac_cv_build_alias failed." >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
-    { (exit 1); exit 1; }; }
- 
- fi
--echo "$as_me:1052: result: $ac_cv_build" >&5
-+echo "$as_me:1018: result: $ac_cv_build" >&5
- echo "${ECHO_T}$ac_cv_build" >&6
- build=$ac_cv_build
- build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1057,7 +1023,7 @@
- build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
- 
- if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
--	echo "$as_me:1060: checking host system type" >&5
-+	echo "$as_me:1026: checking host system type" >&5
- echo $ECHO_N "checking host system type... $ECHO_C" >&6
- if test "${ac_cv_host+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1066,12 +1032,12 @@
- test -z "$ac_cv_host_alias" &&
-   ac_cv_host_alias=$ac_cv_build_alias
- ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
--  { { echo "$as_me:1069: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-+  { { echo "$as_me:1035: error: $ac_config_sub $ac_cv_host_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-    { (exit 1); exit 1; }; }
- 
- fi
--echo "$as_me:1074: result: $ac_cv_host" >&5
-+echo "$as_me:1040: result: $ac_cv_host" >&5
- echo "${ECHO_T}$ac_cv_host" >&6
- host=$ac_cv_host
- host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1096,13 +1062,13 @@
- fi
- 
- test -z "$system_name" && system_name="$cf_cv_system_name"
--test -n "$cf_cv_system_name" && echo "$as_me:1099: result: Configuring for $cf_cv_system_name" >&5
-+test -n "$cf_cv_system_name" && echo "$as_me:1065: result: Configuring for $cf_cv_system_name" >&5
- echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
- 
- if test ".$system_name" != ".$cf_cv_system_name" ; then
--	echo "$as_me:1103: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
-+	echo "$as_me:1069: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
- echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
--	{ { echo "$as_me:1105: error: \"Please remove config.cache and try again.\"" >&5
-+	{ { echo "$as_me:1071: error: \"Please remove config.cache and try again.\"" >&5
- echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -1120,7 +1086,7 @@
- program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
- rm conftest.sed
- 
--echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+echo "$as_me:1089: checking whether ${MAKE-make} sets \${MAKE}" >&5
- echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
- set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
- if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-@@ -1140,11 +1106,11 @@
- rm -f conftest.make
- fi
- if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
--  echo "$as_me:1143: result: yes" >&5
-+  echo "$as_me:1109: result: yes" >&5
- echo "${ECHO_T}yes" >&6
-   SET_MAKE=
- else
--  echo "$as_me:1147: result: no" >&5
-+  echo "$as_me:1113: result: no" >&5
- echo "${ECHO_T}no" >&6
-   SET_MAKE="MAKE=${MAKE-make}"
- fi
-@@ -1158,7 +1124,7 @@
- if test -n "$ac_tool_prefix"; then
-   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:1161: checking for $ac_word" >&5
-+echo "$as_me:1127: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1173,7 +1139,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
--echo "$as_me:1176: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1142: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1181,10 +1147,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  echo "$as_me:1184: result: $CC" >&5
-+  echo "$as_me:1150: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
--  echo "$as_me:1187: result: no" >&5
-+  echo "$as_me:1153: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1193,7 +1159,7 @@
-   ac_ct_CC=$CC
-   # Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
--echo "$as_me:1196: checking for $ac_word" >&5
-+echo "$as_me:1162: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1208,7 +1174,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="gcc"
--echo "$as_me:1211: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1177: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1216,10 +1182,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
--  echo "$as_me:1219: result: $ac_ct_CC" >&5
-+  echo "$as_me:1185: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
--  echo "$as_me:1222: result: no" >&5
-+  echo "$as_me:1188: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1232,7 +1198,7 @@
-   if test -n "$ac_tool_prefix"; then
-   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:1235: checking for $ac_word" >&5
-+echo "$as_me:1201: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1247,7 +1213,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="${ac_tool_prefix}cc"
--echo "$as_me:1250: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1216: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1255,10 +1221,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  echo "$as_me:1258: result: $CC" >&5
-+  echo "$as_me:1224: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
--  echo "$as_me:1261: result: no" >&5
-+  echo "$as_me:1227: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1267,7 +1233,7 @@
-   ac_ct_CC=$CC
-   # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:1270: checking for $ac_word" >&5
-+echo "$as_me:1236: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1282,7 +1248,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="cc"
--echo "$as_me:1285: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1251: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1290,10 +1256,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
--  echo "$as_me:1293: result: $ac_ct_CC" >&5
-+  echo "$as_me:1259: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
--  echo "$as_me:1296: result: no" >&5
-+  echo "$as_me:1262: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1306,7 +1272,7 @@
- if test -z "$CC"; then
-   # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:1309: checking for $ac_word" >&5
-+echo "$as_me:1275: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1326,7 +1292,7 @@
-   continue
- fi
- ac_cv_prog_CC="cc"
--echo "$as_me:1329: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1295: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1348,10 +1314,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  echo "$as_me:1351: result: $CC" >&5
-+  echo "$as_me:1317: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
--  echo "$as_me:1354: result: no" >&5
-+  echo "$as_me:1320: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1362,7 +1328,7 @@
-   do
-     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
- set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:1365: checking for $ac_word" >&5
-+echo "$as_me:1331: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1377,7 +1343,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
--echo "$as_me:1380: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1346: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1385,10 +1351,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  echo "$as_me:1388: result: $CC" >&5
-+  echo "$as_me:1354: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
--  echo "$as_me:1391: result: no" >&5
-+  echo "$as_me:1357: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1401,7 +1367,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:1404: checking for $ac_word" >&5
-+echo "$as_me:1370: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1416,7 +1382,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="$ac_prog"
--echo "$as_me:1419: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1385: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -1424,10 +1390,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
--  echo "$as_me:1427: result: $ac_ct_CC" >&5
-+  echo "$as_me:1393: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
--  echo "$as_me:1430: result: no" >&5
-+  echo "$as_me:1396: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -1439,32 +1405,32 @@
- 
- fi
- 
--test -z "$CC" && { { echo "$as_me:1442: error: no acceptable cc found in \$PATH" >&5
-+test -z "$CC" && { { echo "$as_me:1408: error: no acceptable cc found in \$PATH" >&5
- echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
-    { (exit 1); exit 1; }; }
- 
- # Provide some information about the compiler.
--echo "$as_me:1447:" \
-+echo "$as_me:1413:" \
-      "checking for C compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:1450: \"$ac_compiler --version </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1416: \"$ac_compiler --version </dev/null >&5\"") >&5
-   (eval $ac_compiler --version </dev/null >&5) 2>&5
-   ac_status=$?
--  echo "$as_me:1453: \$? = $ac_status" >&5
-+  echo "$as_me:1419: \$? = $ac_status" >&5
-   (exit $ac_status); }
--{ (eval echo "$as_me:1455: \"$ac_compiler -v </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1421: \"$ac_compiler -v </dev/null >&5\"") >&5
-   (eval $ac_compiler -v </dev/null >&5) 2>&5
-   ac_status=$?
--  echo "$as_me:1458: \$? = $ac_status" >&5
-+  echo "$as_me:1424: \$? = $ac_status" >&5
-   (exit $ac_status); }
--{ (eval echo "$as_me:1460: \"$ac_compiler -V </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1426: \"$ac_compiler -V </dev/null >&5\"") >&5
-   (eval $ac_compiler -V </dev/null >&5) 2>&5
-   ac_status=$?
--  echo "$as_me:1463: \$? = $ac_status" >&5
-+  echo "$as_me:1429: \$? = $ac_status" >&5
-   (exit $ac_status); }
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 1467 "configure"
-+#line 1433 "configure"
- #include "confdefs.h"
- 
- int
-@@ -1480,13 +1446,13 @@
- # Try to create an executable without -o first, disregard a.out.
- # It will help us diagnose broken compilers, and finding out an intuition
- # of exeext.
--echo "$as_me:1483: checking for C compiler default output" >&5
-+echo "$as_me:1449: checking for C compiler default output" >&5
- echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
- ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:1486: \"$ac_link_default\"") >&5
-+if { (eval echo "$as_me:1452: \"$ac_link_default\"") >&5
-   (eval $ac_link_default) 2>&5
-   ac_status=$?
--  echo "$as_me:1489: \$? = $ac_status" >&5
-+  echo "$as_me:1455: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
-   # Find the output, starting from the most likely.  This scheme is
- # not robust to junk in `.', hence go to wildcards (a.*) only as a last
-@@ -1509,34 +1475,34 @@
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1512: error: C compiler cannot create executables" >&5
-+{ { echo "$as_me:1478: error: C compiler cannot create executables" >&5
- echo "$as_me: error: C compiler cannot create executables" >&2;}
-    { (exit 77); exit 77; }; }
- fi
- 
- ac_exeext=$ac_cv_exeext
--echo "$as_me:1518: result: $ac_file" >&5
-+echo "$as_me:1484: result: $ac_file" >&5
- echo "${ECHO_T}$ac_file" >&6
- 
- # Check the compiler produces executables we can run.  If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1523: checking whether the C compiler works" >&5
-+echo "$as_me:1489: checking whether the C compiler works" >&5
- echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
- # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
- # If not cross compiling, check that we can run a simple program.
- if test "$cross_compiling" != yes; then
-   if { ac_try='./$ac_file'
--  { (eval echo "$as_me:1529: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1495: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1532: \$? = $ac_status" >&5
-+  echo "$as_me:1498: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     cross_compiling=no
-   else
-     if test "$cross_compiling" = maybe; then
- 	cross_compiling=yes
-     else
--	{ { echo "$as_me:1539: error: cannot run C compiled programs.
-+	{ { echo "$as_me:1505: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&5
- echo "$as_me: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&2;}
-@@ -1544,24 +1510,24 @@
-     fi
-   fi
- fi
--echo "$as_me:1547: result: yes" >&5
-+echo "$as_me:1513: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 
- rm -f a.out a.exe conftest$ac_cv_exeext
- ac_clean_files=$ac_clean_files_save
- # Check the compiler produces executables we can run.  If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1554: checking whether we are cross compiling" >&5
-+echo "$as_me:1520: checking whether we are cross compiling" >&5
- echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:1556: result: $cross_compiling" >&5
-+echo "$as_me:1522: result: $cross_compiling" >&5
- echo "${ECHO_T}$cross_compiling" >&6
- 
--echo "$as_me:1559: checking for executable suffix" >&5
-+echo "$as_me:1525: checking for executable suffix" >&5
- echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
--if { (eval echo "$as_me:1561: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:1527: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:1564: \$? = $ac_status" >&5
-+  echo "$as_me:1530: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
-   # If both `conftest.exe' and `conftest' are `present' (well, observable)
- # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-@@ -1577,25 +1543,25 @@
-   esac
- done
- else
--  { { echo "$as_me:1580: error: cannot compute EXEEXT: cannot compile and link" >&5
-+  { { echo "$as_me:1546: error: cannot compute EXEEXT: cannot compile and link" >&5
- echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- 
- rm -f conftest$ac_cv_exeext
--echo "$as_me:1586: result: $ac_cv_exeext" >&5
-+echo "$as_me:1552: result: $ac_cv_exeext" >&5
- echo "${ECHO_T}$ac_cv_exeext" >&6
- 
- rm -f conftest.$ac_ext
- EXEEXT=$ac_cv_exeext
- ac_exeext=$EXEEXT
--echo "$as_me:1592: checking for object suffix" >&5
-+echo "$as_me:1558: checking for object suffix" >&5
- echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
- if test "${ac_cv_objext+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1598 "configure"
-+#line 1564 "configure"
- #include "confdefs.h"
- 
- int
-@@ -1607,10 +1573,10 @@
- }
- _ACEOF
- rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:1610: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1576: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1613: \$? = $ac_status" >&5
-+  echo "$as_me:1579: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
-   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-   case $ac_file in
-@@ -1622,24 +1588,24 @@
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1625: error: cannot compute OBJEXT: cannot compile" >&5
-+{ { echo "$as_me:1591: error: cannot compute OBJEXT: cannot compile" >&5
- echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- 
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:1632: result: $ac_cv_objext" >&5
-+echo "$as_me:1598: result: $ac_cv_objext" >&5
- echo "${ECHO_T}$ac_cv_objext" >&6
- OBJEXT=$ac_cv_objext
- ac_objext=$OBJEXT
--echo "$as_me:1636: checking whether we are using the GNU C compiler" >&5
-+echo "$as_me:1602: checking whether we are using the GNU C compiler" >&5
- echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
- if test "${ac_cv_c_compiler_gnu+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1642 "configure"
-+#line 1608 "configure"
- #include "confdefs.h"
- 
- int
-@@ -1654,16 +1620,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1657: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1660: \$? = $ac_status" >&5
-+  echo "$as_me:1626: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:1663: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1629: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1666: \$? = $ac_status" >&5
-+  echo "$as_me:1632: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_compiler_gnu=yes
- else
-@@ -1675,19 +1641,19 @@
- ac_cv_c_compiler_gnu=$ac_compiler_gnu
- 
- fi
--echo "$as_me:1678: result: $ac_cv_c_compiler_gnu" >&5
-+echo "$as_me:1644: result: $ac_cv_c_compiler_gnu" >&5
- echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
- GCC=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
- CFLAGS="-g"
--echo "$as_me:1684: checking whether $CC accepts -g" >&5
-+echo "$as_me:1650: checking whether $CC accepts -g" >&5
- echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
- if test "${ac_cv_prog_cc_g+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1690 "configure"
-+#line 1656 "configure"
- #include "confdefs.h"
- 
- int
-@@ -1699,16 +1665,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1702: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1668: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1705: \$? = $ac_status" >&5
-+  echo "$as_me:1671: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:1708: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1674: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1711: \$? = $ac_status" >&5
-+  echo "$as_me:1677: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_prog_cc_g=yes
- else
-@@ -1718,7 +1684,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:1721: result: $ac_cv_prog_cc_g" >&5
-+echo "$as_me:1687: result: $ac_cv_prog_cc_g" >&5
- echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
- if test "$ac_test_CFLAGS" = set; then
-   CFLAGS=$ac_save_CFLAGS
-@@ -1745,16 +1711,16 @@
- #endif
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1714: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1751: \$? = $ac_status" >&5
-+  echo "$as_me:1717: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:1754: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1720: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1757: \$? = $ac_status" >&5
-+  echo "$as_me:1723: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   for ac_declaration in \
-    ''\
-@@ -1766,7 +1732,7 @@
-    'void exit (int);'
- do
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1769 "configure"
-+#line 1735 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- $ac_declaration
-@@ -1779,16 +1745,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1782: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1785: \$? = $ac_status" >&5
-+  echo "$as_me:1751: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:1788: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1754: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1791: \$? = $ac_status" >&5
-+  echo "$as_me:1757: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -1798,7 +1764,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1801 "configure"
-+#line 1767 "configure"
- #include "confdefs.h"
- $ac_declaration
- int
-@@ -1810,16 +1776,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1813: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1779: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:1816: \$? = $ac_status" >&5
-+  echo "$as_me:1782: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:1819: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:1785: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:1822: \$? = $ac_status" >&5
-+  echo "$as_me:1788: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   break
- else
-@@ -1853,7 +1819,7 @@
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
--echo "$as_me:1856: checking how to run the C preprocessor" >&5
-+echo "$as_me:1822: checking how to run the C preprocessor" >&5
- echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-@@ -1874,18 +1840,18 @@
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1877 "configure"
-+#line 1843 "configure"
- #include "confdefs.h"
- #include <assert.h>
-                      Syntax error
- _ACEOF
--if { (eval echo "$as_me:1882: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:1848: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:1888: \$? = $ac_status" >&5
-+  echo "$as_me:1854: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1908,17 +1874,17 @@
-   # OK, works on sane cases.  Now check whether non-existent headers
-   # can be detected and how.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1911 "configure"
-+#line 1877 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:1915: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:1881: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:1921: \$? = $ac_status" >&5
-+  echo "$as_me:1887: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1955,7 +1921,7 @@
- else
-   ac_cv_prog_CPP=$CPP
- fi
--echo "$as_me:1958: result: $CPP" >&5
-+echo "$as_me:1924: result: $CPP" >&5
- echo "${ECHO_T}$CPP" >&6
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
-@@ -1965,18 +1931,18 @@
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp. "Syntax error" is here to catch this case.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 1968 "configure"
-+#line 1934 "configure"
- #include "confdefs.h"
- #include <assert.h>
-                      Syntax error
- _ACEOF
--if { (eval echo "$as_me:1973: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:1939: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:1979: \$? = $ac_status" >&5
-+  echo "$as_me:1945: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1999,17 +1965,17 @@
-   # OK, works on sane cases.  Now check whether non-existent headers
-   # can be detected and how.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 2002 "configure"
-+#line 1968 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:2006: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:1972: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:2012: \$? = $ac_status" >&5
-+  echo "$as_me:1978: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2037,7 +2003,7 @@
- if $ac_preproc_ok; then
-   :
- else
--  { { echo "$as_me:2040: error: C preprocessor \"$CPP\" fails sanity check" >&5
-+  { { echo "$as_me:2006: error: C preprocessor \"$CPP\" fails sanity check" >&5
- echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -2053,7 +2019,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2056: checking for $ac_word" >&5
-+echo "$as_me:2022: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AWK+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2068,7 +2034,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AWK="$ac_prog"
--echo "$as_me:2071: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2037: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2076,10 +2042,10 @@
- fi
- AWK=$ac_cv_prog_AWK
- if test -n "$AWK"; then
--  echo "$as_me:2079: result: $AWK" >&5
-+  echo "$as_me:2045: result: $AWK" >&5
- echo "${ECHO_T}$AWK" >&6
- else
--  echo "$as_me:2082: result: no" >&5
-+  echo "$as_me:2048: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -2098,7 +2064,7 @@
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:2101: checking for a BSD compatible install" >&5
-+echo "$as_me:2067: checking for a BSD compatible install" >&5
- echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
-@@ -2147,7 +2113,7 @@
-     INSTALL=$ac_install_sh
-   fi
- fi
--echo "$as_me:2150: result: $INSTALL" >&5
-+echo "$as_me:2116: result: $INSTALL" >&5
- echo "${ECHO_T}$INSTALL" >&6
- 
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-@@ -2172,7 +2138,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2175: checking for $ac_word" >&5
-+echo "$as_me:2141: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_LINT+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2187,7 +2153,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_LINT="$ac_prog"
--echo "$as_me:2190: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2156: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2195,17 +2161,17 @@
- fi
- LINT=$ac_cv_prog_LINT
- if test -n "$LINT"; then
--  echo "$as_me:2198: result: $LINT" >&5
-+  echo "$as_me:2164: result: $LINT" >&5
- echo "${ECHO_T}$LINT" >&6
- else
--  echo "$as_me:2201: result: no" >&5
-+  echo "$as_me:2167: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-   test -n "$LINT" && break
- done
- 
--echo "$as_me:2208: checking if filesystem supports mixed-case filenames" >&5
-+echo "$as_me:2174: checking if filesystem supports mixed-case filenames" >&5
- echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
- if test "${cf_cv_mixedcase+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2232,7 +2198,7 @@
- fi
- 
- fi
--echo "$as_me:2235: result: $cf_cv_mixedcase" >&5
-+echo "$as_me:2201: result: $cf_cv_mixedcase" >&5
- echo "${ECHO_T}$cf_cv_mixedcase" >&6
- test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
- #define MIXEDCASE_FILENAMES 1
-@@ -2242,7 +2208,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2245: checking for $ac_word" >&5
-+echo "$as_me:2211: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CTAGS+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2257,7 +2223,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CTAGS="$ac_prog"
--echo "$as_me:2260: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2226: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2265,10 +2231,10 @@
- fi
- CTAGS=$ac_cv_prog_CTAGS
- if test -n "$CTAGS"; then
--  echo "$as_me:2268: result: $CTAGS" >&5
-+  echo "$as_me:2234: result: $CTAGS" >&5
- echo "${ECHO_T}$CTAGS" >&6
- else
--  echo "$as_me:2271: result: no" >&5
-+  echo "$as_me:2237: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -2279,7 +2245,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2282: checking for $ac_word" >&5
-+echo "$as_me:2248: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ETAGS+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2294,7 +2260,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ETAGS="$ac_prog"
--echo "$as_me:2297: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2263: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2302,10 +2268,10 @@
- fi
- ETAGS=$ac_cv_prog_ETAGS
- if test -n "$ETAGS"; then
--  echo "$as_me:2305: result: $ETAGS" >&5
-+  echo "$as_me:2271: result: $ETAGS" >&5
- echo "${ECHO_T}$ETAGS" >&6
- else
--  echo "$as_me:2308: result: no" >&5
-+  echo "$as_me:2274: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -2314,7 +2280,7 @@
- 
- # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
- set dummy ${CTAGS:-ctags}; ac_word=$2
--echo "$as_me:2317: checking for $ac_word" >&5
-+echo "$as_me:2283: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2329,7 +2295,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_LOWER_TAGS="yes"
--echo "$as_me:2332: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2298: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2338,17 +2304,17 @@
- fi
- MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
- if test -n "$MAKE_LOWER_TAGS"; then
--  echo "$as_me:2341: result: $MAKE_LOWER_TAGS" >&5
-+  echo "$as_me:2307: result: $MAKE_LOWER_TAGS" >&5
- echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
- else
--  echo "$as_me:2344: result: no" >&5
-+  echo "$as_me:2310: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
- if test "$cf_cv_mixedcase" = yes ; then
- 	# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
- set dummy ${ETAGS:-etags}; ac_word=$2
--echo "$as_me:2351: checking for $ac_word" >&5
-+echo "$as_me:2317: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2363,7 +2329,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_UPPER_TAGS="yes"
--echo "$as_me:2366: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2332: found $ac_dir/$ac_word" >&5
- break
- done
- 
-@@ -2372,10 +2338,10 @@
- fi
- MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
- if test -n "$MAKE_UPPER_TAGS"; then
--  echo "$as_me:2375: result: $MAKE_UPPER_TAGS" >&5
-+  echo "$as_me:2341: result: $MAKE_UPPER_TAGS" >&5
- echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
- else
--  echo "$as_me:2378: result: no" >&5
-+  echo "$as_me:2344: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -2395,14 +2361,14 @@
- 	MAKE_LOWER_TAGS="#"
- fi
- 
--echo "$as_me:2398: checking if -lm needed for math functions" >&5
-+echo "$as_me:2364: checking if -lm needed for math functions" >&5
- echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
- if test "${cf_cv_need_libm+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 2405 "configure"
-+#line 2371 "configure"
- #include "confdefs.h"
- 
- 	#include <stdio.h>
-@@ -2417,16 +2383,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:2420: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:2386: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:2423: \$? = $ac_status" >&5
-+  echo "$as_me:2389: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:2426: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:2392: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:2429: \$? = $ac_status" >&5
-+  echo "$as_me:2395: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_need_libm=no
- else
-@@ -2436,7 +2402,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:2439: result: $cf_cv_need_libm" >&5
-+echo "$as_me:2405: result: $cf_cv_need_libm" >&5
- echo "${ECHO_T}$cf_cv_need_libm" >&6
- if test "$cf_cv_need_libm" = yes
- then
-@@ -2471,7 +2437,7 @@
- cf_cv_screen=curses
- cf_cv_libtype=
- 
--echo "$as_me:2474: checking for ${CC:-cc} option to accept ANSI C" >&5
-+echo "$as_me:2440: checking for ${CC:-cc} option to accept ANSI C" >&5
- echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
- if test "${cf_cv_ansi_cc+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2575,7 +2541,7 @@
- fi
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 2578 "configure"
-+#line 2544 "configure"
- #include "confdefs.h"
- 
- #ifndef CC_HAS_PROTOS
-@@ -2596,16 +2562,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2599: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2565: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:2602: \$? = $ac_status" >&5
-+  echo "$as_me:2568: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:2605: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:2571: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:2608: \$? = $ac_status" >&5
-+  echo "$as_me:2574: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ansi_cc="$cf_arg"; break
- else
-@@ -2618,7 +2584,7 @@
- CPPFLAGS="$cf_save_CPPFLAGS"
- 
- fi
--echo "$as_me:2621: result: $cf_cv_ansi_cc" >&5
-+echo "$as_me:2587: result: $cf_cv_ansi_cc" >&5
- echo "${ECHO_T}$cf_cv_ansi_cc" >&6
- 
- if test "$cf_cv_ansi_cc" != "no"; then
-@@ -2711,7 +2677,7 @@
- fi
- 
- if test "$cf_cv_ansi_cc" = "no"; then
--	{ { echo "$as_me:2714: error: Your compiler does not appear to recognize prototypes.
-+	{ { echo "$as_me:2680: error: Your compiler does not appear to recognize prototypes.
- You have the following choices:
- 	a. adjust your compiler options
- 	b. get an up-to-date compiler
-@@ -2742,10 +2708,10 @@
- EOF
- if test "$GCC" = yes
- then
--	{ echo "$as_me:2745: checking for $CC __attribute__ directives..." >&5
-+	{ echo "$as_me:2711: checking for $CC __attribute__ directives..." >&5
- echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
- cat > conftest.$ac_ext <<EOF
--#line 2748 "${as_me:-configure}"
-+#line 2714 "${as_me:-configure}"
- #include "confdefs.h"
- #include "conftest.h"
- #include "conftest.i"
-@@ -2794,12 +2760,12 @@
- 			;;
- 		esac
- 
--		if { (eval echo "$as_me:2797: \"$ac_compile\"") >&5
-+		if { (eval echo "$as_me:2763: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:2800: \$? = $ac_status" >&5
-+  echo "$as_me:2766: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
--			test -n "$verbose" && echo "$as_me:2802: result: ... $cf_attribute" >&5
-+			test -n "$verbose" && echo "$as_me:2768: result: ... $cf_attribute" >&5
- echo "${ECHO_T}... $cf_attribute" >&6
- 			cat conftest.h >>confdefs.h
- 			case $cf_attribute in #(vi
-@@ -2870,14 +2836,14 @@
- 	;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
- 
--echo "$as_me:2873: checking if we must define _GNU_SOURCE" >&5
-+echo "$as_me:2839: checking if we must define _GNU_SOURCE" >&5
- echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_gnu_source+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 2880 "configure"
-+#line 2846 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -2892,16 +2858,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2895: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2861: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:2898: \$? = $ac_status" >&5
-+  echo "$as_me:2864: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:2901: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:2867: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:2904: \$? = $ac_status" >&5
-+  echo "$as_me:2870: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_gnu_source=no
- else
-@@ -2910,7 +2876,7 @@
- cf_save="$CPPFLAGS"
- 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- 	 cat >conftest.$ac_ext <<_ACEOF
--#line 2913 "configure"
-+#line 2879 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -2925,16 +2891,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2928: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2894: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:2931: \$? = $ac_status" >&5
-+  echo "$as_me:2897: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:2934: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:2900: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:2937: \$? = $ac_status" >&5
-+  echo "$as_me:2903: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_gnu_source=no
- else
-@@ -2949,7 +2915,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:2952: result: $cf_cv_gnu_source" >&5
-+echo "$as_me:2918: result: $cf_cv_gnu_source" >&5
- echo "${ECHO_T}$cf_cv_gnu_source" >&6
- test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- 
-@@ -2979,14 +2945,14 @@
- 	cf_xopen_source="-D__EXTENSIONS__"
- 	;;
- *)
--	echo "$as_me:2982: checking if we should define _XOPEN_SOURCE" >&5
-+	echo "$as_me:2948: checking if we should define _XOPEN_SOURCE" >&5
- echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_xopen_source+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 2989 "configure"
-+#line 2955 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3001,16 +2967,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2970: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3007: \$? = $ac_status" >&5
-+  echo "$as_me:2973: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3010: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:2976: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3013: \$? = $ac_status" >&5
-+  echo "$as_me:2979: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_xopen_source=no
- else
-@@ -3019,7 +2985,7 @@
- cf_save="$CPPFLAGS"
- 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- 	 cat >conftest.$ac_ext <<_ACEOF
--#line 3022 "configure"
-+#line 2988 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3034,16 +3000,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3037: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3003: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3040: \$? = $ac_status" >&5
-+  echo "$as_me:3006: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3043: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3009: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3046: \$? = $ac_status" >&5
-+  echo "$as_me:3012: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_xopen_source=no
- else
-@@ -3058,7 +3024,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:3061: result: $cf_cv_xopen_source" >&5
-+echo "$as_me:3027: result: $cf_cv_xopen_source" >&5
- echo "${ECHO_T}$cf_cv_xopen_source" >&6
- 	if test "$cf_cv_xopen_source" != no ; then
- 
-@@ -3165,16 +3131,16 @@
- 	sed	-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
- 		-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?$//g'`
- 
--echo "$as_me:3168: checking if we should define _POSIX_C_SOURCE" >&5
-+echo "$as_me:3134: checking if we should define _POSIX_C_SOURCE" >&5
- echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_posix_c_source+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
--echo "${as_me:-configure}:3174: testing if the symbol is already defined go no further ..." 1>&5
-+echo "${as_me:-configure}:3140: testing if the symbol is already defined go no further ..." 1>&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 3177 "configure"
-+#line 3143 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3189,16 +3155,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3192: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3158: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3195: \$? = $ac_status" >&5
-+  echo "$as_me:3161: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3198: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3164: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3201: \$? = $ac_status" >&5
-+  echo "$as_me:3167: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_posix_c_source=no
- else
-@@ -3219,7 +3185,7 @@
- 	 esac
- 	 if test "$cf_want_posix_source" = yes ; then
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 3222 "configure"
-+#line 3188 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3234,16 +3200,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3237: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3203: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3240: \$? = $ac_status" >&5
-+  echo "$as_me:3206: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3243: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3209: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3246: \$? = $ac_status" >&5
-+  echo "$as_me:3212: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -3254,15 +3220,15 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 	 fi
- 
--echo "${as_me:-configure}:3257: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+echo "${as_me:-configure}:3223: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
- 
- 	 CFLAGS="$cf_trim_CFLAGS"
- 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
- 
--echo "${as_me:-configure}:3262: testing if the second compile does not leave our definition intact error ..." 1>&5
-+echo "${as_me:-configure}:3228: testing if the second compile does not leave our definition intact error ..." 1>&5
- 
- 	 cat >conftest.$ac_ext <<_ACEOF
--#line 3265 "configure"
-+#line 3231 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3277,16 +3243,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3280: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3246: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3283: \$? = $ac_status" >&5
-+  echo "$as_me:3249: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3286: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3252: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3289: \$? = $ac_status" >&5
-+  echo "$as_me:3255: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -3302,7 +3268,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:3305: result: $cf_cv_posix_c_source" >&5
-+echo "$as_me:3271: result: $cf_cv_posix_c_source" >&5
- echo "${ECHO_T}$cf_cv_posix_c_source" >&6
- 
- if test "$cf_cv_posix_c_source" != no ; then
-@@ -3474,7 +3440,7 @@
- 
- fi
- 
--echo "$as_me:3477: checking for $CC option to accept ANSI C" >&5
-+echo "$as_me:3443: checking for $CC option to accept ANSI C" >&5
- echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
- if test "${ac_cv_prog_cc_stdc+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3482,7 +3448,7 @@
-   ac_cv_prog_cc_stdc=no
- ac_save_CC=$CC
- cat >conftest.$ac_ext <<_ACEOF
--#line 3485 "configure"
-+#line 3451 "configure"
- #include "confdefs.h"
- #include <stdarg.h>
- #include <stdio.h>
-@@ -3531,16 +3497,16 @@
- do
-   CC="$ac_save_CC $ac_arg"
-   rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3500: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3537: \$? = $ac_status" >&5
-+  echo "$as_me:3503: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3540: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3506: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3543: \$? = $ac_status" >&5
-+  echo "$as_me:3509: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_prog_cc_stdc=$ac_arg
- break
-@@ -3557,21 +3523,21 @@
- 
- case "x$ac_cv_prog_cc_stdc" in
-   x|xno)
--    echo "$as_me:3560: result: none needed" >&5
-+    echo "$as_me:3526: result: none needed" >&5
- echo "${ECHO_T}none needed" >&6 ;;
-   *)
--    echo "$as_me:3563: result: $ac_cv_prog_cc_stdc" >&5
-+    echo "$as_me:3529: result: $ac_cv_prog_cc_stdc" >&5
- echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-     CC="$CC $ac_cv_prog_cc_stdc" ;;
- esac
- 
--echo "$as_me:3568: checking for an ANSI C-conforming const" >&5
-+echo "$as_me:3534: checking for an ANSI C-conforming const" >&5
- echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
- if test "${ac_cv_c_const+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 3574 "configure"
-+#line 3540 "configure"
- #include "confdefs.h"
- 
- int
-@@ -3629,16 +3595,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3632: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3598: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3635: \$? = $ac_status" >&5
-+  echo "$as_me:3601: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3638: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3604: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3641: \$? = $ac_status" >&5
-+  echo "$as_me:3607: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_c_const=yes
- else
-@@ -3648,7 +3614,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:3651: result: $ac_cv_c_const" >&5
-+echo "$as_me:3617: result: $ac_cv_c_const" >&5
- echo "${ECHO_T}$ac_cv_c_const" >&6
- if test $ac_cv_c_const = no; then
- 
-@@ -3658,7 +3624,7 @@
- 
- fi
- 
--echo "$as_me:3661: checking for signal global datatype" >&5
-+echo "$as_me:3627: checking for signal global datatype" >&5
- echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
- if test "${cf_cv_sig_atomic_t+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3670,7 +3636,7 @@
- 		"int"
- 	do
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 3673 "configure"
-+#line 3639 "configure"
- #include "confdefs.h"
- 
- #include <sys/types.h>
-@@ -3693,16 +3659,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3696: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3662: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3699: \$? = $ac_status" >&5
-+  echo "$as_me:3665: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3702: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3668: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3705: \$? = $ac_status" >&5
-+  echo "$as_me:3671: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_sig_atomic_t=$cf_type
- else
-@@ -3716,13 +3682,13 @@
- 
- fi
- 
--echo "$as_me:3719: result: $cf_cv_sig_atomic_t" >&5
-+echo "$as_me:3685: result: $cf_cv_sig_atomic_t" >&5
- echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
- test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
- #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
- EOF
- 
--echo "$as_me:3725: checking if you want to see long compiling messages" >&5
-+echo "$as_me:3691: checking if you want to see long compiling messages" >&5
- echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
- 
- # Check whether --enable-echo or --disable-echo was given.
-@@ -3756,22 +3722,22 @@
-     ECHO_CC=''
- 
- fi;
--echo "$as_me:3759: result: $enableval" >&5
-+echo "$as_me:3725: result: $enableval" >&5
- echo "${ECHO_T}$enableval" >&6
- 
- GCC_VERSION=none
- if test "$GCC" = yes ; then
--	echo "$as_me:3764: checking version of $CC" >&5
-+	echo "$as_me:3730: checking version of $CC" >&5
- echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- 	GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
--	echo "$as_me:3768: result: $GCC_VERSION" >&5
-+	echo "$as_me:3734: result: $GCC_VERSION" >&5
- echo "${ECHO_T}$GCC_VERSION" >&6
- fi
- 
- if ( test "$GCC" = yes || test "$GXX" = yes )
- then
--echo "$as_me:3774: checking if you want to turn on gcc warnings" >&5
-+echo "$as_me:3740: checking if you want to turn on gcc warnings" >&5
- echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
- 
- # Check whether --enable-warnings or --disable-warnings was given.
-@@ -3788,7 +3754,7 @@
-   with_warnings=no
- 
- fi;
--echo "$as_me:3791: result: $with_warnings" >&5
-+echo "$as_me:3757: result: $with_warnings" >&5
- echo "${ECHO_T}$with_warnings" >&6
- if test "$with_warnings" = "yes"
- then
-@@ -3811,10 +3777,10 @@
- EOF
- if test "$GCC" = yes
- then
--	{ echo "$as_me:3814: checking for $CC __attribute__ directives..." >&5
-+	{ echo "$as_me:3780: checking for $CC __attribute__ directives..." >&5
- echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
- cat > conftest.$ac_ext <<EOF
--#line 3817 "${as_me:-configure}"
-+#line 3783 "${as_me:-configure}"
- #include "confdefs.h"
- #include "conftest.h"
- #include "conftest.i"
-@@ -3863,12 +3829,12 @@
- 			;;
- 		esac
- 
--		if { (eval echo "$as_me:3866: \"$ac_compile\"") >&5
-+		if { (eval echo "$as_me:3832: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3869: \$? = $ac_status" >&5
-+  echo "$as_me:3835: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
--			test -n "$verbose" && echo "$as_me:3871: result: ... $cf_attribute" >&5
-+			test -n "$verbose" && echo "$as_me:3837: result: ... $cf_attribute" >&5
- echo "${ECHO_T}... $cf_attribute" >&6
- 			cat conftest.h >>confdefs.h
- 			case $cf_attribute in #(vi
-@@ -3908,12 +3874,12 @@
- if test "$GCC" = yes ; then
- 	case $host_os in
- 	linux*|gnu*)
--		echo "$as_me:3911: checking if this is really Intel C compiler" >&5
-+		echo "$as_me:3877: checking if this is really Intel C compiler" >&5
- echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
- 		cf_save_CFLAGS="$CFLAGS"
- 		CFLAGS="$CFLAGS -no-gcc"
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 3916 "configure"
-+#line 3882 "configure"
- #include "confdefs.h"
- 
- int
-@@ -3930,16 +3896,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3933: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3899: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3936: \$? = $ac_status" >&5
-+  echo "$as_me:3902: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:3939: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:3905: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:3942: \$? = $ac_status" >&5
-+  echo "$as_me:3908: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   INTEL_COMPILER=yes
- cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-@@ -3950,14 +3916,14 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- 		CFLAGS="$cf_save_CFLAGS"
--		echo "$as_me:3953: result: $INTEL_COMPILER" >&5
-+		echo "$as_me:3919: result: $INTEL_COMPILER" >&5
- echo "${ECHO_T}$INTEL_COMPILER" >&6
- 		;;
- 	esac
- fi
- 
- cat > conftest.$ac_ext <<EOF
--#line 3960 "${as_me:-configure}"
-+#line 3926 "${as_me:-configure}"
- int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
- EOF
- 
-@@ -3974,7 +3940,7 @@
- # remark #981: operands are evaluated in unspecified order
- # warning #279: controlling expression is constant
- 
--	{ echo "$as_me:3977: checking for $CC warning options..." >&5
-+	{ echo "$as_me:3943: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- 	cf_save_CFLAGS="$CFLAGS"
- 	EXTRA_CFLAGS="-Wall"
-@@ -3990,12 +3956,12 @@
- 		wd981
- 	do
- 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
--		if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
-+		if { (eval echo "$as_me:3959: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:3996: \$? = $ac_status" >&5
-+  echo "$as_me:3962: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
--			test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
-+			test -n "$verbose" && echo "$as_me:3964: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- 		fi
-@@ -4004,7 +3970,7 @@
- 
- elif test "$GCC" = yes
- then
--	{ echo "$as_me:4007: checking for $CC warning options..." >&5
-+	{ echo "$as_me:3973: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- 	cf_save_CFLAGS="$CFLAGS"
- 	EXTRA_CFLAGS=
-@@ -4024,12 +3990,12 @@
- 		Wundef $cf_warn_CONST
- 	do
- 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
--		if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5
-+		if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:4030: \$? = $ac_status" >&5
-+  echo "$as_me:3996: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
--			test -n "$verbose" && echo "$as_me:4032: result: ... -$cf_opt" >&5
-+			test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- 			case $cf_opt in #(vi
- 			Wcast-qual) #(vi
-@@ -4040,7 +4006,7 @@
- 				[34].*)
- 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
- 
--echo "${as_me:-configure}:4043: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+echo "${as_me:-configure}:4009: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
- 
- 					continue;;
- 				esac
-@@ -4056,7 +4022,7 @@
- fi
- fi
- 
--echo "$as_me:4059: checking if you want to use dmalloc for testing" >&5
-+echo "$as_me:4025: checking if you want to use dmalloc for testing" >&5
- echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
- 
- # Check whether --with-dmalloc or --without-dmalloc was given.
-@@ -4072,7 +4038,7 @@
- else
-   with_dmalloc=
- fi;
--echo "$as_me:4075: result: ${with_dmalloc:-no}" >&5
-+echo "$as_me:4041: result: ${with_dmalloc:-no}" >&5
- echo "${ECHO_T}${with_dmalloc:-no}" >&6
- 
- case .$with_cflags in #(vi
-@@ -4166,23 +4132,23 @@
- esac
- 
- if test "$with_dmalloc" = yes ; then
--	echo "$as_me:4169: checking for dmalloc.h" >&5
-+	echo "$as_me:4135: checking for dmalloc.h" >&5
- echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
- if test "${ac_cv_header_dmalloc_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 4175 "configure"
-+#line 4141 "configure"
- #include "confdefs.h"
- #include <dmalloc.h>
- _ACEOF
--if { (eval echo "$as_me:4179: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4145: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:4185: \$? = $ac_status" >&5
-+  echo "$as_me:4151: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4201,11 +4167,11 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4204: result: $ac_cv_header_dmalloc_h" >&5
-+echo "$as_me:4170: result: $ac_cv_header_dmalloc_h" >&5
- echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
- if test $ac_cv_header_dmalloc_h = yes; then
- 
--echo "$as_me:4208: checking for dmalloc_debug in -ldmalloc" >&5
-+echo "$as_me:4174: checking for dmalloc_debug in -ldmalloc" >&5
- echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
- if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4213,7 +4179,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldmalloc  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4216 "configure"
-+#line 4182 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -4232,16 +4198,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4235: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4201: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:4238: \$? = $ac_status" >&5
-+  echo "$as_me:4204: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:4241: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:4207: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:4244: \$? = $ac_status" >&5
-+  echo "$as_me:4210: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_dmalloc_dmalloc_debug=yes
- else
-@@ -4252,7 +4218,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:4255: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
-+echo "$as_me:4221: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
- echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
- if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
-   cat >>confdefs.h <<EOF
-@@ -4267,7 +4233,7 @@
- 
- fi
- 
--echo "$as_me:4270: checking if you want to use dbmalloc for testing" >&5
-+echo "$as_me:4236: checking if you want to use dbmalloc for testing" >&5
- echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
- 
- # Check whether --with-dbmalloc or --without-dbmalloc was given.
-@@ -4283,7 +4249,7 @@
- else
-   with_dbmalloc=
- fi;
--echo "$as_me:4286: result: ${with_dbmalloc:-no}" >&5
-+echo "$as_me:4252: result: ${with_dbmalloc:-no}" >&5
- echo "${ECHO_T}${with_dbmalloc:-no}" >&6
- 
- case .$with_cflags in #(vi
-@@ -4377,23 +4343,23 @@
- esac
- 
- if test "$with_dbmalloc" = yes ; then
--	echo "$as_me:4380: checking for dbmalloc.h" >&5
-+	echo "$as_me:4346: checking for dbmalloc.h" >&5
- echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
- if test "${ac_cv_header_dbmalloc_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 4386 "configure"
-+#line 4352 "configure"
- #include "confdefs.h"
- #include <dbmalloc.h>
- _ACEOF
--if { (eval echo "$as_me:4390: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4356: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:4396: \$? = $ac_status" >&5
-+  echo "$as_me:4362: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4412,11 +4378,11 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4415: result: $ac_cv_header_dbmalloc_h" >&5
-+echo "$as_me:4381: result: $ac_cv_header_dbmalloc_h" >&5
- echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
- if test $ac_cv_header_dbmalloc_h = yes; then
- 
--echo "$as_me:4419: checking for debug_malloc in -ldbmalloc" >&5
-+echo "$as_me:4385: checking for debug_malloc in -ldbmalloc" >&5
- echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
- if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4424,7 +4390,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldbmalloc  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4427 "configure"
-+#line 4393 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -4443,16 +4409,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4412: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:4449: \$? = $ac_status" >&5
-+  echo "$as_me:4415: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:4452: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:4418: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:4455: \$? = $ac_status" >&5
-+  echo "$as_me:4421: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_dbmalloc_debug_malloc=yes
- else
-@@ -4463,7 +4429,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:4466: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
-+echo "$as_me:4432: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
- echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
- if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
-   cat >>confdefs.h <<EOF
-@@ -4478,7 +4444,7 @@
- 
- fi
- 
--echo "$as_me:4481: checking if you want to use valgrind for testing" >&5
-+echo "$as_me:4447: checking if you want to use valgrind for testing" >&5
- echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
- 
- # Check whether --with-valgrind or --without-valgrind was given.
-@@ -4494,7 +4460,7 @@
- else
-   with_valgrind=
- fi;
--echo "$as_me:4497: result: ${with_valgrind:-no}" >&5
-+echo "$as_me:4463: result: ${with_valgrind:-no}" >&5
- echo "${ECHO_T}${with_valgrind:-no}" >&6
- 
- case .$with_cflags in #(vi
-@@ -4587,7 +4553,7 @@
- 	;;
- esac
- 
--echo "$as_me:4590: checking if you want to perform memory-leak testing" >&5
-+echo "$as_me:4556: checking if you want to perform memory-leak testing" >&5
- echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
- 
- # Check whether --enable-leaks or --disable-leaks was given.
-@@ -4597,7 +4563,7 @@
- else
-   : ${with_no_leaks:=no}
- fi;
--echo "$as_me:4600: result: $with_no_leaks" >&5
-+echo "$as_me:4566: result: $with_no_leaks" >&5
- echo "${ECHO_T}$with_no_leaks" >&6
- 
- if test "$with_no_leaks" = yes ; then
-@@ -4611,7 +4577,27 @@
- 
- fi
- 
--echo "$as_me:4614: checking for specific curses-directory" >&5
-+echo "$as_me:4580: checking if you want to check for wide-character functions" >&5
-+echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6
-+
-+# Check whether --enable-widec or --disable-widec was given.
-+if test "${enable_widec+set}" = set; then
-+  enableval="$enable_widec"
-+  test "$enableval" != no && enableval=yes
-+  if test "$enableval" != "yes" ; then
-+    cf_enable_widec=no
-+  else
-+    cf_enable_widec=yes
-+  fi
-+else
-+  enableval=yes
-+  cf_enable_widec=yes
-+
-+fi;
-+echo "$as_me:4597: result: $cf_enable_widec" >&5
-+echo "${ECHO_T}$cf_enable_widec" >&6
-+
-+echo "$as_me:4600: checking for specific curses-directory" >&5
- echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
- 
- # Check whether --with-curses-dir or --without-curses-dir was given.
-@@ -4621,7 +4607,7 @@
- else
-   cf_cv_curses_dir=no
- fi;
--echo "$as_me:4624: result: $cf_cv_curses_dir" >&5
-+echo "$as_me:4610: result: $cf_cv_curses_dir" >&5
- echo "${ECHO_T}$cf_cv_curses_dir" >&6
- 
- if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-@@ -4652,7 +4638,7 @@
-   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
-   ;;
- *)
--  { { echo "$as_me:4655: error: expected a pathname, not \"$withval\"" >&5
-+  { { echo "$as_me:4641: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
-    { (exit 1); exit 1; }; }
-   ;;
-@@ -4685,7 +4671,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 4688 "configure"
-+#line 4674 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -4697,16 +4683,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4700: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4686: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:4703: \$? = $ac_status" >&5
-+  echo "$as_me:4689: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:4706: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:4692: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:4709: \$? = $ac_status" >&5
-+  echo "$as_me:4695: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -4723,7 +4709,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:4726: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:4712: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -4757,7 +4743,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:4760: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:4746: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -4768,12 +4754,8 @@
- 	fi
- fi
- 
--# Check whether --with-5lib or --without-5lib was given.
--if test "${with_5lib+set}" = set; then
--  withval="$with_5lib"
--  LIBS="-L/usr/5lib $LIBS"
--	 CPPFLAGS="$CPPFLAGS -I/usr/5include"
--fi;
-+echo "$as_me:4757: checking for specified curses library type" >&5
-+echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6
- 
- # Check whether --with-ncursesw or --without-ncursesw was given.
- if test "${with_ncursesw+set}" = set; then
-@@ -4791,14 +4773,31 @@
- if test "${with_pdcurses+set}" = set; then
-   withval="$with_pdcurses"
-   cf_cv_screen=pdcurses
-+else
-+
-+# Check whether --with-curses-colr or --without-curses-colr was given.
-+if test "${with_curses_colr+set}" = set; then
-+  withval="$with_curses_colr"
-+  cf_cv_screen=curses_colr
-+else
-+
-+# Check whether --with-curses-5lib or --without-curses-5lib was given.
-+if test "${with_curses_5lib+set}" = set; then
-+  withval="$with_curses_5lib"
-+  cf_cv_screen=curses_5lib
-+fi;
-+fi;
- fi;
- fi;
- fi;
- 
-+echo "$as_me:4794: result: $cf_cv_screen" >&5
-+echo "${ECHO_T}$cf_cv_screen" >&6
-+
- case $cf_cv_screen in
--curses)
-+curses|curses_*)
- 
--echo "$as_me:4801: checking for extra include directories" >&5
-+echo "$as_me:4800: checking for extra include directories" >&5
- echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
- if test "${cf_cv_curses_incdir+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4807,22 +4806,28 @@
- cf_cv_curses_incdir=no
- case $host_os in #(vi
- hpux10.*) #(vi
--	test -d /usr/include/curses_colr && \
--	cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+	if test "x$cf_cv_screen" = "xcurses_colr"
-+	then
-+		test -d /usr/include/curses_colr && \
-+		cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+	fi
- 	;;
- sunos3*|sunos4*)
--	test -d /usr/5lib && \
--	test -d /usr/5include && \
--	cf_cv_curses_incdir="-I/usr/5include"
-+	if test "x$cf_cv_screen" = "xcurses_5lib"
-+	then
-+		test -d /usr/5lib && \
-+		test -d /usr/5include && \
-+		cf_cv_curses_incdir="-I/usr/5include"
-+	fi
- 	;;
- esac
- 
- fi
--echo "$as_me:4821: result: $cf_cv_curses_incdir" >&5
-+echo "$as_me:4826: result: $cf_cv_curses_incdir" >&5
- echo "${ECHO_T}$cf_cv_curses_incdir" >&6
- test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
- 
--echo "$as_me:4825: checking if we have identified curses headers" >&5
-+echo "$as_me:4830: checking if we have identified curses headers" >&5
- echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
- if test "${cf_cv_ncurses_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4834,7 +4839,7 @@
- 	ncurses.h ncurses/curses.h ncurses/ncurses.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 4837 "configure"
-+#line 4842 "configure"
- #include "confdefs.h"
- #include <${cf_header}>
- int
-@@ -4846,16 +4851,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4849: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4854: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:4852: \$? = $ac_status" >&5
-+  echo "$as_me:4857: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:4855: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:4860: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:4858: \$? = $ac_status" >&5
-+  echo "$as_me:4863: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_header=$cf_header; break
- else
-@@ -4866,11 +4871,11 @@
- done
- 
- fi
--echo "$as_me:4869: result: $cf_cv_ncurses_header" >&5
-+echo "$as_me:4874: result: $cf_cv_ncurses_header" >&5
- echo "${ECHO_T}$cf_cv_ncurses_header" >&6
- 
- if test "$cf_cv_ncurses_header" = none ; then
--	{ { echo "$as_me:4873: error: No curses header-files found" >&5
-+	{ { echo "$as_me:4878: error: No curses header-files found" >&5
- echo "$as_me: error: No curses header-files found" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -4880,23 +4885,23 @@
- for ac_header in $cf_cv_ncurses_header
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:4883: checking for $ac_header" >&5
-+echo "$as_me:4888: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 4889 "configure"
-+#line 4894 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:4893: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4898: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:4899: \$? = $ac_status" >&5
-+  echo "$as_me:4904: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4915,7 +4920,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4918: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:4923: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -4925,7 +4930,7 @@
- fi
- done
- 
--echo "$as_me:4928: checking for terminfo header" >&5
-+echo "$as_me:4933: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4943,7 +4948,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 4946 "configure"
-+#line 4951 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -4958,16 +4963,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4961: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4966: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:4964: \$? = $ac_status" >&5
-+  echo "$as_me:4969: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:4967: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:4972: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:4970: \$? = $ac_status" >&5
-+  echo "$as_me:4975: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_term_header="$cf_test"
-@@ -4983,7 +4988,7 @@
- done
- 
- fi
--echo "$as_me:4986: result: $cf_cv_term_header" >&5
-+echo "$as_me:4991: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
- 
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-@@ -5012,7 +5017,7 @@
- 	;;
- esac
- 
--echo "$as_me:5015: checking for ncurses version" >&5
-+echo "$as_me:5020: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5038,10 +5043,10 @@
- #endif
- EOF
- 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
--	{ (eval echo "$as_me:5041: \"$cf_try\"") >&5
-+	{ (eval echo "$as_me:5046: \"$cf_try\"") >&5
-   (eval $cf_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5044: \$? = $ac_status" >&5
-+  echo "$as_me:5049: \$? = $ac_status" >&5
-   (exit $ac_status); }
- 	if test -f conftest.out ; then
- 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -5051,7 +5056,7 @@
- 
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 5054 "configure"
-+#line 5059 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -5076,15 +5081,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:5079: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5084: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5082: \$? = $ac_status" >&5
-+  echo "$as_me:5087: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:5084: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5089: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5087: \$? = $ac_status" >&5
-+  echo "$as_me:5092: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -5098,16 +5103,16 @@
- 	rm -f $cf_tempfile
- 
- fi
--echo "$as_me:5101: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:5106: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
- test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
- 
--echo "$as_me:5107: checking if we have identified curses libraries" >&5
-+echo "$as_me:5112: checking if we have identified curses libraries" >&5
- echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 5110 "configure"
-+#line 5115 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5119,16 +5124,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5122: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5127: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5125: \$? = $ac_status" >&5
-+  echo "$as_me:5130: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5128: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5133: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5131: \$? = $ac_status" >&5
-+  echo "$as_me:5136: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -5137,13 +5142,13 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--echo "$as_me:5140: result: $cf_result" >&5
-+echo "$as_me:5145: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 
- if test "$cf_result" = no ; then
- case $host_os in #(vi
- freebsd*) #(vi
--    echo "$as_me:5146: checking for tgoto in -lmytinfo" >&5
-+    echo "$as_me:5151: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5151,7 +5156,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5154 "configure"
-+#line 5159 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -5170,16 +5175,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5178: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5176: \$? = $ac_status" >&5
-+  echo "$as_me:5181: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5179: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5184: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5182: \$? = $ac_status" >&5
-+  echo "$as_me:5187: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -5190,7 +5195,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5193: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:5198: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
-   LIBS="-lmytinfo $LIBS"
-@@ -5198,7 +5203,13 @@
- 
-     ;;
- hpux10.*) #(vi
--    echo "$as_me:5201: checking for initscr in -lcur_colr" >&5
-+	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
-+	# next (1998), and xcurses "newer" (2000).  There is no header file for
-+	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
-+	# term.h) for cur_colr
-+	if test "x$cf_cv_screen" = "xcurses_colr"
-+	then
-+		echo "$as_me:5212: checking for initscr in -lcur_colr" >&5
- echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
- if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5206,7 +5217,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lcur_colr  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5209 "configure"
-+#line 5220 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -5225,16 +5236,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5228: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5239: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5231: \$? = $ac_status" >&5
-+  echo "$as_me:5242: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5234: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5245: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5237: \$? = $ac_status" >&5
-+  echo "$as_me:5248: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_cur_colr_initscr=yes
- else
-@@ -5245,16 +5256,16 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5248: result: $ac_cv_lib_cur_colr_initscr" >&5
-+echo "$as_me:5259: result: $ac_cv_lib_cur_colr_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
- if test $ac_cv_lib_cur_colr_initscr = yes; then
- 
--        LIBS="-lcur_colr $LIBS"
--        ac_cv_func_initscr=yes
-+			LIBS="-lcur_colr $LIBS"
-+			ac_cv_func_initscr=yes
- 
- else
- 
--    echo "$as_me:5257: checking for initscr in -lHcurses" >&5
-+		echo "$as_me:5268: checking for initscr in -lHcurses" >&5
- echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
- if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5262,7 +5273,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lHcurses  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5265 "configure"
-+#line 5276 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -5281,16 +5292,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5284: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5295: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5287: \$? = $ac_status" >&5
-+  echo "$as_me:5298: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5290: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5301: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5293: \$? = $ac_status" >&5
-+  echo "$as_me:5304: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_Hcurses_initscr=yes
- else
-@@ -5301,19 +5312,20 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5304: result: $ac_cv_lib_Hcurses_initscr" >&5
-+echo "$as_me:5315: result: $ac_cv_lib_Hcurses_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
- if test $ac_cv_lib_Hcurses_initscr = yes; then
- 
--        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
--        LIBS="-lHcurses $LIBS"
--        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
--        ac_cv_func_initscr=yes
-+			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-+			LIBS="-lHcurses $LIBS"
-+			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-+			ac_cv_func_initscr=yes
- 
- fi
- 
- fi
- 
-+	fi
-     ;;
- linux*)
- 	case `arch 2>/dev/null` in
-@@ -5340,7 +5352,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:5343: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:5355: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -5369,7 +5381,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:5372: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:5384: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -5400,7 +5412,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:5403: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:5415: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -5412,7 +5424,9 @@
- 	esac
-     ;;
- sunos3*|sunos4*)
--    if test -d /usr/5lib ; then
-+	if test "x$cf_cv_screen" = "xcurses_5lib"
-+	then
-+		if test -d /usr/5lib ; then
- 
- if test -n "/usr/5lib" ; then
-   for cf_add_libdir in /usr/5lib
-@@ -5433,7 +5447,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:5436: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:5450: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -5441,7 +5455,8 @@
-   done
- fi
- 
--      LIBS="-lcurses -ltermcap $LIBS"
-+			LIBS="-lcurses -ltermcap $LIBS"
-+		fi
-     fi
-     ac_cv_func_initscr=yes
-     ;;
-@@ -5461,13 +5476,13 @@
- 
-     # Check for library containing tgoto.  Do this before curses library
-     # because it may be needed to link the test-case for initscr.
--    echo "$as_me:5464: checking for tgoto" >&5
-+    echo "$as_me:5479: checking for tgoto" >&5
- echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
- if test "${ac_cv_func_tgoto+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 5470 "configure"
-+#line 5485 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char tgoto (); below.  */
-@@ -5498,16 +5513,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5501: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5516: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5504: \$? = $ac_status" >&5
-+  echo "$as_me:5519: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5507: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5522: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5510: \$? = $ac_status" >&5
-+  echo "$as_me:5525: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_tgoto=yes
- else
-@@ -5517,7 +5532,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:5520: result: $ac_cv_func_tgoto" >&5
-+echo "$as_me:5535: result: $ac_cv_func_tgoto" >&5
- echo "${ECHO_T}$ac_cv_func_tgoto" >&6
- if test $ac_cv_func_tgoto = yes; then
-   cf_term_lib=predefined
-@@ -5526,7 +5541,7 @@
-         for cf_term_lib in $cf_check_list termcap termlib unknown
-         do
-             as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
--echo "$as_me:5529: checking for tgoto in -l$cf_term_lib" >&5
-+echo "$as_me:5544: checking for tgoto in -l$cf_term_lib" >&5
- echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5534,7 +5549,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-l$cf_term_lib  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5537 "configure"
-+#line 5552 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -5553,16 +5568,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5556: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5571: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5559: \$? = $ac_status" >&5
-+  echo "$as_me:5574: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5562: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5577: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5565: \$? = $ac_status" >&5
-+  echo "$as_me:5580: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_Lib=yes"
- else
-@@ -5573,7 +5588,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5576: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:5591: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-   break
-@@ -5588,7 +5603,7 @@
-  	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
-     do
-         as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
--echo "$as_me:5591: checking for initscr in -l$cf_curs_lib" >&5
-+echo "$as_me:5606: checking for initscr in -l$cf_curs_lib" >&5
- echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5596,7 +5611,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-l$cf_curs_lib  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5599 "configure"
-+#line 5614 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -5615,16 +5630,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5618: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5633: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5621: \$? = $ac_status" >&5
-+  echo "$as_me:5636: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5624: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5639: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5627: \$? = $ac_status" >&5
-+  echo "$as_me:5642: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_Lib=yes"
- else
-@@ -5635,23 +5650,23 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5638: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:5653: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-   break
- fi
- 
-     done
--    test $cf_curs_lib = unknown && { { echo "$as_me:5645: error: no curses library found" >&5
-+    test $cf_curs_lib = unknown && { { echo "$as_me:5660: error: no curses library found" >&5
- echo "$as_me: error: no curses library found" >&2;}
-    { (exit 1); exit 1; }; }
- 
-     LIBS="-l$cf_curs_lib $cf_save_LIBS"
-     if test "$cf_term_lib" = unknown ; then
--        echo "$as_me:5651: checking if we can link with $cf_curs_lib library" >&5
-+        echo "$as_me:5666: checking if we can link with $cf_curs_lib library" >&5
- echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
-         cat >conftest.$ac_ext <<_ACEOF
--#line 5654 "configure"
-+#line 5669 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5663,16 +5678,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5666: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5681: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5669: \$? = $ac_status" >&5
-+  echo "$as_me:5684: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5672: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5687: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5675: \$? = $ac_status" >&5
-+  echo "$as_me:5690: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -5681,18 +5696,18 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--        echo "$as_me:5684: result: $cf_result" >&5
-+        echo "$as_me:5699: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
--        test $cf_result = no && { { echo "$as_me:5686: error: Cannot link curses library" >&5
-+        test $cf_result = no && { { echo "$as_me:5701: error: Cannot link curses library" >&5
- echo "$as_me: error: Cannot link curses library" >&2;}
-    { (exit 1); exit 1; }; }
-     elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-         :
-     elif test "$cf_term_lib" != predefined ; then
--        echo "$as_me:5692: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
-+        echo "$as_me:5707: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
- echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
-         cat >conftest.$ac_ext <<_ACEOF
--#line 5695 "configure"
-+#line 5710 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5704,16 +5719,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5722: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5710: \$? = $ac_status" >&5
-+  echo "$as_me:5725: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5713: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5728: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5716: \$? = $ac_status" >&5
-+  echo "$as_me:5731: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=no
- else
-@@ -5722,7 +5737,7 @@
- 
-             LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-             cat >conftest.$ac_ext <<_ACEOF
--#line 5725 "configure"
-+#line 5740 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5734,16 +5749,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5737: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5752: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:5740: \$? = $ac_status" >&5
-+  echo "$as_me:5755: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:5743: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5758: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5746: \$? = $ac_status" >&5
-+  echo "$as_me:5761: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -5755,20 +5770,20 @@
- 
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--        echo "$as_me:5758: result: $cf_result" >&5
-+        echo "$as_me:5773: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
-     fi
- fi
- fi
- 
--echo "$as_me:5764: checking for NetBSD form.h" >&5
-+echo "$as_me:5779: checking for NetBSD form.h" >&5
- echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
- if test "${cf_cv_netbsd_form_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 5771 "configure"
-+#line 5786 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -5787,16 +5802,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5790: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5805: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:5793: \$? = $ac_status" >&5
-+  echo "$as_me:5808: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:5796: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5811: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5799: \$? = $ac_status" >&5
-+  echo "$as_me:5814: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_netbsd_form_h=yes
- 
-@@ -5808,21 +5823,21 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:5811: result: $cf_cv_netbsd_form_h" >&5
-+echo "$as_me:5826: result: $cf_cv_netbsd_form_h" >&5
- echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
- 
- test "$cf_cv_netbsd_form_h" = yes && cat >>confdefs.h <<\EOF
- #define HAVE_NETBSD_FORM_H 1
- EOF
- 
--echo "$as_me:5818: checking for NetBSD menu.h" >&5
-+echo "$as_me:5833: checking for NetBSD menu.h" >&5
- echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
- if test "${cf_cv_netbsd_menu_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 5825 "configure"
-+#line 5840 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -5840,16 +5855,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5843: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5858: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:5846: \$? = $ac_status" >&5
-+  echo "$as_me:5861: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:5849: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5864: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5852: \$? = $ac_status" >&5
-+  echo "$as_me:5867: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_netbsd_menu_h=yes
- 
-@@ -5861,7 +5876,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:5864: result: $cf_cv_netbsd_menu_h" >&5
-+echo "$as_me:5879: result: $cf_cv_netbsd_menu_h" >&5
- echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
- 
- test "$cf_cv_netbsd_menu_h" = yes && cat >>confdefs.h <<\EOF
-@@ -5878,7 +5893,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:5881: checking for $ac_word" >&5
-+echo "$as_me:5896: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5895,7 +5910,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   if $as_executable_p "$ac_dir/$ac_word"; then
-    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
--   echo "$as_me:5898: found $ac_dir/$ac_word" >&5
-+   echo "$as_me:5913: found $ac_dir/$ac_word" >&5
-    break
- fi
- done
-@@ -5906,10 +5921,10 @@
- NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
- 
- if test -n "$NCURSES_CONFIG"; then
--  echo "$as_me:5909: result: $NCURSES_CONFIG" >&5
-+  echo "$as_me:5924: result: $NCURSES_CONFIG" >&5
- echo "${ECHO_T}$NCURSES_CONFIG" >&6
- else
--  echo "$as_me:5912: result: no" >&5
-+  echo "$as_me:5927: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -5924,7 +5939,7 @@
- 
- # even with config script, some packages use no-override for curses.h
- 
--echo "$as_me:5927: checking if we have identified curses headers" >&5
-+echo "$as_me:5942: checking if we have identified curses headers" >&5
- echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
- if test "${cf_cv_ncurses_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5938,7 +5953,7 @@
- 	ncurses.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 5941 "configure"
-+#line 5956 "configure"
- #include "confdefs.h"
- #include <${cf_header}>
- int
-@@ -5950,16 +5965,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5953: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5968: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:5956: \$? = $ac_status" >&5
-+  echo "$as_me:5971: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:5959: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:5974: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:5962: \$? = $ac_status" >&5
-+  echo "$as_me:5977: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_header=$cf_header; break
- else
-@@ -5970,11 +5985,11 @@
- done
- 
- fi
--echo "$as_me:5973: result: $cf_cv_ncurses_header" >&5
-+echo "$as_me:5988: result: $cf_cv_ncurses_header" >&5
- echo "${ECHO_T}$cf_cv_ncurses_header" >&6
- 
- if test "$cf_cv_ncurses_header" = none ; then
--	{ { echo "$as_me:5977: error: No curses header-files found" >&5
-+	{ { echo "$as_me:5992: error: No curses header-files found" >&5
- echo "$as_me: error: No curses header-files found" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -5984,23 +5999,23 @@
- for ac_header in $cf_cv_ncurses_header
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:5987: checking for $ac_header" >&5
-+echo "$as_me:6002: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 5993 "configure"
-+#line 6008 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:5997: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:6012: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:6003: \$? = $ac_status" >&5
-+  echo "$as_me:6018: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -6019,7 +6034,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:6022: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:6037: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -6072,7 +6087,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 6075 "configure"
-+#line 6090 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6084,16 +6099,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6087: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6102: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6090: \$? = $ac_status" >&5
-+  echo "$as_me:6105: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6093: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6108: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6096: \$? = $ac_status" >&5
-+  echo "$as_me:6111: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -6110,7 +6125,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:6113: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6128: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -6127,7 +6142,7 @@
- 
- }
- 
--echo "$as_me:6130: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo "$as_me:6145: checking for $cf_ncuhdr_root header in include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6139,7 +6154,7 @@
- 	do
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 6142 "configure"
-+#line 6157 "configure"
- #include "confdefs.h"
- 
- #include <$cf_header>
-@@ -6163,16 +6178,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6166: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6181: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6169: \$? = $ac_status" >&5
-+  echo "$as_me:6184: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6172: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6187: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6175: \$? = $ac_status" >&5
-+  echo "$as_me:6190: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_h=$cf_header
- 
-@@ -6187,14 +6202,14 @@
- 	done
- 
- fi
--echo "$as_me:6190: result: $cf_cv_ncurses_h" >&5
-+echo "$as_me:6205: result: $cf_cv_ncurses_h" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h" >&6
- 
- if test "$cf_cv_ncurses_h" != no ; then
- 	cf_cv_ncurses_header=$cf_cv_ncurses_h
- else
- 
--echo "$as_me:6197: checking for $cf_ncuhdr_root include-path" >&5
-+echo "$as_me:6212: checking for $cf_ncuhdr_root include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h2+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6334,7 +6349,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 6337 "configure"
-+#line 6352 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6346,16 +6361,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6349: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6364: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6352: \$? = $ac_status" >&5
-+  echo "$as_me:6367: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6355: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6370: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6358: \$? = $ac_status" >&5
-+  echo "$as_me:6373: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -6372,7 +6387,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:6375: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6390: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -6393,7 +6408,7 @@
- 		do
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 6396 "configure"
-+#line 6411 "configure"
- #include "confdefs.h"
- 
- #include <$cf_header>
-@@ -6417,16 +6432,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6420: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6435: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6423: \$? = $ac_status" >&5
-+  echo "$as_me:6438: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6426: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6441: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6429: \$? = $ac_status" >&5
-+  echo "$as_me:6444: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_h2=$cf_header
- 
-@@ -6447,12 +6462,12 @@
- 		CPPFLAGS="$cf_save2_CPPFLAGS"
- 		test "$cf_cv_ncurses_h2" != no && break
- 	done
--	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6450: error: not found" >&5
-+	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6465: error: not found" >&5
- echo "$as_me: error: not found" >&2;}
-    { (exit 1); exit 1; }; }
- 
- fi
--echo "$as_me:6455: result: $cf_cv_ncurses_h2" >&5
-+echo "$as_me:6470: result: $cf_cv_ncurses_h2" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
- 
- 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-@@ -6485,7 +6500,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 6488 "configure"
-+#line 6503 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6497,16 +6512,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6500: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6515: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6503: \$? = $ac_status" >&5
-+  echo "$as_me:6518: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6506: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6521: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6509: \$? = $ac_status" >&5
-+  echo "$as_me:6524: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -6523,7 +6538,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:6526: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6541: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -6566,7 +6581,7 @@
- 	;;
- esac
- 
--echo "$as_me:6569: checking for terminfo header" >&5
-+echo "$as_me:6584: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6584,7 +6599,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 6587 "configure"
-+#line 6602 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -6599,16 +6614,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6602: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6617: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:6605: \$? = $ac_status" >&5
-+  echo "$as_me:6620: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:6608: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6623: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6611: \$? = $ac_status" >&5
-+  echo "$as_me:6626: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_term_header="$cf_test"
-@@ -6624,7 +6639,7 @@
- done
- 
- fi
--echo "$as_me:6627: result: $cf_cv_term_header" >&5
-+echo "$as_me:6642: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
- 
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-@@ -6658,7 +6673,7 @@
- #define NCURSES 1
- EOF
- 
--echo "$as_me:6661: checking for ncurses version" >&5
-+echo "$as_me:6676: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6684,10 +6699,10 @@
- #endif
- EOF
- 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
--	{ (eval echo "$as_me:6687: \"$cf_try\"") >&5
-+	{ (eval echo "$as_me:6702: \"$cf_try\"") >&5
-   (eval $cf_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6690: \$? = $ac_status" >&5
-+  echo "$as_me:6705: \$? = $ac_status" >&5
-   (exit $ac_status); }
- 	if test -f conftest.out ; then
- 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -6697,7 +6712,7 @@
- 
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 6700 "configure"
-+#line 6715 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -6722,15 +6737,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:6725: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6740: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:6728: \$? = $ac_status" >&5
-+  echo "$as_me:6743: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:6730: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6745: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6733: \$? = $ac_status" >&5
-+  echo "$as_me:6748: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -6744,7 +6759,7 @@
- 	rm -f $cf_tempfile
- 
- fi
--echo "$as_me:6747: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:6762: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
- test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
- #define NCURSES 1
-@@ -6756,7 +6771,7 @@
- 	# to link gpm.
- cf_ncurses_LIBS=""
- cf_ncurses_SAVE="$LIBS"
--echo "$as_me:6759: checking for Gpm_Open in -lgpm" >&5
-+echo "$as_me:6774: checking for Gpm_Open in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6764,7 +6779,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6767 "configure"
-+#line 6782 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -6783,16 +6798,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6786: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6801: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:6789: \$? = $ac_status" >&5
-+  echo "$as_me:6804: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:6792: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6807: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6795: \$? = $ac_status" >&5
-+  echo "$as_me:6810: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -6803,10 +6818,10 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6806: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:6821: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
--  echo "$as_me:6809: checking for initscr in -lgpm" >&5
-+  echo "$as_me:6824: checking for initscr in -lgpm" >&5
- echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6814,7 +6829,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6817 "configure"
-+#line 6832 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -6833,16 +6848,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6836: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6851: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:6839: \$? = $ac_status" >&5
-+  echo "$as_me:6854: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:6842: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6857: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6845: \$? = $ac_status" >&5
-+  echo "$as_me:6860: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_gpm_initscr=yes
- else
-@@ -6853,7 +6868,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6856: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "$as_me:6871: result: $ac_cv_lib_gpm_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
- if test $ac_cv_lib_gpm_initscr = yes; then
-   LIBS="$cf_ncurses_SAVE"
-@@ -6868,7 +6883,7 @@
- 	# This is only necessary if you are linking against an obsolete
- 	# version of ncurses (but it should do no harm, since it's static).
- 	if test "$cf_nculib_root" = ncurses ; then
--		echo "$as_me:6871: checking for tgoto in -lmytinfo" >&5
-+		echo "$as_me:6886: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6876,7 +6891,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6879 "configure"
-+#line 6894 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -6895,16 +6910,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6898: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6913: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:6901: \$? = $ac_status" >&5
-+  echo "$as_me:6916: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:6904: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6919: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6907: \$? = $ac_status" >&5
-+  echo "$as_me:6922: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -6915,7 +6930,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6918: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:6933: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
-   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-@@ -6934,13 +6949,13 @@
- 
- 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- 	cf_libdir=""
--	echo "$as_me:6937: checking for initscr" >&5
-+	echo "$as_me:6952: checking for initscr" >&5
- echo $ECHO_N "checking for initscr... $ECHO_C" >&6
- if test "${ac_cv_func_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 6943 "configure"
-+#line 6958 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char initscr (); below.  */
-@@ -6971,16 +6986,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6974: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6989: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:6977: \$? = $ac_status" >&5
-+  echo "$as_me:6992: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:6980: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:6995: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:6983: \$? = $ac_status" >&5
-+  echo "$as_me:6998: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_initscr=yes
- else
-@@ -6990,18 +7005,18 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:6993: result: $ac_cv_func_initscr" >&5
-+echo "$as_me:7008: result: $ac_cv_func_initscr" >&5
- echo "${ECHO_T}$ac_cv_func_initscr" >&6
- if test $ac_cv_func_initscr = yes; then
-   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- else
- 
- 		cf_save_LIBS="$LIBS"
--		echo "$as_me:7000: checking for initscr in -l$cf_nculib_root" >&5
-+		echo "$as_me:7015: checking for initscr in -l$cf_nculib_root" >&5
- echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
- 		LIBS="-l$cf_nculib_root $LIBS"
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 7004 "configure"
-+#line 7019 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -7013,25 +7028,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7016: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7031: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7019: \$? = $ac_status" >&5
-+  echo "$as_me:7034: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7022: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7037: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7025: \$? = $ac_status" >&5
-+  echo "$as_me:7040: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:7027: result: yes" >&5
-+  echo "$as_me:7042: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- 
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7034: result: no" >&5
-+echo "$as_me:7049: result: no" >&5
- echo "${ECHO_T}no" >&6
- 
- cf_search=
-@@ -7121,11 +7136,11 @@
- 
- 			for cf_libdir in $cf_search
- 			do
--				echo "$as_me:7124: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+				echo "$as_me:7139: checking for -l$cf_nculib_root in $cf_libdir" >&5
- echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
- 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- 				cat >conftest.$ac_ext <<_ACEOF
--#line 7128 "configure"
-+#line 7143 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -7137,25 +7152,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7140: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7155: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7143: \$? = $ac_status" >&5
-+  echo "$as_me:7158: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7146: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7161: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7149: \$? = $ac_status" >&5
-+  echo "$as_me:7164: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:7151: result: yes" >&5
-+  echo "$as_me:7166: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- 					 break
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7158: result: no" >&5
-+echo "$as_me:7173: result: no" >&5
- echo "${ECHO_T}no" >&6
- 					 LIBS="$cf_save_LIBS"
- fi
-@@ -7170,7 +7185,7 @@
- eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
- 
- if test $cf_found_library = no ; then
--	{ { echo "$as_me:7173: error: Cannot link $cf_nculib_root library" >&5
-+	{ { echo "$as_me:7188: error: Cannot link $cf_nculib_root library" >&5
- echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -7178,7 +7193,7 @@
- fi
- 
- if test -n "$cf_ncurses_LIBS" ; then
--	echo "$as_me:7181: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+	echo "$as_me:7196: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
- 	cf_ncurses_SAVE="$LIBS"
- 	for p in $cf_ncurses_LIBS ; do
-@@ -7188,7 +7203,7 @@
- 		fi
- 	done
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 7191 "configure"
-+#line 7206 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -7200,23 +7215,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7203: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7218: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7206: \$? = $ac_status" >&5
-+  echo "$as_me:7221: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7209: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7224: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7212: \$? = $ac_status" >&5
-+  echo "$as_me:7227: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:7214: result: yes" >&5
-+  echo "$as_me:7229: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7219: result: no" >&5
-+echo "$as_me:7234: result: no" >&5
- echo "${ECHO_T}no" >&6
- 		 LIBS="$cf_ncurses_SAVE"
- fi
-@@ -7235,7 +7250,7 @@
- ncursesw)
- 	cf_cv_libtype=w
- 
--echo "$as_me:7238: checking for multibyte character support" >&5
-+echo "$as_me:7253: checking for multibyte character support" >&5
- echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
- if test "${cf_cv_utf8_lib+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7243,7 +7258,7 @@
- 
- 	cf_save_LIBS="$LIBS"
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 7246 "configure"
-+#line 7261 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -7256,16 +7271,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7259: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7274: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7262: \$? = $ac_status" >&5
-+  echo "$as_me:7277: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7265: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7280: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7268: \$? = $ac_status" >&5
-+  echo "$as_me:7283: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_utf8_lib=yes
- else
-@@ -7277,12 +7292,12 @@
- cf_cv_header_path_utf8=
- cf_cv_library_path_utf8=
- 
--echo "${as_me:-configure}:7280: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:7295: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
- 
- cf_save_LIBS="$LIBS"
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 7285 "configure"
-+#line 7300 "configure"
- #include "confdefs.h"
- 
- #include <libutf8.h>
-@@ -7295,16 +7310,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7298: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7313: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7301: \$? = $ac_status" >&5
-+  echo "$as_me:7316: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7304: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7319: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7307: \$? = $ac_status" >&5
-+  echo "$as_me:7322: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_find_linkage_utf8=yes
-@@ -7318,7 +7333,7 @@
- LIBS="-lutf8  $cf_save_LIBS"
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 7321 "configure"
-+#line 7336 "configure"
- #include "confdefs.h"
- 
- #include <libutf8.h>
-@@ -7331,16 +7346,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7334: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7349: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7337: \$? = $ac_status" >&5
-+  echo "$as_me:7352: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7340: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7355: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7343: \$? = $ac_status" >&5
-+  echo "$as_me:7358: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_find_linkage_utf8=yes
-@@ -7357,9 +7372,9 @@
- 
-     test -n "$verbose" && echo "	find linkage for utf8 library" 1>&6
- 
--echo "${as_me:-configure}:7360: testing find linkage for utf8 library ..." 1>&5
-+echo "${as_me:-configure}:7375: testing find linkage for utf8 library ..." 1>&5
- 
--echo "${as_me:-configure}:7362: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:7377: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
- 
-     cf_save_CPPFLAGS="$CPPFLAGS"
-     cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -7472,11 +7487,11 @@
-       if test -d $cf_cv_header_path_utf8 ; then
-         test -n "$verbose" && echo "	... testing $cf_cv_header_path_utf8" 1>&6
- 
--echo "${as_me:-configure}:7475: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:7490: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
- 
-         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
-         cat >conftest.$ac_ext <<_ACEOF
--#line 7479 "configure"
-+#line 7494 "configure"
- #include "confdefs.h"
- 
- #include <libutf8.h>
-@@ -7489,21 +7504,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7492: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7507: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:7495: \$? = $ac_status" >&5
-+  echo "$as_me:7510: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:7498: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7513: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7501: \$? = $ac_status" >&5
-+  echo "$as_me:7516: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
-             test -n "$verbose" && echo "	... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
- 
--echo "${as_me:-configure}:7506: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:7521: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
- 
-             cf_cv_find_linkage_utf8=maybe
-             cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -7521,7 +7536,7 @@
- 
-     if test "$cf_cv_find_linkage_utf8" = maybe ; then
- 
--echo "${as_me:-configure}:7524: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:7539: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
- 
-       cf_save_LIBS="$LIBS"
-       cf_save_LDFLAGS="$LDFLAGS"
-@@ -7618,13 +7633,13 @@
-           if test -d $cf_cv_library_path_utf8 ; then
-             test -n "$verbose" && echo "	... testing $cf_cv_library_path_utf8" 1>&6
- 
--echo "${as_me:-configure}:7621: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:7636: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
- 
-             CPPFLAGS="$cf_test_CPPFLAGS"
-             LIBS="-lutf8  $cf_save_LIBS"
-             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
-             cat >conftest.$ac_ext <<_ACEOF
--#line 7627 "configure"
-+#line 7642 "configure"
- #include "confdefs.h"
- 
- #include <libutf8.h>
-@@ -7637,21 +7652,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7640: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7655: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:7643: \$? = $ac_status" >&5
-+  echo "$as_me:7658: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:7646: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7661: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7649: \$? = $ac_status" >&5
-+  echo "$as_me:7664: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
-                 test -n "$verbose" && echo "	... found utf8 library in $cf_cv_library_path_utf8" 1>&6
- 
--echo "${as_me:-configure}:7654: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:7669: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
- 
-                 cf_cv_find_linkage_utf8=yes
-                 cf_cv_library_file_utf8="-lutf8"
-@@ -7693,7 +7708,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:7696: result: $cf_cv_utf8_lib" >&5
-+echo "$as_me:7711: result: $cf_cv_utf8_lib" >&5
- echo "${ECHO_T}$cf_cv_utf8_lib" >&6
- 
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
-@@ -7727,7 +7742,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 7730 "configure"
-+#line 7745 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -7739,16 +7754,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7742: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7757: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:7745: \$? = $ac_status" >&5
-+  echo "$as_me:7760: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:7748: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7763: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7751: \$? = $ac_status" >&5
-+  echo "$as_me:7766: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -7765,7 +7780,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:7768: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:7783: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -7799,7 +7814,7 @@
-       if test "$cf_have_libdir" = no ; then
-         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
- 
--echo "${as_me:-configure}:7802: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:7817: testing adding $cf_add_libdir to library-path ..." 1>&5
- 
-         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-       fi
-@@ -7817,7 +7832,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:7820: checking for $ac_word" >&5
-+echo "$as_me:7835: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7834,7 +7849,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   if $as_executable_p "$ac_dir/$ac_word"; then
-    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
--   echo "$as_me:7837: found $ac_dir/$ac_word" >&5
-+   echo "$as_me:7852: found $ac_dir/$ac_word" >&5
-    break
- fi
- done
-@@ -7845,10 +7860,10 @@
- NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
- 
- if test -n "$NCURSES_CONFIG"; then
--  echo "$as_me:7848: result: $NCURSES_CONFIG" >&5
-+  echo "$as_me:7863: result: $NCURSES_CONFIG" >&5
- echo "${ECHO_T}$NCURSES_CONFIG" >&6
- else
--  echo "$as_me:7851: result: no" >&5
-+  echo "$as_me:7866: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -7863,7 +7878,7 @@
- 
- # even with config script, some packages use no-override for curses.h
- 
--echo "$as_me:7866: checking if we have identified curses headers" >&5
-+echo "$as_me:7881: checking if we have identified curses headers" >&5
- echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
- if test "${cf_cv_ncurses_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7877,7 +7892,7 @@
- 	ncurses.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 7880 "configure"
-+#line 7895 "configure"
- #include "confdefs.h"
- #include <${cf_header}>
- int
-@@ -7889,16 +7904,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7892: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7907: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:7895: \$? = $ac_status" >&5
-+  echo "$as_me:7910: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:7898: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:7913: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:7901: \$? = $ac_status" >&5
-+  echo "$as_me:7916: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_header=$cf_header; break
- else
-@@ -7909,11 +7924,11 @@
- done
- 
- fi
--echo "$as_me:7912: result: $cf_cv_ncurses_header" >&5
-+echo "$as_me:7927: result: $cf_cv_ncurses_header" >&5
- echo "${ECHO_T}$cf_cv_ncurses_header" >&6
- 
- if test "$cf_cv_ncurses_header" = none ; then
--	{ { echo "$as_me:7916: error: No curses header-files found" >&5
-+	{ { echo "$as_me:7931: error: No curses header-files found" >&5
- echo "$as_me: error: No curses header-files found" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -7923,23 +7938,23 @@
- for ac_header in $cf_cv_ncurses_header
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:7926: checking for $ac_header" >&5
-+echo "$as_me:7941: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 7932 "configure"
-+#line 7947 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:7936: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:7951: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:7942: \$? = $ac_status" >&5
-+  echo "$as_me:7957: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -7958,7 +7973,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:7961: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:7976: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -8011,7 +8026,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 8014 "configure"
-+#line 8029 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8023,16 +8038,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8026: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8041: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8029: \$? = $ac_status" >&5
-+  echo "$as_me:8044: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8032: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8047: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8035: \$? = $ac_status" >&5
-+  echo "$as_me:8050: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -8049,7 +8064,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:8052: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:8067: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -8066,7 +8081,7 @@
- 
- }
- 
--echo "$as_me:8069: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo "$as_me:8084: checking for $cf_ncuhdr_root header in include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8078,7 +8093,7 @@
- 	do
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 8081 "configure"
-+#line 8096 "configure"
- #include "confdefs.h"
- 
- #define _XOPEN_SOURCE_EXTENDED
-@@ -8110,16 +8125,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8113: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8128: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8116: \$? = $ac_status" >&5
-+  echo "$as_me:8131: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8119: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8134: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8122: \$? = $ac_status" >&5
-+  echo "$as_me:8137: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_h=$cf_header
- 
-@@ -8134,14 +8149,14 @@
- 	done
- 
- fi
--echo "$as_me:8137: result: $cf_cv_ncurses_h" >&5
-+echo "$as_me:8152: result: $cf_cv_ncurses_h" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h" >&6
- 
- if test "$cf_cv_ncurses_h" != no ; then
- 	cf_cv_ncurses_header=$cf_cv_ncurses_h
- else
- 
--echo "$as_me:8144: checking for $cf_ncuhdr_root include-path" >&5
-+echo "$as_me:8159: checking for $cf_ncuhdr_root include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h2+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8281,7 +8296,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 8284 "configure"
-+#line 8299 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8293,16 +8308,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8311: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8299: \$? = $ac_status" >&5
-+  echo "$as_me:8314: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8302: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8317: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8305: \$? = $ac_status" >&5
-+  echo "$as_me:8320: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -8319,7 +8334,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:8322: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:8337: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -8340,7 +8355,7 @@
- 		do
- 
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 8343 "configure"
-+#line 8358 "configure"
- #include "confdefs.h"
- 
- #include <$cf_header>
-@@ -8364,16 +8379,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8367: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8382: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8370: \$? = $ac_status" >&5
-+  echo "$as_me:8385: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8373: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8388: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8376: \$? = $ac_status" >&5
-+  echo "$as_me:8391: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_h2=$cf_header
- 
-@@ -8394,12 +8409,12 @@
- 		CPPFLAGS="$cf_save2_CPPFLAGS"
- 		test "$cf_cv_ncurses_h2" != no && break
- 	done
--	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8397: error: not found" >&5
-+	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8412: error: not found" >&5
- echo "$as_me: error: not found" >&2;}
-    { (exit 1); exit 1; }; }
- 
- fi
--echo "$as_me:8402: result: $cf_cv_ncurses_h2" >&5
-+echo "$as_me:8417: result: $cf_cv_ncurses_h2" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
- 
- 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-@@ -8432,7 +8447,7 @@
- 			  cf_save_CPPFLAGS=$CPPFLAGS
- 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 			  cat >conftest.$ac_ext <<_ACEOF
--#line 8435 "configure"
-+#line 8450 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8444,16 +8459,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8447: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8462: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8450: \$? = $ac_status" >&5
-+  echo "$as_me:8465: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8453: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8468: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8456: \$? = $ac_status" >&5
-+  echo "$as_me:8471: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -8470,7 +8485,7 @@
- 		if test "$cf_have_incdir" = no ; then
- 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
- 
--echo "${as_me:-configure}:8473: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:8488: testing adding $cf_add_incdir to include-path ..." 1>&5
- 
- 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- 
-@@ -8513,7 +8528,7 @@
- 	;;
- esac
- 
--echo "$as_me:8516: checking for terminfo header" >&5
-+echo "$as_me:8531: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8531,7 +8546,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 8534 "configure"
-+#line 8549 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -8546,16 +8561,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8549: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8564: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:8552: \$? = $ac_status" >&5
-+  echo "$as_me:8567: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:8555: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8570: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8558: \$? = $ac_status" >&5
-+  echo "$as_me:8573: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_term_header="$cf_test"
-@@ -8571,7 +8586,7 @@
- done
- 
- fi
--echo "$as_me:8574: result: $cf_cv_term_header" >&5
-+echo "$as_me:8589: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
- 
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-@@ -8605,7 +8620,7 @@
- #define NCURSES 1
- EOF
- 
--echo "$as_me:8608: checking for ncurses version" >&5
-+echo "$as_me:8623: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8631,10 +8646,10 @@
- #endif
- EOF
- 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
--	{ (eval echo "$as_me:8634: \"$cf_try\"") >&5
-+	{ (eval echo "$as_me:8649: \"$cf_try\"") >&5
-   (eval $cf_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8637: \$? = $ac_status" >&5
-+  echo "$as_me:8652: \$? = $ac_status" >&5
-   (exit $ac_status); }
- 	if test -f conftest.out ; then
- 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -8644,7 +8659,7 @@
- 
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 8647 "configure"
-+#line 8662 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -8669,15 +8684,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:8672: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8687: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8675: \$? = $ac_status" >&5
-+  echo "$as_me:8690: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:8677: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8692: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8680: \$? = $ac_status" >&5
-+  echo "$as_me:8695: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
- 
- 	cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -8691,7 +8706,7 @@
- 	rm -f $cf_tempfile
- 
- fi
--echo "$as_me:8694: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:8709: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
- test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
- #define NCURSES 1
-@@ -8703,7 +8718,7 @@
- 	# to link gpm.
- cf_ncurses_LIBS=""
- cf_ncurses_SAVE="$LIBS"
--echo "$as_me:8706: checking for Gpm_Open in -lgpm" >&5
-+echo "$as_me:8721: checking for Gpm_Open in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8711,7 +8726,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8714 "configure"
-+#line 8729 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -8730,16 +8745,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8733: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8748: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8736: \$? = $ac_status" >&5
-+  echo "$as_me:8751: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:8739: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8754: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8742: \$? = $ac_status" >&5
-+  echo "$as_me:8757: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -8750,10 +8765,10 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8753: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:8768: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
--  echo "$as_me:8756: checking for initscr in -lgpm" >&5
-+  echo "$as_me:8771: checking for initscr in -lgpm" >&5
- echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8761,7 +8776,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8764 "configure"
-+#line 8779 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -8780,16 +8795,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8798: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8786: \$? = $ac_status" >&5
-+  echo "$as_me:8801: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:8789: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8804: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8792: \$? = $ac_status" >&5
-+  echo "$as_me:8807: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_gpm_initscr=yes
- else
-@@ -8800,7 +8815,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8803: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "$as_me:8818: result: $ac_cv_lib_gpm_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
- if test $ac_cv_lib_gpm_initscr = yes; then
-   LIBS="$cf_ncurses_SAVE"
-@@ -8815,7 +8830,7 @@
- 	# This is only necessary if you are linking against an obsolete
- 	# version of ncurses (but it should do no harm, since it's static).
- 	if test "$cf_nculib_root" = ncurses ; then
--		echo "$as_me:8818: checking for tgoto in -lmytinfo" >&5
-+		echo "$as_me:8833: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8823,7 +8838,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8826 "configure"
-+#line 8841 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -8842,16 +8857,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8845: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8860: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8848: \$? = $ac_status" >&5
-+  echo "$as_me:8863: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:8851: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8866: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8854: \$? = $ac_status" >&5
-+  echo "$as_me:8869: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -8862,7 +8877,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8865: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:8880: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
-   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-@@ -8881,13 +8896,13 @@
- 
- 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- 	cf_libdir=""
--	echo "$as_me:8884: checking for initscr" >&5
-+	echo "$as_me:8899: checking for initscr" >&5
- echo $ECHO_N "checking for initscr... $ECHO_C" >&6
- if test "${ac_cv_func_initscr+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 8890 "configure"
-+#line 8905 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char initscr (); below.  */
-@@ -8918,16 +8933,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8921: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8936: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8924: \$? = $ac_status" >&5
-+  echo "$as_me:8939: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:8927: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8942: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8930: \$? = $ac_status" >&5
-+  echo "$as_me:8945: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_initscr=yes
- else
-@@ -8937,18 +8952,18 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:8940: result: $ac_cv_func_initscr" >&5
-+echo "$as_me:8955: result: $ac_cv_func_initscr" >&5
- echo "${ECHO_T}$ac_cv_func_initscr" >&6
- if test $ac_cv_func_initscr = yes; then
-   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- else
- 
- 		cf_save_LIBS="$LIBS"
--		echo "$as_me:8947: checking for initscr in -l$cf_nculib_root" >&5
-+		echo "$as_me:8962: checking for initscr in -l$cf_nculib_root" >&5
- echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
- 		LIBS="-l$cf_nculib_root $LIBS"
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 8951 "configure"
-+#line 8966 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -8960,25 +8975,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8963: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8978: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:8966: \$? = $ac_status" >&5
-+  echo "$as_me:8981: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:8969: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:8984: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:8972: \$? = $ac_status" >&5
-+  echo "$as_me:8987: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:8974: result: yes" >&5
-+  echo "$as_me:8989: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- 
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:8981: result: no" >&5
-+echo "$as_me:8996: result: no" >&5
- echo "${ECHO_T}no" >&6
- 
- cf_search=
-@@ -9068,11 +9083,11 @@
- 
- 			for cf_libdir in $cf_search
- 			do
--				echo "$as_me:9071: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+				echo "$as_me:9086: checking for -l$cf_nculib_root in $cf_libdir" >&5
- echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
- 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- 				cat >conftest.$ac_ext <<_ACEOF
--#line 9075 "configure"
-+#line 9090 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -9084,25 +9099,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9087: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9102: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9090: \$? = $ac_status" >&5
-+  echo "$as_me:9105: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9093: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9108: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9096: \$? = $ac_status" >&5
-+  echo "$as_me:9111: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:9098: result: yes" >&5
-+  echo "$as_me:9113: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- 					 break
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9105: result: no" >&5
-+echo "$as_me:9120: result: no" >&5
- echo "${ECHO_T}no" >&6
- 					 LIBS="$cf_save_LIBS"
- fi
-@@ -9117,7 +9132,7 @@
- eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
- 
- if test $cf_found_library = no ; then
--	{ { echo "$as_me:9120: error: Cannot link $cf_nculib_root library" >&5
-+	{ { echo "$as_me:9135: error: Cannot link $cf_nculib_root library" >&5
- echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -9125,7 +9140,7 @@
- fi
- 
- if test -n "$cf_ncurses_LIBS" ; then
--	echo "$as_me:9128: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+	echo "$as_me:9143: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
- 	cf_ncurses_SAVE="$LIBS"
- 	for p in $cf_ncurses_LIBS ; do
-@@ -9135,7 +9150,7 @@
- 		fi
- 	done
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 9138 "configure"
-+#line 9153 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -9147,23 +9162,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9150: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9165: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9153: \$? = $ac_status" >&5
-+  echo "$as_me:9168: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9156: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9171: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9159: \$? = $ac_status" >&5
-+  echo "$as_me:9174: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
--  echo "$as_me:9161: result: yes" >&5
-+  echo "$as_me:9176: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9166: result: no" >&5
-+echo "$as_me:9181: result: no" >&5
- echo "${ECHO_T}no" >&6
- 		 LIBS="$cf_ncurses_SAVE"
- fi
-@@ -9181,7 +9196,7 @@
- 	;;
- pdcurses) #(vi
- 
--echo "$as_me:9184: checking if you want to use pkg-config" >&5
-+echo "$as_me:9199: checking if you want to use pkg-config" >&5
- echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
- 
- # Check whether --with-pkg-config or --without-pkg-config was given.
-@@ -9191,7 +9206,7 @@
- else
-   cf_pkg_config=yes
- fi;
--echo "$as_me:9194: result: $cf_pkg_config" >&5
-+echo "$as_me:9209: result: $cf_pkg_config" >&5
- echo "${ECHO_T}$cf_pkg_config" >&6
- 
- case $cf_pkg_config in #(vi
-@@ -9202,7 +9217,7 @@
- 	if test -n "$ac_tool_prefix"; then
-   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
- set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
--echo "$as_me:9205: checking for $ac_word" >&5
-+echo "$as_me:9220: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9219,7 +9234,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   if $as_executable_p "$ac_dir/$ac_word"; then
-    ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
--   echo "$as_me:9222: found $ac_dir/$ac_word" >&5
-+   echo "$as_me:9237: found $ac_dir/$ac_word" >&5
-    break
- fi
- done
-@@ -9230,10 +9245,10 @@
- PKG_CONFIG=$ac_cv_path_PKG_CONFIG
- 
- if test -n "$PKG_CONFIG"; then
--  echo "$as_me:9233: result: $PKG_CONFIG" >&5
-+  echo "$as_me:9248: result: $PKG_CONFIG" >&5
- echo "${ECHO_T}$PKG_CONFIG" >&6
- else
--  echo "$as_me:9236: result: no" >&5
-+  echo "$as_me:9251: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -9242,7 +9257,7 @@
-   ac_pt_PKG_CONFIG=$PKG_CONFIG
-   # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
--echo "$as_me:9245: checking for $ac_word" >&5
-+echo "$as_me:9260: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9259,7 +9274,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   if $as_executable_p "$ac_dir/$ac_word"; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
--   echo "$as_me:9262: found $ac_dir/$ac_word" >&5
-+   echo "$as_me:9277: found $ac_dir/$ac_word" >&5
-    break
- fi
- done
-@@ -9271,10 +9286,10 @@
- ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
- 
- if test -n "$ac_pt_PKG_CONFIG"; then
--  echo "$as_me:9274: result: $ac_pt_PKG_CONFIG" >&5
-+  echo "$as_me:9289: result: $ac_pt_PKG_CONFIG" >&5
- echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
- else
--  echo "$as_me:9277: result: no" >&5
-+  echo "$as_me:9292: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -9317,7 +9332,7 @@
-   PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
-   ;;
- *)
--  { { echo "$as_me:9320: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
-+  { { echo "$as_me:9335: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
- echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
-    { (exit 1); exit 1; }; }
-   ;;
-@@ -9325,7 +9340,7 @@
- 
- fi
- 
--echo "$as_me:9328: checking for X" >&5
-+echo "$as_me:9343: checking for X" >&5
- echo $ECHO_N "checking for X... $ECHO_C" >&6
- 
- # Check whether --with-x or --without-x was given.
-@@ -9422,17 +9437,17 @@
-   # Guess where to find include files, by looking for Intrinsic.h.
-   # First, try using that file with no special directory specified.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 9425 "configure"
-+#line 9440 "configure"
- #include "confdefs.h"
- #include <X11/Intrinsic.h>
- _ACEOF
--if { (eval echo "$as_me:9429: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:9444: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:9435: \$? = $ac_status" >&5
-+  echo "$as_me:9450: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -9465,7 +9480,7 @@
-   ac_save_LIBS=$LIBS
-   LIBS="-lXt $LIBS"
-   cat >conftest.$ac_ext <<_ACEOF
--#line 9468 "configure"
-+#line 9483 "configure"
- #include "confdefs.h"
- #include <X11/Intrinsic.h>
- int
-@@ -9477,16 +9492,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9480: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9495: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9483: \$? = $ac_status" >&5
-+  echo "$as_me:9498: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9486: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9501: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9489: \$? = $ac_status" >&5
-+  echo "$as_me:9504: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   LIBS=$ac_save_LIBS
- # We can link X programs with no special library path.
-@@ -9524,7 +9539,7 @@
- fi # $with_x != no
- 
- if test "$have_x" != yes; then
--  echo "$as_me:9527: result: $have_x" >&5
-+  echo "$as_me:9542: result: $have_x" >&5
- echo "${ECHO_T}$have_x" >&6
-   no_x=yes
- else
-@@ -9534,7 +9549,7 @@
-   # Update the cache value to reflect the command line values.
-   ac_cv_have_x="have_x=yes \
- 		ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
--  echo "$as_me:9537: result: libraries $x_libraries, headers $x_includes" >&5
-+  echo "$as_me:9552: result: libraries $x_libraries, headers $x_includes" >&5
- echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
- fi
- 
-@@ -9558,11 +9573,11 @@
-     # others require no space.  Words are not sufficient . . . .
-     case `(uname -sr) 2>/dev/null` in
-     "SunOS 5"*)
--      echo "$as_me:9561: checking whether -R must be followed by a space" >&5
-+      echo "$as_me:9576: checking whether -R must be followed by a space" >&5
- echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
-       ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
-       cat >conftest.$ac_ext <<_ACEOF
--#line 9565 "configure"
-+#line 9580 "configure"
- #include "confdefs.h"
- 
- int
-@@ -9574,16 +9589,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9577: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9592: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9580: \$? = $ac_status" >&5
-+  echo "$as_me:9595: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9583: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9598: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9586: \$? = $ac_status" >&5
-+  echo "$as_me:9601: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_R_nospace=yes
- else
-@@ -9593,13 +9608,13 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-       if test $ac_R_nospace = yes; then
--	echo "$as_me:9596: result: no" >&5
-+	echo "$as_me:9611: result: no" >&5
- echo "${ECHO_T}no" >&6
- 	X_LIBS="$X_LIBS -R$x_libraries"
-       else
- 	LIBS="$ac_xsave_LIBS -R $x_libraries"
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 9602 "configure"
-+#line 9617 "configure"
- #include "confdefs.h"
- 
- int
-@@ -9611,16 +9626,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9614: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9629: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9617: \$? = $ac_status" >&5
-+  echo "$as_me:9632: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9620: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9635: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9623: \$? = $ac_status" >&5
-+  echo "$as_me:9638: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_R_space=yes
- else
-@@ -9630,11 +9645,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- 	if test $ac_R_space = yes; then
--	  echo "$as_me:9633: result: yes" >&5
-+	  echo "$as_me:9648: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- 	  X_LIBS="$X_LIBS -R $x_libraries"
- 	else
--	  echo "$as_me:9637: result: neither works" >&5
-+	  echo "$as_me:9652: result: neither works" >&5
- echo "${ECHO_T}neither works" >&6
- 	fi
-       fi
-@@ -9654,7 +9669,7 @@
-     # the Alpha needs dnet_stub (dnet does not exist).
-     ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
-     cat >conftest.$ac_ext <<_ACEOF
--#line 9657 "configure"
-+#line 9672 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -9673,22 +9688,22 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9676: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9691: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9679: \$? = $ac_status" >&5
-+  echo "$as_me:9694: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9682: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9697: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9685: \$? = $ac_status" >&5
-+  echo "$as_me:9700: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9691: checking for dnet_ntoa in -ldnet" >&5
-+echo "$as_me:9706: checking for dnet_ntoa in -ldnet" >&5
- echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
- if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9696,7 +9711,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldnet  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9699 "configure"
-+#line 9714 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -9715,16 +9730,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9718: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9733: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9721: \$? = $ac_status" >&5
-+  echo "$as_me:9736: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9724: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9739: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9727: \$? = $ac_status" >&5
-+  echo "$as_me:9742: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_dnet_dnet_ntoa=yes
- else
-@@ -9735,14 +9750,14 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9738: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-+echo "$as_me:9753: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
- echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
- if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
- fi
- 
-     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
--      echo "$as_me:9745: checking for dnet_ntoa in -ldnet_stub" >&5
-+      echo "$as_me:9760: checking for dnet_ntoa in -ldnet_stub" >&5
- echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
- if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9750,7 +9765,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldnet_stub  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9753 "configure"
-+#line 9768 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -9769,16 +9784,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9772: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9787: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9775: \$? = $ac_status" >&5
-+  echo "$as_me:9790: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9778: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9793: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9781: \$? = $ac_status" >&5
-+  echo "$as_me:9796: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_dnet_stub_dnet_ntoa=yes
- else
-@@ -9789,7 +9804,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9792: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-+echo "$as_me:9807: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
- echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
- if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-@@ -9808,13 +9823,13 @@
-     # on Irix 5.2, according to T.E. Dickey.
-     # The functions gethostbyname, getservbyname, and inet_addr are
-     # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
--    echo "$as_me:9811: checking for gethostbyname" >&5
-+    echo "$as_me:9826: checking for gethostbyname" >&5
- echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
- if test "${ac_cv_func_gethostbyname+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 9817 "configure"
-+#line 9832 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char gethostbyname (); below.  */
-@@ -9845,16 +9860,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9848: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9863: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9851: \$? = $ac_status" >&5
-+  echo "$as_me:9866: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9854: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9869: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9857: \$? = $ac_status" >&5
-+  echo "$as_me:9872: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_gethostbyname=yes
- else
-@@ -9864,11 +9879,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:9867: result: $ac_cv_func_gethostbyname" >&5
-+echo "$as_me:9882: result: $ac_cv_func_gethostbyname" >&5
- echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
- 
-     if test $ac_cv_func_gethostbyname = no; then
--      echo "$as_me:9871: checking for gethostbyname in -lnsl" >&5
-+      echo "$as_me:9886: checking for gethostbyname in -lnsl" >&5
- echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
- if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9876,7 +9891,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lnsl  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9879 "configure"
-+#line 9894 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -9895,16 +9910,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9913: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9901: \$? = $ac_status" >&5
-+  echo "$as_me:9916: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9904: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9919: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9907: \$? = $ac_status" >&5
-+  echo "$as_me:9922: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_nsl_gethostbyname=yes
- else
-@@ -9915,14 +9930,14 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9918: result: $ac_cv_lib_nsl_gethostbyname" >&5
-+echo "$as_me:9933: result: $ac_cv_lib_nsl_gethostbyname" >&5
- echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
- if test $ac_cv_lib_nsl_gethostbyname = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
- fi
- 
-       if test $ac_cv_lib_nsl_gethostbyname = no; then
--        echo "$as_me:9925: checking for gethostbyname in -lbsd" >&5
-+        echo "$as_me:9940: checking for gethostbyname in -lbsd" >&5
- echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
- if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9930,7 +9945,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lbsd  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9933 "configure"
-+#line 9948 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -9949,16 +9964,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9952: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9967: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:9955: \$? = $ac_status" >&5
-+  echo "$as_me:9970: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:9958: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:9973: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:9961: \$? = $ac_status" >&5
-+  echo "$as_me:9976: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_bsd_gethostbyname=yes
- else
-@@ -9969,7 +9984,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9972: result: $ac_cv_lib_bsd_gethostbyname" >&5
-+echo "$as_me:9987: result: $ac_cv_lib_bsd_gethostbyname" >&5
- echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
- if test $ac_cv_lib_bsd_gethostbyname = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
-@@ -9985,13 +10000,13 @@
-     # variants that don't use the nameserver (or something).  -lsocket
-     # must be given before -lnsl if both are needed.  We assume that
-     # if connect needs -lnsl, so does gethostbyname.
--    echo "$as_me:9988: checking for connect" >&5
-+    echo "$as_me:10003: checking for connect" >&5
- echo $ECHO_N "checking for connect... $ECHO_C" >&6
- if test "${ac_cv_func_connect+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 9994 "configure"
-+#line 10009 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char connect (); below.  */
-@@ -10022,16 +10037,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10025: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10040: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10028: \$? = $ac_status" >&5
-+  echo "$as_me:10043: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10031: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10046: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10034: \$? = $ac_status" >&5
-+  echo "$as_me:10049: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_connect=yes
- else
-@@ -10041,11 +10056,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:10044: result: $ac_cv_func_connect" >&5
-+echo "$as_me:10059: result: $ac_cv_func_connect" >&5
- echo "${ECHO_T}$ac_cv_func_connect" >&6
- 
-     if test $ac_cv_func_connect = no; then
--      echo "$as_me:10048: checking for connect in -lsocket" >&5
-+      echo "$as_me:10063: checking for connect in -lsocket" >&5
- echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
- if test "${ac_cv_lib_socket_connect+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10053,7 +10068,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10056 "configure"
-+#line 10071 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -10072,16 +10087,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10090: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10078: \$? = $ac_status" >&5
-+  echo "$as_me:10093: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10081: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10096: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10084: \$? = $ac_status" >&5
-+  echo "$as_me:10099: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_socket_connect=yes
- else
-@@ -10092,7 +10107,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10095: result: $ac_cv_lib_socket_connect" >&5
-+echo "$as_me:10110: result: $ac_cv_lib_socket_connect" >&5
- echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
- if test $ac_cv_lib_socket_connect = yes; then
-   X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-@@ -10101,13 +10116,13 @@
-     fi
- 
-     # Guillermo Gomez says -lposix is necessary on A/UX.
--    echo "$as_me:10104: checking for remove" >&5
-+    echo "$as_me:10119: checking for remove" >&5
- echo $ECHO_N "checking for remove... $ECHO_C" >&6
- if test "${ac_cv_func_remove+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 10110 "configure"
-+#line 10125 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char remove (); below.  */
-@@ -10138,16 +10153,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10141: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10156: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10144: \$? = $ac_status" >&5
-+  echo "$as_me:10159: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10147: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10162: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10150: \$? = $ac_status" >&5
-+  echo "$as_me:10165: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_remove=yes
- else
-@@ -10157,11 +10172,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:10160: result: $ac_cv_func_remove" >&5
-+echo "$as_me:10175: result: $ac_cv_func_remove" >&5
- echo "${ECHO_T}$ac_cv_func_remove" >&6
- 
-     if test $ac_cv_func_remove = no; then
--      echo "$as_me:10164: checking for remove in -lposix" >&5
-+      echo "$as_me:10179: checking for remove in -lposix" >&5
- echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
- if test "${ac_cv_lib_posix_remove+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10169,7 +10184,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lposix  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10172 "configure"
-+#line 10187 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -10188,16 +10203,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10191: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10206: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10194: \$? = $ac_status" >&5
-+  echo "$as_me:10209: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10197: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10212: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10200: \$? = $ac_status" >&5
-+  echo "$as_me:10215: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_posix_remove=yes
- else
-@@ -10208,7 +10223,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10211: result: $ac_cv_lib_posix_remove" >&5
-+echo "$as_me:10226: result: $ac_cv_lib_posix_remove" >&5
- echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
- if test $ac_cv_lib_posix_remove = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-@@ -10217,13 +10232,13 @@
-     fi
- 
-     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
--    echo "$as_me:10220: checking for shmat" >&5
-+    echo "$as_me:10235: checking for shmat" >&5
- echo $ECHO_N "checking for shmat... $ECHO_C" >&6
- if test "${ac_cv_func_shmat+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 10226 "configure"
-+#line 10241 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char shmat (); below.  */
-@@ -10254,16 +10269,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10257: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10272: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10260: \$? = $ac_status" >&5
-+  echo "$as_me:10275: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10263: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10278: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10266: \$? = $ac_status" >&5
-+  echo "$as_me:10281: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_shmat=yes
- else
-@@ -10273,11 +10288,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:10276: result: $ac_cv_func_shmat" >&5
-+echo "$as_me:10291: result: $ac_cv_func_shmat" >&5
- echo "${ECHO_T}$ac_cv_func_shmat" >&6
- 
-     if test $ac_cv_func_shmat = no; then
--      echo "$as_me:10280: checking for shmat in -lipc" >&5
-+      echo "$as_me:10295: checking for shmat in -lipc" >&5
- echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
- if test "${ac_cv_lib_ipc_shmat+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10285,7 +10300,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lipc  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10288 "configure"
-+#line 10303 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -10304,16 +10319,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10307: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10322: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10310: \$? = $ac_status" >&5
-+  echo "$as_me:10325: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10313: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10328: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10316: \$? = $ac_status" >&5
-+  echo "$as_me:10331: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_ipc_shmat=yes
- else
-@@ -10324,7 +10339,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10327: result: $ac_cv_lib_ipc_shmat" >&5
-+echo "$as_me:10342: result: $ac_cv_lib_ipc_shmat" >&5
- echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
- if test $ac_cv_lib_ipc_shmat = yes; then
-   X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-@@ -10342,7 +10357,7 @@
-   # These have to be linked with before -lX11, unlike the other
-   # libraries we check for below, so use a different variable.
-   # John Interrante, Karl Berry
--  echo "$as_me:10345: checking for IceConnectionNumber in -lICE" >&5
-+  echo "$as_me:10360: checking for IceConnectionNumber in -lICE" >&5
- echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
- if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10350,7 +10365,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lICE $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10353 "configure"
-+#line 10368 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -10369,16 +10384,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10372: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10387: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10375: \$? = $ac_status" >&5
-+  echo "$as_me:10390: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10378: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10393: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10381: \$? = $ac_status" >&5
-+  echo "$as_me:10396: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_ICE_IceConnectionNumber=yes
- else
-@@ -10389,7 +10404,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10392: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-+echo "$as_me:10407: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
- echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
- if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
-   X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-@@ -10401,7 +10416,7 @@
- 
- cf_x_athena=${cf_x_athena:-Xaw}
- 
--echo "$as_me:10404: checking if you want to link with Xaw 3d library" >&5
-+echo "$as_me:10419: checking if you want to link with Xaw 3d library" >&5
- echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
- withval=
- 
-@@ -10412,14 +10427,14 @@
- fi;
- if test "$withval" = yes ; then
- 	cf_x_athena=Xaw3d
--	echo "$as_me:10415: result: yes" >&5
-+	echo "$as_me:10430: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
--	echo "$as_me:10418: result: no" >&5
-+	echo "$as_me:10433: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
--echo "$as_me:10422: checking if you want to link with neXT Athena library" >&5
-+echo "$as_me:10437: checking if you want to link with neXT Athena library" >&5
- echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
- withval=
- 
-@@ -10430,14 +10445,14 @@
- fi;
- if test "$withval" = yes ; then
- 	cf_x_athena=neXtaw
--	echo "$as_me:10433: result: yes" >&5
-+	echo "$as_me:10448: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
--	echo "$as_me:10436: result: no" >&5
-+	echo "$as_me:10451: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
--echo "$as_me:10440: checking if you want to link with Athena-Plus library" >&5
-+echo "$as_me:10455: checking if you want to link with Athena-Plus library" >&5
- echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
- withval=
- 
-@@ -10448,10 +10463,10 @@
- fi;
- if test "$withval" = yes ; then
- 	cf_x_athena=XawPlus
--	echo "$as_me:10451: result: yes" >&5
-+	echo "$as_me:10466: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
--	echo "$as_me:10454: result: no" >&5
-+	echo "$as_me:10469: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -10471,17 +10486,17 @@
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
- 	test -n "$verbose" && echo "	found package $cf_athena_pkg" 1>&6
- 
--echo "${as_me:-configure}:10474: testing found package $cf_athena_pkg ..." 1>&5
-+echo "${as_me:-configure}:10489: testing found package $cf_athena_pkg ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   $cf_athena_pkg 2>/dev/null`"
- 	test -n "$verbose" && echo "	package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:10480: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10495: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:10484: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10499: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -10571,14 +10586,14 @@
- #define $cf_x_athena_LIBS 1
- EOF
- 
--echo "$as_me:10574: checking for usable $cf_x_athena/Xmu package" >&5
-+echo "$as_me:10589: checking for usable $cf_x_athena/Xmu package" >&5
- echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
- if test "${cf_cv_xaw_compat+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 10581 "configure"
-+#line 10596 "configure"
- #include "confdefs.h"
- 
- #include <X11/Xmu/CharSet.h>
-@@ -10594,16 +10609,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10597: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10612: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10600: \$? = $ac_status" >&5
-+  echo "$as_me:10615: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10603: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10618: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10606: \$? = $ac_status" >&5
-+  echo "$as_me:10621: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_xaw_compat=yes
- else
-@@ -10613,7 +10628,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:10616: result: $cf_cv_xaw_compat" >&5
-+echo "$as_me:10631: result: $cf_cv_xaw_compat" >&5
- echo "${ECHO_T}$cf_cv_xaw_compat" >&6
- 
- 			if test "$cf_cv_xaw_compat" = no
-@@ -10625,22 +10640,22 @@
- 				*)
- 					test -n "$verbose" && echo "	work around broken package" 1>&6
- 
--echo "${as_me:-configure}:10628: testing work around broken package ..." 1>&5
-+echo "${as_me:-configure}:10643: testing work around broken package ..." 1>&5
- 
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
- 	test -n "$verbose" && echo "	found package xmu" 1>&6
- 
--echo "${as_me:-configure}:10633: testing found package xmu ..." 1>&5
-+echo "${as_me:-configure}:10648: testing found package xmu ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xmu 2>/dev/null`"
- 	test -n "$verbose" && echo "	package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:10639: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10654: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package xmu LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:10643: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10658: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -10726,12 +10741,12 @@
- 
- test -n "$verbose" && echo "	...before $LIBS" 1>&6
- 
--echo "${as_me:-configure}:10729: testing ...before $LIBS ..." 1>&5
-+echo "${as_me:-configure}:10744: testing ...before $LIBS ..." 1>&5
- 
- LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/  / /g'`
- test -n "$verbose" && echo "	...after  $LIBS" 1>&6
- 
--echo "${as_me:-configure}:10734: testing ...after  $LIBS ..." 1>&5
-+echo "${as_me:-configure}:10749: testing ...after  $LIBS ..." 1>&5
- 
- fi
- 
-@@ -10752,17 +10767,17 @@
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
- 	test -n "$verbose" && echo "	found package Xext" 1>&6
- 
--echo "${as_me:-configure}:10755: testing found package Xext ..." 1>&5
-+echo "${as_me:-configure}:10770: testing found package Xext ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   Xext 2>/dev/null`"
- 	test -n "$verbose" && echo "	package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:10761: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10776: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package Xext LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:10765: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10780: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -10846,7 +10861,7 @@
- 	:
- else
- 
--	echo "$as_me:10849: checking for XextCreateExtension in -lXext" >&5
-+	echo "$as_me:10864: checking for XextCreateExtension in -lXext" >&5
- echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
- if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10854,7 +10869,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lXext  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10857 "configure"
-+#line 10872 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -10873,16 +10888,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10876: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10891: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:10879: \$? = $ac_status" >&5
-+  echo "$as_me:10894: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:10882: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:10897: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:10885: \$? = $ac_status" >&5
-+  echo "$as_me:10900: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_Xext_XextCreateExtension=yes
- else
-@@ -10893,7 +10908,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10896: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
-+echo "$as_me:10911: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
- echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
- if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
-   LIBS="-lXext $LIBS"
-@@ -10906,17 +10921,17 @@
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
- 	test -n "$verbose" && echo "	found package xt" 1>&6
- 
--echo "${as_me:-configure}:10909: testing found package xt ..." 1>&5
-+echo "${as_me:-configure}:10924: testing found package xt ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xt 2>/dev/null`"
- 	test -n "$verbose" && echo "	package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:10915: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10930: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package xt LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:10919: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10934: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -11003,14 +11018,14 @@
- 		;;
- 	*)
- # we have an "xt" package, but it may omit Xt's dependency on X11
--echo "$as_me:11006: checking for usable X dependency" >&5
-+echo "$as_me:11021: checking for usable X dependency" >&5
- echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
- if test "${cf_cv_xt_x11_compat+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 11013 "configure"
-+#line 11028 "configure"
- #include "confdefs.h"
- 
- #include <X11/Xlib.h>
-@@ -11029,16 +11044,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11032: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11047: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11035: \$? = $ac_status" >&5
-+  echo "$as_me:11050: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11038: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11053: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11041: \$? = $ac_status" >&5
-+  echo "$as_me:11056: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_xt_x11_compat=yes
- else
-@@ -11048,30 +11063,30 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:11051: result: $cf_cv_xt_x11_compat" >&5
-+echo "$as_me:11066: result: $cf_cv_xt_x11_compat" >&5
- echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
- 		if test "$cf_cv_xt_x11_compat" = no
- 		then
- 			test -n "$verbose" && echo "	work around broken X11 dependency" 1>&6
- 
--echo "${as_me:-configure}:11057: testing work around broken X11 dependency ..." 1>&5
-+echo "${as_me:-configure}:11072: testing work around broken X11 dependency ..." 1>&5
- 
- 			# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
- 
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
- 	test -n "$verbose" && echo "	found package x11" 1>&6
- 
--echo "${as_me:-configure}:11064: testing found package x11 ..." 1>&5
-+echo "${as_me:-configure}:11079: testing found package x11 ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   x11 2>/dev/null`"
- 	test -n "$verbose" && echo "	package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:11070: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:11085: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package x11 LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:11074: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:11089: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -11157,12 +11172,12 @@
- 
- test -n "$verbose" && echo "	...before $LIBS" 1>&6
- 
--echo "${as_me:-configure}:11160: testing ...before $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11175: testing ...before $LIBS ..." 1>&5
- 
- LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/  / /g'`
- test -n "$verbose" && echo "	...after  $LIBS" 1>&6
- 
--echo "${as_me:-configure}:11165: testing ...after  $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11180: testing ...after  $LIBS ..." 1>&5
- 
- fi
- 
-@@ -11170,14 +11185,14 @@
- 		;;
- 	esac
- 
--echo "$as_me:11173: checking for usable X Toolkit package" >&5
-+echo "$as_me:11188: checking for usable X Toolkit package" >&5
- echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
- if test "${cf_cv_xt_ice_compat+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 11180 "configure"
-+#line 11195 "configure"
- #include "confdefs.h"
- 
- #include <X11/Shell.h>
-@@ -11192,16 +11207,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11195: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11210: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11198: \$? = $ac_status" >&5
-+  echo "$as_me:11213: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11201: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11216: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11204: \$? = $ac_status" >&5
-+  echo "$as_me:11219: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_xt_ice_compat=yes
- else
-@@ -11211,7 +11226,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:11214: result: $cf_cv_xt_ice_compat" >&5
-+echo "$as_me:11229: result: $cf_cv_xt_ice_compat" >&5
- echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
- 
- 	if test "$cf_cv_xt_ice_compat" = no
-@@ -11225,22 +11240,22 @@
- 			*)
- 				test -n "$verbose" && echo "	work around broken ICE dependency" 1>&6
- 
--echo "${as_me:-configure}:11228: testing work around broken ICE dependency ..." 1>&5
-+echo "${as_me:-configure}:11243: testing work around broken ICE dependency ..." 1>&5
- 
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
- 	test -n "$verbose" && echo "	found package ice" 1>&6
- 
--echo "${as_me:-configure}:11233: testing found package ice ..." 1>&5
-+echo "${as_me:-configure}:11248: testing found package ice ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   ice 2>/dev/null`"
- 	test -n "$verbose" && echo "	package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:11239: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:11254: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package ice LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:11243: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:11258: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -11325,17 +11340,17 @@
- if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
- 	test -n "$verbose" && echo "	found package sm" 1>&6
- 
--echo "${as_me:-configure}:11328: testing found package sm ..." 1>&5
-+echo "${as_me:-configure}:11343: testing found package sm ..." 1>&5
- 
- 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
- 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   sm 2>/dev/null`"
- 	test -n "$verbose" && echo "	package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
- 
--echo "${as_me:-configure}:11334: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:11349: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
- 
- 	test -n "$verbose" && echo "	package sm LIBS: $cf_pkgconfig_libs" 1>&6
- 
--echo "${as_me:-configure}:11338: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:11353: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
- 
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -11425,12 +11440,12 @@
- 
- test -n "$verbose" && echo "	...before $LIBS" 1>&6
- 
--echo "${as_me:-configure}:11428: testing ...before $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11443: testing ...before $LIBS ..." 1>&5
- 
- LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/  / /g'`
- test -n "$verbose" && echo "	...after  $LIBS" 1>&6
- 
--echo "${as_me:-configure}:11433: testing ...after  $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11448: testing ...after  $LIBS ..." 1>&5
- 
- fi
- 
-@@ -11448,7 +11463,7 @@
- 
- test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
- 
--echo "${as_me:-configure}:11451: testing checking additions to CFLAGS ..." 1>&5
-+echo "${as_me:-configure}:11466: testing checking additions to CFLAGS ..." 1>&5
- 
- cf_check_cflags="$CFLAGS"
- cf_check_cppflags="$CPPFLAGS"
-@@ -11519,7 +11534,7 @@
- if test -n "$cf_new_cflags" ; then
- 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
- 
--echo "${as_me:-configure}:11522: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-+echo "${as_me:-configure}:11537: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
- 
- 	CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-@@ -11527,7 +11542,7 @@
- if test -n "$cf_new_cppflags" ; then
- 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
- 
--echo "${as_me:-configure}:11530: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-+echo "${as_me:-configure}:11545: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
- 
- 	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
-@@ -11535,14 +11550,14 @@
- if test -n "$cf_new_extra_cppflags" ; then
- 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
- 
--echo "${as_me:-configure}:11538: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-+echo "${as_me:-configure}:11553: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
- 
- 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
- 
- if test "$cf_check_cflags" != "$CFLAGS" ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 11545 "configure"
-+#line 11560 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -11554,16 +11569,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11557: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11572: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11560: \$? = $ac_status" >&5
-+  echo "$as_me:11575: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11563: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11578: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11566: \$? = $ac_status" >&5
-+  echo "$as_me:11581: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -11571,12 +11586,12 @@
- cat conftest.$ac_ext >&5
- test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
- 
--echo "${as_me:-configure}:11574: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
-+echo "${as_me:-configure}:11589: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
- 
- 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
- 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
- 
--echo "${as_me:-configure}:11579: testing but keeping change to \$CPPFLAGS ..." 1>&5
-+echo "${as_me:-configure}:11594: testing but keeping change to \$CPPFLAGS ..." 1>&5
- 
- 	 fi
- 	 CFLAGS="$cf_check_flags"
-@@ -11584,13 +11599,13 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
- 
--	echo "$as_me:11587: checking for XOpenDisplay" >&5
-+	echo "$as_me:11602: checking for XOpenDisplay" >&5
- echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
- if test "${ac_cv_func_XOpenDisplay+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 11593 "configure"
-+#line 11608 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char XOpenDisplay (); below.  */
-@@ -11621,16 +11636,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11624: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11639: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11627: \$? = $ac_status" >&5
-+  echo "$as_me:11642: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11630: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11645: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11633: \$? = $ac_status" >&5
-+  echo "$as_me:11648: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_XOpenDisplay=yes
- else
-@@ -11640,13 +11655,13 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:11643: result: $ac_cv_func_XOpenDisplay" >&5
-+echo "$as_me:11658: result: $ac_cv_func_XOpenDisplay" >&5
- echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
- if test $ac_cv_func_XOpenDisplay = yes; then
-   :
- else
- 
--	echo "$as_me:11649: checking for XOpenDisplay in -lX11" >&5
-+	echo "$as_me:11664: checking for XOpenDisplay in -lX11" >&5
- echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
- if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -11654,7 +11669,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11657 "configure"
-+#line 11672 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -11673,16 +11688,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11676: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11691: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11679: \$? = $ac_status" >&5
-+  echo "$as_me:11694: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11682: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11697: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11685: \$? = $ac_status" >&5
-+  echo "$as_me:11700: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_X11_XOpenDisplay=yes
- else
-@@ -11693,7 +11708,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:11696: result: $ac_cv_lib_X11_XOpenDisplay" >&5
-+echo "$as_me:11711: result: $ac_cv_lib_X11_XOpenDisplay" >&5
- echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
- if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-   LIBS="-lX11 $LIBS"
-@@ -11701,13 +11716,13 @@
- 
- fi
- 
--	echo "$as_me:11704: checking for XtAppInitialize" >&5
-+	echo "$as_me:11719: checking for XtAppInitialize" >&5
- echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
- if test "${ac_cv_func_XtAppInitialize+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 11710 "configure"
-+#line 11725 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char XtAppInitialize (); below.  */
-@@ -11738,16 +11753,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11741: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11756: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11744: \$? = $ac_status" >&5
-+  echo "$as_me:11759: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11747: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11762: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11750: \$? = $ac_status" >&5
-+  echo "$as_me:11765: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_func_XtAppInitialize=yes
- else
-@@ -11757,13 +11772,13 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:11760: result: $ac_cv_func_XtAppInitialize" >&5
-+echo "$as_me:11775: result: $ac_cv_func_XtAppInitialize" >&5
- echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
- if test $ac_cv_func_XtAppInitialize = yes; then
-   :
- else
- 
--	echo "$as_me:11766: checking for XtAppInitialize in -lXt" >&5
-+	echo "$as_me:11781: checking for XtAppInitialize in -lXt" >&5
- echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
- if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -11771,7 +11786,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11774 "configure"
-+#line 11789 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -11790,16 +11805,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11793: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11808: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11796: \$? = $ac_status" >&5
-+  echo "$as_me:11811: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11799: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11814: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11802: \$? = $ac_status" >&5
-+  echo "$as_me:11817: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_Xt_XtAppInitialize=yes
- else
-@@ -11810,7 +11825,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:11813: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
-+echo "$as_me:11828: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
- echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
- if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
-   cat >>confdefs.h <<\EOF
-@@ -11826,7 +11841,7 @@
- fi
- 
- if test $cf_have_X_LIBS = no ; then
--	{ echo "$as_me:11829: WARNING: Unable to successfully link X Toolkit library (-lXt) with
-+	{ echo "$as_me:11844: WARNING: Unable to successfully link X Toolkit library (-lXt) with
- test program.  You will have to check and add the proper libraries by hand
- to makefile." >&5
- echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
-@@ -11848,14 +11863,14 @@
- 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
- 		if test $cf_path != default ; then
- 			CPPFLAGS="$cf_save -I$cf_path/include"
--			echo "$as_me:11851: checking for $cf_test in $cf_path" >&5
-+			echo "$as_me:11866: checking for $cf_test in $cf_path" >&5
- echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
- 		else
--			echo "$as_me:11854: checking for $cf_test" >&5
-+			echo "$as_me:11869: checking for $cf_test" >&5
- echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
- 		fi
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 11858 "configure"
-+#line 11873 "configure"
- #include "confdefs.h"
- 
- #include <X11/Intrinsic.h>
-@@ -11869,16 +11884,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:11872: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11887: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:11875: \$? = $ac_status" >&5
-+  echo "$as_me:11890: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:11878: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11893: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11881: \$? = $ac_status" >&5
-+  echo "$as_me:11896: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -11887,7 +11902,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--		echo "$as_me:11890: result: $cf_result" >&5
-+		echo "$as_me:11905: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 		if test "$cf_result" = yes ; then
- 			cf_x_athena_inc=$cf_path
-@@ -11899,7 +11914,7 @@
- done
- 
- if test -z "$cf_x_athena_inc" ; then
--	{ echo "$as_me:11902: WARNING: Unable to successfully find Athena header files with test program" >&5
-+	{ echo "$as_me:11917: WARNING: Unable to successfully find Athena header files with test program" >&5
- echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
- elif test "$cf_x_athena_inc" != default ; then
- 	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
-@@ -11924,15 +11939,15 @@
- 			cf_test=XawSimpleMenuAddGlobalActions
- 			if test $cf_path != default ; then
- 				LIBS="-L$cf_path/lib $cf_lib $LIBS"
--				echo "$as_me:11927: checking for $cf_lib in $cf_path" >&5
-+				echo "$as_me:11942: checking for $cf_lib in $cf_path" >&5
- echo $ECHO_N "checking for $cf_lib in $cf_path... $ECHO_C" >&6
- 			else
- 				LIBS="$cf_lib $LIBS"
--				echo "$as_me:11931: checking for $cf_test in $cf_lib" >&5
-+				echo "$as_me:11946: checking for $cf_test in $cf_lib" >&5
- echo $ECHO_N "checking for $cf_test in $cf_lib... $ECHO_C" >&6
- 			fi
- 			cat >conftest.$ac_ext <<_ACEOF
--#line 11935 "configure"
-+#line 11950 "configure"
- #include "confdefs.h"
- 
- #include <X11/Intrinsic.h>
-@@ -11948,16 +11963,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11951: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11966: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:11954: \$? = $ac_status" >&5
-+  echo "$as_me:11969: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:11957: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:11972: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:11960: \$? = $ac_status" >&5
-+  echo "$as_me:11975: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -11966,7 +11981,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--			echo "$as_me:11969: result: $cf_result" >&5
-+			echo "$as_me:11984: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 			if test "$cf_result" = yes ; then
- 				cf_x_athena_lib="$cf_lib"
-@@ -11978,7 +11993,7 @@
- done
- 
- if test -z "$cf_x_athena_lib" ; then
--	{ { echo "$as_me:11981: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
-+	{ { echo "$as_me:11996: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
- echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -11995,7 +12010,7 @@
- do
-   # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:11998: checking for $ac_word" >&5
-+echo "$as_me:12013: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_XCURSES_CONFIG+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12012,7 +12027,7 @@
-   test -z "$ac_dir" && ac_dir=.
-   if $as_executable_p "$ac_dir/$ac_word"; then
-    ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
--   echo "$as_me:12015: found $ac_dir/$ac_word" >&5
-+   echo "$as_me:12030: found $ac_dir/$ac_word" >&5
-    break
- fi
- done
-@@ -12023,10 +12038,10 @@
- XCURSES_CONFIG=$ac_cv_path_XCURSES_CONFIG
- 
- if test -n "$XCURSES_CONFIG"; then
--  echo "$as_me:12026: result: $XCURSES_CONFIG" >&5
-+  echo "$as_me:12041: result: $XCURSES_CONFIG" >&5
- echo "${ECHO_T}$XCURSES_CONFIG" >&6
- else
--  echo "$as_me:12029: result: no" >&5
-+  echo "$as_me:12044: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
- 
-@@ -12047,7 +12062,7 @@
- 
- test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
- 
--echo "${as_me:-configure}:12050: testing checking additions to CFLAGS ..." 1>&5
-+echo "${as_me:-configure}:12065: testing checking additions to CFLAGS ..." 1>&5
- 
- cf_check_cflags="$CFLAGS"
- cf_check_cppflags="$CPPFLAGS"
-@@ -12118,7 +12133,7 @@
- if test -n "$cf_new_cflags" ; then
- 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
- 
--echo "${as_me:-configure}:12121: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-+echo "${as_me:-configure}:12136: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
- 
- 	CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-@@ -12126,7 +12141,7 @@
- if test -n "$cf_new_cppflags" ; then
- 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
- 
--echo "${as_me:-configure}:12129: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-+echo "${as_me:-configure}:12144: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
- 
- 	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
-@@ -12134,14 +12149,14 @@
- if test -n "$cf_new_extra_cppflags" ; then
- 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
- 
--echo "${as_me:-configure}:12137: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-+echo "${as_me:-configure}:12152: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
- 
- 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
- 
- if test "$cf_check_cflags" != "$CFLAGS" ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 12144 "configure"
-+#line 12159 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -12153,16 +12168,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12156: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12171: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12159: \$? = $ac_status" >&5
-+  echo "$as_me:12174: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12162: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12177: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12165: \$? = $ac_status" >&5
-+  echo "$as_me:12180: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -12170,12 +12185,12 @@
- cat conftest.$ac_ext >&5
- test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
- 
--echo "${as_me:-configure}:12173: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
-+echo "${as_me:-configure}:12188: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
- 
- 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
- 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
- 
--echo "${as_me:-configure}:12178: testing but keeping change to \$CPPFLAGS ..." 1>&5
-+echo "${as_me:-configure}:12193: testing but keeping change to \$CPPFLAGS ..." 1>&5
- 
- 	 fi
- 	 CFLAGS="$cf_check_flags"
-@@ -12183,7 +12198,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
- 
--echo "$as_me:12186: checking for XOpenDisplay in -lX11" >&5
-+echo "$as_me:12201: checking for XOpenDisplay in -lX11" >&5
- echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
- if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12191,7 +12206,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12194 "configure"
-+#line 12209 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -12210,16 +12225,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12213: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12228: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12216: \$? = $ac_status" >&5
-+  echo "$as_me:12231: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12219: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12234: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12222: \$? = $ac_status" >&5
-+  echo "$as_me:12237: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_lib_X11_XOpenDisplay=yes
- else
-@@ -12230,13 +12245,13 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12233: result: $ac_cv_lib_X11_XOpenDisplay" >&5
-+echo "$as_me:12248: result: $ac_cv_lib_X11_XOpenDisplay" >&5
- echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
- if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-   LIBS="-lX11 $LIBS"
- fi
- 
--echo "$as_me:12239: checking for XCurses library" >&5
-+echo "$as_me:12254: checking for XCurses library" >&5
- echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
- if test "${cf_cv_lib_XCurses+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12244,7 +12259,7 @@
- 
- LIBS="-lXCurses $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12247 "configure"
-+#line 12262 "configure"
- #include "confdefs.h"
- 
- #include <xcurses.h>
-@@ -12259,16 +12274,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12262: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12277: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12265: \$? = $ac_status" >&5
-+  echo "$as_me:12280: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12268: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12283: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12271: \$? = $ac_status" >&5
-+  echo "$as_me:12286: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_lib_XCurses=yes
- else
-@@ -12279,7 +12294,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- 
- fi
--echo "$as_me:12282: result: $cf_cv_lib_XCurses" >&5
-+echo "$as_me:12297: result: $cf_cv_lib_XCurses" >&5
- echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
- 
- fi
-@@ -12293,23 +12308,23 @@
- #define XCURSES 1
- EOF
- 
--	echo "$as_me:12296: checking for xcurses.h" >&5
-+	echo "$as_me:12311: checking for xcurses.h" >&5
- echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
- if test "${ac_cv_header_xcurses_h+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12302 "configure"
-+#line 12317 "configure"
- #include "confdefs.h"
- #include <xcurses.h>
- _ACEOF
--if { (eval echo "$as_me:12306: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:12321: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:12312: \$? = $ac_status" >&5
-+  echo "$as_me:12327: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12328,7 +12343,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:12331: result: $ac_cv_header_xcurses_h" >&5
-+echo "$as_me:12346: result: $ac_cv_header_xcurses_h" >&5
- echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
- if test $ac_cv_header_xcurses_h = yes; then
-   cat >>confdefs.h <<\EOF
-@@ -12338,7 +12353,7 @@
- fi
- 
- else
--	{ { echo "$as_me:12341: error: Cannot link with XCurses" >&5
-+	{ { echo "$as_me:12356: error: Cannot link with XCurses" >&5
- echo "$as_me: error: Cannot link with XCurses" >&2;}
-    { (exit 1); exit 1; }; }
- fi
-@@ -12353,7 +12368,7 @@
- 	# look for curses-related libraries
- 
- as_ac_Lib=`echo "ac_cv_lib_panel$cf_cv_libtype''_new_panel" | $as_tr_sh`
--echo "$as_me:12356: checking for new_panel in -lpanel$cf_cv_libtype" >&5
-+echo "$as_me:12371: checking for new_panel in -lpanel$cf_cv_libtype" >&5
- echo $ECHO_N "checking for new_panel in -lpanel$cf_cv_libtype... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12361,7 +12376,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lpanel$cf_cv_libtype  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12364 "configure"
-+#line 12379 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -12380,16 +12395,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12383: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12398: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12386: \$? = $ac_status" >&5
-+  echo "$as_me:12401: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12389: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12404: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12392: \$? = $ac_status" >&5
-+  echo "$as_me:12407: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_Lib=yes"
- else
-@@ -12400,7 +12415,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12403: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:12418: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12412,7 +12427,7 @@
- fi
- 
- as_ac_Lib=`echo "ac_cv_lib_menu$cf_cv_libtype''_menu_driver" | $as_tr_sh`
--echo "$as_me:12415: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
-+echo "$as_me:12430: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
- echo $ECHO_N "checking for menu_driver in -lmenu$cf_cv_libtype... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12420,7 +12435,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmenu$cf_cv_libtype  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12423 "configure"
-+#line 12438 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -12439,16 +12454,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12442: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12457: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12445: \$? = $ac_status" >&5
-+  echo "$as_me:12460: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12448: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12463: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12451: \$? = $ac_status" >&5
-+  echo "$as_me:12466: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_Lib=yes"
- else
-@@ -12459,7 +12474,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12462: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:12477: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12471,7 +12486,7 @@
- fi
- 
- as_ac_Lib=`echo "ac_cv_lib_form$cf_cv_libtype''_form_driver" | $as_tr_sh`
--echo "$as_me:12474: checking for form_driver in -lform$cf_cv_libtype" >&5
-+echo "$as_me:12489: checking for form_driver in -lform$cf_cv_libtype" >&5
- echo $ECHO_N "checking for form_driver in -lform$cf_cv_libtype... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12479,7 +12494,7 @@
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lform$cf_cv_libtype  $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12482 "configure"
-+#line 12497 "configure"
- #include "confdefs.h"
- 
- /* Override any gcc2 internal prototype to avoid an error.  */
-@@ -12498,16 +12513,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12501: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12516: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12504: \$? = $ac_status" >&5
-+  echo "$as_me:12519: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12507: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12522: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12510: \$? = $ac_status" >&5
-+  echo "$as_me:12525: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_Lib=yes"
- else
-@@ -12518,7 +12533,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12521: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:12536: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12541,23 +12556,23 @@
- 
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:12544: checking for $ac_header" >&5
-+echo "$as_me:12559: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12550 "configure"
-+#line 12565 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:12554: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:12569: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:12560: \$? = $ac_status" >&5
-+  echo "$as_me:12575: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12576,7 +12591,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:12579: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:12594: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12589,13 +12604,13 @@
- 	;;
- esac
- 
--echo "$as_me:12592: checking return type of signal handlers" >&5
-+echo "$as_me:12607: checking return type of signal handlers" >&5
- echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
- if test "${ac_cv_type_signal+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12598 "configure"
-+#line 12613 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <signal.h>
-@@ -12617,16 +12632,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12620: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:12635: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:12623: \$? = $ac_status" >&5
-+  echo "$as_me:12638: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:12626: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12641: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12629: \$? = $ac_status" >&5
-+  echo "$as_me:12644: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_type_signal=void
- else
-@@ -12636,20 +12651,20 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:12639: result: $ac_cv_type_signal" >&5
-+echo "$as_me:12654: result: $ac_cv_type_signal" >&5
- echo "${ECHO_T}$ac_cv_type_signal" >&6
- 
- cat >>confdefs.h <<EOF
- #define RETSIGTYPE $ac_cv_type_signal
- EOF
- 
--echo "$as_me:12646: checking for ANSI C header files" >&5
-+echo "$as_me:12661: checking for ANSI C header files" >&5
- echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
- if test "${ac_cv_header_stdc+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12652 "configure"
-+#line 12667 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -12657,13 +12672,13 @@
- #include <float.h>
- 
- _ACEOF
--if { (eval echo "$as_me:12660: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:12675: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:12666: \$? = $ac_status" >&5
-+  echo "$as_me:12681: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12685,7 +12700,7 @@
- if test $ac_cv_header_stdc = yes; then
-   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12688 "configure"
-+#line 12703 "configure"
- #include "confdefs.h"
- #include <string.h>
- 
-@@ -12703,7 +12718,7 @@
- if test $ac_cv_header_stdc = yes; then
-   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12706 "configure"
-+#line 12721 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- 
-@@ -12724,7 +12739,7 @@
-   :
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12727 "configure"
-+#line 12742 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #if ((' ' & 0x0FF) == 0x020)
-@@ -12750,15 +12765,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:12753: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12768: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12756: \$? = $ac_status" >&5
-+  echo "$as_me:12771: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:12758: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12773: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12761: \$? = $ac_status" >&5
-+  echo "$as_me:12776: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   :
- else
-@@ -12771,7 +12786,7 @@
- fi
- fi
- fi
--echo "$as_me:12774: result: $ac_cv_header_stdc" >&5
-+echo "$as_me:12789: result: $ac_cv_header_stdc" >&5
- echo "${ECHO_T}$ac_cv_header_stdc" >&6
- if test $ac_cv_header_stdc = yes; then
- 
-@@ -12781,13 +12796,13 @@
- 
- fi
- 
--echo "$as_me:12784: checking whether time.h and sys/time.h may both be included" >&5
-+echo "$as_me:12799: checking whether time.h and sys/time.h may both be included" >&5
- echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
- if test "${ac_cv_header_time+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12790 "configure"
-+#line 12805 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/time.h>
-@@ -12803,16 +12818,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12806: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:12821: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:12809: \$? = $ac_status" >&5
-+  echo "$as_me:12824: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:12812: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:12827: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12815: \$? = $ac_status" >&5
-+  echo "$as_me:12830: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   ac_cv_header_time=yes
- else
-@@ -12822,7 +12837,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:12825: result: $ac_cv_header_time" >&5
-+echo "$as_me:12840: result: $ac_cv_header_time" >&5
- echo "${ECHO_T}$ac_cv_header_time" >&6
- if test $ac_cv_header_time = yes; then
- 
-@@ -12845,23 +12860,23 @@
- 
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:12848: checking for $ac_header" >&5
-+echo "$as_me:12863: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12854 "configure"
-+#line 12869 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:12858: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:12873: \"$ac_cpp conftest.$ac_ext\"") >&5
-   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-   ac_status=$?
-   egrep -v '^ *\+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:12864: \$? = $ac_status" >&5
-+  echo "$as_me:12879: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null; then
-   if test -s conftest.err; then
-     ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12880,7 +12895,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:12883: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:12898: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12892,25 +12907,97 @@
- 
- for ac_func in \
- gettimeofday \
-+strdup \
-+
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:12914: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_var+set}\" = set"; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  cat >conftest.$ac_ext <<_ACEOF
-+#line 12920 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+    which can conflict with char $ac_func (); below.  */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error.  */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+   builtin and then its argument prototype would still apply.  */
-+char $ac_func ();
-+char (*f) ();
-+
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+    to always fail with ENOSYS.  Some functions are actually named
-+    something starting with __ and the normal name is an alias.  */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+f = $ac_func;
-+#endif
-+
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:12951: \"$ac_link\"") >&5
-+  (eval $ac_link) 2>&5
-+  ac_status=$?
-+  echo "$as_me:12954: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+         { ac_try='test -s conftest$ac_exeext'
-+  { (eval echo "$as_me:12957: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:12960: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  eval "$as_ac_var=yes"
-+else
-+  echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+eval "$as_ac_var=no"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:12970: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+  cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+EOF
-+
-+fi
-+done
-+
-+if test "$cf_enable_widec" = yes; then
-+
-+for ac_func in \
- mblen \
- mbrlen \
- mbrtowc \
- mbsrtowcs \
- mbstowcs \
- mbtowc \
--strdup \
- wcsrtombs \
- wcstombs \
- 
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:12907: checking for $ac_func" >&5
-+echo "$as_me:12994: checking for $ac_func" >&5
- echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
- if eval "test \"\${$as_ac_var+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 12913 "configure"
-+#line 13000 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
-     which can conflict with char $ac_func (); below.  */
-@@ -12941,16 +13028,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12944: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13031: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:12947: \$? = $ac_status" >&5
-+  echo "$as_me:13034: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:12950: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13037: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:12953: \$? = $ac_status" >&5
-+  echo "$as_me:13040: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   eval "$as_ac_var=yes"
- else
-@@ -12960,7 +13047,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:12963: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:13050: result: `eval echo '${'$as_ac_var'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
- if test `eval echo '${'$as_ac_var'}'` = yes; then
-   cat >>confdefs.h <<EOF
-@@ -12970,14 +13057,16 @@
- fi
- done
- 
--echo "$as_me:12973: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-+fi
-+
-+echo "$as_me:13062: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
- echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
- if test "${cf_cv_need_xopen_extension+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 12980 "configure"
-+#line 13069 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -12999,23 +13088,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13002: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13091: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13005: \$? = $ac_status" >&5
-+  echo "$as_me:13094: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13008: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13097: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13011: \$? = $ac_status" >&5
-+  echo "$as_me:13100: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_need_xopen_extension=no
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 13018 "configure"
-+#line 13107 "configure"
- #include "confdefs.h"
- 
- #define _XOPEN_SOURCE_EXTENDED
-@@ -13037,16 +13126,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13040: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13129: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13043: \$? = $ac_status" >&5
-+  echo "$as_me:13132: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13046: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13135: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13049: \$? = $ac_status" >&5
-+  echo "$as_me:13138: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_need_xopen_extension=yes
- else
-@@ -13058,11 +13147,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:13061: result: $cf_cv_need_xopen_extension" >&5
-+echo "$as_me:13150: result: $cf_cv_need_xopen_extension" >&5
- echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
- test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
- 
--echo "$as_me:13065: checking for term.h" >&5
-+echo "$as_me:13154: checking for term.h" >&5
- echo $ECHO_N "checking for term.h... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13070,12 +13159,20 @@
- 
- # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
- # for <term.h> if we do not find the variant.
--for cf_header in \
--	`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
--	term.h
-+
-+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
-+	cf_header_list="$cf_header_item $cf_header_list"
-+	;;
-+esac
-+
-+for cf_header in $cf_header_list
- do
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 13078 "configure"
-+#line 13175 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13089,16 +13186,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13092: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13189: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:13095: \$? = $ac_status" >&5
-+  echo "$as_me:13192: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13098: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13195: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13101: \$? = $ac_status" >&5
-+  echo "$as_me:13198: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_term_header=$cf_header
- 	 break
-@@ -13117,7 +13214,7 @@
- 	for cf_header in ncurses/term.h ncursesw/term.h
- 	do
- 		cat >conftest.$ac_ext <<_ACEOF
--#line 13120 "configure"
-+#line 13217 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13135,16 +13232,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13138: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13235: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:13141: \$? = $ac_status" >&5
-+  echo "$as_me:13238: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13144: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13241: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13147: \$? = $ac_status" >&5
-+  echo "$as_me:13244: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_term_header=$cf_header
- 			 break
-@@ -13159,7 +13256,7 @@
- esac
- 
- fi
--echo "$as_me:13162: result: $cf_cv_term_header" >&5
-+echo "$as_me:13259: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
- 
- case $cf_cv_term_header in #(vi
-@@ -13183,6 +13280,94 @@
- 	;;
- esac
- 
-+echo "$as_me:13283: checking for unctrl.h" >&5
-+echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6
-+if test "${cf_cv_unctrl_header+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
-+# for <unctrl.h> if we do not find the variant.
-+
-+cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
-+	cf_header_list="$cf_header_item $cf_header_list"
-+	;;
-+esac
-+
-+for cf_header in $cf_header_list
-+do
-+	cat >conftest.$ac_ext <<_ACEOF
-+#line 13304 "configure"
-+#include "confdefs.h"
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <${cf_header}>
-+int
-+main ()
-+{
-+WINDOW *x
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13318: \"$ac_compile\"") >&5
-+  (eval $ac_compile) 2>&5
-+  ac_status=$?
-+  echo "$as_me:13321: \$? = $ac_status" >&5
-+  (exit $ac_status); } &&
-+         { ac_try='test -s conftest.$ac_objext'
-+  { (eval echo "$as_me:13324: \"$ac_try\"") >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  echo "$as_me:13327: \$? = $ac_status" >&5
-+  (exit $ac_status); }; }; then
-+  cf_cv_unctrl_header=$cf_header
-+	 break
-+else
-+  echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_unctrl_header=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
-+case $cf_cv_unctrl_header in #(vi
-+no)
-+	{ echo "$as_me:13341: WARNING: unctrl.h header not found" >&5
-+echo "$as_me: WARNING: unctrl.h header not found" >&2;}
-+	;;
-+esac
-+
-+fi
-+echo "$as_me:13347: result: $cf_cv_unctrl_header" >&5
-+echo "${ECHO_T}$cf_cv_unctrl_header" >&6
-+
-+case $cf_cv_unctrl_header in #(vi
-+unctrl.h) #(vi
-+	cat >>confdefs.h <<\EOF
-+#define HAVE_UNCTRL_H 1
-+EOF
-+
-+	;;
-+ncurses/unctrl.h) #(vi
-+	cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_UNCTRL_H 1
-+EOF
-+
-+	;;
-+ncursesw/unctrl.h)
-+	cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_UNCTRL_H 1
-+EOF
-+
-+	;;
-+esac
-+
- for cf_func in \
- chgat \
- color_set \
-@@ -13221,10 +13406,10 @@
- 
- cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- 
--	echo "$as_me:13224: checking for ${cf_func}" >&5
-+	echo "$as_me:13409: checking for ${cf_func}" >&5
- echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
- 
--echo "${as_me:-configure}:13227: testing ${cf_func} ..." 1>&5
-+echo "${as_me:-configure}:13412: testing ${cf_func} ..." 1>&5
- 
- 	if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13233,7 +13418,7 @@
- 		eval cf_result='$ac_cv_func_'$cf_func
- 		if test ".$cf_result" != ".no"; then
- 			cat >conftest.$ac_ext <<_ACEOF
--#line 13236 "configure"
-+#line 13421 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -13264,16 +13449,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13267: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13452: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13270: \$? = $ac_status" >&5
-+  echo "$as_me:13455: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13273: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13458: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13276: \$? = $ac_status" >&5
-+  echo "$as_me:13461: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -13289,7 +13474,7 @@
- 
- 	# use the computed/retrieved cache-value:
- 	eval 'cf_result=$cf_cv_func_'$cf_func
--	echo "$as_me:13292: result: $cf_result" >&5
-+	echo "$as_me:13477: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 	if test $cf_result != no; then
- 		cat >>confdefs.h <<EOF
-@@ -13299,14 +13484,14 @@
- 	fi
- done
- 
--echo "$as_me:13302: checking for ncurses extended functions" >&5
-+echo "$as_me:13487: checking for ncurses extended functions" >&5
- echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
- if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 13309 "configure"
-+#line 13494 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13321,16 +13506,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13324: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13509: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:13327: \$? = $ac_status" >&5
-+  echo "$as_me:13512: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13330: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13515: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13333: \$? = $ac_status" >&5
-+  echo "$as_me:13518: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_ext_funcs=defined
- else
-@@ -13338,7 +13523,7 @@
- cat conftest.$ac_ext >&5
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 13341 "configure"
-+#line 13526 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13363,16 +13548,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13366: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13551: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13369: \$? = $ac_status" >&5
-+  echo "$as_me:13554: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13372: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13557: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13375: \$? = $ac_status" >&5
-+  echo "$as_me:13560: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_ncurses_ext_funcs=yes
- else
-@@ -13386,20 +13571,22 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- 
- fi
--echo "$as_me:13389: result: $cf_cv_ncurses_ext_funcs" >&5
-+echo "$as_me:13574: result: $cf_cv_ncurses_ext_funcs" >&5
- echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
- test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF
- #define NCURSES_EXT_FUNCS 1
- EOF
- 
--echo "$as_me:13395: checking for wide-character functions" >&5
-+if test "$cf_enable_widec" = yes
-+then
-+	echo "$as_me:13582: checking for wide-character functions" >&5
- echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
- if test "${cf_cv_widechar_funcs+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
--cat >conftest.$ac_ext <<_ACEOF
--#line 13402 "configure"
-+	cat >conftest.$ac_ext <<_ACEOF
-+#line 13589 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13407,25 +13594,25 @@
- main ()
- {
- 
--	static wchar_t src_wchar[2];
--	static cchar_t dst_cchar;
--	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-+		static wchar_t src_wchar[2];
-+		static cchar_t dst_cchar;
-+		setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
- 
-   ;
-   return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13419: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13606: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13422: \$? = $ac_status" >&5
-+  echo "$as_me:13609: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13425: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13612: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13428: \$? = $ac_status" >&5
-+  echo "$as_me:13615: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_widechar_funcs=yes
- else
-@@ -13436,465 +13623,34 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- 
- fi
--echo "$as_me:13439: result: $cf_cv_widechar_funcs" >&5
-+echo "$as_me:13626: result: $cf_cv_widechar_funcs" >&5
- echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
--if test "$cf_cv_widechar_funcs" != no ; then
--	cat >>confdefs.h <<\EOF
-+	if test "$cf_cv_widechar_funcs" != no ; then
-+		cat >>confdefs.h <<\EOF
- #define USE_WIDEC_SUPPORT 1
- EOF
- 
--else
--	cat >>confdefs.h <<\EOF
-+	else
-+		cat >>confdefs.h <<\EOF
- #define USE_WIDEC_SUPPORT 0
- EOF
- 
--fi
--
--# On IRIX 5.3, sys/types and inttypes.h are conflicting.
--
--for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
--                  inttypes.h stdint.h unistd.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:13459: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line 13465 "configure"
--#include "confdefs.h"
--$ac_includes_default
--#include <$ac_header>
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13471: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:13474: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13477: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:13480: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  eval "$as_ac_Header=yes"
--else
--  echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--eval "$as_ac_Header=no"
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:13490: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
--  cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--echo "$as_me:13500: checking for pid_t" >&5
--echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
--if test "${ac_cv_type_pid_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line 13506 "configure"
--#include "confdefs.h"
--$ac_includes_default
--int
--main ()
--{
--if ((pid_t *) 0)
--  return 0;
--if (sizeof (pid_t))
--  return 0;
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13521: \"$ac_compile\"") >&5
--  (eval $ac_compile) 2>&5
--  ac_status=$?
--  echo "$as_me:13524: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13527: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:13530: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_type_pid_t=yes
--else
--  echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_type_pid_t=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:13540: result: $ac_cv_type_pid_t" >&5
--echo "${ECHO_T}$ac_cv_type_pid_t" >&6
--if test $ac_cv_type_pid_t = yes; then
--  :
--else
--
--cat >>confdefs.h <<EOF
--#define pid_t int
--EOF
--
--fi
--
--for ac_header in unistd.h vfork.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:13555: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line 13561 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:13565: \"$ac_cpp conftest.$ac_ext\"") >&5
--  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
--  ac_status=$?
--  egrep -v '^ *\+' conftest.er1 >conftest.err
--  rm -f conftest.er1
--  cat conftest.err >&5
--  echo "$as_me:13571: \$? = $ac_status" >&5
--  (exit $ac_status); } >/dev/null; then
--  if test -s conftest.err; then
--    ac_cpp_err=$ac_c_preproc_warn_flag
--  else
--    ac_cpp_err=
--  fi
--else
--  ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
--  eval "$as_ac_Header=yes"
--else
--  echo "$as_me: failed program was:" >&5
--  cat conftest.$ac_ext >&5
--  eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:13590: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
--  cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--for ac_func in fork vfork
--do
--as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:13603: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line 13609 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
--    which can conflict with char $ac_func (); below.  */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error.  */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
--   builtin and then its argument prototype would still apply.  */
--char $ac_func ();
--char (*f) ();
--
--int
--main ()
--{
--/* The GNU C library defines this for functions which it implements
--    to always fail with ENOSYS.  Some functions are actually named
--    something starting with __ and the normal name is an alias.  */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
--choke me
--#else
--f = $ac_func;
--#endif
--
--  ;
--  return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13640: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:13643: \$? = $ac_status" >&5
--  (exit $ac_status); } &&
--         { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:13646: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:13649: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  eval "$as_ac_var=yes"
--else
--  echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--eval "$as_ac_var=no"
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:13659: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
--if test `eval echo '${'$as_ac_var'}'` = yes; then
--  cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--ac_cv_func_fork_works=$ac_cv_func_fork
--if test "x$ac_cv_func_fork" = xyes; then
--  echo "$as_me:13671: checking for working fork" >&5
--echo $ECHO_N "checking for working fork... $ECHO_C" >&6
--if test "${ac_cv_func_fork_works+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test "$cross_compiling" = yes; then
--  ac_cv_func_fork_works=cross
--else
--  cat >conftest.$ac_ext <<_ACEOF
--/* By RÃŒdiger Kuhlmann. */
--      #include <sys/types.h>
--      #if HAVE_UNISTD_H
--      # include <unistd.h>
--      #endif
--      /* Some systems only have a dummy stub for fork() */
--      int main ()
--      {
--        if (fork() < 0)
--          $ac_main_return (1);
--        $ac_main_return (0);
--      }
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13694: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:13697: \$? = $ac_status" >&5
--  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:13699: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:13702: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_func_fork_works=yes
--else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_fork_works=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--echo "$as_me:13714: result: $ac_cv_func_fork_works" >&5
--echo "${ECHO_T}$ac_cv_func_fork_works" >&6
--
--fi
--if test "x$ac_cv_func_fork_works" = xcross; then
--  case $host in
--    *-*-amigaos* | *-*-msdosdjgpp*)
--      # Override, as these systems have only a dummy fork() stub
--      ac_cv_func_fork_works=no
--      ;;
--    *)
--      ac_cv_func_fork_works=yes
--      ;;
--  esac
--  { echo "$as_me:13728: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
--echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
--fi
--ac_cv_func_vfork_works=$ac_cv_func_vfork
--if test "x$ac_cv_func_vfork" = xyes; then
--  echo "$as_me:13733: checking for working vfork" >&5
--echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
--if test "${ac_cv_func_vfork_works+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  if test "$cross_compiling" = yes; then
--  ac_cv_func_vfork_works=cross
--else
--  cat >conftest.$ac_ext <<_ACEOF
--#line 13742 "configure"
--#include "confdefs.h"
--/* Thanks to Paul Eggert for this test.  */
--#include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif
--#if HAVE_VFORK_H
--# include <vfork.h>
--#endif
--/* On some sparc systems, changes by the child to local and incoming
--   argument registers are propagated back to the parent.  The compiler
--   is told about this with #include <vfork.h>, but some compilers
--   (e.g. gcc -O) don't grok <vfork.h>.  Test for this by using a
--   static variable whose address is put into a register that is
--   clobbered by the vfork.  */
--static
--#ifdef __cplusplus
--sparc_address_test (int arg)
--# else
--sparc_address_test (arg) int arg;
--#endif
--{
--  static pid_t child;
--  if (!child) {
--    child = vfork ();
--    if (child < 0) {
--      perror ("vfork");
--      _exit(2);
--    }
--    if (!child) {
--      arg = getpid();
--      write(-1, "", 0);
--      _exit (arg);
--    }
--  }
--}
--
--int
--main ()
--{
--  pid_t parent = getpid ();
--  pid_t child;
--
--  sparc_address_test ();
--
--  child = vfork ();
--
--  if (child == 0) {
--    /* Here is another test for sparc vfork register problems.  This
--       test uses lots of local variables, at least as many local
--       variables as main has allocated so far including compiler
--       temporaries.  4 locals are enough for gcc 1.40.3 on a Solaris
--       4.1.3 sparc, but we use 8 to be safe.  A buggy compiler should
--       reuse the register of parent for one of the local variables,
--       since it will think that parent can't possibly be used any more
--       in this routine.  Assigning to the local variable will thus
--       munge parent in the parent process.  */
--    pid_t
--      p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
--      p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
--    /* Convince the compiler that p..p7 are live; otherwise, it might
--       use the same hardware register for all 8 local variables.  */
--    if (p != p1 || p != p2 || p != p3 || p != p4
--	|| p != p5 || p != p6 || p != p7)
--      _exit(1);
--
--    /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
--       from child file descriptors.  If the child closes a descriptor
--       before it execs or exits, this munges the parent's descriptor
--       as well.  Test for this by closing stdout in the child.  */
--    _exit(close(fileno(stdout)) != 0);
--  } else {
--    int status;
--    struct stat st;
--
--    while (wait(&status) != child)
--      ;
--    $ac_main_return(
--	 /* Was there some problem with vforking?  */
--	 child < 0
--
--	 /* Did the child fail?  (This shouldn't happen.)  */
--	 || status
--
--	 /* Did the vfork/compiler bug occur?  */
--	 || parent != getpid()
--
--	 /* Did the file descriptor bug occur?  */
--	 || fstat(fileno(stdout), &st) != 0
--	 );
--  }
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13839: \"$ac_link\"") >&5
--  (eval $ac_link) 2>&5
--  ac_status=$?
--  echo "$as_me:13842: \$? = $ac_status" >&5
--  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:13844: \"$ac_try\"") >&5
--  (eval $ac_try) 2>&5
--  ac_status=$?
--  echo "$as_me:13847: \$? = $ac_status" >&5
--  (exit $ac_status); }; }; then
--  ac_cv_func_vfork_works=yes
--else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_vfork_works=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--echo "$as_me:13859: result: $ac_cv_func_vfork_works" >&5
--echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
--
--fi;
--if test "x$ac_cv_func_fork_works" = xcross; then
--  ac_cv_func_vfork_works=ac_cv_func_vfork
--  { echo "$as_me:13865: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
--echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
--fi
--
--if test "x$ac_cv_func_vfork_works" = xyes; then
--
--cat >>confdefs.h <<\EOF
--#define HAVE_WORKING_VFORK 1
--EOF
--
-+	fi
- else
--
--cat >>confdefs.h <<\EOF
--#define vfork fork
--EOF
--
--fi
--if test "x$ac_cv_func_fork_works" = xyes; then
--
--cat >>confdefs.h <<\EOF
--#define HAVE_WORKING_FORK 1
-+	cat >>confdefs.h <<\EOF
-+#define USE_WIDEC_SUPPORT 0
- EOF
- 
- fi
- 
--echo "$as_me:13890: checking if sys/time.h works with sys/select.h" >&5
-+echo "$as_me:13646: checking if sys/time.h works with sys/select.h" >&5
- echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
- if test "${cf_cv_sys_time_select+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 13897 "configure"
-+#line 13653 "configure"
- #include "confdefs.h"
- 
- #include <sys/types.h>
-@@ -13914,16 +13670,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13917: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13673: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:13920: \$? = $ac_status" >&5
-+  echo "$as_me:13676: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:13923: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13679: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13926: \$? = $ac_status" >&5
-+  echo "$as_me:13682: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_sys_time_select=yes
- else
-@@ -13935,13 +13691,13 @@
- 
- fi
- 
--echo "$as_me:13938: result: $cf_cv_sys_time_select" >&5
-+echo "$as_me:13694: result: $cf_cv_sys_time_select" >&5
- echo "${ECHO_T}$cf_cv_sys_time_select" >&6
- test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
- #define HAVE_SYS_TIME_SELECT 1
- EOF
- 
--echo "$as_me:13944: checking for function curses_version" >&5
-+echo "$as_me:13700: checking for function curses_version" >&5
- echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
- if test "${cf_cv_func_curses_version+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13951,7 +13707,7 @@
-   cf_cv_func_curses_version=unknown
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 13954 "configure"
-+#line 13710 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -13964,15 +13720,15 @@
- 
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13967: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13723: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:13970: \$? = $ac_status" >&5
-+  echo "$as_me:13726: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:13972: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13728: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:13975: \$? = $ac_status" >&5
-+  echo "$as_me:13731: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_func_curses_version=yes
- 
-@@ -13987,13 +13743,13 @@
- fi
- rm -f core
- fi
--echo "$as_me:13990: result: $cf_cv_func_curses_version" >&5
-+echo "$as_me:13746: result: $cf_cv_func_curses_version" >&5
- echo "${ECHO_T}$cf_cv_func_curses_version" >&6
- test "$cf_cv_func_curses_version" = yes && cat >>confdefs.h <<\EOF
- #define HAVE_CURSES_VERSION 1
- EOF
- 
--echo "$as_me:13996: checking for ncurses wrap-prefix" >&5
-+echo "$as_me:13752: checking for ncurses wrap-prefix" >&5
- echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
- 
- # Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
-@@ -14003,10 +13759,10 @@
- else
-   NCURSES_WRAP_PREFIX=_nc_
- fi;
--echo "$as_me:14006: result: $NCURSES_WRAP_PREFIX" >&5
-+echo "$as_me:13762: result: $NCURSES_WRAP_PREFIX" >&5
- echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
- 
--echo "$as_me:14009: checking for alternate character set array" >&5
-+echo "$as_me:13765: checking for alternate character set array" >&5
- echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
- if test "${cf_cv_curses_acs_map+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14016,7 +13772,7 @@
- for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 14019 "configure"
-+#line 13775 "configure"
- #include "confdefs.h"
- 
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -14032,16 +13788,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14035: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13791: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14038: \$? = $ac_status" >&5
-+  echo "$as_me:13794: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:14041: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13797: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14044: \$? = $ac_status" >&5
-+  echo "$as_me:13800: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_curses_acs_map=$name; break
- else
-@@ -14052,14 +13808,16 @@
- done
- 
- fi
--echo "$as_me:14055: result: $cf_cv_curses_acs_map" >&5
-+echo "$as_me:13811: result: $cf_cv_curses_acs_map" >&5
- echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
- 
- test "$cf_cv_curses_acs_map" != unknown && cat >>confdefs.h <<EOF
- #define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
- EOF
- 
--echo "$as_me:14062: checking for wide alternate character set array" >&5
-+if test "$cf_enable_widec" = yes; then
-+
-+echo "$as_me:13820: checking for wide alternate character set array" >&5
- echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
- if test "${cf_cv_curses_wacs_map+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14069,7 +13827,7 @@
- 	for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
- 	do
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 14072 "configure"
-+#line 13830 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14085,16 +13843,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14088: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13846: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14091: \$? = $ac_status" >&5
-+  echo "$as_me:13849: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:14094: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13852: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14097: \$? = $ac_status" >&5
-+  echo "$as_me:13855: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_curses_wacs_map=$name
- 	 break
-@@ -14105,14 +13863,14 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- 	done
- fi
--echo "$as_me:14108: result: $cf_cv_curses_wacs_map" >&5
-+echo "$as_me:13866: result: $cf_cv_curses_wacs_map" >&5
- echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
- 
- test "$cf_cv_curses_wacs_map" != unknown && cat >>confdefs.h <<EOF
- #define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
- EOF
- 
--echo "$as_me:14115: checking for wide alternate character constants" >&5
-+echo "$as_me:13873: checking for wide alternate character constants" >&5
- echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
- if test "${cf_cv_curses_wacs_symbols+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14122,7 +13880,7 @@
- if test "$cf_cv_curses_wacs_map" != unknown
- then
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 14125 "configure"
-+#line 13883 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14139,16 +13897,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14142: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13900: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14145: \$? = $ac_status" >&5
-+  echo "$as_me:13903: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:14148: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13906: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14151: \$? = $ac_status" >&5
-+  echo "$as_me:13909: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_curses_wacs_symbols=yes
- else
-@@ -14158,7 +13916,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- else
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 14161 "configure"
-+#line 13919 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14174,16 +13932,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14177: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13935: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14180: \$? = $ac_status" >&5
-+  echo "$as_me:13938: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:14183: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13941: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14186: \$? = $ac_status" >&5
-+  echo "$as_me:13944: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_curses_wacs_symbols=yes
- else
-@@ -14194,17 +13952,19 @@
- fi
- 
- fi
--echo "$as_me:14197: result: $cf_cv_curses_wacs_symbols" >&5
-+echo "$as_me:13955: result: $cf_cv_curses_wacs_symbols" >&5
- echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
- 
- test "$cf_cv_curses_wacs_symbols" != no && cat >>confdefs.h <<\EOF
- #define CURSES_WACS_SYMBOLS 1
- EOF
- 
--echo "$as_me:14204: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+fi
-+
-+echo "$as_me:13964: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14207 "configure"
-+#line 13967 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14222,16 +13982,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14225: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13985: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14228: \$? = $ac_status" >&5
-+  echo "$as_me:13988: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14231: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:13991: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14234: \$? = $ac_status" >&5
-+  echo "$as_me:13994: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14240,7 +14000,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14243: result: $cf_result" >&5
-+echo "$as_me:14003: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- if test $cf_result = yes ; then
- 
-@@ -14257,15 +14017,17 @@
- 
- fi
- 
-+if test "$cf_enable_widec" = yes; then
-+
- # This is needed on Tru64 5.0 to declare mbstate_t
--echo "$as_me:14261: checking if we must include wchar.h to declare mbstate_t" >&5
-+echo "$as_me:14023: checking if we must include wchar.h to declare mbstate_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
- if test "${cf_cv_mbstate_t+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 14268 "configure"
-+#line 14030 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14283,23 +14045,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14286: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14048: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14289: \$? = $ac_status" >&5
-+  echo "$as_me:14051: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14292: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14054: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14295: \$? = $ac_status" >&5
-+  echo "$as_me:14057: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_mbstate_t=no
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 14302 "configure"
-+#line 14064 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14318,16 +14080,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14321: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14083: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14324: \$? = $ac_status" >&5
-+  echo "$as_me:14086: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14327: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14089: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14330: \$? = $ac_status" >&5
-+  echo "$as_me:14092: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_mbstate_t=yes
- else
-@@ -14339,7 +14101,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:14342: result: $cf_cv_mbstate_t" >&5
-+echo "$as_me:14104: result: $cf_cv_mbstate_t" >&5
- echo "${ECHO_T}$cf_cv_mbstate_t" >&6
- 
- if test "$cf_cv_mbstate_t" = yes ; then
-@@ -14361,14 +14123,14 @@
- fi
- 
- # This is needed on Tru64 5.0 to declare wchar_t
--echo "$as_me:14364: checking if we must include wchar.h to declare wchar_t" >&5
-+echo "$as_me:14126: checking if we must include wchar.h to declare wchar_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
- if test "${cf_cv_wchar_t+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 14371 "configure"
-+#line 14133 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14386,23 +14148,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14389: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14151: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14392: \$? = $ac_status" >&5
-+  echo "$as_me:14154: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14395: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14157: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14398: \$? = $ac_status" >&5
-+  echo "$as_me:14160: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_wchar_t=no
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 14405 "configure"
-+#line 14167 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14421,16 +14183,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14424: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14186: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14427: \$? = $ac_status" >&5
-+  echo "$as_me:14189: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14430: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14192: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14433: \$? = $ac_status" >&5
-+  echo "$as_me:14195: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_wchar_t=yes
- else
-@@ -14442,7 +14204,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:14445: result: $cf_cv_wchar_t" >&5
-+echo "$as_me:14207: result: $cf_cv_wchar_t" >&5
- echo "${ECHO_T}$cf_cv_wchar_t" >&6
- 
- if test "$cf_cv_wchar_t" = yes ; then
-@@ -14464,14 +14226,14 @@
- fi
- 
- # This is needed on Tru64 5.0 to declare wint_t
--echo "$as_me:14467: checking if we must include wchar.h to declare wint_t" >&5
-+echo "$as_me:14229: checking if we must include wchar.h to declare wint_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
- if test "${cf_cv_wint_t+set}" = set; then
-   echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 14474 "configure"
-+#line 14236 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14489,23 +14251,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14492: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14254: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14495: \$? = $ac_status" >&5
-+  echo "$as_me:14257: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14498: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14260: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14501: \$? = $ac_status" >&5
-+  echo "$as_me:14263: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_wint_t=no
- else
-   echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 14508 "configure"
-+#line 14270 "configure"
- #include "confdefs.h"
- 
- #include <stdlib.h>
-@@ -14524,16 +14286,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14527: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14289: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14530: \$? = $ac_status" >&5
-+  echo "$as_me:14292: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14533: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14295: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14536: \$? = $ac_status" >&5
-+  echo "$as_me:14298: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_cv_wint_t=yes
- else
-@@ -14545,7 +14307,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:14548: result: $cf_cv_wint_t" >&5
-+echo "$as_me:14310: result: $cf_cv_wint_t" >&5
- echo "${ECHO_T}$cf_cv_wint_t" >&6
- 
- if test "$cf_cv_wint_t" = yes ; then
-@@ -14566,12 +14328,12 @@
- 	NCURSES_OK_WINT_T=1
- fi
- 
--if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-+	if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
- 
--echo "$as_me:14571: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo "$as_me:14333: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14574 "configure"
-+#line 14336 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14589,16 +14351,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14592: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14354: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14595: \$? = $ac_status" >&5
-+  echo "$as_me:14357: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14598: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14360: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14601: \$? = $ac_status" >&5
-+  echo "$as_me:14363: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14607,7 +14369,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14610: result: $cf_result" >&5
-+echo "$as_me:14372: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- if test $cf_result = yes ; then
- 
-@@ -14624,14 +14386,14 @@
- 
- fi
- 
--fi
-+	fi
- 
--if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-+	if test "$NCURSES_OK_WCHAR_T" = 0 ; then
- 
--echo "$as_me:14631: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo "$as_me:14393: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14634 "configure"
-+#line 14396 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14649,16 +14411,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14652: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14414: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14655: \$? = $ac_status" >&5
-+  echo "$as_me:14417: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14658: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14420: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14661: \$? = $ac_status" >&5
-+  echo "$as_me:14423: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14667,7 +14429,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14670: result: $cf_result" >&5
-+echo "$as_me:14432: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- if test $cf_result = yes ; then
- 
-@@ -14684,14 +14446,14 @@
- 
- fi
- 
--fi
-+	fi
- 
--if test "$NCURSES_OK_WINT_T" = 0 ; then
-+	if test "$NCURSES_OK_WINT_T" = 0 ; then
- 
--echo "$as_me:14691: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo "$as_me:14453: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14694 "configure"
-+#line 14456 "configure"
- #include "confdefs.h"
- 
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14709,16 +14471,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14712: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14474: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14715: \$? = $ac_status" >&5
-+  echo "$as_me:14477: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14718: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14480: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14721: \$? = $ac_status" >&5
-+  echo "$as_me:14483: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14727,7 +14489,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14730: result: $cf_result" >&5
-+echo "$as_me:14492: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- if test $cf_result = yes ; then
- 
-@@ -14744,13 +14506,14 @@
- 
- fi
- 
-+	fi
- fi
- 
--echo "$as_me:14749: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo "$as_me:14512: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 14753 "configure"
-+#line 14516 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -14778,16 +14541,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14781: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14544: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14784: \$? = $ac_status" >&5
-+  echo "$as_me:14547: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14787: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14550: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14790: \$? = $ac_status" >&5
-+  echo "$as_me:14553: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14796,7 +14559,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14799: result: $cf_result" >&5
-+echo "$as_me:14562: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 
- if test $cf_result = yes ; then
-@@ -14808,14 +14571,14 @@
- EOF
- 
- else
--	echo "$as_me:14811: checking for data boolnames in library" >&5
-+	echo "$as_me:14574: checking for data boolnames in library" >&5
- echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
- 	# BSD linkers insist on making weak linkage, but resolve at runtime.
- 	if test "$cross_compiling" = yes; then
- 
- 	# cross-compiling
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 14818 "configure"
-+#line 14581 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -14847,16 +14610,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14850: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14613: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14853: \$? = $ac_status" >&5
-+  echo "$as_me:14616: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:14856: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14619: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14859: \$? = $ac_status" >&5
-+  echo "$as_me:14622: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14868,7 +14631,7 @@
- 
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 14871 "configure"
-+#line 14634 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -14893,15 +14656,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:14896: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14659: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:14899: \$? = $ac_status" >&5
-+  echo "$as_me:14662: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:14901: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14664: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14904: \$? = $ac_status" >&5
-+  echo "$as_me:14667: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14912,7 +14675,7 @@
- fi
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--	echo "$as_me:14915: result: $cf_result" >&5
-+	echo "$as_me:14678: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 	if test $cf_result = yes ; then
- 
-@@ -14925,11 +14688,11 @@
- 	fi
- fi
- 
--echo "$as_me:14928: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo "$as_me:14691: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
- echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- 
- cat >conftest.$ac_ext <<_ACEOF
--#line 14932 "configure"
-+#line 14695 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -14957,16 +14720,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14960: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14723: \"$ac_compile\"") >&5
-   (eval $ac_compile) 2>&5
-   ac_status=$?
--  echo "$as_me:14963: \$? = $ac_status" >&5
-+  echo "$as_me:14726: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest.$ac_objext'
--  { (eval echo "$as_me:14966: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14729: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:14969: \$? = $ac_status" >&5
-+  echo "$as_me:14732: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -14975,7 +14738,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14978: result: $cf_result" >&5
-+echo "$as_me:14741: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 
- if test $cf_result = yes ; then
-@@ -14987,14 +14750,14 @@
- EOF
- 
- else
--	echo "$as_me:14990: checking for data boolfnames in library" >&5
-+	echo "$as_me:14753: checking for data boolfnames in library" >&5
- echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
- 	# BSD linkers insist on making weak linkage, but resolve at runtime.
- 	if test "$cross_compiling" = yes; then
- 
- 	# cross-compiling
- 	cat >conftest.$ac_ext <<_ACEOF
--#line 14997 "configure"
-+#line 14760 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -15026,16 +14789,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15029: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14792: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:15032: \$? = $ac_status" >&5
-+  echo "$as_me:14795: \$? = $ac_status" >&5
-   (exit $ac_status); } &&
-          { ac_try='test -s conftest$ac_exeext'
--  { (eval echo "$as_me:15035: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14798: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:15038: \$? = $ac_status" >&5
-+  echo "$as_me:14801: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -15047,7 +14810,7 @@
- 
- else
-   cat >conftest.$ac_ext <<_ACEOF
--#line 15050 "configure"
-+#line 14813 "configure"
- #include "confdefs.h"
- 
- #ifdef HAVE_XCURSES
-@@ -15072,15 +14835,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15075: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14838: \"$ac_link\"") >&5
-   (eval $ac_link) 2>&5
-   ac_status=$?
--  echo "$as_me:15078: \$? = $ac_status" >&5
-+  echo "$as_me:14841: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
--  { (eval echo "$as_me:15080: \"$ac_try\"") >&5
-+  { (eval echo "$as_me:14843: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:15083: \$? = $ac_status" >&5
-+  echo "$as_me:14846: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   cf_result=yes
- else
-@@ -15091,7 +14854,7 @@
- fi
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--	echo "$as_me:15094: result: $cf_result" >&5
-+	echo "$as_me:14857: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- 	if test $cf_result = yes ; then
- 
-@@ -15188,7 +14951,7 @@
- : ${CONFIG_STATUS=./config.status}
- ac_clean_files_save=$ac_clean_files
- ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:15191: creating $CONFIG_STATUS" >&5
-+{ echo "$as_me:14954: creating $CONFIG_STATUS" >&5
- echo "$as_me: creating $CONFIG_STATUS" >&6;}
- cat >$CONFIG_STATUS <<_ACEOF
- #! $SHELL
-@@ -15364,7 +15127,7 @@
-     echo "$ac_cs_version"; exit 0 ;;
-   --he | --h)
-     # Conflict between --help and --header
--    { { echo "$as_me:15367: error: ambiguous option: $1
-+    { { echo "$as_me:15130: error: ambiguous option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: ambiguous option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -15383,7 +15146,7 @@
-     ac_need_defaults=false;;
- 
-   # This is an error.
--  -*) { { echo "$as_me:15386: error: unrecognized option: $1
-+  -*) { { echo "$as_me:15149: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -15431,7 +15194,7 @@
-   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-   "ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;;
--  *) { { echo "$as_me:15434: error: invalid argument: $ac_config_target" >&5
-+  *) { { echo "$as_me:15197: error: invalid argument: $ac_config_target" >&5
- echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-    { (exit 1); exit 1; }; };;
-   esac
-@@ -15694,7 +15457,7 @@
-   esac
- 
-   if test x"$ac_file" != x-; then
--    { echo "$as_me:15697: creating $ac_file" >&5
-+    { echo "$as_me:15460: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
-     rm -f "$ac_file"
-   fi
-@@ -15712,7 +15475,7 @@
-       -) echo $tmp/stdin ;;
-       [\\/$]*)
-          # Absolute (can't be DOS-style, as IFS=:)
--         test -f "$f" || { { echo "$as_me:15715: error: cannot find input file: $f" >&5
-+         test -f "$f" || { { echo "$as_me:15478: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
-    { (exit 1); exit 1; }; }
-          echo $f;;
-@@ -15725,7 +15488,7 @@
-            echo $srcdir/$f
-          else
-            # /dev/null tree
--           { { echo "$as_me:15728: error: cannot find input file: $f" >&5
-+           { { echo "$as_me:15491: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
-    { (exit 1); exit 1; }; }
-          fi;;
-@@ -15791,7 +15554,7 @@
-   * )   ac_file_in=$ac_file.in ;;
-   esac
- 
--  test x"$ac_file" != x- && { echo "$as_me:15794: creating $ac_file" >&5
-+  test x"$ac_file" != x- && { echo "$as_me:15557: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
- 
-   # First look for the input files in the build tree, otherwise in the
-@@ -15802,7 +15565,7 @@
-       -) echo $tmp/stdin ;;
-       [\\/$]*)
-          # Absolute (can't be DOS-style, as IFS=:)
--         test -f "$f" || { { echo "$as_me:15805: error: cannot find input file: $f" >&5
-+         test -f "$f" || { { echo "$as_me:15568: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
-    { (exit 1); exit 1; }; }
-          echo $f;;
-@@ -15815,7 +15578,7 @@
-            echo $srcdir/$f
-          else
-            # /dev/null tree
--           { { echo "$as_me:15818: error: cannot find input file: $f" >&5
-+           { { echo "$as_me:15581: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
-    { (exit 1); exit 1; }; }
-          fi;;
-@@ -15873,7 +15636,7 @@
-   rm -f $tmp/in
-   if test x"$ac_file" != x-; then
-     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
--      { echo "$as_me:15876: $ac_file is unchanged" >&5
-+      { echo "$as_me:15639: $ac_file is unchanged" >&5
- echo "$as_me: $ac_file is unchanged" >&6;}
-     else
-       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-diff -Naur ncurses-5.9.orig/test/configure.in ncurses-5.9/test/configure.in
---- ncurses-5.9.orig/test/configure.in	2011-03-22 05:15:08.000000000 -0400
-+++ ncurses-5.9/test/configure.in	2011-04-16 13:56:50.779211046 -0400
-@@ -28,7 +28,7 @@
- dnl
- dnl Author: Thomas E. Dickey 1996, etc.
- dnl
--dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $
-+dnl $Id: configure.in,v 1.93 2011/04/09 20:11:47 tom Exp $
- dnl This is a simple configuration-script for the ncurses test programs that
- dnl allows the test-directory to be separately configured against a reference
- dnl system (i.e., sysvr4 curses)
-@@ -101,16 +101,21 @@
- CF_ENABLE_WARNINGS
- 
- CF_DISABLE_LEAKS
--CF_WITH_CURSES_DIR
- 
--dnl SunOS 4.x
--AC_ARG_WITH(5lib,
--	[  --with-5lib             use SunOS sysv-libraries],
--	[LIBS="-L/usr/5lib $LIBS"
--	 CPPFLAGS="$CPPFLAGS -I/usr/5include"])
-+dnl ---------------------------------------------------------------------------
-+AC_MSG_CHECKING(if you want to check for wide-character functions)
-+CF_ARG_DISABLE(widec,
-+	[--disable-widec           disable checks for wide-character functions],
-+	cf_enable_widec=no,
-+	cf_enable_widec=yes,
-+	yes)
-+AC_MSG_RESULT($cf_enable_widec)
-+
-+CF_WITH_CURSES_DIR
- 
- dnl ---------------------------------------------------------------------------
- dnl NcursesW, installed in conventional location
-+AC_MSG_CHECKING(for specified curses library type)
- AC_ARG_WITH(ncursesw,
- 	[  --with-ncursesw         use wide ncurses-libraries (installed)],
- 	[cf_cv_screen=ncursesw],[
-@@ -122,10 +127,20 @@
- 
- AC_ARG_WITH(pdcurses,
- 	[  --with-pdcurses         compile/link with pdcurses X11 library],
--	[cf_cv_screen=pdcurses])])])
-+	[cf_cv_screen=pdcurses],[
-+
-+AC_ARG_WITH(curses-colr,
-+	[  --with-curses-colr      compile/link with HPUX 10.x color-curses],
-+	[cf_cv_screen=curses_colr],[
-+
-+AC_ARG_WITH(curses-5lib,
-+	[  --with-curses-5lib      compile/link with SunOS 5lib curses],
-+	[cf_cv_screen=curses_5lib])])])])])
-+
-+AC_MSG_RESULT($cf_cv_screen)
- 
- case $cf_cv_screen in
--curses)
-+curses|curses_*)
- 	CF_CURSES_CONFIG
- 	CF_NETBSD_FORM_H
- 	CF_NETBSD_MENU_H
-@@ -187,16 +202,21 @@
- 
- AC_CHECK_FUNCS( \
- gettimeofday \
-+strdup \
-+)
-+
-+if test "$cf_enable_widec" = yes; then
-+AC_CHECK_FUNCS( \
- mblen \
- mbrlen \
- mbrtowc \
- mbsrtowcs \
- mbstowcs \
- mbtowc \
--strdup \
- wcsrtombs \
- wcstombs \
- )
-+fi
- 
- CF_CURSES_FUNCS( \
- chgat \
-@@ -235,46 +255,55 @@
- 
- CF_NCURSES_EXT_FUNCS
- 
--AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
--AC_TRY_LINK([
-+if test "$cf_enable_widec" = yes
-+then
-+	AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
-+	AC_TRY_LINK([
- #include <${cf_cv_ncurses_header:-curses.h}>],
--[
--	static wchar_t src_wchar[2];
--	static cchar_t dst_cchar;
--	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
--	],
--	[cf_cv_widechar_funcs=yes],
--	[cf_cv_widechar_funcs=no])
--])
--if test "$cf_cv_widechar_funcs" != no ; then
--	AC_DEFINE(USE_WIDEC_SUPPORT,1)
-+	[
-+		static wchar_t src_wchar[2];
-+		static cchar_t dst_cchar;
-+		setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-+		],
-+		[cf_cv_widechar_funcs=yes],
-+		[cf_cv_widechar_funcs=no])
-+	])
-+	if test "$cf_cv_widechar_funcs" != no ; then
-+		AC_DEFINE(USE_WIDEC_SUPPORT,1)
-+	else
-+		AC_DEFINE(USE_WIDEC_SUPPORT,0)
-+	fi
- else
- 	AC_DEFINE(USE_WIDEC_SUPPORT,0)
- fi
- 
--AC_FUNC_VFORK
- CF_SYS_TIME_SELECT
- CF_FUNC_CURSES_VERSION
- CF_CURSES_ACS_MAP
--CF_CURSES_WACS_MAP
--CF_CURSES_WACS_SYMBOLS
- 
--CF_CURSES_CHECK_TYPE(attr_t,long)
--
--CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
--CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
--CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
--
--if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
--	CF_CURSES_CHECK_TYPE(mbstate_t,long)
-+if test "$cf_enable_widec" = yes; then
-+	CF_CURSES_WACS_MAP
-+	CF_CURSES_WACS_SYMBOLS
- fi
- 
--if test "$NCURSES_OK_WCHAR_T" = 0 ; then
--	CF_CURSES_CHECK_TYPE(wchar_t,long)
--fi
-+CF_CURSES_CHECK_TYPE(attr_t,long)
- 
--if test "$NCURSES_OK_WINT_T" = 0 ; then
--	CF_CURSES_CHECK_TYPE(wint_t,long)
-+if test "$cf_enable_widec" = yes; then
-+	CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
-+	CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
-+	CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
-+
-+	if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-+		CF_CURSES_CHECK_TYPE(mbstate_t,long)
-+	fi
-+
-+	if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-+		CF_CURSES_CHECK_TYPE(wchar_t,long)
-+	fi
-+
-+	if test "$NCURSES_OK_WINT_T" = 0 ; then
-+		CF_CURSES_CHECK_TYPE(wint_t,long)
-+	fi
- fi
- 
- CF_CURSES_CHECK_DATA(boolnames)
-diff -Naur ncurses-5.9.orig/test/test.priv.h ncurses-5.9/test/test.priv.h
---- ncurses-5.9.orig/test/test.priv.h	2011-03-22 05:15:45.000000000 -0400
-+++ ncurses-5.9/test/test.priv.h	2011-04-16 13:56:50.779211046 -0400
-@@ -29,7 +29,7 @@
- /****************************************************************************
-  *  Author: Thomas E. Dickey                    1996-on                     *
-  ****************************************************************************/
--/* $Id: test.priv.h,v 1.103 2011/03/22 09:15:45 tom Exp $ */
-+/* $Id: test.priv.h,v 1.105 2011/04/09 20:41:51 tom Exp $ */
- 
- #ifndef __TEST_PRIV_H
- #define __TEST_PRIV_H 1
-@@ -222,6 +222,13 @@
- #define NO_LEAKS 0
- #endif
- 
-+/*
-+ * Workaround for HPUX
-+ */
-+#if defined(__hpux) && !defined(NCURSES_VERSION)
-+#define _ACS_COMPAT_CODE	/* needed for acs_map vs __acs_map */
-+#endif
-+
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
-@@ -269,17 +276,14 @@
- 
- /*
-  * Not all curses.h implementations include unctrl.h,
-- * Solaris 10 xpg4 for example.
-  */
--#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
--#if defined(HAVE_NCURSESW_NCURSES_H)
-+#if defined(HAVE_NCURSESW_UNCTRL_H)
- #include <ncursesw/unctrl.h>
--#elif defined(HAVE_NCURSES_NCURSES_H)
-+#elif defined(HAVE_NCURSES_UNCTRL_H)
- #include <ncurses/unctrl.h>
--#else
-+#elif defined(HAVE_UNCTRL_H)
- #include <unctrl.h>
- #endif
--#endif
- 
- #if HAVE_GETOPT_H
- #include <getopt.h>
Index: patches/ncurses-5.9-branch_update-2.patch
===================================================================
--- patches/ncurses-5.9-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
+++ patches/ncurses-5.9-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
@@ -0,0 +1,24508 @@
+Submitted By: Jonathan Norman (jonathan at bluesquarelinux.co.uk)
+Date: 2011-05-17
+Initial Package Version: 5.9
+Origin: Upstream
+Upstream Status: Applied
+Description: This is a branch update for NCurses-5.9, and should be
+             rechecked periodically. This patch covers up to 5.9-20110514.
+
+diff -Naur ncurses-5.9.orig/Ada95/aclocal.m4 ncurses-5.9/Ada95/aclocal.m4
+--- ncurses-5.9.orig/Ada95/aclocal.m4	2011-03-31 23:32:36.000000000 +0000
++++ ncurses-5.9/Ada95/aclocal.m4	2011-05-17 16:13:21.517698838 +0000
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+-dnl $Id: aclocal.m4,v 1.24 2011/03/31 23:32:36 tom Exp $
++dnl $Id: aclocal.m4,v 1.27 2011/05/14 20:55:38 tom Exp $
+ dnl Macros used in NCURSES Ada95 auto-configuration script.
+ dnl
+ dnl These macros are maintained separately from NCURSES.  The copyright on
+@@ -39,6 +39,31 @@
+ dnl
+ dnl ---------------------------------------------------------------------------
+ dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_CHECK version: 2 updated: 2011/05/08 11:22:03
++dnl ------------------
++dnl Conditionally generate script according to whether we're using a given autoconf.
++dnl
++dnl $1 = version to compare against
++dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
++dnl $3 = code to use if AC_ACVERSION is older than $1.
++define(CF_ACVERSION_CHECK,
++[
++ifdef([m4_version_compare],
++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
++[CF_ACVERSION_COMPARE(
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_COMPARE version: 2 updated: 2011/04/14 20:56:50
++dnl --------------------
++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
++dnl                      MAJOR2, MINOR2, TERNARY2,
++dnl                      PRINTABLE2, not FOUND, FOUND)
++define(CF_ACVERSION_COMPARE,
++[ifelse(builtin([eval], [$2 < $5]), 1,
++[ifelse([$8], , ,[$8])],
++[ifelse([$9], , ,[$9])])])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
+ dnl -------------------
+ dnl Construct the list of include-options for the C programs in the Ada95
+@@ -593,7 +618,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
+ dnl ----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -603,10 +628,10 @@
+ AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
+ cf_cv_ncurses_header=none
+ for cf_header in ifelse($1,,,[ \
+-    $1/curses.h \
+-	$1/ncurses.h]) \
+-	curses.h \
+-	ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
++    $1/ncurses.h \
++	$1/curses.h]) \
++	ncurses.h \
++	curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
+ do
+ AC_TRY_COMPILE([#include <${cf_header}>],
+ 	[initscr(); tgoto("?", 0,0)],
+@@ -1070,53 +1095,6 @@
+ AC_SUBST(cf_generic_objects)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
+-dnl --------------
+-dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
+-dnl is noted that gnat may compile a tasking unit even for configurations which
+-dnl fail at runtime.
+-AC_DEFUN([CF_GNAT_SIGINT],[
+-AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
+-CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
+-
+-package ConfTest is
+-
+-   pragma Warnings (Off);  --  the next pragma exists since 3.11p
+-   pragma Unreserve_All_Interrupts;
+-   pragma Warnings (On);
+-
+-   protected Process is
+-      procedure Stop;
+-      function Continue return Boolean;
+-      pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
+-   private
+-      Done : Boolean := False;
+-   end Process;
+-
+-end ConfTest;],
+-[package body ConfTest is
+-   protected body Process is
+-      procedure Stop is
+-      begin
+-         Done := True;
+-      end Stop;
+-      function Continue return Boolean is
+-      begin
+-         return not Done;
+-      end Continue;
+-   end Process;
+-end ConfTest;],
+-	[cf_cv_gnat_sigint=yes],
+-	[cf_cv_gnat_sigint=no])])
+-
+-if test $cf_cv_gnat_sigint = yes ; then
+-	USE_GNAT_SIGINT=""
+-else
+-	USE_GNAT_SIGINT="#"
+-fi
+-AC_SUBST(USE_GNAT_SIGINT)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
+ dnl --------------------
+ dnl Check if the gnat pragma "Unreferenced" works.
+@@ -1253,6 +1231,53 @@
+ AC_SUBST(USE_GNAT_LIBRARIES)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
++dnl --------------
++dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
++dnl is noted that gnat may compile a tasking unit even for configurations which
++dnl fail at runtime.
++AC_DEFUN([CF_GNAT_SIGINT],[
++AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
++CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
++
++package ConfTest is
++
++   pragma Warnings (Off);  --  the next pragma exists since 3.11p
++   pragma Unreserve_All_Interrupts;
++   pragma Warnings (On);
++
++   protected Process is
++      procedure Stop;
++      function Continue return Boolean;
++      pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
++   private
++      Done : Boolean := False;
++   end Process;
++
++end ConfTest;],
++[package body ConfTest is
++   protected body Process is
++      procedure Stop is
++      begin
++         Done := True;
++      end Stop;
++      function Continue return Boolean is
++      begin
++         return not Done;
++      end Continue;
++   end Process;
++end ConfTest;],
++	[cf_cv_gnat_sigint=yes],
++	[cf_cv_gnat_sigint=no])])
++
++if test $cf_cv_gnat_sigint = yes ; then
++	USE_GNAT_SIGINT=""
++else
++	USE_GNAT_SIGINT="#"
++fi
++AC_SUBST(USE_GNAT_SIGINT)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
+ dnl ----------------
+ dnl Verify that a test program compiles/links with GNAT.
+@@ -2546,7 +2571,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -2563,7 +2588,9 @@
+ 	PKG_CONFIG=none
+ 	;;
+ yes) #(vi
+-	AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
++	CF_ACVERSION_CHECK(2.52,
++		[AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
++		[AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
+ 	;;
+ *)
+ 	PKG_CONFIG=$withval
+diff -Naur ncurses-5.9.orig/Ada95/configure ncurses-5.9/Ada95/configure
+--- ncurses-5.9.orig/Ada95/configure	2011-03-31 23:34:47.000000000 +0000
++++ ncurses-5.9/Ada95/configure	2011-05-17 16:13:21.525697950 +0000
+@@ -2709,10 +2709,11 @@
+ 	PKG_CONFIG=none
+ 	;;
+ yes) #(vi
+-	if test -n "$ac_tool_prefix"; then
++
++if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+-echo "$as_me:2715: checking for $ac_word" >&5
++echo "$as_me:2716: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2729,7 +2730,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:2732: found $ac_dir/$ac_word" >&5
++   echo "$as_me:2733: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -2740,10 +2741,10 @@
+ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+ 
+ if test -n "$PKG_CONFIG"; then
+-  echo "$as_me:2743: result: $PKG_CONFIG" >&5
++  echo "$as_me:2744: result: $PKG_CONFIG" >&5
+ echo "${ECHO_T}$PKG_CONFIG" >&6
+ else
+-  echo "$as_me:2746: result: no" >&5
++  echo "$as_me:2747: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2752,7 +2753,7 @@
+   ac_pt_PKG_CONFIG=$PKG_CONFIG
+   # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+-echo "$as_me:2755: checking for $ac_word" >&5
++echo "$as_me:2756: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2769,7 +2770,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:2772: found $ac_dir/$ac_word" >&5
++   echo "$as_me:2773: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -2781,10 +2782,10 @@
+ ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+ 
+ if test -n "$ac_pt_PKG_CONFIG"; then
+-  echo "$as_me:2784: result: $ac_pt_PKG_CONFIG" >&5
++  echo "$as_me:2785: result: $ac_pt_PKG_CONFIG" >&5
+ echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+ else
+-  echo "$as_me:2787: result: no" >&5
++  echo "$as_me:2788: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2827,7 +2828,7 @@
+   PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:2830: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
++  { { echo "$as_me:2831: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -2836,7 +2837,7 @@
+ fi
+ 
+ if test "$PKG_CONFIG" != none ; then
+-	echo "$as_me:2839: checking if we should install .pc files for $PKG_CONFIG" >&5
++	echo "$as_me:2840: checking if we should install .pc files for $PKG_CONFIG" >&5
+ echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
+ 
+ 	# Leave this as something that can be overridden in the environment.
+@@ -2853,18 +2854,18 @@
+ else
+   enable_pc_files=no
+ fi;
+-		echo "$as_me:2856: result: $enable_pc_files" >&5
++		echo "$as_me:2857: result: $enable_pc_files" >&5
+ echo "${ECHO_T}$enable_pc_files" >&6
+ 	else
+-		echo "$as_me:2859: result: no" >&5
++		echo "$as_me:2860: result: no" >&5
+ echo "${ECHO_T}no" >&6
+-		{ echo "$as_me:2861: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
++		{ echo "$as_me:2862: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
+ echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
+ 		enable_pc_files=no
+ 	fi
+ fi
+ 
+-echo "$as_me:2867: checking if you want to build test-programs" >&5
++echo "$as_me:2868: checking if you want to build test-programs" >&5
+ echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
+ 
+ # Check whether --with-tests or --without-tests was given.
+@@ -2874,10 +2875,10 @@
+ else
+   cf_with_tests=yes
+ fi;
+-echo "$as_me:2877: result: $cf_with_tests" >&5
++echo "$as_me:2878: result: $cf_with_tests" >&5
+ echo "${ECHO_T}$cf_with_tests" >&6
+ 
+-echo "$as_me:2880: checking if we should assume mixed-case filenames" >&5
++echo "$as_me:2881: checking if we should assume mixed-case filenames" >&5
+ echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
+ 
+ # Check whether --enable-mixed-case or --disable-mixed-case was given.
+@@ -2887,11 +2888,11 @@
+ else
+   enable_mixedcase=auto
+ fi;
+-echo "$as_me:2890: result: $enable_mixedcase" >&5
++echo "$as_me:2891: result: $enable_mixedcase" >&5
+ echo "${ECHO_T}$enable_mixedcase" >&6
+ if test "$enable_mixedcase" = "auto" ; then
+ 
+-echo "$as_me:2894: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:2895: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2918,7 +2919,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:2921: result: $cf_cv_mixedcase" >&5
++echo "$as_me:2922: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+ test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+@@ -2935,7 +2936,7 @@
+ fi
+ 
+ # do this after mixed-case option (tags/TAGS is not as important as tic).
+-echo "$as_me:2938: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:2939: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -2955,11 +2956,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$as_me:2958: result: yes" >&5
++  echo "$as_me:2959: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+   SET_MAKE=
+ else
+-  echo "$as_me:2962: result: no" >&5
++  echo "$as_me:2963: result: no" >&5
+ echo "${ECHO_T}no" >&6
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -2968,7 +2969,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2971: checking for $ac_word" >&5
++echo "$as_me:2972: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CTAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2983,7 +2984,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CTAGS="$ac_prog"
+-echo "$as_me:2986: found $ac_dir/$ac_word" >&5
++echo "$as_me:2987: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2991,10 +2992,10 @@
+ fi
+ CTAGS=$ac_cv_prog_CTAGS
+ if test -n "$CTAGS"; then
+-  echo "$as_me:2994: result: $CTAGS" >&5
++  echo "$as_me:2995: result: $CTAGS" >&5
+ echo "${ECHO_T}$CTAGS" >&6
+ else
+-  echo "$as_me:2997: result: no" >&5
++  echo "$as_me:2998: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3005,7 +3006,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3008: checking for $ac_word" >&5
++echo "$as_me:3009: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ETAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3020,7 +3021,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ETAGS="$ac_prog"
+-echo "$as_me:3023: found $ac_dir/$ac_word" >&5
++echo "$as_me:3024: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3028,10 +3029,10 @@
+ fi
+ ETAGS=$ac_cv_prog_ETAGS
+ if test -n "$ETAGS"; then
+-  echo "$as_me:3031: result: $ETAGS" >&5
++  echo "$as_me:3032: result: $ETAGS" >&5
+ echo "${ECHO_T}$ETAGS" >&6
+ else
+-  echo "$as_me:3034: result: no" >&5
++  echo "$as_me:3035: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3040,7 +3041,7 @@
+ 
+ # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
+ set dummy ${CTAGS:-ctags}; ac_word=$2
+-echo "$as_me:3043: checking for $ac_word" >&5
++echo "$as_me:3044: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3055,7 +3056,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:3058: found $ac_dir/$ac_word" >&5
++echo "$as_me:3059: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3064,17 +3065,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+-  echo "$as_me:3067: result: $MAKE_LOWER_TAGS" >&5
++  echo "$as_me:3068: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+-  echo "$as_me:3070: result: no" >&5
++  echo "$as_me:3071: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+ if test "$cf_cv_mixedcase" = yes ; then
+ 	# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
+ set dummy ${ETAGS:-etags}; ac_word=$2
+-echo "$as_me:3077: checking for $ac_word" >&5
++echo "$as_me:3078: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3089,7 +3090,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:3092: found $ac_dir/$ac_word" >&5
++echo "$as_me:3093: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3098,10 +3099,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+-  echo "$as_me:3101: result: $MAKE_UPPER_TAGS" >&5
++  echo "$as_me:3102: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+-  echo "$as_me:3104: result: no" >&5
++  echo "$as_me:3105: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3121,7 +3122,7 @@
+ 	MAKE_LOWER_TAGS="#"
+ fi
+ 
+-echo "$as_me:3124: checking for makeflags variable" >&5
++echo "$as_me:3125: checking for makeflags variable" >&5
+ echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
+ if test "${cf_cv_makeflags+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3155,13 +3156,13 @@
+ 	rm -f cf_makeflags.tmp
+ 
+ fi
+-echo "$as_me:3158: result: $cf_cv_makeflags" >&5
++echo "$as_me:3159: result: $cf_cv_makeflags" >&5
+ echo "${ECHO_T}$cf_cv_makeflags" >&6
+ 
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:3164: checking for $ac_word" >&5
++echo "$as_me:3165: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3176,7 +3177,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-echo "$as_me:3179: found $ac_dir/$ac_word" >&5
++echo "$as_me:3180: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3184,10 +3185,10 @@
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+-  echo "$as_me:3187: result: $RANLIB" >&5
++  echo "$as_me:3188: result: $RANLIB" >&5
+ echo "${ECHO_T}$RANLIB" >&6
+ else
+-  echo "$as_me:3190: result: no" >&5
++  echo "$as_me:3191: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3196,7 +3197,7 @@
+   ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-echo "$as_me:3199: checking for $ac_word" >&5
++echo "$as_me:3200: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3211,7 +3212,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+-echo "$as_me:3214: found $ac_dir/$ac_word" >&5
++echo "$as_me:3215: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3220,10 +3221,10 @@
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+-  echo "$as_me:3223: result: $ac_ct_RANLIB" >&5
++  echo "$as_me:3224: result: $ac_ct_RANLIB" >&5
+ echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+-  echo "$as_me:3226: result: no" >&5
++  echo "$as_me:3227: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3235,7 +3236,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ld; ac_word=$2
+-echo "$as_me:3238: checking for $ac_word" >&5
++echo "$as_me:3239: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LD+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3250,7 +3251,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LD="${ac_tool_prefix}ld"
+-echo "$as_me:3253: found $ac_dir/$ac_word" >&5
++echo "$as_me:3254: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3258,10 +3259,10 @@
+ fi
+ LD=$ac_cv_prog_LD
+ if test -n "$LD"; then
+-  echo "$as_me:3261: result: $LD" >&5
++  echo "$as_me:3262: result: $LD" >&5
+ echo "${ECHO_T}$LD" >&6
+ else
+-  echo "$as_me:3264: result: no" >&5
++  echo "$as_me:3265: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3270,7 +3271,7 @@
+   ac_ct_LD=$LD
+   # Extract the first word of "ld", so it can be a program name with args.
+ set dummy ld; ac_word=$2
+-echo "$as_me:3273: checking for $ac_word" >&5
++echo "$as_me:3274: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3285,7 +3286,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_LD="ld"
+-echo "$as_me:3288: found $ac_dir/$ac_word" >&5
++echo "$as_me:3289: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3294,10 +3295,10 @@
+ fi
+ ac_ct_LD=$ac_cv_prog_ac_ct_LD
+ if test -n "$ac_ct_LD"; then
+-  echo "$as_me:3297: result: $ac_ct_LD" >&5
++  echo "$as_me:3298: result: $ac_ct_LD" >&5
+ echo "${ECHO_T}$ac_ct_LD" >&6
+ else
+-  echo "$as_me:3300: result: no" >&5
++  echo "$as_me:3301: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3309,7 +3310,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:3312: checking for $ac_word" >&5
++echo "$as_me:3313: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3324,7 +3325,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:3327: found $ac_dir/$ac_word" >&5
++echo "$as_me:3328: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3332,10 +3333,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+-  echo "$as_me:3335: result: $AR" >&5
++  echo "$as_me:3336: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+-  echo "$as_me:3338: result: no" >&5
++  echo "$as_me:3339: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3344,7 +3345,7 @@
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:3347: checking for $ac_word" >&5
++echo "$as_me:3348: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3359,7 +3360,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:3362: found $ac_dir/$ac_word" >&5
++echo "$as_me:3363: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3368,10 +3369,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+-  echo "$as_me:3371: result: $ac_ct_AR" >&5
++  echo "$as_me:3372: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+-  echo "$as_me:3374: result: no" >&5
++  echo "$as_me:3375: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3383,7 +3384,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:3386: checking for $ac_word" >&5
++echo "$as_me:3387: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3398,7 +3399,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:3401: found $ac_dir/$ac_word" >&5
++echo "$as_me:3402: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3406,10 +3407,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+-  echo "$as_me:3409: result: $AR" >&5
++  echo "$as_me:3410: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+-  echo "$as_me:3412: result: no" >&5
++  echo "$as_me:3413: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3418,7 +3419,7 @@
+   ac_ct_AR=$AR
+   # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:3421: checking for $ac_word" >&5
++echo "$as_me:3422: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3433,7 +3434,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:3436: found $ac_dir/$ac_word" >&5
++echo "$as_me:3437: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3442,10 +3443,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+-  echo "$as_me:3445: result: $ac_ct_AR" >&5
++  echo "$as_me:3446: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+-  echo "$as_me:3448: result: no" >&5
++  echo "$as_me:3449: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3454,7 +3455,7 @@
+   AR="$ac_cv_prog_AR"
+ fi
+ 
+-echo "$as_me:3457: checking for options to update archives" >&5
++echo "$as_me:3458: checking for options to update archives" >&5
+ echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
+ if test "${cf_cv_ar_flags+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3477,13 +3478,13 @@
+ 		rm -f conftest.a
+ 
+ 		cat >conftest.$ac_ext <<EOF
+-#line 3480 "configure"
++#line 3481 "configure"
+ int	testdata[3] = { 123, 456, 789 };
+ EOF
+-		if { (eval echo "$as_me:3483: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:3484: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3486: \$? = $ac_status" >&5
++  echo "$as_me:3487: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 			echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
+ 			$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
+@@ -3494,7 +3495,7 @@
+ 		else
+ 			test -n "$verbose" && echo "	cannot compile test-program" 1>&6
+ 
+-echo "${as_me:-configure}:3497: testing cannot compile test-program ..." 1>&5
++echo "${as_me:-configure}:3498: testing cannot compile test-program ..." 1>&5
+ 
+ 			break
+ 		fi
+@@ -3502,7 +3503,7 @@
+ 	rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+ 
+ fi
+-echo "$as_me:3505: result: $cf_cv_ar_flags" >&5
++echo "$as_me:3506: result: $cf_cv_ar_flags" >&5
+ echo "${ECHO_T}$cf_cv_ar_flags" >&6
+ 
+ if test -n "$ARFLAGS" ; then
+@@ -3513,7 +3514,7 @@
+ 	ARFLAGS=$cf_cv_ar_flags
+ fi
+ 
+-echo "$as_me:3516: checking if you have specified an install-prefix" >&5
++echo "$as_me:3517: checking if you have specified an install-prefix" >&5
+ echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
+ 
+ # Check whether --with-install-prefix or --without-install-prefix was given.
+@@ -3526,7 +3527,7 @@
+ 		;;
+ 	esac
+ fi;
+-echo "$as_me:3529: result: $DESTDIR" >&5
++echo "$as_me:3530: result: $DESTDIR" >&5
+ echo "${ECHO_T}$DESTDIR" >&6
+ 
+ ###############################################################################
+@@ -3554,7 +3555,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3557: checking for $ac_word" >&5
++echo "$as_me:3558: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_BUILD_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3569,7 +3570,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_BUILD_CC="$ac_prog"
+-echo "$as_me:3572: found $ac_dir/$ac_word" >&5
++echo "$as_me:3573: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -3577,10 +3578,10 @@
+ fi
+ BUILD_CC=$ac_cv_prog_BUILD_CC
+ if test -n "$BUILD_CC"; then
+-  echo "$as_me:3580: result: $BUILD_CC" >&5
++  echo "$as_me:3581: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ else
+-  echo "$as_me:3583: result: no" >&5
++  echo "$as_me:3584: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -3588,12 +3589,12 @@
+ done
+ 
+ fi;
+-	echo "$as_me:3591: checking for native build C compiler" >&5
++	echo "$as_me:3592: checking for native build C compiler" >&5
+ echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+-	echo "$as_me:3593: result: $BUILD_CC" >&5
++	echo "$as_me:3594: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ 
+-	echo "$as_me:3596: checking for native build C preprocessor" >&5
++	echo "$as_me:3597: checking for native build C preprocessor" >&5
+ echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cpp or --without-build-cpp was given.
+@@ -3603,10 +3604,10 @@
+ else
+   BUILD_CPP='${BUILD_CC} -E'
+ fi;
+-	echo "$as_me:3606: result: $BUILD_CPP" >&5
++	echo "$as_me:3607: result: $BUILD_CPP" >&5
+ echo "${ECHO_T}$BUILD_CPP" >&6
+ 
+-	echo "$as_me:3609: checking for native build C flags" >&5
++	echo "$as_me:3610: checking for native build C flags" >&5
+ echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cflags or --without-build-cflags was given.
+@@ -3614,10 +3615,10 @@
+   withval="$with_build_cflags"
+   BUILD_CFLAGS="$withval"
+ fi;
+-	echo "$as_me:3617: result: $BUILD_CFLAGS" >&5
++	echo "$as_me:3618: result: $BUILD_CFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CFLAGS" >&6
+ 
+-	echo "$as_me:3620: checking for native build C preprocessor-flags" >&5
++	echo "$as_me:3621: checking for native build C preprocessor-flags" >&5
+ echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-cppflags or --without-build-cppflags was given.
+@@ -3625,10 +3626,10 @@
+   withval="$with_build_cppflags"
+   BUILD_CPPFLAGS="$withval"
+ fi;
+-	echo "$as_me:3628: result: $BUILD_CPPFLAGS" >&5
++	echo "$as_me:3629: result: $BUILD_CPPFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+ 
+-	echo "$as_me:3631: checking for native build linker-flags" >&5
++	echo "$as_me:3632: checking for native build linker-flags" >&5
+ echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
+ 
+ # Check whether --with-build-ldflags or --without-build-ldflags was given.
+@@ -3636,10 +3637,10 @@
+   withval="$with_build_ldflags"
+   BUILD_LDFLAGS="$withval"
+ fi;
+-	echo "$as_me:3639: result: $BUILD_LDFLAGS" >&5
++	echo "$as_me:3640: result: $BUILD_LDFLAGS" >&5
+ echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+ 
+-	echo "$as_me:3642: checking for native build linker-libraries" >&5
++	echo "$as_me:3643: checking for native build linker-libraries" >&5
+ echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
+ 
+ # Check whether --with-build-libs or --without-build-libs was given.
+@@ -3647,7 +3648,7 @@
+   withval="$with_build_libs"
+   BUILD_LIBS="$withval"
+ fi;
+-	echo "$as_me:3650: result: $BUILD_LIBS" >&5
++	echo "$as_me:3651: result: $BUILD_LIBS" >&5
+ echo "${ECHO_T}$BUILD_LIBS" >&6
+ 
+ 	# this assumes we're on Unix.
+@@ -3657,7 +3658,7 @@
+ 	: ${BUILD_CC:='${CC}'}
+ 
+ 	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
+-		{ { echo "$as_me:3660: error: Cross-build requires two compilers.
++		{ { echo "$as_me:3661: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&5
+ echo "$as_me: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&2;}
+@@ -3682,7 +3683,7 @@
+ ### shared, for example.
+ cf_list_models=""
+ 
+-echo "$as_me:3685: checking if you want to build shared C-objects" >&5
++echo "$as_me:3686: checking if you want to build shared C-objects" >&5
+ echo $ECHO_N "checking if you want to build shared C-objects... $ECHO_C" >&6
+ 
+ # Check whether --with-shared or --without-shared was given.
+@@ -3692,27 +3693,27 @@
+ else
+   with_shared=no
+ fi;
+-echo "$as_me:3695: result: $with_shared" >&5
++echo "$as_me:3696: result: $with_shared" >&5
+ echo "${ECHO_T}$with_shared" >&6
+ test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
+ 
+-echo "$as_me:3699: checking for specified models" >&5
++echo "$as_me:3700: checking for specified models" >&5
+ echo $ECHO_N "checking for specified models... $ECHO_C" >&6
+ test -z "$cf_list_models" && cf_list_models=normal
+-echo "$as_me:3702: result: $cf_list_models" >&5
++echo "$as_me:3703: result: $cf_list_models" >&5
+ echo "${ECHO_T}$cf_list_models" >&6
+ 
+ ### Use the first model as the default, and save its suffix for use in building
+ ### up test-applications.
+-echo "$as_me:3707: checking for default model" >&5
++echo "$as_me:3708: checking for default model" >&5
+ echo $ECHO_N "checking for default model... $ECHO_C" >&6
+ DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
+-echo "$as_me:3710: result: $DFT_LWR_MODEL" >&5
++echo "$as_me:3711: result: $DFT_LWR_MODEL" >&5
+ echo "${ECHO_T}$DFT_LWR_MODEL" >&6
+ 
+ DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ 
+-echo "$as_me:3715: checking for specific curses-directory" >&5
++echo "$as_me:3716: checking for specific curses-directory" >&5
+ echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
+ 
+ # Check whether --with-curses-dir or --without-curses-dir was given.
+@@ -3722,7 +3723,7 @@
+ else
+   cf_cv_curses_dir=no
+ fi;
+-echo "$as_me:3725: result: $cf_cv_curses_dir" >&5
++echo "$as_me:3726: result: $cf_cv_curses_dir" >&5
+ echo "${ECHO_T}$cf_cv_curses_dir" >&6
+ 
+ if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+@@ -3753,7 +3754,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:3756: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:3757: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -3786,7 +3787,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 3789 "configure"
++#line 3790 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -3798,16 +3799,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3801: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3802: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3804: \$? = $ac_status" >&5
++  echo "$as_me:3805: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3807: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3808: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3810: \$? = $ac_status" >&5
++  echo "$as_me:3811: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -3824,7 +3825,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:3827: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:3828: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -3858,7 +3859,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:3861: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:3862: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -3869,7 +3870,7 @@
+ 	fi
+ fi
+ 
+-echo "$as_me:3872: checking if you want wide-character code" >&5
++echo "$as_me:3873: checking if you want wide-character code" >&5
+ echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
+ 
+ # Check whether --enable-widec or --disable-widec was given.
+@@ -3879,11 +3880,11 @@
+ else
+   with_widec=no
+ fi;
+-echo "$as_me:3882: result: $with_widec" >&5
++echo "$as_me:3883: result: $with_widec" >&5
+ echo "${ECHO_T}$with_widec" >&6
+ if test "$with_widec" = yes ; then
+ 
+-echo "$as_me:3886: checking for multibyte character support" >&5
++echo "$as_me:3887: checking for multibyte character support" >&5
+ echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
+ if test "${cf_cv_utf8_lib+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3891,7 +3892,7 @@
+ 
+ 	cf_save_LIBS="$LIBS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 3894 "configure"
++#line 3895 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -3904,16 +3905,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3907: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3908: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:3910: \$? = $ac_status" >&5
++  echo "$as_me:3911: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:3913: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3914: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3916: \$? = $ac_status" >&5
++  echo "$as_me:3917: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_utf8_lib=yes
+ else
+@@ -3925,12 +3926,12 @@
+ cf_cv_header_path_utf8=
+ cf_cv_library_path_utf8=
+ 
+-echo "${as_me:-configure}:3928: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:3929: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+ cf_save_LIBS="$LIBS"
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3933 "configure"
++#line 3934 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -3943,16 +3944,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3946: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3947: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:3949: \$? = $ac_status" >&5
++  echo "$as_me:3950: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:3952: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3953: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3955: \$? = $ac_status" >&5
++  echo "$as_me:3956: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_find_linkage_utf8=yes
+@@ -3966,7 +3967,7 @@
+ LIBS="-lutf8  $cf_save_LIBS"
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3969 "configure"
++#line 3970 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -3979,16 +3980,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3982: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3983: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:3985: \$? = $ac_status" >&5
++  echo "$as_me:3986: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:3988: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3989: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3991: \$? = $ac_status" >&5
++  echo "$as_me:3992: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_find_linkage_utf8=yes
+@@ -4005,9 +4006,9 @@
+ 
+     test -n "$verbose" && echo "	find linkage for utf8 library" 1>&6
+ 
+-echo "${as_me:-configure}:4008: testing find linkage for utf8 library ..." 1>&5
++echo "${as_me:-configure}:4009: testing find linkage for utf8 library ..." 1>&5
+ 
+-echo "${as_me:-configure}:4010: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:4011: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+     cf_save_CPPFLAGS="$CPPFLAGS"
+     cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -4120,11 +4121,11 @@
+       if test -d $cf_cv_header_path_utf8 ; then
+         test -n "$verbose" && echo "	... testing $cf_cv_header_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:4123: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:4124: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+ 
+         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 4127 "configure"
++#line 4128 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -4137,21 +4138,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4140: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4141: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4143: \$? = $ac_status" >&5
++  echo "$as_me:4144: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4146: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4147: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4149: \$? = $ac_status" >&5
++  echo "$as_me:4150: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+             test -n "$verbose" && echo "	... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:4154: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:4155: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+ 
+             cf_cv_find_linkage_utf8=maybe
+             cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -4169,7 +4170,7 @@
+ 
+     if test "$cf_cv_find_linkage_utf8" = maybe ; then
+ 
+-echo "${as_me:-configure}:4172: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:4173: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+       cf_save_LIBS="$LIBS"
+       cf_save_LDFLAGS="$LDFLAGS"
+@@ -4266,13 +4267,13 @@
+           if test -d $cf_cv_library_path_utf8 ; then
+             test -n "$verbose" && echo "	... testing $cf_cv_library_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:4269: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:4270: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+ 
+             CPPFLAGS="$cf_test_CPPFLAGS"
+             LIBS="-lutf8  $cf_save_LIBS"
+             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+             cat >conftest.$ac_ext <<_ACEOF
+-#line 4275 "configure"
++#line 4276 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -4285,21 +4286,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4288: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4289: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4291: \$? = $ac_status" >&5
++  echo "$as_me:4292: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4294: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4295: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4297: \$? = $ac_status" >&5
++  echo "$as_me:4298: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+                 test -n "$verbose" && echo "	... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:4302: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:4303: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+ 
+                 cf_cv_find_linkage_utf8=yes
+                 cf_cv_library_file_utf8="-lutf8"
+@@ -4341,7 +4342,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4344: result: $cf_cv_utf8_lib" >&5
++echo "$as_me:4345: result: $cf_cv_utf8_lib" >&5
+ echo "${ECHO_T}$cf_cv_utf8_lib" >&6
+ 
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+@@ -4375,7 +4376,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 4378 "configure"
++#line 4379 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4387,16 +4388,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4390: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4391: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4393: \$? = $ac_status" >&5
++  echo "$as_me:4394: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4396: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4397: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4399: \$? = $ac_status" >&5
++  echo "$as_me:4400: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -4413,7 +4414,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:4416: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4417: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -4447,7 +4448,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:4450: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:4451: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -4465,7 +4466,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:4468: checking for $ac_word" >&5
++echo "$as_me:4469: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4482,7 +4483,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:4485: found $ac_dir/$ac_word" >&5
++   echo "$as_me:4486: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -4493,10 +4494,10 @@
+ NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+ 
+ if test -n "$NCURSES_CONFIG"; then
+-  echo "$as_me:4496: result: $NCURSES_CONFIG" >&5
++  echo "$as_me:4497: result: $NCURSES_CONFIG" >&5
+ echo "${ECHO_T}$NCURSES_CONFIG" >&6
+ else
+-  echo "$as_me:4499: result: no" >&5
++  echo "$as_me:4500: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -4511,7 +4512,7 @@
+ 
+ # even with config script, some packages use no-override for curses.h
+ 
+-echo "$as_me:4514: checking if we have identified curses headers" >&5
++echo "$as_me:4515: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4519,13 +4520,13 @@
+ 
+ cf_cv_ncurses_header=none
+ for cf_header in  \
+-    ncursesw/curses.h \
+-	ncursesw/ncurses.h \
+-	curses.h \
+-	ncurses.h
++    ncursesw/ncurses.h \
++	ncursesw/curses.h \
++	ncurses.h \
++	curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4528 "configure"
++#line 4529 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -4537,16 +4538,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4540: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4541: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4543: \$? = $ac_status" >&5
++  echo "$as_me:4544: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4546: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4547: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4549: \$? = $ac_status" >&5
++  echo "$as_me:4550: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -4557,11 +4558,11 @@
+ done
+ 
+ fi
+-echo "$as_me:4560: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:4561: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+ 
+ if test "$cf_cv_ncurses_header" = none ; then
+-	{ { echo "$as_me:4564: error: No curses header-files found" >&5
++	{ { echo "$as_me:4565: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -4571,23 +4572,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:4574: checking for $ac_header" >&5
++echo "$as_me:4575: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4580 "configure"
++#line 4581 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4584: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4585: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:4590: \$? = $ac_status" >&5
++  echo "$as_me:4591: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4606,7 +4607,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4609: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:4610: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -4659,7 +4660,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 4662 "configure"
++#line 4663 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4671,16 +4672,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4674: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4675: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4677: \$? = $ac_status" >&5
++  echo "$as_me:4678: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4680: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4681: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4683: \$? = $ac_status" >&5
++  echo "$as_me:4684: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -4697,7 +4698,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:4700: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4701: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -4714,7 +4715,7 @@
+ 
+ }
+ 
+-echo "$as_me:4717: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:4718: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4726,7 +4727,7 @@
+ 	do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 4729 "configure"
++#line 4730 "configure"
+ #include "confdefs.h"
+ 
+ #define _XOPEN_SOURCE_EXTENDED
+@@ -4758,16 +4759,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4761: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4762: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4764: \$? = $ac_status" >&5
++  echo "$as_me:4765: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4767: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4768: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4770: \$? = $ac_status" >&5
++  echo "$as_me:4771: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h=$cf_header
+ 
+@@ -4782,14 +4783,14 @@
+ 	done
+ 
+ fi
+-echo "$as_me:4785: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:4786: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+ 
+ if test "$cf_cv_ncurses_h" != no ; then
+ 	cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+ 
+-echo "$as_me:4792: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:4793: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4929,7 +4930,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 4932 "configure"
++#line 4933 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4941,16 +4942,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4944: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4945: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4947: \$? = $ac_status" >&5
++  echo "$as_me:4948: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4950: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4951: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4953: \$? = $ac_status" >&5
++  echo "$as_me:4954: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -4967,7 +4968,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:4970: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4971: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -4988,7 +4989,7 @@
+ 		do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 4991 "configure"
++#line 4992 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -5012,16 +5013,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5015: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5016: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5018: \$? = $ac_status" >&5
++  echo "$as_me:5019: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5021: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5022: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5024: \$? = $ac_status" >&5
++  echo "$as_me:5025: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h2=$cf_header
+ 
+@@ -5042,12 +5043,12 @@
+ 		CPPFLAGS="$cf_save2_CPPFLAGS"
+ 		test "$cf_cv_ncurses_h2" != no && break
+ 	done
+-	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5045: error: not found" >&5
++	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5046: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:5050: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:5051: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+ 
+ 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -5080,7 +5081,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 5083 "configure"
++#line 5084 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -5092,16 +5093,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5095: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5096: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5098: \$? = $ac_status" >&5
++  echo "$as_me:5099: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5101: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5102: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5104: \$? = $ac_status" >&5
++  echo "$as_me:5105: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -5118,7 +5119,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:5121: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:5122: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -5161,7 +5162,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:5164: checking for terminfo header" >&5
++echo "$as_me:5165: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5179,7 +5180,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5182 "configure"
++#line 5183 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5194,16 +5195,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5197: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5198: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5200: \$? = $ac_status" >&5
++  echo "$as_me:5201: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5203: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5204: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5206: \$? = $ac_status" >&5
++  echo "$as_me:5207: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_term_header="$cf_test"
+@@ -5219,7 +5220,7 @@
+ done
+ 
+ fi
+-echo "$as_me:5222: result: $cf_cv_term_header" >&5
++echo "$as_me:5223: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+@@ -5253,7 +5254,7 @@
+ #define NCURSES 1
+ EOF
+ 
+-echo "$as_me:5256: checking for ncurses version" >&5
++echo "$as_me:5257: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5279,10 +5280,10 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo "$as_me:5282: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:5283: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5285: \$? = $ac_status" >&5
++  echo "$as_me:5286: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -5292,7 +5293,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5295 "configure"
++#line 5296 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5317,15 +5318,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5320: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5321: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5323: \$? = $ac_status" >&5
++  echo "$as_me:5324: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:5325: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5326: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5328: \$? = $ac_status" >&5
++  echo "$as_me:5329: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -5339,7 +5340,7 @@
+ 	rm -f $cf_tempfile
+ 
+ fi
+-echo "$as_me:5342: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:5343: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+ test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+@@ -5351,7 +5352,7 @@
+ 	# to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:5354: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:5355: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5359,7 +5360,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5362 "configure"
++#line 5363 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5378,16 +5379,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5381: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5382: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5384: \$? = $ac_status" >&5
++  echo "$as_me:5385: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5387: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5388: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5390: \$? = $ac_status" >&5
++  echo "$as_me:5391: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -5398,10 +5399,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5401: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:5402: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+-  echo "$as_me:5404: checking for initscr in -lgpm" >&5
++  echo "$as_me:5405: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5409,7 +5410,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5412 "configure"
++#line 5413 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5428,16 +5429,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5431: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5432: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5434: \$? = $ac_status" >&5
++  echo "$as_me:5435: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5437: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5438: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5440: \$? = $ac_status" >&5
++  echo "$as_me:5441: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_initscr=yes
+ else
+@@ -5448,7 +5449,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5451: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:5452: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+   LIBS="$cf_ncurses_SAVE"
+@@ -5463,7 +5464,7 @@
+ 	# This is only necessary if you are linking against an obsolete
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+-		echo "$as_me:5466: checking for tgoto in -lmytinfo" >&5
++		echo "$as_me:5467: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5471,7 +5472,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5474 "configure"
++#line 5475 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5490,16 +5491,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5493: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5494: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5496: \$? = $ac_status" >&5
++  echo "$as_me:5497: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5499: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5500: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5502: \$? = $ac_status" >&5
++  echo "$as_me:5503: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -5510,7 +5511,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5513: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:5514: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -5529,13 +5530,13 @@
+ 
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+-	echo "$as_me:5532: checking for initscr" >&5
++	echo "$as_me:5533: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5538 "configure"
++#line 5539 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr (); below.  */
+@@ -5566,16 +5567,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5569: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5570: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5572: \$? = $ac_status" >&5
++  echo "$as_me:5573: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5575: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5576: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5578: \$? = $ac_status" >&5
++  echo "$as_me:5579: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_initscr=yes
+ else
+@@ -5585,18 +5586,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5588: result: $ac_cv_func_initscr" >&5
++echo "$as_me:5589: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ 
+ 		cf_save_LIBS="$LIBS"
+-		echo "$as_me:5595: checking for initscr in -l$cf_nculib_root" >&5
++		echo "$as_me:5596: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 5599 "configure"
++#line 5600 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5608,25 +5609,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5611: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5612: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5614: \$? = $ac_status" >&5
++  echo "$as_me:5615: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5617: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5618: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5620: \$? = $ac_status" >&5
++  echo "$as_me:5621: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:5622: result: yes" >&5
++  echo "$as_me:5623: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5629: result: no" >&5
++echo "$as_me:5630: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 
+ cf_search=
+@@ -5716,11 +5717,11 @@
+ 
+ 			for cf_libdir in $cf_search
+ 			do
+-				echo "$as_me:5719: checking for -l$cf_nculib_root in $cf_libdir" >&5
++				echo "$as_me:5720: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat >conftest.$ac_ext <<_ACEOF
+-#line 5723 "configure"
++#line 5724 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5732,25 +5733,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5735: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5736: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5738: \$? = $ac_status" >&5
++  echo "$as_me:5739: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5741: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5742: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5744: \$? = $ac_status" >&5
++  echo "$as_me:5745: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:5746: result: yes" >&5
++  echo "$as_me:5747: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 					 break
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5753: result: no" >&5
++echo "$as_me:5754: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 					 LIBS="$cf_save_LIBS"
+ fi
+@@ -5765,7 +5766,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+ 
+ if test $cf_found_library = no ; then
+-	{ { echo "$as_me:5768: error: Cannot link $cf_nculib_root library" >&5
++	{ { echo "$as_me:5769: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -5773,7 +5774,7 @@
+ fi
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+-	echo "$as_me:5776: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++	echo "$as_me:5777: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+@@ -5783,7 +5784,7 @@
+ 		fi
+ 	done
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 5786 "configure"
++#line 5787 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5795,23 +5796,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5798: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5799: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5801: \$? = $ac_status" >&5
++  echo "$as_me:5802: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5804: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5805: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5807: \$? = $ac_status" >&5
++  echo "$as_me:5808: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:5809: result: yes" >&5
++  echo "$as_me:5810: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5814: result: no" >&5
++echo "$as_me:5815: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 		 LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -5835,7 +5836,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:5838: checking for $ac_word" >&5
++echo "$as_me:5839: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5852,7 +5853,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:5855: found $ac_dir/$ac_word" >&5
++   echo "$as_me:5856: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -5863,10 +5864,10 @@
+ NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+ 
+ if test -n "$NCURSES_CONFIG"; then
+-  echo "$as_me:5866: result: $NCURSES_CONFIG" >&5
++  echo "$as_me:5867: result: $NCURSES_CONFIG" >&5
+ echo "${ECHO_T}$NCURSES_CONFIG" >&6
+ else
+-  echo "$as_me:5869: result: no" >&5
++  echo "$as_me:5870: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -5881,7 +5882,7 @@
+ 
+ # even with config script, some packages use no-override for curses.h
+ 
+-echo "$as_me:5884: checking if we have identified curses headers" >&5
++echo "$as_me:5885: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5889,13 +5890,13 @@
+ 
+ cf_cv_ncurses_header=none
+ for cf_header in  \
+-    ncurses/curses.h \
+-	ncurses/ncurses.h \
+-	curses.h \
+-	ncurses.h
++    ncurses/ncurses.h \
++	ncurses/curses.h \
++	ncurses.h \
++	curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5898 "configure"
++#line 5899 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -5907,16 +5908,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5910: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5911: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5913: \$? = $ac_status" >&5
++  echo "$as_me:5914: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5916: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5917: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5919: \$? = $ac_status" >&5
++  echo "$as_me:5920: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -5927,11 +5928,11 @@
+ done
+ 
+ fi
+-echo "$as_me:5930: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:5931: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+ 
+ if test "$cf_cv_ncurses_header" = none ; then
+-	{ { echo "$as_me:5934: error: No curses header-files found" >&5
++	{ { echo "$as_me:5935: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -5941,23 +5942,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:5944: checking for $ac_header" >&5
++echo "$as_me:5945: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5950 "configure"
++#line 5951 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:5954: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:5955: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:5960: \$? = $ac_status" >&5
++  echo "$as_me:5961: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -5976,7 +5977,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:5979: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:5980: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -6029,7 +6030,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6032 "configure"
++#line 6033 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6041,16 +6042,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6044: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6045: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6047: \$? = $ac_status" >&5
++  echo "$as_me:6048: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6050: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6051: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6053: \$? = $ac_status" >&5
++  echo "$as_me:6054: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6067,7 +6068,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6070: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6071: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6084,7 +6085,7 @@
+ 
+ }
+ 
+-echo "$as_me:6087: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:6088: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6096,7 +6097,7 @@
+ 	do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6099 "configure"
++#line 6100 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -6120,16 +6121,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6123: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6124: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6126: \$? = $ac_status" >&5
++  echo "$as_me:6127: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6129: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6130: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6132: \$? = $ac_status" >&5
++  echo "$as_me:6133: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h=$cf_header
+ 
+@@ -6144,14 +6145,14 @@
+ 	done
+ 
+ fi
+-echo "$as_me:6147: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:6148: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+ 
+ if test "$cf_cv_ncurses_h" != no ; then
+ 	cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+ 
+-echo "$as_me:6154: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:6155: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6291,7 +6292,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6294 "configure"
++#line 6295 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6303,16 +6304,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6307: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6309: \$? = $ac_status" >&5
++  echo "$as_me:6310: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6312: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6313: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6315: \$? = $ac_status" >&5
++  echo "$as_me:6316: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6329,7 +6330,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6332: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6333: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6350,7 +6351,7 @@
+ 		do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6353 "configure"
++#line 6354 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -6374,16 +6375,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6377: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6378: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6380: \$? = $ac_status" >&5
++  echo "$as_me:6381: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6383: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6384: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6386: \$? = $ac_status" >&5
++  echo "$as_me:6387: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h2=$cf_header
+ 
+@@ -6404,12 +6405,12 @@
+ 		CPPFLAGS="$cf_save2_CPPFLAGS"
+ 		test "$cf_cv_ncurses_h2" != no && break
+ 	done
+-	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6407: error: not found" >&5
++	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6408: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:6412: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:6413: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+ 
+ 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -6442,7 +6443,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6445 "configure"
++#line 6446 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6454,16 +6455,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6457: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6458: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6460: \$? = $ac_status" >&5
++  echo "$as_me:6461: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6463: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6464: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6466: \$? = $ac_status" >&5
++  echo "$as_me:6467: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6480,7 +6481,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6483: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6484: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6523,7 +6524,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:6526: checking for terminfo header" >&5
++echo "$as_me:6527: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6541,7 +6542,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6544 "configure"
++#line 6545 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6556,16 +6557,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6559: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6560: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6562: \$? = $ac_status" >&5
++  echo "$as_me:6563: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6565: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6566: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6568: \$? = $ac_status" >&5
++  echo "$as_me:6569: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_term_header="$cf_test"
+@@ -6581,7 +6582,7 @@
+ done
+ 
+ fi
+-echo "$as_me:6584: result: $cf_cv_term_header" >&5
++echo "$as_me:6585: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+@@ -6615,7 +6616,7 @@
+ #define NCURSES 1
+ EOF
+ 
+-echo "$as_me:6618: checking for ncurses version" >&5
++echo "$as_me:6619: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6641,10 +6642,10 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo "$as_me:6644: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:6645: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6647: \$? = $ac_status" >&5
++  echo "$as_me:6648: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -6654,7 +6655,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6657 "configure"
++#line 6658 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6679,15 +6680,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6682: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6683: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6685: \$? = $ac_status" >&5
++  echo "$as_me:6686: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:6687: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6688: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6690: \$? = $ac_status" >&5
++  echo "$as_me:6691: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -6701,7 +6702,7 @@
+ 	rm -f $cf_tempfile
+ 
+ fi
+-echo "$as_me:6704: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:6705: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+ test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+@@ -6713,7 +6714,7 @@
+ 	# to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:6716: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:6717: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6721,7 +6722,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6724 "configure"
++#line 6725 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6740,16 +6741,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6743: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6744: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6746: \$? = $ac_status" >&5
++  echo "$as_me:6747: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6749: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6750: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6752: \$? = $ac_status" >&5
++  echo "$as_me:6753: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -6760,10 +6761,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6763: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:6764: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+-  echo "$as_me:6766: checking for initscr in -lgpm" >&5
++  echo "$as_me:6767: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6771,7 +6772,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6774 "configure"
++#line 6775 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6790,16 +6791,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6793: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6794: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6796: \$? = $ac_status" >&5
++  echo "$as_me:6797: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6799: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6800: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6802: \$? = $ac_status" >&5
++  echo "$as_me:6803: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_initscr=yes
+ else
+@@ -6810,7 +6811,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6813: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:6814: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+   LIBS="$cf_ncurses_SAVE"
+@@ -6825,7 +6826,7 @@
+ 	# This is only necessary if you are linking against an obsolete
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+-		echo "$as_me:6828: checking for tgoto in -lmytinfo" >&5
++		echo "$as_me:6829: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6833,7 +6834,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6836 "configure"
++#line 6837 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6852,16 +6853,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6855: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6856: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6858: \$? = $ac_status" >&5
++  echo "$as_me:6859: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6861: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6862: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6864: \$? = $ac_status" >&5
++  echo "$as_me:6865: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -6872,7 +6873,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6875: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:6876: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -6891,13 +6892,13 @@
+ 
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+-	echo "$as_me:6894: checking for initscr" >&5
++	echo "$as_me:6895: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6900 "configure"
++#line 6901 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr (); below.  */
+@@ -6928,16 +6929,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6931: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6932: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6934: \$? = $ac_status" >&5
++  echo "$as_me:6935: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6937: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6938: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6940: \$? = $ac_status" >&5
++  echo "$as_me:6941: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_initscr=yes
+ else
+@@ -6947,18 +6948,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6950: result: $ac_cv_func_initscr" >&5
++echo "$as_me:6951: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ 
+ 		cf_save_LIBS="$LIBS"
+-		echo "$as_me:6957: checking for initscr in -l$cf_nculib_root" >&5
++		echo "$as_me:6958: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 6961 "configure"
++#line 6962 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -6970,25 +6971,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6973: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6974: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6976: \$? = $ac_status" >&5
++  echo "$as_me:6977: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6979: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6980: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6982: \$? = $ac_status" >&5
++  echo "$as_me:6983: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:6984: result: yes" >&5
++  echo "$as_me:6985: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:6991: result: no" >&5
++echo "$as_me:6992: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 
+ cf_search=
+@@ -7078,11 +7079,11 @@
+ 
+ 			for cf_libdir in $cf_search
+ 			do
+-				echo "$as_me:7081: checking for -l$cf_nculib_root in $cf_libdir" >&5
++				echo "$as_me:7082: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat >conftest.$ac_ext <<_ACEOF
+-#line 7085 "configure"
++#line 7086 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7094,25 +7095,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7097: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7098: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7100: \$? = $ac_status" >&5
++  echo "$as_me:7101: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7103: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7104: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7106: \$? = $ac_status" >&5
++  echo "$as_me:7107: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:7108: result: yes" >&5
++  echo "$as_me:7109: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 					 break
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7115: result: no" >&5
++echo "$as_me:7116: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 					 LIBS="$cf_save_LIBS"
+ fi
+@@ -7127,7 +7128,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+ 
+ if test $cf_found_library = no ; then
+-	{ { echo "$as_me:7130: error: Cannot link $cf_nculib_root library" >&5
++	{ { echo "$as_me:7131: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -7135,7 +7136,7 @@
+ fi
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+-	echo "$as_me:7138: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++	echo "$as_me:7139: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+@@ -7145,7 +7146,7 @@
+ 		fi
+ 	done
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 7148 "configure"
++#line 7149 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7157,23 +7158,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7160: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7161: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7163: \$? = $ac_status" >&5
++  echo "$as_me:7164: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7166: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7167: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7169: \$? = $ac_status" >&5
++  echo "$as_me:7170: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:7171: result: yes" >&5
++  echo "$as_me:7172: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7176: result: no" >&5
++echo "$as_me:7177: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 		 LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -7210,10 +7211,10 @@
+ AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
+ CF_EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
+-	{ (eval echo "$as_me:7213: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:7214: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7216: \$? = $ac_status" >&5
++  echo "$as_me:7217: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[ 	][ 	]*//"`
+@@ -7231,7 +7232,7 @@
+ 
+ cf_cv_timestamp=`date`
+ 
+-echo "$as_me:7234: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
++echo "$as_me:7235: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+ echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
+ 
+ 	case $cf_cv_system_name in #(vi
+@@ -7254,7 +7255,7 @@
+ 	test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+ fi
+ 
+-echo "$as_me:7257: checking for default loader flags" >&5
++echo "$as_me:7258: checking for default loader flags" >&5
+ echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+ case $DFT_LWR_MODEL in
+ normal)  LD_MODEL=''   ;;
+@@ -7262,11 +7263,11 @@
+ profile) LD_MODEL='-pg';;
+ shared)  LD_MODEL=''   ;;
+ esac
+-echo "$as_me:7265: result: $LD_MODEL" >&5
++echo "$as_me:7266: result: $LD_MODEL" >&5
+ echo "${ECHO_T}$LD_MODEL" >&6
+ 
+ LD_RPATH_OPT=
+-echo "$as_me:7269: checking for an rpath option" >&5
++echo "$as_me:7270: checking for an rpath option" >&5
+ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
+ case $cf_cv_system_name in #(vi
+ irix*) #(vi
+@@ -7297,17 +7298,17 @@
+ *)
+ 	;;
+ esac
+-echo "$as_me:7300: result: $LD_RPATH_OPT" >&5
++echo "$as_me:7301: result: $LD_RPATH_OPT" >&5
+ echo "${ECHO_T}$LD_RPATH_OPT" >&6
+ 
+ case "x$LD_RPATH_OPT" in #(vi
+ x-R*)
+-	echo "$as_me:7305: checking if we need a space after rpath option" >&5
++	echo "$as_me:7306: checking if we need a space after rpath option" >&5
+ echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
+ 	cf_save_LIBS="$LIBS"
+ 	LIBS="${LD_RPATH_OPT}$libdir $LIBS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 7310 "configure"
++#line 7311 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -7319,16 +7320,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7322: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7323: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7325: \$? = $ac_status" >&5
++  echo "$as_me:7326: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7328: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7329: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7331: \$? = $ac_status" >&5
++  echo "$as_me:7332: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_rpath_space=no
+ else
+@@ -7338,7 +7339,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 	LIBS="$cf_save_LIBS"
+-	echo "$as_me:7341: result: $cf_rpath_space" >&5
++	echo "$as_me:7342: result: $cf_rpath_space" >&5
+ echo "${ECHO_T}$cf_rpath_space" >&6
+ 	test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
+ 	;;
+@@ -7353,7 +7354,7 @@
+ 	cf_ld_rpath_opt=
+ 	test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
+ 
+-	echo "$as_me:7356: checking if release/abi version should be used for shared libs" >&5
++	echo "$as_me:7357: checking if release/abi version should be used for shared libs" >&5
+ echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+ 
+ # Check whether --with-shlib-version or --without-shlib-version was given.
+@@ -7368,7 +7369,7 @@
+ 		cf_cv_shlib_version=$withval
+ 		;;
+ 	*)
+-		{ { echo "$as_me:7371: error: option value must be one of: rel, abi, auto or no" >&5
++		{ { echo "$as_me:7372: error: option value must be one of: rel, abi, auto or no" >&5
+ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
+    { (exit 1); exit 1; }; }
+ 		;;
+@@ -7377,7 +7378,7 @@
+ else
+   cf_cv_shlib_version=auto
+ fi;
+-	echo "$as_me:7380: result: $cf_cv_shlib_version" >&5
++	echo "$as_me:7381: result: $cf_cv_shlib_version" >&5
+ echo "${ECHO_T}$cf_cv_shlib_version" >&6
+ 
+ 	cf_cv_rm_so_locs=no
+@@ -7386,14 +7387,14 @@
+ 	CC_SHARED_OPTS=
+ 	if test "$GCC" = yes
+ 	then
+-		echo "$as_me:7389: checking which $CC option to use" >&5
++		echo "$as_me:7390: checking which $CC option to use" >&5
+ echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		for CC_SHARED_OPTS in -fPIC -fpic ''
+ 		do
+ 			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 7396 "configure"
++#line 7397 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7405,16 +7406,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7408: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7409: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7411: \$? = $ac_status" >&5
++  echo "$as_me:7412: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7414: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7415: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7417: \$? = $ac_status" >&5
++  echo "$as_me:7418: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7423,7 +7424,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		done
+-		echo "$as_me:7426: result: $CC_SHARED_OPTS" >&5
++		echo "$as_me:7427: result: $CC_SHARED_OPTS" >&5
+ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
+ 		CFLAGS="$cf_save_CFLAGS"
+ 	fi
+@@ -7465,7 +7466,7 @@
+ 		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
+ 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+ 		cf_cv_shlib_version_infix=yes
+-		echo "$as_me:7468: checking if ld -search_paths_first works" >&5
++		echo "$as_me:7469: checking if ld -search_paths_first works" >&5
+ echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
+ if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7474,7 +7475,7 @@
+ 			cf_save_LDFLAGS=$LDFLAGS
+ 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 7477 "configure"
++#line 7478 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -7486,16 +7487,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7489: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7490: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7492: \$? = $ac_status" >&5
++  echo "$as_me:7493: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7495: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7496: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7498: \$? = $ac_status" >&5
++  echo "$as_me:7499: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ldflags_search_paths_first=yes
+ else
+@@ -7506,7 +7507,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 				LDFLAGS=$cf_save_LDFLAGS
+ fi
+-echo "$as_me:7509: result: $cf_cv_ldflags_search_paths_first" >&5
++echo "$as_me:7510: result: $cf_cv_ldflags_search_paths_first" >&5
+ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
+ 		if test $cf_cv_ldflags_search_paths_first = yes; then
+ 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+@@ -7686,7 +7687,7 @@
+ 			do
+ 				CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
+ 				cat >conftest.$ac_ext <<_ACEOF
+-#line 7689 "configure"
++#line 7690 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7698,16 +7699,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7701: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7702: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7704: \$? = $ac_status" >&5
++  echo "$as_me:7705: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7707: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7708: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7710: \$? = $ac_status" >&5
++  echo "$as_me:7711: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -7744,7 +7745,7 @@
+ 			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
+ 			;;
+ 		*)
+-			{ echo "$as_me:7747: WARNING: ignored --with-shlib-version" >&5
++			{ echo "$as_me:7748: WARNING: ignored --with-shlib-version" >&5
+ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
+ 			;;
+ 		esac
+@@ -7759,7 +7760,7 @@
+ # Make it optional for packagers.
+ if test -n "$LOCAL_LDFLAGS"
+ then
+-	echo "$as_me:7762: checking if you want to link sample programs with rpath option" >&5
++	echo "$as_me:7763: checking if you want to link sample programs with rpath option" >&5
+ echo $ECHO_N "checking if you want to link sample programs with rpath option... $ECHO_C" >&6
+ 
+ # Check whether --enable-rpath-link or --disable-rpath-link was given.
+@@ -7769,7 +7770,7 @@
+ else
+   with_rpath_link=yes
+ fi;
+-	echo "$as_me:7772: result: $with_rpath_link" >&5
++	echo "$as_me:7773: result: $with_rpath_link" >&5
+ echo "${ECHO_T}$with_rpath_link" >&6
+ 	if test "$with_rpath_link" = no
+ 	then
+@@ -7786,7 +7787,7 @@
+ 	esac
+ 
+ ###   use option --enable-broken-linker to force on use of broken-linker support
+-echo "$as_me:7789: checking if you want broken-linker support code" >&5
++echo "$as_me:7790: checking if you want broken-linker support code" >&5
+ echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
+ 
+ # Check whether --enable-broken_linker or --disable-broken_linker was given.
+@@ -7796,7 +7797,7 @@
+ else
+   with_broken_linker=${BROKEN_LINKER:-no}
+ fi;
+-echo "$as_me:7799: result: $with_broken_linker" >&5
++echo "$as_me:7800: result: $with_broken_linker" >&5
+ echo "${ECHO_T}$with_broken_linker" >&6
+ 
+ BROKEN_LINKER=0
+@@ -7816,7 +7817,7 @@
+ 		BROKEN_LINKER=1
+ 		test -n "$verbose" && echo "	cygwin linker is broken anyway" 1>&6
+ 
+-echo "${as_me:-configure}:7819: testing cygwin linker is broken anyway ..." 1>&5
++echo "${as_me:-configure}:7820: testing cygwin linker is broken anyway ..." 1>&5
+ 
+ 		;;
+ 	esac
+@@ -7860,14 +7861,14 @@
+ 	;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+ 
+-echo "$as_me:7863: checking if we must define _GNU_SOURCE" >&5
++echo "$as_me:7864: checking if we must define _GNU_SOURCE" >&5
+ echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_gnu_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7870 "configure"
++#line 7871 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7882,16 +7883,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7885: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7886: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7888: \$? = $ac_status" >&5
++  echo "$as_me:7889: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7891: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7892: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7894: \$? = $ac_status" >&5
++  echo "$as_me:7895: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -7900,7 +7901,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 7903 "configure"
++#line 7904 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7915,16 +7916,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7918: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7919: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7921: \$? = $ac_status" >&5
++  echo "$as_me:7922: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7924: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7925: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7927: \$? = $ac_status" >&5
++  echo "$as_me:7928: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -7939,7 +7940,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:7942: result: $cf_cv_gnu_source" >&5
++echo "$as_me:7943: result: $cf_cv_gnu_source" >&5
+ echo "${ECHO_T}$cf_cv_gnu_source" >&6
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 
+@@ -7969,14 +7970,14 @@
+ 	cf_xopen_source="-D__EXTENSIONS__"
+ 	;;
+ *)
+-	echo "$as_me:7972: checking if we should define _XOPEN_SOURCE" >&5
++	echo "$as_me:7973: checking if we should define _XOPEN_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_xopen_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 7979 "configure"
++#line 7980 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7991,16 +7992,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7994: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7995: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7997: \$? = $ac_status" >&5
++  echo "$as_me:7998: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8000: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8001: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8003: \$? = $ac_status" >&5
++  echo "$as_me:8004: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -8009,7 +8010,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 8012 "configure"
++#line 8013 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8024,16 +8025,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8028: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8030: \$? = $ac_status" >&5
++  echo "$as_me:8031: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8033: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8034: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8036: \$? = $ac_status" >&5
++  echo "$as_me:8037: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -8048,7 +8049,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:8051: result: $cf_cv_xopen_source" >&5
++echo "$as_me:8052: result: $cf_cv_xopen_source" >&5
+ echo "${ECHO_T}$cf_cv_xopen_source" >&6
+ 	if test "$cf_cv_xopen_source" != no ; then
+ 
+@@ -8155,16 +8156,16 @@
+ 	sed	-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+ 		-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?$//g'`
+ 
+-echo "$as_me:8158: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:8159: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+-echo "${as_me:-configure}:8164: testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me:-configure}:8165: testing if the symbol is already defined go no further ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 8167 "configure"
++#line 8168 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8179,16 +8180,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8182: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8183: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8185: \$? = $ac_status" >&5
++  echo "$as_me:8186: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8188: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8189: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8191: \$? = $ac_status" >&5
++  echo "$as_me:8192: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_posix_c_source=no
+ else
+@@ -8209,7 +8210,7 @@
+ 	 esac
+ 	 if test "$cf_want_posix_source" = yes ; then
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 8212 "configure"
++#line 8213 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8224,16 +8225,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8227: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8228: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8230: \$? = $ac_status" >&5
++  echo "$as_me:8231: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8233: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8234: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8236: \$? = $ac_status" >&5
++  echo "$as_me:8237: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8244,15 +8245,15 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 	 fi
+ 
+-echo "${as_me:-configure}:8247: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me:-configure}:8248: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+ 
+ 	 CFLAGS="$cf_trim_CFLAGS"
+ 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+ 
+-echo "${as_me:-configure}:8252: testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me:-configure}:8253: testing if the second compile does not leave our definition intact error ..." 1>&5
+ 
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 8255 "configure"
++#line 8256 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8267,16 +8268,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8270: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8271: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8273: \$? = $ac_status" >&5
++  echo "$as_me:8274: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8276: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8277: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8279: \$? = $ac_status" >&5
++  echo "$as_me:8280: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8292,7 +8293,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:8295: result: $cf_cv_posix_c_source" >&5
++echo "$as_me:8296: result: $cf_cv_posix_c_source" >&5
+ echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+ 
+ if test "$cf_cv_posix_c_source" != no ; then
+@@ -8471,7 +8472,7 @@
+ fi;
+ if test "$enable_largefile" != no; then
+ 
+-  echo "$as_me:8474: checking for special C compiler options needed for large files" >&5
++  echo "$as_me:8475: checking for special C compiler options needed for large files" >&5
+ echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8483,7 +8484,7 @@
+      	 # IRIX 6.2 and later do not support large files by default,
+      	 # so use the C compiler's -n32 option if that helps.
+          cat >conftest.$ac_ext <<_ACEOF
+-#line 8486 "configure"
++#line 8487 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8503,16 +8504,16 @@
+ }
+ _ACEOF
+      	 rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8506: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8507: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8509: \$? = $ac_status" >&5
++  echo "$as_me:8510: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8512: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8513: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8515: \$? = $ac_status" >&5
++  echo "$as_me:8516: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -8522,16 +8523,16 @@
+ rm -f conftest.$ac_objext
+      	 CC="$CC -n32"
+      	 rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8525: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8526: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8528: \$? = $ac_status" >&5
++  echo "$as_me:8529: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8531: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8532: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8534: \$? = $ac_status" >&5
++  echo "$as_me:8535: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_largefile_CC=' -n32'; break
+ else
+@@ -8545,13 +8546,13 @@
+        rm -f conftest.$ac_ext
+     fi
+ fi
+-echo "$as_me:8548: result: $ac_cv_sys_largefile_CC" >&5
++echo "$as_me:8549: result: $ac_cv_sys_largefile_CC" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+   if test "$ac_cv_sys_largefile_CC" != no; then
+     CC=$CC$ac_cv_sys_largefile_CC
+   fi
+ 
+-  echo "$as_me:8554: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++  echo "$as_me:8555: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8559,7 +8560,7 @@
+   while :; do
+   ac_cv_sys_file_offset_bits=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8562 "configure"
++#line 8563 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8579,16 +8580,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8582: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8583: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8585: \$? = $ac_status" >&5
++  echo "$as_me:8586: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8588: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8589: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8591: \$? = $ac_status" >&5
++  echo "$as_me:8592: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -8597,7 +8598,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8600 "configure"
++#line 8601 "configure"
+ #include "confdefs.h"
+ #define _FILE_OFFSET_BITS 64
+ #include <sys/types.h>
+@@ -8618,16 +8619,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8621: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8622: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8624: \$? = $ac_status" >&5
++  echo "$as_me:8625: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8627: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8628: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8630: \$? = $ac_status" >&5
++  echo "$as_me:8631: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_file_offset_bits=64; break
+ else
+@@ -8638,7 +8639,7 @@
+   break
+ done
+ fi
+-echo "$as_me:8641: result: $ac_cv_sys_file_offset_bits" >&5
++echo "$as_me:8642: result: $ac_cv_sys_file_offset_bits" >&5
+ echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+ if test "$ac_cv_sys_file_offset_bits" != no; then
+ 
+@@ -8648,7 +8649,7 @@
+ 
+ fi
+ rm -rf conftest*
+-  echo "$as_me:8651: checking for _LARGE_FILES value needed for large files" >&5
++  echo "$as_me:8652: checking for _LARGE_FILES value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_large_files+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8656,7 +8657,7 @@
+   while :; do
+   ac_cv_sys_large_files=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8659 "configure"
++#line 8660 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8676,16 +8677,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8679: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8680: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8682: \$? = $ac_status" >&5
++  echo "$as_me:8683: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8685: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8686: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8688: \$? = $ac_status" >&5
++  echo "$as_me:8689: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -8694,7 +8695,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8697 "configure"
++#line 8698 "configure"
+ #include "confdefs.h"
+ #define _LARGE_FILES 1
+ #include <sys/types.h>
+@@ -8715,16 +8716,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8718: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8719: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8721: \$? = $ac_status" >&5
++  echo "$as_me:8722: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8724: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8725: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8727: \$? = $ac_status" >&5
++  echo "$as_me:8728: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_large_files=1; break
+ else
+@@ -8735,7 +8736,7 @@
+   break
+ done
+ fi
+-echo "$as_me:8738: result: $ac_cv_sys_large_files" >&5
++echo "$as_me:8739: result: $ac_cv_sys_large_files" >&5
+ echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+ if test "$ac_cv_sys_large_files" != no; then
+ 
+@@ -8748,7 +8749,7 @@
+ fi
+ 
+     if test "$enable_largefile" != no ; then
+-	echo "$as_me:8751: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++	echo "$as_me:8752: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8756,7 +8757,7 @@
+   while :; do
+   ac_cv_sys_largefile_source=no
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8759 "configure"
++#line 8760 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8768,16 +8769,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8771: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8772: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8774: \$? = $ac_status" >&5
++  echo "$as_me:8775: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8777: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8778: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8780: \$? = $ac_status" >&5
++  echo "$as_me:8781: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -8786,7 +8787,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8789 "configure"
++#line 8790 "configure"
+ #include "confdefs.h"
+ #define _LARGEFILE_SOURCE 1
+ #include <stdio.h>
+@@ -8799,16 +8800,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8802: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8803: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8805: \$? = $ac_status" >&5
++  echo "$as_me:8806: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8808: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8809: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8811: \$? = $ac_status" >&5
++  echo "$as_me:8812: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sys_largefile_source=1; break
+ else
+@@ -8819,7 +8820,7 @@
+   break
+ done
+ fi
+-echo "$as_me:8822: result: $ac_cv_sys_largefile_source" >&5
++echo "$as_me:8823: result: $ac_cv_sys_largefile_source" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+ if test "$ac_cv_sys_largefile_source" != no; then
+ 
+@@ -8833,13 +8834,13 @@
+ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+ # in glibc 2.1.3, but that breaks too many other things.
+ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-echo "$as_me:8836: checking for fseeko" >&5
++echo "$as_me:8837: checking for fseeko" >&5
+ echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+ if test "${ac_cv_func_fseeko+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8842 "configure"
++#line 8843 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8851,16 +8852,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8854: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8855: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8857: \$? = $ac_status" >&5
++  echo "$as_me:8858: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8860: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8861: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8863: \$? = $ac_status" >&5
++  echo "$as_me:8864: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_fseeko=yes
+ else
+@@ -8870,7 +8871,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8873: result: $ac_cv_func_fseeko" >&5
++echo "$as_me:8874: result: $ac_cv_func_fseeko" >&5
+ echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+ if test $ac_cv_func_fseeko = yes; then
+ 
+@@ -8891,14 +8892,14 @@
+ 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+ 	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
+ 
+-	echo "$as_me:8894: checking whether to use struct dirent64" >&5
++	echo "$as_me:8895: checking whether to use struct dirent64" >&5
+ echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
+ if test "${cf_cv_struct_dirent64+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 8901 "configure"
++#line 8902 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -8919,16 +8920,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8922: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8923: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8925: \$? = $ac_status" >&5
++  echo "$as_me:8926: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8928: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8929: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8931: \$? = $ac_status" >&5
++  echo "$as_me:8932: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_struct_dirent64=yes
+ else
+@@ -8939,7 +8940,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:8942: result: $cf_cv_struct_dirent64" >&5
++echo "$as_me:8943: result: $cf_cv_struct_dirent64" >&5
+ echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+ 	test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_STRUCT_DIRENT64 1
+@@ -8948,7 +8949,7 @@
+     fi
+ 
+ ### Enable compiling-in rcs id's
+-echo "$as_me:8951: checking if RCS identifiers should be compiled-in" >&5
++echo "$as_me:8952: checking if RCS identifiers should be compiled-in" >&5
+ echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+ 
+ # Check whether --with-rcs-ids or --without-rcs-ids was given.
+@@ -8958,7 +8959,7 @@
+ else
+   with_rcs_ids=no
+ fi;
+-echo "$as_me:8961: result: $with_rcs_ids" >&5
++echo "$as_me:8962: result: $with_rcs_ids" >&5
+ echo "${ECHO_T}$with_rcs_ids" >&6
+ test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
+ #define USE_RCS_IDS 1
+@@ -8967,7 +8968,7 @@
+ ###############################################################################
+ 
+ ### Note that some functions (such as const) are normally disabled anyway.
+-echo "$as_me:8970: checking if you want to build with function extensions" >&5
++echo "$as_me:8971: checking if you want to build with function extensions" >&5
+ echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+@@ -8977,7 +8978,7 @@
+ else
+   with_ext_funcs=yes
+ fi;
+-echo "$as_me:8980: result: $with_ext_funcs" >&5
++echo "$as_me:8981: result: $with_ext_funcs" >&5
+ echo "${ECHO_T}$with_ext_funcs" >&6
+ if test "$with_ext_funcs" = yes ; then
+ 	NCURSES_EXT_FUNCS=1
+@@ -8994,7 +8995,7 @@
+ fi
+ 
+ ###   use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:8997: checking for extended use of const keyword" >&5
++echo "$as_me:8998: checking for extended use of const keyword" >&5
+ echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+ 
+ # Check whether --enable-const or --disable-const was given.
+@@ -9004,7 +9005,7 @@
+ else
+   with_ext_const=no
+ fi;
+-echo "$as_me:9007: result: $with_ext_const" >&5
++echo "$as_me:9008: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+ if test "$with_ext_const" = yes ; then
+@@ -9014,7 +9015,7 @@
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+ 
+-echo "$as_me:9017: checking if you want all development code" >&5
++echo "$as_me:9018: checking if you want all development code" >&5
+ echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+ 
+ # Check whether --with-develop or --without-develop was given.
+@@ -9024,7 +9025,7 @@
+ else
+   with_develop=no
+ fi;
+-echo "$as_me:9027: result: $with_develop" >&5
++echo "$as_me:9028: result: $with_develop" >&5
+ echo "${ECHO_T}$with_develop" >&6
+ 
+ ###############################################################################
+@@ -9033,7 +9034,7 @@
+ # This is still experimental (20080329), but should ultimately be moved to
+ # the script-block --with-normal, etc.
+ 
+-echo "$as_me:9036: checking if you want to link with the pthread library" >&5
++echo "$as_me:9037: checking if you want to link with the pthread library" >&5
+ echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
+ 
+ # Check whether --with-pthread or --without-pthread was given.
+@@ -9043,27 +9044,27 @@
+ else
+   with_pthread=no
+ fi;
+-echo "$as_me:9046: result: $with_pthread" >&5
++echo "$as_me:9047: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+ 
+ if test "$with_pthread" != no ; then
+-    echo "$as_me:9050: checking for pthread.h" >&5
++    echo "$as_me:9051: checking for pthread.h" >&5
+ echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
+ if test "${ac_cv_header_pthread_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9056 "configure"
++#line 9057 "configure"
+ #include "confdefs.h"
+ #include <pthread.h>
+ _ACEOF
+-if { (eval echo "$as_me:9060: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9061: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:9066: \$? = $ac_status" >&5
++  echo "$as_me:9067: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9082,7 +9083,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9085: result: $ac_cv_header_pthread_h" >&5
++echo "$as_me:9086: result: $ac_cv_header_pthread_h" >&5
+ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
+ if test $ac_cv_header_pthread_h = yes; then
+ 
+@@ -9090,12 +9091,12 @@
+ #define HAVE_PTHREADS_H 1
+ EOF
+ 
+-        echo "$as_me:9093: checking if we can link with the pthread library" >&5
++        echo "$as_me:9094: checking if we can link with the pthread library" >&5
+ echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
+         cf_save_LIBS="$LIBS"
+         LIBS="-lpthread $LIBS"
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 9098 "configure"
++#line 9099 "configure"
+ #include "confdefs.h"
+ 
+ #include <pthread.h>
+@@ -9111,16 +9112,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9114: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9115: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9117: \$? = $ac_status" >&5
++  echo "$as_me:9118: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9120: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9121: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9123: \$? = $ac_status" >&5
++  echo "$as_me:9124: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   with_pthread=yes
+ else
+@@ -9130,7 +9131,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+         LIBS="$cf_save_LIBS"
+-        echo "$as_me:9133: result: $with_pthread" >&5
++        echo "$as_me:9134: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+ 
+         if test "$with_pthread" = yes ; then
+@@ -9140,7 +9141,7 @@
+ EOF
+ 
+         else
+-            { { echo "$as_me:9143: error: Cannot link with pthread library" >&5
++            { { echo "$as_me:9144: error: Cannot link with pthread library" >&5
+ echo "$as_me: error: Cannot link with pthread library" >&2;}
+    { (exit 1); exit 1; }; }
+         fi
+@@ -9149,7 +9150,7 @@
+ 
+ fi
+ 
+-echo "$as_me:9152: checking if you want to use weak-symbols for pthreads" >&5
++echo "$as_me:9153: checking if you want to use weak-symbols for pthreads" >&5
+ echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
+ 
+ # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
+@@ -9159,18 +9160,18 @@
+ else
+   use_weak_symbols=no
+ fi;
+-echo "$as_me:9162: result: $use_weak_symbols" >&5
++echo "$as_me:9163: result: $use_weak_symbols" >&5
+ echo "${ECHO_T}$use_weak_symbols" >&6
+ if test "$use_weak_symbols" = yes ; then
+ 
+-echo "$as_me:9166: checking if $CC supports weak symbols" >&5
++echo "$as_me:9167: checking if $CC supports weak symbols" >&5
+ echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
+ if test "${cf_cv_weak_symbols+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9173 "configure"
++#line 9174 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -9196,16 +9197,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9199: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9200: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9202: \$? = $ac_status" >&5
++  echo "$as_me:9203: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:9205: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9206: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9208: \$? = $ac_status" >&5
++  echo "$as_me:9209: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_weak_symbols=yes
+ else
+@@ -9216,7 +9217,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:9219: result: $cf_cv_weak_symbols" >&5
++echo "$as_me:9220: result: $cf_cv_weak_symbols" >&5
+ echo "${ECHO_T}$cf_cv_weak_symbols" >&6
+ 
+ else
+@@ -9243,13 +9244,13 @@
+ fi
+ 
+ # OpenSUSE is installing ncurses6, using reentrant option.
+-echo "$as_me:9246: checking for _nc_TABSIZE" >&5
++echo "$as_me:9247: checking for _nc_TABSIZE" >&5
+ echo $ECHO_N "checking for _nc_TABSIZE... $ECHO_C" >&6
+ if test "${ac_cv_func__nc_TABSIZE+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9252 "configure"
++#line 9253 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char _nc_TABSIZE (); below.  */
+@@ -9280,16 +9281,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9283: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9284: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9286: \$? = $ac_status" >&5
++  echo "$as_me:9287: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9289: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9290: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9292: \$? = $ac_status" >&5
++  echo "$as_me:9293: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func__nc_TABSIZE=yes
+ else
+@@ -9299,7 +9300,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9302: result: $ac_cv_func__nc_TABSIZE" >&5
++echo "$as_me:9303: result: $ac_cv_func__nc_TABSIZE" >&5
+ echo "${ECHO_T}$ac_cv_func__nc_TABSIZE" >&6
+ if test $ac_cv_func__nc_TABSIZE = yes; then
+   assume_reentrant=yes
+@@ -9311,7 +9312,7 @@
+ # opaque outside of that, so there is no --enable-opaque option.  We can use
+ # this option without --with-pthreads, but this will be always set for
+ # pthreads.
+-echo "$as_me:9314: checking if you want experimental reentrant code" >&5
++echo "$as_me:9315: checking if you want experimental reentrant code" >&5
+ echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
+ 
+ # Check whether --enable-reentrant or --disable-reentrant was given.
+@@ -9321,7 +9322,7 @@
+ else
+   with_reentrant=$assume_reentrant
+ fi;
+-echo "$as_me:9324: result: $with_reentrant" >&5
++echo "$as_me:9325: result: $with_reentrant" >&5
+ echo "${ECHO_T}$with_reentrant" >&6
+ if test "$with_reentrant" = yes ; then
+ 	cf_cv_enable_reentrant=1
+@@ -9343,7 +9344,7 @@
+ 
+ ### Allow using a different wrap-prefix
+ if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+-	echo "$as_me:9346: checking for prefix used to wrap public variables" >&5
++	echo "$as_me:9347: checking for prefix used to wrap public variables" >&5
+ echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
+ 
+ # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
+@@ -9353,7 +9354,7 @@
+ else
+   NCURSES_WRAP_PREFIX=_nc_
+ fi;
+-	echo "$as_me:9356: result: $NCURSES_WRAP_PREFIX" >&5
++	echo "$as_me:9357: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+ else
+ 	NCURSES_WRAP_PREFIX=_nc_
+@@ -9366,7 +9367,7 @@
+ ###############################################################################
+ 
+ ###	use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:9369: checking if you want to display full commands during build" >&5
++echo "$as_me:9370: checking if you want to display full commands during build" >&5
+ echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
+ 
+ # Check whether --enable-echo or --disable-echo was given.
+@@ -9381,11 +9382,11 @@
+ else
+ 	ECHO_LINK='@ echo linking $@ ... ;'
+ fi
+-echo "$as_me:9384: result: $with_echo" >&5
++echo "$as_me:9385: result: $with_echo" >&5
+ echo "${ECHO_T}$with_echo" >&6
+ 
+ ###	use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:9388: checking if you want to see compiler warnings" >&5
++echo "$as_me:9389: checking if you want to see compiler warnings" >&5
+ echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
+ 
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -9393,7 +9394,7 @@
+   enableval="$enable_warnings"
+   with_warnings=$enableval
+ fi;
+-echo "$as_me:9396: result: $with_warnings" >&5
++echo "$as_me:9397: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+ 
+ if test "x$with_warnings" = "xyes"; then
+@@ -9405,12 +9406,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:9408: checking if this is really Intel C compiler" >&5
++		echo "$as_me:9409: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$CFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 9413 "configure"
++#line 9414 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -9427,16 +9428,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9430: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9431: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9433: \$? = $ac_status" >&5
++  echo "$as_me:9434: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:9436: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9437: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9439: \$? = $ac_status" >&5
++  echo "$as_me:9440: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_COMPILER=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -9447,14 +9448,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:9450: result: $INTEL_COMPILER" >&5
++		echo "$as_me:9451: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ 		;;
+ 	esac
+ fi
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 9457 "${as_me:-configure}"
++#line 9458 "${as_me:-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -9471,7 +9472,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #279: controlling expression is constant
+ 
+-	{ echo "$as_me:9474: checking for $CC warning options..." >&5
++	{ echo "$as_me:9475: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-Wall"
+@@ -9487,12 +9488,12 @@
+ 		wd981
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:9490: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9491: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9493: \$? = $ac_status" >&5
++  echo "$as_me:9494: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9495: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9496: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ 		fi
+@@ -9501,7 +9502,7 @@
+ 
+ elif test "$GCC" = yes
+ then
+-	{ echo "$as_me:9504: checking for $CC warning options..." >&5
++	{ echo "$as_me:9505: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS=
+@@ -9521,12 +9522,12 @@
+ 		Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:9524: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9525: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9527: \$? = $ac_status" >&5
++  echo "$as_me:9528: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9529: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:9530: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			case $cf_opt in #(vi
+ 			Wcast-qual) #(vi
+@@ -9537,7 +9538,7 @@
+ 				[34].*)
+ 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+ 
+-echo "${as_me:-configure}:9540: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++echo "${as_me:-configure}:9541: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+ 
+ 					continue;;
+ 				esac
+@@ -9570,10 +9571,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+-	{ echo "$as_me:9573: checking for $CC __attribute__ directives..." >&5
++	{ echo "$as_me:9574: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 9576 "${as_me:-configure}"
++#line 9577 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -9622,12 +9623,12 @@
+ 			;;
+ 		esac
+ 
+-		if { (eval echo "$as_me:9625: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:9626: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:9628: \$? = $ac_status" >&5
++  echo "$as_me:9629: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:9630: result: ... $cf_attribute" >&5
++			test -n "$verbose" && echo "$as_me:9631: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ 			cat conftest.h >>confdefs.h
+ 			case $cf_attribute in #(vi
+@@ -9663,7 +9664,7 @@
+ fi
+ 
+ ###	use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:9666: checking if you want to enable runtime assertions" >&5
++echo "$as_me:9667: checking if you want to enable runtime assertions" >&5
+ echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
+ 
+ # Check whether --enable-assertions or --disable-assertions was given.
+@@ -9673,7 +9674,7 @@
+ else
+   with_assertions=no
+ fi;
+-echo "$as_me:9676: result: $with_assertions" >&5
++echo "$as_me:9677: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+@@ -9727,7 +9728,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:9730: checking whether to add trace feature to all models" >&5
++echo "$as_me:9731: checking whether to add trace feature to all models" >&5
+ echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
+ 
+ # Check whether --with-trace or --without-trace was given.
+@@ -9737,7 +9738,7 @@
+ else
+   cf_with_trace=$cf_all_traces
+ fi;
+-echo "$as_me:9740: result: $cf_with_trace" >&5
++echo "$as_me:9741: result: $cf_with_trace" >&5
+ echo "${ECHO_T}$cf_with_trace" >&6
+ 
+ if test "$cf_with_trace" = yes ; then
+@@ -9830,13 +9831,13 @@
+ *mingw32*) #(vi
+ 	;;
+ *)
+-echo "$as_me:9833: checking for gettimeofday" >&5
++echo "$as_me:9834: checking for gettimeofday" >&5
+ echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+ if test "${ac_cv_func_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9839 "configure"
++#line 9840 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char gettimeofday (); below.  */
+@@ -9867,16 +9868,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9870: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9871: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9873: \$? = $ac_status" >&5
++  echo "$as_me:9874: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9876: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9877: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9879: \$? = $ac_status" >&5
++  echo "$as_me:9880: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_gettimeofday=yes
+ else
+@@ -9886,7 +9887,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9889: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:9890: result: $ac_cv_func_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+ if test $ac_cv_func_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -9895,7 +9896,7 @@
+ 
+ else
+ 
+-echo "$as_me:9898: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:9899: checking for gettimeofday in -lbsd" >&5
+ echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9903,7 +9904,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9906 "configure"
++#line 9907 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9922,16 +9923,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9925: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9926: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9928: \$? = $ac_status" >&5
++  echo "$as_me:9929: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9931: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9932: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9934: \$? = $ac_status" >&5
++  echo "$as_me:9935: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -9942,7 +9943,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9945: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:9946: result: $ac_cv_lib_bsd_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+ if test $ac_cv_lib_bsd_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -9957,13 +9958,13 @@
+ esac
+ 
+ ###	Checks for header files.
+-echo "$as_me:9960: checking for ANSI C header files" >&5
++echo "$as_me:9961: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9966 "configure"
++#line 9967 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -9971,13 +9972,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:9974: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9975: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:9980: \$? = $ac_status" >&5
++  echo "$as_me:9981: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9999,7 +10000,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10002 "configure"
++#line 10003 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -10017,7 +10018,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10020 "configure"
++#line 10021 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -10038,7 +10039,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10041 "configure"
++#line 10042 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -10064,15 +10065,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10067: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10068: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10070: \$? = $ac_status" >&5
++  echo "$as_me:10071: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10072: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10073: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10075: \$? = $ac_status" >&5
++  echo "$as_me:10076: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -10085,7 +10086,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:10088: result: $ac_cv_header_stdc" >&5
++echo "$as_me:10089: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -10098,13 +10099,13 @@
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:10101: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:10102: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10107 "configure"
++#line 10108 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -10119,16 +10120,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10122: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10123: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10125: \$? = $ac_status" >&5
++  echo "$as_me:10126: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10128: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10129: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10131: \$? = $ac_status" >&5
++  echo "$as_me:10132: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Header=yes"
+ else
+@@ -10138,7 +10139,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10141: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10142: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -10151,7 +10152,7 @@
+ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+-  echo "$as_me:10154: checking for opendir in -ldir" >&5
++  echo "$as_me:10155: checking for opendir in -ldir" >&5
+ echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+ if test "${ac_cv_lib_dir_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10159,7 +10160,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10162 "configure"
++#line 10163 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10178,16 +10179,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10181: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10182: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10184: \$? = $ac_status" >&5
++  echo "$as_me:10185: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10187: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10188: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10190: \$? = $ac_status" >&5
++  echo "$as_me:10191: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dir_opendir=yes
+ else
+@@ -10198,14 +10199,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10201: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:10202: result: $ac_cv_lib_dir_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+ if test $ac_cv_lib_dir_opendir = yes; then
+   LIBS="$LIBS -ldir"
+ fi
+ 
+ else
+-  echo "$as_me:10208: checking for opendir in -lx" >&5
++  echo "$as_me:10209: checking for opendir in -lx" >&5
+ echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+ if test "${ac_cv_lib_x_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10213,7 +10214,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10216 "configure"
++#line 10217 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10232,16 +10233,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10235: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10236: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10238: \$? = $ac_status" >&5
++  echo "$as_me:10239: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10241: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10242: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10244: \$? = $ac_status" >&5
++  echo "$as_me:10245: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_x_opendir=yes
+ else
+@@ -10252,7 +10253,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10255: result: $ac_cv_lib_x_opendir" >&5
++echo "$as_me:10256: result: $ac_cv_lib_x_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+ if test $ac_cv_lib_x_opendir = yes; then
+   LIBS="$LIBS -lx"
+@@ -10260,13 +10261,13 @@
+ 
+ fi
+ 
+-echo "$as_me:10263: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:10264: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10269 "configure"
++#line 10270 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -10282,16 +10283,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10285: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10286: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10288: \$? = $ac_status" >&5
++  echo "$as_me:10289: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10291: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10292: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10294: \$? = $ac_status" >&5
++  echo "$as_me:10295: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_header_time=yes
+ else
+@@ -10301,7 +10302,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10304: result: $ac_cv_header_time" >&5
++echo "$as_me:10305: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+ 
+@@ -10319,7 +10320,7 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+ 
+-echo "$as_me:10322: checking for $CC option to accept ANSI C" >&5
++echo "$as_me:10323: checking for $CC option to accept ANSI C" >&5
+ echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10327,7 +10328,7 @@
+   ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10330 "configure"
++#line 10331 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -10376,16 +10377,16 @@
+ do
+   CC="$ac_save_CC $ac_arg"
+   rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10379: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10380: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10382: \$? = $ac_status" >&5
++  echo "$as_me:10383: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10385: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10386: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10388: \$? = $ac_status" >&5
++  echo "$as_me:10389: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -10402,21 +10403,21 @@
+ 
+ case "x$ac_cv_prog_cc_stdc" in
+   x|xno)
+-    echo "$as_me:10405: result: none needed" >&5
++    echo "$as_me:10406: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+   *)
+-    echo "$as_me:10408: result: $ac_cv_prog_cc_stdc" >&5
++    echo "$as_me:10409: result: $ac_cv_prog_cc_stdc" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+     CC="$CC $ac_cv_prog_cc_stdc" ;;
+ esac
+ 
+-echo "$as_me:10413: checking for an ANSI C-conforming const" >&5
++echo "$as_me:10414: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10419 "configure"
++#line 10420 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -10474,16 +10475,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10477: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10478: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10480: \$? = $ac_status" >&5
++  echo "$as_me:10481: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10483: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10484: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10486: \$? = $ac_status" >&5
++  echo "$as_me:10487: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_const=yes
+ else
+@@ -10493,7 +10494,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10496: result: $ac_cv_c_const" >&5
++echo "$as_me:10497: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+ 
+@@ -10505,7 +10506,7 @@
+ 
+ ###	Checks for external-data
+ 
+-echo "$as_me:10508: checking if data-only library module links" >&5
++echo "$as_me:10509: checking if data-only library module links" >&5
+ echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
+ if test "${cf_cv_link_dataonly+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10513,20 +10514,20 @@
+ 
+ 	rm -f conftest.a
+ 	cat >conftest.$ac_ext <<EOF
+-#line 10516 "configure"
++#line 10517 "configure"
+ int	testdata[3] = { 123, 456, 789 };
+ EOF
+-	if { (eval echo "$as_me:10519: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:10520: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10522: \$? = $ac_status" >&5
++  echo "$as_me:10523: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 		mv conftest.o data.o && \
+ 		( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
+ 	fi
+ 	rm -f conftest.$ac_ext data.o
+ 	cat >conftest.$ac_ext <<EOF
+-#line 10529 "configure"
++#line 10530 "configure"
+ int	testfunc()
+ {
+ #if defined(NeXT)
+@@ -10539,10 +10540,10 @@
+ #endif
+ }
+ EOF
+-	if { (eval echo "$as_me:10542: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:10543: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10545: \$? = $ac_status" >&5
++  echo "$as_me:10546: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+ 		mv conftest.o func.o && \
+ 		( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
+@@ -10555,7 +10556,7 @@
+   cf_cv_link_dataonly=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10558 "configure"
++#line 10559 "configure"
+ #include "confdefs.h"
+ 
+ 	int main()
+@@ -10566,15 +10567,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10569: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10570: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10572: \$? = $ac_status" >&5
++  echo "$as_me:10573: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10574: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10575: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10577: \$? = $ac_status" >&5
++  echo "$as_me:10578: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_link_dataonly=yes
+ else
+@@ -10589,7 +10590,7 @@
+ 
+ fi
+ 
+-echo "$as_me:10592: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:10593: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+ 
+ if test "$cf_cv_link_dataonly" = no ; then
+@@ -10602,7 +10603,7 @@
+ 
+ ###	Checks for library functions.
+ 
+-echo "$as_me:10605: checking for working mkstemp" >&5
++echo "$as_me:10606: checking for working mkstemp" >&5
+ echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
+ if test "${cf_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10610,13 +10611,13 @@
+ 
+ rm -rf conftest*
+ if test "$cross_compiling" = yes; then
+-  echo "$as_me:10613: checking for mkstemp" >&5
++  echo "$as_me:10614: checking for mkstemp" >&5
+ echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
+ if test "${ac_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10619 "configure"
++#line 10620 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char mkstemp (); below.  */
+@@ -10647,16 +10648,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10650: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10651: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10653: \$? = $ac_status" >&5
++  echo "$as_me:10654: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10656: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10657: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10659: \$? = $ac_status" >&5
++  echo "$as_me:10660: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_mkstemp=yes
+ else
+@@ -10666,12 +10667,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10669: result: $ac_cv_func_mkstemp" >&5
++echo "$as_me:10670: result: $ac_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10674 "configure"
++#line 10675 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -10709,15 +10710,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10712: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10713: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10715: \$? = $ac_status" >&5
++  echo "$as_me:10716: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10717: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10718: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10720: \$? = $ac_status" >&5
++  echo "$as_me:10721: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_mkstemp=yes
+ 
+@@ -10732,7 +10733,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:10735: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:10736: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
+ if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -10741,13 +10742,13 @@
+ 
+ fi
+ 
+-echo "$as_me:10744: checking return type of signal handlers" >&5
++echo "$as_me:10745: checking return type of signal handlers" >&5
+ echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+ if test "${ac_cv_type_signal+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10750 "configure"
++#line 10751 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -10769,16 +10770,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10772: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10773: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10775: \$? = $ac_status" >&5
++  echo "$as_me:10776: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10778: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10779: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10781: \$? = $ac_status" >&5
++  echo "$as_me:10782: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signal=void
+ else
+@@ -10788,7 +10789,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10791: result: $ac_cv_type_signal" >&5
++echo "$as_me:10792: result: $ac_cv_type_signal" >&5
+ echo "${ECHO_T}$ac_cv_type_signal" >&6
+ 
+ cat >>confdefs.h <<EOF
+@@ -10805,7 +10806,7 @@
+ cf_ada_make=gnatmake
+ # Extract the first word of "$cf_ada_make", so it can be a program name with args.
+ set dummy $cf_ada_make; ac_word=$2
+-echo "$as_me:10808: checking for $ac_word" >&5
++echo "$as_me:10809: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_gnat_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10820,7 +10821,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:10823: found $ac_dir/$ac_word" >&5
++echo "$as_me:10824: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -10829,10 +10830,10 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+-  echo "$as_me:10832: result: $gnat_exists" >&5
++  echo "$as_me:10833: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+-  echo "$as_me:10835: result: no" >&5
++  echo "$as_me:10836: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -10840,12 +10841,12 @@
+    cf_ada_make=
+ else
+ 
+-echo "$as_me:10843: checking for gnat version" >&5
++echo "$as_me:10844: checking for gnat version" >&5
+ echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
+ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
+ 	grep '[0-9].[0-9][0-9]*' |\
+     sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
+-echo "$as_me:10848: result: $cf_gnat_version" >&5
++echo "$as_me:10849: result: $cf_gnat_version" >&5
+ echo "${ECHO_T}$cf_gnat_version" >&6
+ 
+ case $cf_gnat_version in #(vi
+@@ -10853,7 +10854,7 @@
+ 	cf_cv_prog_gnat_correct=yes
+ 	;;
+ *)
+-	{ echo "$as_me:10856: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
++	{ echo "$as_me:10857: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
+ 	cf_cv_prog_gnat_correct=no
+ 	;;
+@@ -10861,7 +10862,7 @@
+ 
+    # Extract the first word of "m4", so it can be a program name with args.
+ set dummy m4; ac_word=$2
+-echo "$as_me:10864: checking for $ac_word" >&5
++echo "$as_me:10865: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_M4_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10876,7 +10877,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:10879: found $ac_dir/$ac_word" >&5
++echo "$as_me:10880: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -10885,10 +10886,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+-  echo "$as_me:10888: result: $M4_exists" >&5
++  echo "$as_me:10889: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+-  echo "$as_me:10891: result: no" >&5
++  echo "$as_me:10892: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -10897,7 +10898,7 @@
+       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
+    fi
+    if test "$cf_cv_prog_gnat_correct" = yes; then
+-      echo "$as_me:10900: checking if GNAT works" >&5
++      echo "$as_me:10901: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+ 
+ rm -rf conftest* *~conftest*
+@@ -10925,7 +10926,7 @@
+ fi
+ rm -rf conftest* *~conftest*
+ 
+-      echo "$as_me:10928: result: $cf_cv_prog_gnat_correct" >&5
++      echo "$as_me:10929: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+    fi
+ fi
+@@ -10948,7 +10949,7 @@
+ 			;;
+ 		esac
+ 
+-echo "$as_me:10951: checking if GNAT supports generics" >&5
++echo "$as_me:10952: checking if GNAT supports generics" >&5
+ echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[1-9]*|[4-9].*) #(vi
+@@ -10958,7 +10959,7 @@
+ 	cf_gnat_generics=no
+ 	;;
+ esac
+-echo "$as_me:10961: result: $cf_gnat_generics" >&5
++echo "$as_me:10962: result: $cf_gnat_generics" >&5
+ echo "${ECHO_T}$cf_gnat_generics" >&6
+ 
+ if test "$cf_gnat_generics" = yes
+@@ -10970,7 +10971,7 @@
+ 	cf_generic_objects=
+ fi
+ 
+-echo "$as_me:10973: checking if GNAT supports SIGINT" >&5
++echo "$as_me:10974: checking if GNAT supports SIGINT" >&5
+ echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
+ if test "${cf_cv_gnat_sigint+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11018,7 +11019,7 @@
+ rm -rf conftest* *~conftest*
+ 
+ fi
+-echo "$as_me:11021: result: $cf_cv_gnat_sigint" >&5
++echo "$as_me:11022: result: $cf_cv_gnat_sigint" >&5
+ echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
+ 
+ if test $cf_cv_gnat_sigint = yes ; then
+@@ -11027,7 +11028,7 @@
+ 	USE_GNAT_SIGINT="#"
+ fi
+ 
+-echo "$as_me:11030: checking if GNAT pragma Unreferenced works" >&5
++echo "$as_me:11031: checking if GNAT pragma Unreferenced works" >&5
+ echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+ if test "${cf_cv_pragma_unreferenced+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11058,7 +11059,7 @@
+ rm -rf conftest* *~conftest*
+ 
+ fi
+-echo "$as_me:11061: result: $cf_cv_pragma_unreferenced" >&5
++echo "$as_me:11062: result: $cf_cv_pragma_unreferenced" >&5
+ echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+ 
+ # if the pragma is supported, use it (needed in the Trace code).
+@@ -11071,7 +11072,7 @@
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+ 
+-echo "$as_me:11074: checking if GNAT supports project files" >&5
++echo "$as_me:11075: checking if GNAT supports project files" >&5
+ echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[0-9]*) #(vi
+@@ -11139,14 +11140,14 @@
+ 	esac
+ 	;;
+ esac
+-echo "$as_me:11142: result: $cf_gnat_projects" >&5
++echo "$as_me:11143: result: $cf_gnat_projects" >&5
+ echo "${ECHO_T}$cf_gnat_projects" >&6
+ 
+ if test $cf_gnat_projects = yes
+ then
+-	echo "$as_me:11147: checking if GNAT supports libraries" >&5
++	echo "$as_me:11148: checking if GNAT supports libraries" >&5
+ echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
+-	echo "$as_me:11149: result: $cf_gnat_libraries" >&5
++	echo "$as_me:11150: result: $cf_gnat_libraries" >&5
+ echo "${ECHO_T}$cf_gnat_libraries" >&6
+ fi
+ 
+@@ -11166,7 +11167,7 @@
+ 	USE_GNAT_LIBRARIES="#"
+ fi
+ 
+-echo "$as_me:11169: checking for ada-compiler" >&5
++echo "$as_me:11170: checking for ada-compiler" >&5
+ echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-compiler or --without-ada-compiler was given.
+@@ -11177,12 +11178,12 @@
+   cf_ada_compiler=gnatmake
+ fi;
+ 
+-echo "$as_me:11180: result: $cf_ada_compiler" >&5
++echo "$as_me:11181: result: $cf_ada_compiler" >&5
+ echo "${ECHO_T}$cf_ada_compiler" >&6
+ 
+ 		cf_ada_package=terminal_interface
+ 
+-echo "$as_me:11185: checking for ada-include" >&5
++echo "$as_me:11186: checking for ada-include" >&5
+ echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-include or --without-ada-include was given.
+@@ -11218,7 +11219,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:11221: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:11222: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -11227,10 +11228,10 @@
+ fi
+ ADA_INCLUDE="$withval"
+ 
+-echo "$as_me:11230: result: $ADA_INCLUDE" >&5
++echo "$as_me:11231: result: $ADA_INCLUDE" >&5
+ echo "${ECHO_T}$ADA_INCLUDE" >&6
+ 
+-echo "$as_me:11233: checking for ada-objects" >&5
++echo "$as_me:11234: checking for ada-objects" >&5
+ echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-objects or --without-ada-objects was given.
+@@ -11266,7 +11267,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:11269: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:11270: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -11275,10 +11276,10 @@
+ fi
+ ADA_OBJECTS="$withval"
+ 
+-echo "$as_me:11278: result: $ADA_OBJECTS" >&5
++echo "$as_me:11279: result: $ADA_OBJECTS" >&5
+ echo "${ECHO_T}$ADA_OBJECTS" >&6
+ 
+-echo "$as_me:11281: checking if an Ada95 shared-library should be built" >&5
++echo "$as_me:11282: checking if an Ada95 shared-library should be built" >&5
+ echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
+@@ -11288,7 +11289,7 @@
+ else
+   with_ada_sharedlib=no
+ fi;
+-echo "$as_me:11291: result: $with_ada_sharedlib" >&5
++echo "$as_me:11292: result: $with_ada_sharedlib" >&5
+ echo "${ECHO_T}$with_ada_sharedlib" >&6
+ 
+ ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
+@@ -11304,12 +11305,12 @@
+ fi
+ 
+ 	else
+-		{ { echo "$as_me:11307: error: No usable Ada compiler found" >&5
++		{ { echo "$as_me:11308: error: No usable Ada compiler found" >&5
+ echo "$as_me: error: No usable Ada compiler found" >&2;}
+    { (exit 1); exit 1; }; }
+ 	fi
+ else
+-	{ { echo "$as_me:11312: error: The Ada compiler is needed for this package" >&5
++	{ { echo "$as_me:11313: error: The Ada compiler is needed for this package" >&5
+ echo "$as_me: error: The Ada compiler is needed for this package" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -11354,7 +11355,7 @@
+ fi
+ 
+ ### Build up pieces for makefile rules
+-echo "$as_me:11357: checking default library suffix" >&5
++echo "$as_me:11358: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -11365,10 +11366,10 @@
+ 	shared)  DFT_ARG_SUFFIX=''   ;;
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:11368: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:11369: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+ 
+-echo "$as_me:11371: checking default library-dependency suffix" >&5
++echo "$as_me:11372: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in #(vi
+@@ -11421,10 +11422,10 @@
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
+ 	test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
+-echo "$as_me:11424: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:11425: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+ 
+-echo "$as_me:11427: checking default object directory" >&5
++echo "$as_me:11428: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -11440,7 +11441,7 @@
+ 			DFT_OBJ_SUBDIR='obj_s' ;;
+ 		esac
+ 	esac
+-echo "$as_me:11443: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:11444: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+ 
+ ### Set up low-level terminfo dependencies for makefiles.
+@@ -11656,7 +11657,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:11659: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:11660: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -11832,7 +11833,7 @@
+     echo "$ac_cs_version"; exit 0 ;;
+   --he | --h)
+     # Conflict between --help and --header
+-    { { echo "$as_me:11835: error: ambiguous option: $1
++    { { echo "$as_me:11836: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -11851,7 +11852,7 @@
+     ac_need_defaults=false;;
+ 
+   # This is an error.
+-  -*) { { echo "$as_me:11854: error: unrecognized option: $1
++  -*) { { echo "$as_me:11855: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -11922,7 +11923,7 @@
+   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+   "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+-  *) { { echo "$as_me:11925: error: invalid argument: $ac_config_target" >&5
++  *) { { echo "$as_me:11926: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+    { (exit 1); exit 1; }; };;
+   esac
+@@ -12237,7 +12238,7 @@
+   esac
+ 
+   if test x"$ac_file" != x-; then
+-    { echo "$as_me:12240: creating $ac_file" >&5
++    { echo "$as_me:12241: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+     rm -f "$ac_file"
+   fi
+@@ -12255,7 +12256,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:12258: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:12259: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -12268,7 +12269,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:12271: error: cannot find input file: $f" >&5
++           { { echo "$as_me:12272: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -12334,7 +12335,7 @@
+   * )   ac_file_in=$ac_file.in ;;
+   esac
+ 
+-  test x"$ac_file" != x- && { echo "$as_me:12337: creating $ac_file" >&5
++  test x"$ac_file" != x- && { echo "$as_me:12338: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ 
+   # First look for the input files in the build tree, otherwise in the
+@@ -12345,7 +12346,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:12348: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:12349: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -12358,7 +12359,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:12361: error: cannot find input file: $f" >&5
++           { { echo "$as_me:12362: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -12416,7 +12417,7 @@
+   rm -f $tmp/in
+   if test x"$ac_file" != x-; then
+     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+-      { echo "$as_me:12419: $ac_file is unchanged" >&5
++      { echo "$as_me:12420: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+diff -Naur ncurses-5.9.orig/Ada95/gen/gen.c ncurses-5.9/Ada95/gen/gen.c
+--- ncurses-5.9.orig/Ada95/gen/gen.c	2011-03-31 23:50:24.000000000 +0000
++++ ncurses-5.9/Ada95/gen/gen.c	2011-05-17 16:13:16.946206080 +0000
+@@ -32,7 +32,7 @@
+ 
+ /*
+     Version Control
+-    $Id: gen.c,v 1.59 2011/03/31 23:50:24 tom Exp $
++    $Id: gen.c,v 1.60 2011/04/30 19:47:19 Nicolas.Boulenguez Exp $
+   --------------------------------------------------------------------------*/
+ /*
+   This program generates various record structures and constants from the
+@@ -124,19 +124,15 @@
+ 	  int len,		/* size of the record in bytes          */
+ 	  int bias)
+ {
+-  const char *unused_name = "Unused";
+-  int long_bits = (8 * (int)sizeof(unsigned long));
+-  int len_bits = (8 * len);
+-  int i, j, n, l, cnt = 0, low, high;
++  const int len_bits = (8 * len);
++  int i, l, low, high;
+   int width = strlen(RES_NAME) + 3;
+   unsigned long a;
+-  unsigned long mask = 0;
+ 
+   assert(nap != NULL);
+ 
+   for (i = 0; nap[i].name != (char *)0; i++)
+     {
+-      cnt++;
+       l = (int)strlen(nap[i].name);
+       if (l > width)
+ 	width = l;
+@@ -147,32 +143,8 @@
+   printf("      record\n");
+   for (i = 0; nap[i].name != (char *)0; i++)
+     {
+-      mask |= nap[i].attr;
+       printf("         %-*s : Boolean;\n", width, nap[i].name);
+     }
+-
+-  /*
+-   * Compute a mask for the unused bits in this target.
+-   */
+-  mask = ~mask;
+-  /*
+-   * Bits in the biased area are unused by the target.
+-   */
+-  for (j = 0; j < bias; ++j)
+-    {
+-      mask &= (unsigned long)(~(1L << j));
+-    }
+-  /*
+-   * Bits past the target's size are really unused.
+-   */
+-  for (j = len_bits + bias; j < long_bits; ++j)
+-    {
+-      mask &= (unsigned long)(~(1L << j));
+-    }
+-  if (mask != 0)
+-    {
+-      printf("         %-*s : Boolean;\n", width, unused_name);
+-    }
+   printf("      end record;\n");
+   printf("   pragma Convention (C, %s);\n\n", name);
+ 
+@@ -187,17 +159,10 @@
+ 	printf("         %-*s at 0 range %2d .. %2d;\n", width, nap[i].name,
+ 	       low - bias, high - bias);
+     }
+-  if (mask != 0)
+-    {
+-      l = find_pos((char *)&mask, sizeof(mask), &low, &high);
+-      if (l >= 0)
+-	printf("         %-*s at 0 range %2d .. %2d;\n", width, unused_name,
+-	       low - bias, high - bias);
+-    }
+-  i = 1;
+-  n = cnt;
+   printf("      end record;\n");
++  printf("   pragma Warnings (Off);");
+   printf("   for %s'Size use %d;\n", name, len_bits);
++  printf("   pragma Warnings (On);\n");
+   printf("   --  Please note: this rep. clause is generated and may be\n");
+   printf("   --               different on your system.");
+ }
+diff -Naur ncurses-5.9.orig/Ada95/src/Makefile.in ncurses-5.9/Ada95/src/Makefile.in
+--- ncurses-5.9.orig/Ada95/src/Makefile.in	2011-03-31 09:46:16.000000000 +0000
++++ ncurses-5.9/Ada95/src/Makefile.in	2011-05-17 16:13:16.950205636 +0000
+@@ -28,7 +28,7 @@
+ #
+ #  Author:  Juergen Pfeifer, 1996
+ #
+-#  $Id: Makefile.in,v 1.60 2011/03/31 09:46:16 tom Exp $
++#  $Id: Makefile.in,v 1.62 2011/04/30 22:24:45 tom Exp $
+ #
+ .SUFFIXES:
+ 
+@@ -218,7 +218,9 @@
+ 	$(ADAPREP) -DADA_TRACE=@ADA_TRACE@ -DPRAGMA_UNREF=@PRAGMA_UNREF@ $(srcdir)/$(ABASE)-trace.adb_p $@
+ 
+ ###############################################################################
+-C_OBJS	= c_varargs_to_ada.o ncurses_compat.o
++# Use these definitions when building a shared library.
++SHARED_C_OBJS	= c_varargs_to_ada.o ncurses_compat.o
++SHARED_OBJS 	= $(SHARED_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
+ 
+ c_varargs_to_ada.o :	$(srcdir)/c_varargs_to_ada.c
+ 	$(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_varargs_to_ada.c
+@@ -227,13 +229,22 @@
+ 	$(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/ncurses_compat.c
+ 
+ ###############################################################################
++# Use these definitions when building a static library.
++STATIC_C_OBJS	= static_c_varargs_to_ada.o static_ncurses_compat.o
++STATIC_OBJS 	= $(STATIC_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
+ 
+-MIXED_OBJS = $(C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
++static_c_varargs_to_ada.o :	$(srcdir)/c_varargs_to_ada.c
++	$(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_varargs_to_ada.c
++
++static_ncurses_compat.o :	$(srcdir)/ncurses_compat.c
++	$(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/ncurses_compat.c
++
++###############################################################################
+ 
+ @USE_OLD_MAKERULES@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
+ @USE_OLD_MAKERULES@		$(BUILD_DIR_LIB) \
+-@USE_OLD_MAKERULES@		$(MIXED_OBJS)
+-@USE_OLD_MAKERULES@	$(AR) $(ARFLAGS) $@ $(MIXED_OBJS)
++@USE_OLD_MAKERULES@		$(STATIC_OBJS)
++@USE_OLD_MAKERULES@	$(AR) $(ARFLAGS) $@ $(STATIC_OBJS)
+ 
+ $(BUILD_DIR)/static-ali : ; mkdir -p $@
+ $(BUILD_DIR)/static-obj : ; mkdir -p $@
+@@ -245,10 +256,10 @@
+ 
+ @USE_GNAT_PROJECTS@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
+ @USE_GNAT_PROJECTS@		$(ABASE)-trace.adb \
+-@USE_GNAT_PROJECTS@		$(C_OBJS) \
++@USE_GNAT_PROJECTS@		$(STATIC_C_OBJS) \
+ @USE_GNAT_PROJECTS@		$(STATIC_DIRS)
+ @USE_GNAT_PROJECTS@	$(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=static
+-@USE_GNAT_PROJECTS@	$(AR) $(ARFLAGS) $@ $(C_OBJS)
++@USE_GNAT_PROJECTS@	$(AR) $(ARFLAGS) $@ $(STATIC_C_OBJS)
+ @USE_GNAT_PROJECTS@
+ @USE_GNAT_LIBRARIES@install \
+ @USE_GNAT_LIBRARIES@install.libs :: \
+@@ -274,8 +285,11 @@
+ 	$(BUILD_DIR)/dynamic-obj
+ 
+ @MAKE_ADA_SHAREDLIB@all :: $(BUILD_DIR_LIB)/$(SHARED_LIBNAME)
+-@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: $(ABASE)-trace.adb $(SHARED_DIRS)
+-@MAKE_ADA_SHAREDLIB@	cp $(MIXED_OBJS) $(BUILD_DIR)/dynamic-obj/
++@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: \
++@MAKE_ADA_SHAREDLIB@		$(ABASE)-trace.adb \
++@MAKE_ADA_SHAREDLIB@		$(SHARED_DIRS) \
++@MAKE_ADA_SHAREDLIB@		$(SHARED_OBJS)
++@MAKE_ADA_SHAREDLIB@	cp $(SHARED_OBJS) $(BUILD_DIR)/dynamic-obj/
+ @MAKE_ADA_SHAREDLIB@	$(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=dynamic
+ 
+ install \
+diff -Naur ncurses-5.9.orig/INSTALL ncurses-5.9/INSTALL
+--- ncurses-5.9.orig/INSTALL	2011-03-31 08:27:24.000000000 +0000
++++ ncurses-5.9/INSTALL	2011-05-17 16:13:19.073969989 +0000
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: INSTALL,v 1.155 2011/03/31 08:27:24 tom Exp $
++-- $Id: INSTALL,v 1.156 2011/05/07 19:39:37 tom Exp $
+ ---------------------------------------------------------------------
+              How to install Ncurses/Terminfo on your system
+ ---------------------------------------------------------------------
+@@ -1726,20 +1726,37 @@
+ 	By default, there are no entries on the fallback list.  After you have
+ 	built the ncurses suite for the first time, you can change the list
+ 	(the process needs infocmp(1)).  To do so, use the script
+-	ncurses/tinfo/MKfallback.sh.  A configure script option
++	ncurses/tinfo/MKfallback.sh.  The configure script option
+ 	--with-fallbacks does this (it accepts a comma-separated list of the
+ 	names you wish, and does not require a rebuild).
+ 
+ 	If you wanted (say) to have linux, vt100, and xterm fallbacks, you
+-	would use the commands
++	might use the commands
+ 
+ 		cd ncurses;
+-		tinfo/MKfallback.sh linux vt100 xterm >fallback.c
++		tinfo/MKfallback.sh \
++			$TERMINFO \
++			../misc/terminfo.src \
++			`which tic` \
++			linux vt100 xterm >fallback.c
++
++	The first three parameters of the script are normally supplied by
++	the configured makefiles via the "--with-fallbacks" option.  They
++	are
++
++		1) the location of the terminfo database
++		2) the source for the terminfo entries
++		3) the location of the tic program, used to create a terminfo
++		   database.
+ 
+ 	Then just rebuild and reinstall the library as you would normally.
+ 	You can restore the default empty fallback list with
+ 
+-		tinfo/MKfallback.sh >fallback.c
++		tinfo/MKfallback.sh \
++			$TERMINFO \
++			../misc/terminfo.src \
++			`which tic` \
++			>fallback.c
+ 
+ 	The overhead for an empty fallback list is one trivial stub function.
+ 	Any non-empty fallback list is const-ed and therefore lives in sharable
+diff -Naur ncurses-5.9.orig/MANIFEST ncurses-5.9/MANIFEST
+--- ncurses-5.9.orig/MANIFEST	2011-03-28 00:29:04.000000000 +0000
++++ ncurses-5.9/MANIFEST	2011-05-17 16:13:14.802443946 +0000
+@@ -1022,6 +1022,7 @@
+ ./test/cardfile.dat
+ ./test/chgat.c
+ ./test/clip_printw.c
++./test/color_name.h
+ ./test/color_set.c
+ ./test/configure
+ ./test/configure.in
+diff -Naur ncurses-5.9.orig/NEWS ncurses-5.9/NEWS
+--- ncurses-5.9.orig/NEWS	2011-04-04 00:02:42.000000000 +0000
++++ ncurses-5.9/NEWS	2011-05-17 16:13:21.529697506 +0000
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written        --
+ -- authorization.                                                            --
+ -------------------------------------------------------------------------------
+--- $Id: NEWS,v 1.1682 2011/04/04 00:02:42 tom Exp $
++-- $Id: NEWS,v 1.1703 2011/05/14 21:49:54 tom Exp $
+ -------------------------------------------------------------------------------
+ 
+ This is a log of changes that ncurses has gone through since Zeyd started
+@@ -45,6 +45,64 @@
+ Changes through 1.9.9e did not credit all contributions;
+ it is not possible to add this information.
+ 
++20110514
++	+ compiler-warning fixes in panel and progs.
++	+ modify CF_PKG_CONFIG macro, from changes to tin -TD
++	+ modify CF_CURSES_FUNCS configure macro, used in test directory
++	  configure script:
++	  + work around (non-optimizer) bug in gcc 4.2.1 which caused
++	    test-expression to be omitted from executable.
++	  + force the linker to see a link-time expression of a symbol, to
++	    help work around weak-symbol issues.
++
++20110507
++	+ update discussion of MKfallback.sh script in INSTALL; normally the
++	  script is used automatically via the configured makefiles.  However
++	  there are still occasions when it might be used directly by packagers
++	  (report by Gunter Schaffler).
++	+ modify misc/ncurses-config.in to omit the "-L" option from the
++	  "--libs" output if the library directory is /usr/lib.
++	+ change order of tests for curses.h versus ncurses.h headers in the
++	  configure scripts for Ada95 and test-directories, to look for
++	  ncurses.h, from fixes to tin -TD
++	+ modify ncurses/tinfo/access.c to account for Tandem's root uid
++	  (report by Joachim Schmitz).
++
++20110430
++	+ modify rules in Ada95/src/Makefile.in to ensure that the PIC option
++	  is not used when building a static library (report by Nicolas
++	  Boulenguez):
++	+ Ada95 build-fix for big-endian architectures such as sparc.  This
++	  undoes one of the fixes from 20110319, which added an "Unused" member
++	  to representation clauses, replacing that with pragmas to suppress
++	  warnings about unused bits (patch by Nicolas Boulenguez):
++
++20110423
++	+ add check in test/configure for use_window, use_screen.
++	+ add configure-checks for getopt's variables, which may be declared
++	  as different types on some Unix systems.
++	+ add check in test/configure for some legacy curses types of the
++	  function pointer passed to tputs().
++	+ modify init_pair() to accept -1's for color value after
++	  assume_default_colors() has been called (Debian #337095).
++	+ modify test/background.c, adding commmand-line options to demonstrate
++	  assume_default_colors() and use_default_colors().
++
++20110416
++	+ modify configure script/source-code to only define _POSIX_SOURCE if
++	  the checks for sigaction and/or termios fail, and if _POSIX_C_SOURCE
++	  and _XOPEN_SOURCE are undefined (report by Valentin Ochs).
++	+ update config.guess, config.sub
++
++20110409
++	+ fixes to build c++ binding with clang 3.0 (patch by Alexander
++	  Kolesen).
++	+ add check for unctrl.h in test/configure, to work around breakage in
++	  some ncurses packages.
++	+ add "--disable-widec" option to test/configure script.
++	+ add "--with-curses-colr" and "--with-curses-5lib" options to the
++	  test/configure script to address testing with very old machines.
++
+ 20110404 5.9 release for upload to ftp.gnu.org
+ 
+ 20110402
+diff -Naur ncurses-5.9.orig/aclocal.m4 ncurses-5.9/aclocal.m4
+--- ncurses-5.9.orig/aclocal.m4	2011-03-31 23:35:38.000000000 +0000
++++ ncurses-5.9/aclocal.m4	2011-05-17 16:13:14.810443058 +0000
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: aclocal.m4,v 1.553 2011/03/31 23:35:38 tom Exp $
++dnl $Id: aclocal.m4,v 1.555 2011/04/23 21:38:05 tom Exp $
+ dnl Macros used in NCURSES auto-configuration script.
+ dnl
+ dnl These macros are maintained separately from NCURSES.  The copyright on
+@@ -1769,6 +1769,29 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GETOPT_HEADER version: 4 updated: 2009/08/31 20:07:52
++dnl ----------------
++dnl Check for getopt's variables which are commonly defined in stdlib.h,
++dnl unistd.h or (nonstandard) in getopt.h
++AC_DEFUN([CF_GETOPT_HEADER],
++[
++AC_HAVE_HEADERS(unistd.h getopt.h)
++AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++AC_TRY_COMPILE([
++#include <$cf_header>],
++[int x = optind; char *y = optarg],
++[cf_cv_getopt_header=$cf_header
++ break])
++done
++])
++if test $cf_cv_getopt_header != none ; then
++	AC_DEFINE(HAVE_GETOPT_HEADER)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
+ dnl ----------------
+ AC_DEFUN([CF_GNAT_GENERICS],
+@@ -4376,7 +4399,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 6 updated: 2011/04/17 06:36:21
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -5624,13 +5647,13 @@
+ AC_DEFUN([CF_STRIP_G_OPT],
+ [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl CF_STRUCT_SIGACTION version: 4 updated: 2011/04/16 11:52:53
+ dnl -------------------
+ dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
+ dnl do this if we've found the sigaction function.
+-dnl
+-dnl If needed, define SVR4_ACTION.
+ AC_DEFUN([CF_STRUCT_SIGACTION],[
++AC_REQUIRE([CF_XOPEN_SOURCE])
++
+ if test "$ac_cv_func_sigaction" = yes; then
+ AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
+ AC_TRY_COMPILE([
+@@ -5645,22 +5668,24 @@
+ #include <signal.h>],
+ 	[struct sigaction act],
+ 	[sigact_bad=yes
+-	 AC_DEFINE(SVR4_ACTION)],
++	 AC_DEFINE(_POSIX_SOURCE)],
+ 	 [sigact_bad=unknown])])
+ AC_MSG_RESULT($sigact_bad)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
++dnl CF_STRUCT_TERMIOS version: 6 updated: 2011/04/16 11:52:53
+ dnl -----------------
+ dnl Some machines require _POSIX_SOURCE to completely define struct termios.
+-dnl If so, define SVR4_TERMIO
+ AC_DEFUN([CF_STRUCT_TERMIOS],[
++AC_REQUIRE([CF_XOPEN_SOURCE])
++
+ AC_CHECK_HEADERS( \
+ termio.h \
+ termios.h \
+ unistd.h \
+ )
++
+ if test "$ISC" = yes ; then
+ 	AC_CHECK_HEADERS( sys/termio.h )
+ fi
+@@ -5680,7 +5705,7 @@
+ #include <termios.h>],
+ 			[struct termios foo; int x = foo.c_iflag],
+ 			termios_bad=unknown,
+-			termios_bad=yes AC_DEFINE(SVR4_TERMIO))
++			termios_bad=yes AC_DEFINE(_POSIX_SOURCE))
+ 			])
+ 	AC_MSG_RESULT($termios_bad)
+ 	fi
+diff -Naur ncurses-5.9.orig/c++/cursesf.h ncurses-5.9/c++/cursesf.h
+--- ncurses-5.9.orig/c++/cursesf.h	2005-08-13 18:08:24.000000000 +0000
++++ ncurses-5.9/c++/cursesf.h	2011-05-17 16:13:10.158959174 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -31,7 +31,7 @@
+  *   Author: Juergen Pfeifer, 1997                                          *
+  ****************************************************************************/
+ 
+-// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
++// $Id: cursesf.h,v 1.29 2011/04/09 18:07:01 Alexander.Kolesen Exp $
+ 
+ #ifndef NCURSES_CURSESF_H_incl
+ #define NCURSES_CURSESF_H_incl 1
+@@ -681,7 +681,7 @@
+ 		   const T* p_UserData = STATIC_CAST(T*)(0),
+ 		   bool with_frame=FALSE,
+ 		   bool autoDelete_Fields=FALSE)
+-    : NCursesForm (Fields, with_frame, autoDelete_Fields) {
++    : NCursesForm (&Fields, with_frame, autoDelete_Fields) {
+       if (form)
+ 	set_user (const_cast<void *>(p_UserData));
+   };
+@@ -694,7 +694,7 @@
+ 		   const T* p_UserData = STATIC_CAST(T*)(0),
+ 		   bool with_frame=FALSE,
+ 		   bool autoDelete_Fields=FALSE)
+-    : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
++    : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x,
+ 		   with_frame, autoDelete_Fields) {
+       if (form)
+ 	set_user (const_cast<void *>(p_UserData));
+diff -Naur ncurses-5.9.orig/c++/cursesm.h ncurses-5.9/c++/cursesm.h
+--- ncurses-5.9.orig/c++/cursesm.h	2005-08-13 18:10:36.000000000 +0000
++++ ncurses-5.9/c++/cursesm.h	2011-05-17 16:13:10.158959174 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -31,7 +31,7 @@
+  *   Author: Juergen Pfeifer, 1997                                          *
+  ****************************************************************************/
+ 
+-// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
++// $Id: cursesm.h,v 1.26 2011/04/09 18:07:08 Alexander.Kolesen Exp $
+ 
+ #ifndef NCURSES_CURSESM_H_incl
+ #define NCURSES_CURSESM_H_incl 1
+@@ -639,7 +639,7 @@
+ 		   const T* p_UserData = STATIC_CAST(T*)(0),
+ 		   bool with_frame=FALSE,
+ 		   bool autoDelete_Items=FALSE)
+-    : NCursesMenu (Items, with_frame, autoDelete_Items) {
++    : NCursesMenu (&Items, with_frame, autoDelete_Items) {
+       if (menu)
+ 	set_user (const_cast<void *>(p_UserData));
+   };
+@@ -651,7 +651,7 @@
+ 		   int begin_x = 0,
+ 		   const T* p_UserData = STATIC_CAST(T*)(0),
+ 		   bool with_frame=FALSE)
+-    : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
++    : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) {
+       if (menu)
+ 	set_user (const_cast<void *>(p_UserData));
+   };
+diff -Naur ncurses-5.9.orig/config.guess ncurses-5.9/config.guess
+--- ncurses-5.9.orig/config.guess	2010-09-28 23:11:39.000000000 +0000
++++ ncurses-5.9/config.guess	2011-05-17 16:13:12.394711101 +0000
+@@ -1,10 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+-#   Free Software Foundation, Inc.
++#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
++#   2911 Free Software Foundation, Inc.
+ 
+-timestamp='2010-09-24'
++timestamp='2011-01-01'
+ 
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -57,8 +57,8 @@
+ 
+ Originally written by Per Bothner.
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+-Software Foundation, Inc.
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
++Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -92,7 +92,7 @@
+   exit 1
+ fi
+ 
+-trap 'exit 1' HUP INT TERM
++trap 'exit 1' 1 2 15
+ 
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+ # compiler to aid in system detection is discouraged as it requires
+@@ -106,7 +106,7 @@
+ 
+ set_cc_for_build='
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+  { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+@@ -270,7 +270,10 @@
+ 	# A Xn.n version is an unreleased experimental baselevel.
+ 	# 1.2 uses "1.2" for uname -r.
+ 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+-	exit ;;
++	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++	exitcode=$?
++	trap '' 0
++	exit $exitcode ;;
+     Alpha\ *:Windows_NT*:*)
+ 	# How do we know it's Interix rather than the generic POSIX subsystem?
+ 	# Should we change UNAME_MACHINE based on the output of uname instead
+@@ -326,8 +329,8 @@
+ 	    sparc) echo sparc-icl-nx7; exit ;;
+ 	esac ;;
+     s390x:SunOS:*:*)
+-    	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+-    	exit ;;
++	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++	exit ;;
+     sun4H:SunOS:5.*:*)
+ 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+@@ -495,7 +498,7 @@
+ 	else
+ 	    echo i586-dg-dgux${UNAME_RELEASE}
+ 	fi
+- 	exit ;;
++	exit ;;
+     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+ 	echo m88k-dolphin-sysv3
+ 	exit ;;
+@@ -820,8 +823,8 @@
+ 		echo x86_64-unknown-interix${UNAME_RELEASE}
+ 		exit ;;
+ 	    IA64)
+-	    	echo ia64-unknown-interix${UNAME_RELEASE}
+-	    	exit ;;
++		echo ia64-unknown-interix${UNAME_RELEASE}
++		exit ;;
+ 	esac ;;
+     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ 	echo i${UNAME_MACHINE}-pc-mks
+@@ -934,14 +937,14 @@
+ 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ 	;;
+     or32:Linux:*:*)
+-    	echo or32-unknown-linux-gnu
+-    	exit ;;
++	echo or32-unknown-linux-gnu
++	exit ;;
+     padre:Linux:*:*)
+ 	echo sparc-unknown-linux-gnu
+ 	exit ;;
+     parisc64:Linux:*:* | hppa64:Linux:*:*)
+-    	echo hppa64-unknown-linux-gnu
+-    	exit ;;
++	echo hppa64-unknown-linux-gnu
++	exit ;;
+     parisc:Linux:*:* | hppa:Linux:*:*)
+ 	# Look for CPU level
+ 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+diff -Naur ncurses-5.9.orig/config.sub ncurses-5.9/config.sub
+--- ncurses-5.9.orig/config.sub	2010-09-10 22:25:58.000000000 +0000
++++ ncurses-5.9/config.sub	2011-05-17 16:13:12.394711101 +0000
+@@ -2,9 +2,9 @@
+ # Configuration validation subroutine script.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+-#   Free Software Foundation, Inc.
++#   2011 Free Software Foundation, Inc.
+ 
+-timestamp='2010-09-11'
++timestamp='2011-04-01'
+ 
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -76,8 +76,8 @@
+ GNU config.sub ($timestamp)
+ 
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+-Software Foundation, Inc.
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
++Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -175,10 +175,10 @@
+ 		os=-chorusos
+ 		basic_machine=$1
+ 		;;
+- 	-chorusrdb)
+- 		os=-chorusrdb
++	-chorusrdb)
++		os=-chorusrdb
+ 		basic_machine=$1
+- 		;;
++		;;
+ 	-hiux*)
+ 		os=-hiuxwe2
+ 		;;
+@@ -283,12 +283,13 @@
+ 	| moxie \
+ 	| mt \
+ 	| msp430 \
+-	| nds32 | nds32le | nds32be\
++	| nds32 | nds32le | nds32be \
+ 	| nios | nios2 \
+ 	| ns16k | ns32k \
++	| open8 \
+ 	| or32 \
+ 	| pdp10 | pdp11 | pj | pjl \
+-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++	| powerpc | powerpc64 | powerpc64le | powerpcle \
+ 	| pyramid \
+ 	| rx \
+ 	| score \
+@@ -296,12 +297,12 @@
+ 	| sh64 | sh64le \
+ 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+-	| spu | strongarm \
+-	| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
++	| spu \
++	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ 	| ubicom32 \
+ 	| v850 | v850e \
+ 	| we32k \
+-	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++	| x86 | xc16x | xstormy16 | xtensa \
+ 	| z8k | z80)
+ 		basic_machine=$basic_machine-unknown
+ 		;;
+@@ -324,7 +325,15 @@
+ 	ms1)
+ 		basic_machine=mt-unknown
+ 		;;
+-
++	strongarm | thumb | xscale)
++		basic_machine=arm-unknown
++		;;
++	xscaleeb)
++		basic_machine=armeb-unknown
++		;;
++	xscaleel)
++		basic_machine=armel-unknown
++		;;
+ 	# We use `pc' rather than `unknown'
+ 	# because (1) that's what they normally are, and
+ 	# (2) the word "unknown" tends to confuse beginning users.
+@@ -382,24 +391,25 @@
+ 	| nds32-* | nds32le-* | nds32be-* \
+ 	| nios-* | nios2-* \
+ 	| none-* | np1-* | ns16k-* | ns32k-* \
++	| open8-* \
+ 	| orion-* \
+ 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ 	| pyramid-* \
+ 	| romp-* | rs6000-* | rx-* \
+ 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ 	| sparclite-* \
+-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+-	| tahoe-* | thumb-* \
++	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++	| tahoe-* \
+ 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ 	| tile-* | tilegx-* \
+ 	| tron-* \
+ 	| ubicom32-* \
+ 	| v850-* | v850e-* | vax-* \
+ 	| we32k-* \
+-	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++	| x86-* | x86_64-* | xc16x-* | xps100-* \
+ 	| xstormy16-* | xtensa*-* \
+ 	| ymp-* \
+ 	| z8k-* | z80-*)
+@@ -539,7 +549,7 @@
+ 		basic_machine=craynv-cray
+ 		os=-unicosmp
+ 		;;
+-	cr16)
++	cr16 | cr16-*)
+ 		basic_machine=cr16-unknown
+ 		os=-elf
+ 		;;
+@@ -826,10 +836,10 @@
+ 		basic_machine=v70-nec
+ 		os=-sysv
+ 		;;
+-	next | m*-next )
++	next | m*-next)
+ 		basic_machine=m68k-next
+ 		case $os in
+-		    -nextstep* )
++		    -nextstep*)
+ 			;;
+ 		    -ns2*)
+ 		      os=-nextstep2
+@@ -948,11 +958,14 @@
+ 	pn)
+ 		basic_machine=pn-gould
+ 		;;
+-	power)	basic_machine=power-ibm
++	power)
++		basic_machine=power-ibm
+ 		;;
+-	ppc)	basic_machine=powerpc-unknown
++	ppc | ppcbe)
++		basic_machine=powerpc-unknown
+ 		;;
+-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++	ppc-* | ppcbe-*)
++		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppcle | powerpclittle | ppc-le | powerpc-little)
+ 		basic_machine=powerpcle-unknown
+@@ -960,9 +973,11 @@
+ 	ppcle-* | powerpclittle-*)
+ 		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+-	ppc64)	basic_machine=powerpc64-unknown
++	ppc64)
++		basic_machine=powerpc64-unknown
+ 		;;
+-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
++	ppc64-*)
++		basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ 		basic_machine=powerpc64le-unknown
+@@ -1046,6 +1061,9 @@
+ 		basic_machine=i860-stratus
+ 		os=-sysv4
+ 		;;
++	strongarm-* | thumb-*)
++		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++		;;
+ 	sun2)
+ 		basic_machine=m68000-sun
+ 		;;
+@@ -1178,6 +1196,9 @@
+ 	xps | xps100)
+ 		basic_machine=xps100-honeywell
+ 		;;
++	xscale-* | xscalee[bl]-*)
++		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++		;;
+ 	ymp)
+ 		basic_machine=ymp-cray
+ 		os=-unicos
+@@ -1400,7 +1421,7 @@
+ 	-nova*)
+ 		os=-rtmk-nova
+ 		;;
+-	-ns2 )
++	-ns2)
+ 		os=-nextstep2
+ 		;;
+ 	-nsk*)
+@@ -1597,7 +1618,7 @@
+ 	m88k-omron*)
+ 		os=-luna
+ 		;;
+-	*-next )
++	*-next)
+ 		os=-nextstep
+ 		;;
+ 	*-sequent)
+diff -Naur ncurses-5.9.orig/configure ncurses-5.9/configure
+--- ncurses-5.9.orig/configure	2011-03-31 23:35:51.000000000 +0000
++++ ncurses-5.9/configure	2011-05-17 16:13:14.822441726 +0000
+@@ -1,5 +1,5 @@
+ #! /bin/sh
+-# From configure.in Revision: 1.520 .
++# From configure.in Revision: 1.522 .
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated by Autoconf 2.52.20101002.
+ #
+@@ -10066,6 +10066,10 @@
+ if test "$with_ext_funcs" = yes ; then
+ 	NCURSES_EXT_FUNCS=1
+ 	cat >>confdefs.h <<\EOF
++#define HAVE_ASSUME_DEFAULT_COLORS 1
++EOF
++
++	cat >>confdefs.h <<\EOF
+ #define HAVE_CURSES_VERSION 1
+ EOF
+ 
+@@ -10090,6 +10094,14 @@
+ EOF
+ 
+ 	cat >>confdefs.h <<\EOF
++#define HAVE_USE_SCREEN 1
++EOF
++
++	cat >>confdefs.h <<\EOF
++#define HAVE_USE_WINDOW 1
++EOF
++
++	cat >>confdefs.h <<\EOF
+ #define HAVE_WRESIZE 1
+ EOF
+ 
+@@ -10103,7 +10115,7 @@
+ 	GENERATED_EXT_FUNCS=
+ fi
+ 
+-echo "$as_me:10106: checking if you want to build with experimental SCREEN extensions" >&5
++echo "$as_me:10118: checking if you want to build with experimental SCREEN extensions" >&5
+ echo $ECHO_N "checking if you want to build with experimental SCREEN extensions... $ECHO_C" >&6
+ 
+ # Check whether --enable-sp-funcs or --disable-sp-funcs was given.
+@@ -10113,7 +10125,7 @@
+ else
+   with_sp_funcs=no
+ fi;
+-echo "$as_me:10116: result: $with_sp_funcs" >&5
++echo "$as_me:10128: result: $with_sp_funcs" >&5
+ echo "${ECHO_T}$with_sp_funcs" >&6
+ if test "$with_sp_funcs" = yes ; then
+ 	NCURSES_SP_FUNCS=1
+@@ -10127,7 +10139,7 @@
+ 	GENERATED_SP_FUNCS=
+ fi
+ 
+-echo "$as_me:10130: checking if you want to build with experimental terminal-driver" >&5
++echo "$as_me:10142: checking if you want to build with experimental terminal-driver" >&5
+ echo $ECHO_N "checking if you want to build with experimental terminal-driver... $ECHO_C" >&6
+ 
+ # Check whether --enable-term-driver or --disable-term-driver was given.
+@@ -10137,7 +10149,7 @@
+ else
+   with_term_driver=no
+ fi;
+-echo "$as_me:10140: result: $with_term_driver" >&5
++echo "$as_me:10152: result: $with_term_driver" >&5
+ echo "${ECHO_T}$with_term_driver" >&6
+ if test "$with_term_driver" = yes ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -10145,14 +10157,14 @@
+ EOF
+ 
+ 	if test "$with_sp_funcs" != yes ; then
+-		{ { echo "$as_me:10148: error: The term-driver option relies upon sp-funcs" >&5
++		{ { echo "$as_me:10160: error: The term-driver option relies upon sp-funcs" >&5
+ echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;}
+    { (exit 1); exit 1; }; }
+ 	fi
+ fi
+ 
+ ###   use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:10155: checking for extended use of const keyword" >&5
++echo "$as_me:10167: checking for extended use of const keyword" >&5
+ echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+ 
+ # Check whether --enable-const or --disable-const was given.
+@@ -10162,7 +10174,7 @@
+ else
+   with_ext_const=no
+ fi;
+-echo "$as_me:10165: result: $with_ext_const" >&5
++echo "$as_me:10177: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+ if test "$with_ext_const" = yes ; then
+@@ -10170,7 +10182,7 @@
+ fi
+ 
+ ###   use option --enable-ext-colors to turn on use of colors beyond 16.
+-echo "$as_me:10173: checking if you want to use extended colors" >&5
++echo "$as_me:10185: checking if you want to use extended colors" >&5
+ echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-colors or --disable-ext-colors was given.
+@@ -10180,12 +10192,12 @@
+ else
+   with_ext_colors=no
+ fi;
+-echo "$as_me:10183: result: $with_ext_colors" >&5
++echo "$as_me:10195: result: $with_ext_colors" >&5
+ echo "${ECHO_T}$with_ext_colors" >&6
+ NCURSES_EXT_COLORS=0
+ if test "$with_ext_colors" = yes ; then
+ 	if test "$with_widec" != yes ; then
+-		{ { echo "$as_me:10188: error: This option applies only to wide-character library" >&5
++		{ { echo "$as_me:10200: error: This option applies only to wide-character library" >&5
+ echo "$as_me: error: This option applies only to wide-character library" >&2;}
+    { (exit 1); exit 1; }; }
+ 	else
+@@ -10196,7 +10208,7 @@
+ 	5.*)
+ 		cf_cv_rel_version=6.0
+ 		cf_cv_abi_version=6
+-		{ echo "$as_me:10199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++		{ echo "$as_me:10211: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ 		;;
+ 	esac
+@@ -10211,7 +10223,7 @@
+ fi
+ 
+ ###   use option --enable-ext-mouse to modify coding to support 5-button mice
+-echo "$as_me:10214: checking if you want to use extended mouse encoding" >&5
++echo "$as_me:10226: checking if you want to use extended mouse encoding" >&5
+ echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
+ 
+ # Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+@@ -10221,7 +10233,7 @@
+ else
+   with_ext_mouse=no
+ fi;
+-echo "$as_me:10224: result: $with_ext_mouse" >&5
++echo "$as_me:10236: result: $with_ext_mouse" >&5
+ echo "${ECHO_T}$with_ext_mouse" >&6
+ NCURSES_MOUSE_VERSION=1
+ if test "$with_ext_mouse" = yes ; then
+@@ -10232,7 +10244,7 @@
+ 	5.*)
+ 		cf_cv_rel_version=6.0
+ 		cf_cv_abi_version=6
+-		{ echo "$as_me:10235: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++		{ echo "$as_me:10247: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ 		;;
+ 	esac
+@@ -10240,7 +10252,7 @@
+ 
+ fi
+ 
+-echo "$as_me:10243: checking if you want \$NCURSES_NO_PADDING code" >&5
++echo "$as_me:10255: checking if you want \$NCURSES_NO_PADDING code" >&5
+ echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
+ 
+ # Check whether --enable-no-padding or --disable-no-padding was given.
+@@ -10250,19 +10262,19 @@
+ else
+   with_no_padding=$with_ext_funcs
+ fi;
+-echo "$as_me:10253: result: $with_no_padding" >&5
++echo "$as_me:10265: result: $with_no_padding" >&5
+ echo "${ECHO_T}$with_no_padding" >&6
+ test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
+ #define NCURSES_NO_PADDING 1
+ EOF
+ 
+-echo "$as_me:10259: checking for ANSI C header files" >&5
++echo "$as_me:10271: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10265 "configure"
++#line 10277 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -10270,13 +10282,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:10273: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10285: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:10279: \$? = $ac_status" >&5
++  echo "$as_me:10291: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10298,7 +10310,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10301 "configure"
++#line 10313 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -10316,7 +10328,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10319 "configure"
++#line 10331 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -10337,7 +10349,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10340 "configure"
++#line 10352 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -10363,15 +10375,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10366: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10378: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10369: \$? = $ac_status" >&5
++  echo "$as_me:10381: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10371: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10383: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10374: \$? = $ac_status" >&5
++  echo "$as_me:10386: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -10384,7 +10396,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:10387: result: $ac_cv_header_stdc" >&5
++echo "$as_me:10399: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -10400,28 +10412,28 @@
+                   inttypes.h stdint.h unistd.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:10403: checking for $ac_header" >&5
++echo "$as_me:10415: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10409 "configure"
++#line 10421 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10415: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10427: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10418: \$? = $ac_status" >&5
++  echo "$as_me:10430: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10421: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10433: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10424: \$? = $ac_status" >&5
++  echo "$as_me:10436: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Header=yes"
+ else
+@@ -10431,7 +10443,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10434: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10446: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -10441,13 +10453,13 @@
+ fi
+ done
+ 
+-echo "$as_me:10444: checking for signed char" >&5
++echo "$as_me:10456: checking for signed char" >&5
+ echo $ECHO_N "checking for signed char... $ECHO_C" >&6
+ if test "${ac_cv_type_signed_char+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10450 "configure"
++#line 10462 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10462,16 +10474,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10465: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10477: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10468: \$? = $ac_status" >&5
++  echo "$as_me:10480: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10471: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10483: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10474: \$? = $ac_status" >&5
++  echo "$as_me:10486: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signed_char=yes
+ else
+@@ -10481,10 +10493,10 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10484: result: $ac_cv_type_signed_char" >&5
++echo "$as_me:10496: result: $ac_cv_type_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_type_signed_char" >&6
+ 
+-echo "$as_me:10487: checking size of signed char" >&5
++echo "$as_me:10499: checking size of signed char" >&5
+ echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_signed_char+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10493,7 +10505,7 @@
+   if test "$cross_compiling" = yes; then
+   # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10496 "configure"
++#line 10508 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10505,21 +10517,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10508: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10520: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10511: \$? = $ac_status" >&5
++  echo "$as_me:10523: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10514: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10526: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10517: \$? = $ac_status" >&5
++  echo "$as_me:10529: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_lo=0 ac_mid=0
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 10522 "configure"
++#line 10534 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10531,16 +10543,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10534: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10546: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10537: \$? = $ac_status" >&5
++  echo "$as_me:10549: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10540: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10552: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10543: \$? = $ac_status" >&5
++  echo "$as_me:10555: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_hi=$ac_mid; break
+ else
+@@ -10556,7 +10568,7 @@
+ ac_hi=-1 ac_mid=-1
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 10559 "configure"
++#line 10571 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10568,16 +10580,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10571: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10583: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10574: \$? = $ac_status" >&5
++  echo "$as_me:10586: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10577: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10589: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10580: \$? = $ac_status" >&5
++  echo "$as_me:10592: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_lo=$ac_mid; break
+ else
+@@ -10593,7 +10605,7 @@
+ while test "x$ac_lo" != "x$ac_hi"; do
+   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10596 "configure"
++#line 10608 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10605,16 +10617,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10608: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10620: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:10611: \$? = $ac_status" >&5
++  echo "$as_me:10623: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:10614: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10626: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10617: \$? = $ac_status" >&5
++  echo "$as_me:10629: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_hi=$ac_mid
+ else
+@@ -10627,12 +10639,12 @@
+ ac_cv_sizeof_signed_char=$ac_lo
+ else
+   if test "$cross_compiling" = yes; then
+-  { { echo "$as_me:10630: error: cannot run test program while cross compiling" >&5
++  { { echo "$as_me:10642: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10635 "configure"
++#line 10647 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10648,15 +10660,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10651: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10663: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10654: \$? = $ac_status" >&5
++  echo "$as_me:10666: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:10656: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10668: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10659: \$? = $ac_status" >&5
++  echo "$as_me:10671: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_sizeof_signed_char=`cat conftest.val`
+ else
+@@ -10672,7 +10684,7 @@
+   ac_cv_sizeof_signed_char=0
+ fi
+ fi
+-echo "$as_me:10675: result: $ac_cv_sizeof_signed_char" >&5
++echo "$as_me:10687: result: $ac_cv_sizeof_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
+ cat >>confdefs.h <<EOF
+ #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
+@@ -10683,7 +10695,7 @@
+ else
+ 	NCURSES_SBOOL="char"
+ fi
+-echo "$as_me:10686: checking if you want to use signed Boolean array in term.h" >&5
++echo "$as_me:10698: checking if you want to use signed Boolean array in term.h" >&5
+ echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
+ 
+ # Check whether --enable-signed-char or --disable-signed-char was given.
+@@ -10693,12 +10705,12 @@
+ else
+   with_signed_char=no
+ fi;
+-echo "$as_me:10696: result: $with_signed_char" >&5
++echo "$as_me:10708: result: $with_signed_char" >&5
+ echo "${ECHO_T}$with_signed_char" >&6
+ test "$with_signed_char" != yes && NCURSES_SBOOL="char"
+ 
+ ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
+-echo "$as_me:10701: checking if you want SIGWINCH handler" >&5
++echo "$as_me:10713: checking if you want SIGWINCH handler" >&5
+ echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
+ 
+ # Check whether --enable-sigwinch or --disable-sigwinch was given.
+@@ -10708,14 +10720,14 @@
+ else
+   with_sigwinch=$with_ext_funcs
+ fi;
+-echo "$as_me:10711: result: $with_sigwinch" >&5
++echo "$as_me:10723: result: $with_sigwinch" >&5
+ echo "${ECHO_T}$with_sigwinch" >&6
+ test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SIGWINCH 1
+ EOF
+ 
+ ###   use option --enable-tcap-names to allow user to define new capabilities
+-echo "$as_me:10718: checking if you want user-definable terminal capabilities like termcap" >&5
++echo "$as_me:10730: checking if you want user-definable terminal capabilities like termcap" >&5
+ echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
+ 
+ # Check whether --enable-tcap-names or --disable-tcap-names was given.
+@@ -10725,7 +10737,7 @@
+ else
+   with_tcap_names=$with_ext_funcs
+ fi;
+-echo "$as_me:10728: result: $with_tcap_names" >&5
++echo "$as_me:10740: result: $with_tcap_names" >&5
+ echo "${ECHO_T}$with_tcap_names" >&6
+ NCURSES_XNAMES=0
+ test "$with_tcap_names" = yes && NCURSES_XNAMES=1
+@@ -10733,7 +10745,7 @@
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+ 
+-echo "$as_me:10736: checking if you want all development code" >&5
++echo "$as_me:10748: checking if you want all development code" >&5
+ echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+ 
+ # Check whether --with-develop or --without-develop was given.
+@@ -10743,11 +10755,11 @@
+ else
+   with_develop=no
+ fi;
+-echo "$as_me:10746: result: $with_develop" >&5
++echo "$as_me:10758: result: $with_develop" >&5
+ echo "${ECHO_T}$with_develop" >&6
+ 
+ ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
+-echo "$as_me:10750: checking if you want hard-tabs code" >&5
++echo "$as_me:10762: checking if you want hard-tabs code" >&5
+ echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+ 
+ # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
+@@ -10757,14 +10769,14 @@
+ else
+   enable_hard_tabs=$with_develop
+ fi;
+-echo "$as_me:10760: result: $enable_hard_tabs" >&5
++echo "$as_me:10772: result: $enable_hard_tabs" >&5
+ echo "${ECHO_T}$enable_hard_tabs" >&6
+ test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HARD_TABS 1
+ EOF
+ 
+ ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+-echo "$as_me:10767: checking if you want limited support for xmc" >&5
++echo "$as_me:10779: checking if you want limited support for xmc" >&5
+ echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+ 
+ # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
+@@ -10774,7 +10786,7 @@
+ else
+   enable_xmc_glitch=$with_develop
+ fi;
+-echo "$as_me:10777: result: $enable_xmc_glitch" >&5
++echo "$as_me:10789: result: $enable_xmc_glitch" >&5
+ echo "${ECHO_T}$enable_xmc_glitch" >&6
+ test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
+ #define USE_XMC_SUPPORT 1
+@@ -10783,7 +10795,7 @@
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+ 
+-echo "$as_me:10786: checking if you do not want to assume colors are white-on-black" >&5
++echo "$as_me:10798: checking if you do not want to assume colors are white-on-black" >&5
+ echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
+ 
+ # Check whether --enable-assumed-color or --disable-assumed-color was given.
+@@ -10793,14 +10805,14 @@
+ else
+   with_assumed_color=yes
+ fi;
+-echo "$as_me:10796: result: $with_assumed_color" >&5
++echo "$as_me:10808: result: $with_assumed_color" >&5
+ echo "${ECHO_T}$with_assumed_color" >&6
+ test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
+ #define USE_ASSUMED_COLOR 1
+ EOF
+ 
+ ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
+-echo "$as_me:10803: checking if you want hashmap scrolling-optimization code" >&5
++echo "$as_me:10815: checking if you want hashmap scrolling-optimization code" >&5
+ echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+ 
+ # Check whether --enable-hashmap or --disable-hashmap was given.
+@@ -10810,14 +10822,14 @@
+ else
+   with_hashmap=yes
+ fi;
+-echo "$as_me:10813: result: $with_hashmap" >&5
++echo "$as_me:10825: result: $with_hashmap" >&5
+ echo "${ECHO_T}$with_hashmap" >&6
+ test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
+ #define USE_HASHMAP 1
+ EOF
+ 
+ ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+-echo "$as_me:10820: checking if you want colorfgbg code" >&5
++echo "$as_me:10832: checking if you want colorfgbg code" >&5
+ echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
+ 
+ # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
+@@ -10827,14 +10839,14 @@
+ else
+   with_colorfgbg=no
+ fi;
+-echo "$as_me:10830: result: $with_colorfgbg" >&5
++echo "$as_me:10842: result: $with_colorfgbg" >&5
+ echo "${ECHO_T}$with_colorfgbg" >&6
+ test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+ #define USE_COLORFGBG 1
+ EOF
+ 
+ ###   use option --enable-interop to turn on use of bindings used for interop
+-echo "$as_me:10837: checking if you want interop bindings" >&5
++echo "$as_me:10849: checking if you want interop bindings" >&5
+ echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6
+ 
+ # Check whether --enable-interop or --disable-interop was given.
+@@ -10844,7 +10856,7 @@
+ else
+   with_exp_interop=no
+ fi;
+-echo "$as_me:10847: result: $with_exp_interop" >&5
++echo "$as_me:10859: result: $with_exp_interop" >&5
+ echo "${ECHO_T}$with_exp_interop" >&6
+ 
+ NCURSES_INTEROP_FUNCS=0
+@@ -10853,7 +10865,7 @@
+ # This is still experimental (20080329), but should ultimately be moved to
+ # the script-block --with-normal, etc.
+ 
+-echo "$as_me:10856: checking if you want to link with the pthread library" >&5
++echo "$as_me:10868: checking if you want to link with the pthread library" >&5
+ echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
+ 
+ # Check whether --with-pthread or --without-pthread was given.
+@@ -10863,27 +10875,27 @@
+ else
+   with_pthread=no
+ fi;
+-echo "$as_me:10866: result: $with_pthread" >&5
++echo "$as_me:10878: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+ 
+ if test "$with_pthread" != no ; then
+-    echo "$as_me:10870: checking for pthread.h" >&5
++    echo "$as_me:10882: checking for pthread.h" >&5
+ echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
+ if test "${ac_cv_header_pthread_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10876 "configure"
++#line 10888 "configure"
+ #include "confdefs.h"
+ #include <pthread.h>
+ _ACEOF
+-if { (eval echo "$as_me:10880: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10892: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:10886: \$? = $ac_status" >&5
++  echo "$as_me:10898: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10902,7 +10914,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:10905: result: $ac_cv_header_pthread_h" >&5
++echo "$as_me:10917: result: $ac_cv_header_pthread_h" >&5
+ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
+ if test $ac_cv_header_pthread_h = yes; then
+ 
+@@ -10910,12 +10922,12 @@
+ #define HAVE_PTHREADS_H 1
+ EOF
+ 
+-        echo "$as_me:10913: checking if we can link with the pthread library" >&5
++        echo "$as_me:10925: checking if we can link with the pthread library" >&5
+ echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
+         cf_save_LIBS="$LIBS"
+         LIBS="-lpthread $LIBS"
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 10918 "configure"
++#line 10930 "configure"
+ #include "confdefs.h"
+ 
+ #include <pthread.h>
+@@ -10931,16 +10943,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10934: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10946: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10937: \$? = $ac_status" >&5
++  echo "$as_me:10949: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10940: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10952: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10943: \$? = $ac_status" >&5
++  echo "$as_me:10955: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   with_pthread=yes
+ else
+@@ -10950,7 +10962,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+         LIBS="$cf_save_LIBS"
+-        echo "$as_me:10953: result: $with_pthread" >&5
++        echo "$as_me:10965: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+ 
+         if test "$with_pthread" = yes ; then
+@@ -10960,7 +10972,7 @@
+ EOF
+ 
+         else
+-            { { echo "$as_me:10963: error: Cannot link with pthread library" >&5
++            { { echo "$as_me:10975: error: Cannot link with pthread library" >&5
+ echo "$as_me: error: Cannot link with pthread library" >&2;}
+    { (exit 1); exit 1; }; }
+         fi
+@@ -10970,13 +10982,13 @@
+ fi
+ 
+ if test "x$with_pthread" != xno; then
+-	echo "$as_me:10973: checking for pthread_kill" >&5
++	echo "$as_me:10985: checking for pthread_kill" >&5
+ echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6
+ if test "${ac_cv_func_pthread_kill+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10979 "configure"
++#line 10991 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char pthread_kill (); below.  */
+@@ -11007,16 +11019,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11010: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11022: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11013: \$? = $ac_status" >&5
++  echo "$as_me:11025: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11016: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11028: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11019: \$? = $ac_status" >&5
++  echo "$as_me:11031: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_pthread_kill=yes
+ else
+@@ -11026,11 +11038,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11029: result: $ac_cv_func_pthread_kill" >&5
++echo "$as_me:11041: result: $ac_cv_func_pthread_kill" >&5
+ echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6
+ if test $ac_cv_func_pthread_kill = yes; then
+ 
+-		echo "$as_me:11033: checking if you want to allow EINTR in wgetch with pthreads" >&5
++		echo "$as_me:11045: checking if you want to allow EINTR in wgetch with pthreads" >&5
+ echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6
+ 
+ # Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given.
+@@ -11040,7 +11052,7 @@
+ else
+   use_pthreads_eintr=no
+ fi;
+-		echo "$as_me:11043: result: $use_pthreads_eintr" >&5
++		echo "$as_me:11055: result: $use_pthreads_eintr" >&5
+ echo "${ECHO_T}$use_pthreads_eintr" >&6
+ 		if test $use_pthreads_eintr = yes ; then
+ 			cat >>confdefs.h <<\EOF
+@@ -11050,7 +11062,7 @@
+ 		fi
+ fi
+ 
+-	echo "$as_me:11053: checking if you want to use weak-symbols for pthreads" >&5
++	echo "$as_me:11065: checking if you want to use weak-symbols for pthreads" >&5
+ echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
+ 
+ # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
+@@ -11060,18 +11072,18 @@
+ else
+   use_weak_symbols=no
+ fi;
+-	echo "$as_me:11063: result: $use_weak_symbols" >&5
++	echo "$as_me:11075: result: $use_weak_symbols" >&5
+ echo "${ECHO_T}$use_weak_symbols" >&6
+ 	if test "$use_weak_symbols" = yes ; then
+ 
+-echo "$as_me:11067: checking if $CC supports weak symbols" >&5
++echo "$as_me:11079: checking if $CC supports weak symbols" >&5
+ echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
+ if test "${cf_cv_weak_symbols+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11074 "configure"
++#line 11086 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -11097,16 +11109,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11100: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11112: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11103: \$? = $ac_status" >&5
++  echo "$as_me:11115: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11106: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11118: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11109: \$? = $ac_status" >&5
++  echo "$as_me:11121: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_weak_symbols=yes
+ else
+@@ -11117,7 +11129,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:11120: result: $cf_cv_weak_symbols" >&5
++echo "$as_me:11132: result: $cf_cv_weak_symbols" >&5
+ echo "${ECHO_T}$cf_cv_weak_symbols" >&6
+ 
+ 	else
+@@ -11148,7 +11160,7 @@
+ # opaque outside of that, so there is no --enable-opaque option.  We can use
+ # this option without --with-pthreads, but this will be always set for
+ # pthreads.
+-echo "$as_me:11151: checking if you want experimental reentrant code" >&5
++echo "$as_me:11163: checking if you want experimental reentrant code" >&5
+ echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
+ 
+ # Check whether --enable-reentrant or --disable-reentrant was given.
+@@ -11158,7 +11170,7 @@
+ else
+   with_reentrant=no
+ fi;
+-echo "$as_me:11161: result: $with_reentrant" >&5
++echo "$as_me:11173: result: $with_reentrant" >&5
+ echo "${ECHO_T}$with_reentrant" >&6
+ if test "$with_reentrant" = yes ; then
+ 	cf_cv_enable_reentrant=1
+@@ -11184,7 +11196,7 @@
+ 	5.*)
+ 		cf_cv_rel_version=6.0
+ 		cf_cv_abi_version=6
+-		{ echo "$as_me:11187: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++		{ echo "$as_me:11199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ 		;;
+ 	esac
+@@ -11199,7 +11211,7 @@
+ 
+ ### Allow using a different wrap-prefix
+ if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+-	echo "$as_me:11202: checking for prefix used to wrap public variables" >&5
++	echo "$as_me:11214: checking for prefix used to wrap public variables" >&5
+ echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
+ 
+ # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
+@@ -11209,7 +11221,7 @@
+ else
+   NCURSES_WRAP_PREFIX=_nc_
+ fi;
+-	echo "$as_me:11212: result: $NCURSES_WRAP_PREFIX" >&5
++	echo "$as_me:11224: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+ else
+ 	NCURSES_WRAP_PREFIX=_nc_
+@@ -11219,7 +11231,7 @@
+ #define NCURSES_WRAP_PREFIX "$NCURSES_WRAP_PREFIX"
+ EOF
+ 
+-echo "$as_me:11222: checking if you want experimental safe-sprintf code" >&5
++echo "$as_me:11234: checking if you want experimental safe-sprintf code" >&5
+ echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
+ 
+ # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
+@@ -11229,7 +11241,7 @@
+ else
+   with_safe_sprintf=no
+ fi;
+-echo "$as_me:11232: result: $with_safe_sprintf" >&5
++echo "$as_me:11244: result: $with_safe_sprintf" >&5
+ echo "${ECHO_T}$with_safe_sprintf" >&6
+ test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SAFE_SPRINTF 1
+@@ -11238,7 +11250,7 @@
+ ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+ # when hashmap is used scroll hints are useless
+ if test "$with_hashmap" = no ; then
+-echo "$as_me:11241: checking if you want to experiment without scrolling-hints code" >&5
++echo "$as_me:11253: checking if you want to experiment without scrolling-hints code" >&5
+ echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
+ 
+ # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
+@@ -11248,7 +11260,7 @@
+ else
+   with_scroll_hints=yes
+ fi;
+-echo "$as_me:11251: result: $with_scroll_hints" >&5
++echo "$as_me:11263: result: $with_scroll_hints" >&5
+ echo "${ECHO_T}$with_scroll_hints" >&6
+ test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
+ #define USE_SCROLL_HINTS 1
+@@ -11256,7 +11268,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11259: checking if you want experimental wgetch-events code" >&5
++echo "$as_me:11271: checking if you want experimental wgetch-events code" >&5
+ echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
+ 
+ # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
+@@ -11266,7 +11278,7 @@
+ else
+   with_wgetch_events=no
+ fi;
+-echo "$as_me:11269: result: $with_wgetch_events" >&5
++echo "$as_me:11281: result: $with_wgetch_events" >&5
+ echo "${ECHO_T}$with_wgetch_events" >&6
+ test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
+ #define NCURSES_WGETCH_EVENTS 1
+@@ -11275,7 +11287,7 @@
+ ###############################################################################
+ 
+ ###	use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:11278: checking if you want to display full commands during build" >&5
++echo "$as_me:11290: checking if you want to display full commands during build" >&5
+ echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
+ 
+ # Check whether --enable-echo or --disable-echo was given.
+@@ -11292,11 +11304,11 @@
+ 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+ 	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
+ fi
+-echo "$as_me:11295: result: $with_echo" >&5
++echo "$as_me:11307: result: $with_echo" >&5
+ echo "${ECHO_T}$with_echo" >&6
+ 
+ ###	use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:11299: checking if you want to see compiler warnings" >&5
++echo "$as_me:11311: checking if you want to see compiler warnings" >&5
+ echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
+ 
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -11304,7 +11316,7 @@
+   enableval="$enable_warnings"
+   with_warnings=$enableval
+ fi;
+-echo "$as_me:11307: result: $with_warnings" >&5
++echo "$as_me:11319: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+ 
+ if test "x$with_warnings" = "xyes"; then
+@@ -11316,12 +11328,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:11319: checking if this is really Intel C compiler" >&5
++		echo "$as_me:11331: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$CFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 11324 "configure"
++#line 11336 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -11338,16 +11350,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11341: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11353: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11344: \$? = $ac_status" >&5
++  echo "$as_me:11356: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11347: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11359: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11350: \$? = $ac_status" >&5
++  echo "$as_me:11362: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_COMPILER=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -11358,14 +11370,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:11361: result: $INTEL_COMPILER" >&5
++		echo "$as_me:11373: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ 		;;
+ 	esac
+ fi
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 11368 "${as_me:-configure}"
++#line 11380 "${as_me:-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -11382,7 +11394,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #279: controlling expression is constant
+ 
+-	{ echo "$as_me:11385: checking for $CC warning options..." >&5
++	{ echo "$as_me:11397: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-Wall"
+@@ -11398,12 +11410,12 @@
+ 		wd981
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:11401: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:11413: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11404: \$? = $ac_status" >&5
++  echo "$as_me:11416: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:11406: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:11418: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ 		fi
+@@ -11412,7 +11424,7 @@
+ 
+ elif test "$GCC" = yes
+ then
+-	{ echo "$as_me:11415: checking for $CC warning options..." >&5
++	{ echo "$as_me:11427: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS=
+@@ -11432,12 +11444,12 @@
+ 		Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:11435: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:11447: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11438: \$? = $ac_status" >&5
++  echo "$as_me:11450: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:11440: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:11452: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			case $cf_opt in #(vi
+ 			Wcast-qual) #(vi
+@@ -11448,7 +11460,7 @@
+ 				[34].*)
+ 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+ 
+-echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++echo "${as_me:-configure}:11463: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+ 
+ 					continue;;
+ 				esac
+@@ -11468,12 +11480,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:11471: checking if this is really Intel C++ compiler" >&5
++		echo "$as_me:11483: checking if this is really Intel C++ compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CXXFLAGS"
+ 		CXXFLAGS="$CXXFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 11476 "configure"
++#line 11488 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -11490,16 +11502,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11493: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11505: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11496: \$? = $ac_status" >&5
++  echo "$as_me:11508: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11499: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11511: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11502: \$? = $ac_status" >&5
++  echo "$as_me:11514: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_CPLUSPLUS=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -11510,7 +11522,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CXXFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:11513: result: $INTEL_CPLUSPLUS" >&5
++		echo "$as_me:11525: result: $INTEL_CPLUSPLUS" >&5
+ echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
+ 		;;
+ 	esac
+@@ -11524,7 +11536,7 @@
+ ac_main_return=return
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 11527 "configure"
++#line 11539 "configure"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -11542,7 +11554,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #269: invalid format string conversion
+ 
+-	{ echo "$as_me:11545: checking for $CC warning options..." >&5
++	{ echo "$as_me:11557: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CXXFLAGS="$CXXFLAGS"
+ 	EXTRA_CXXFLAGS="-Wall"
+@@ -11559,12 +11571,12 @@
+ 		wd981
+ 	do
+ 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:11562: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:11574: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11565: \$? = $ac_status" >&5
++  echo "$as_me:11577: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:11567: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:11579: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ 		fi
+@@ -11573,7 +11585,7 @@
+ 
+ elif test "$GXX" = yes
+ then
+-	{ echo "$as_me:11576: checking for $CXX warning options..." >&5
++	{ echo "$as_me:11588: checking for $CXX warning options..." >&5
+ echo "$as_me: checking for $CXX warning options..." >&6;}
+ 	cf_save_CXXFLAGS="$CXXFLAGS"
+ 	EXTRA_CXXFLAGS="-W -Wall"
+@@ -11602,16 +11614,16 @@
+ 		Wundef $cf_gxx_extra_warnings Wno-unused
+ 	do
+ 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+-		if { (eval echo "$as_me:11605: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:11617: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11608: \$? = $ac_status" >&5
++  echo "$as_me:11620: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:11610: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:11622: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ 		else
+-			test -n "$verbose" && echo "$as_me:11614: result: ... no -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:11626: result: ... no -$cf_opt" >&5
+ echo "${ECHO_T}... no -$cf_opt" >&6
+ 		fi
+ 	done
+@@ -11647,10 +11659,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+-	{ echo "$as_me:11650: checking for $CC __attribute__ directives..." >&5
++	{ echo "$as_me:11662: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 11653 "${as_me:-configure}"
++#line 11665 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -11699,12 +11711,12 @@
+ 			;;
+ 		esac
+ 
+-		if { (eval echo "$as_me:11702: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:11714: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11705: \$? = $ac_status" >&5
++  echo "$as_me:11717: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:11707: result: ... $cf_attribute" >&5
++			test -n "$verbose" && echo "$as_me:11719: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ 			cat conftest.h >>confdefs.h
+ 			case $cf_attribute in #(vi
+@@ -11740,7 +11752,7 @@
+ fi
+ 
+ ###	use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:11743: checking if you want to enable runtime assertions" >&5
++echo "$as_me:11755: checking if you want to enable runtime assertions" >&5
+ echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
+ 
+ # Check whether --enable-assertions or --disable-assertions was given.
+@@ -11750,7 +11762,7 @@
+ else
+   with_assertions=no
+ fi;
+-echo "$as_me:11753: result: $with_assertions" >&5
++echo "$as_me:11765: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+@@ -11770,7 +11782,7 @@
+ 
+ ###	use option --disable-leaks to suppress "permanent" leaks, for testing
+ 
+-echo "$as_me:11773: checking if you want to use dmalloc for testing" >&5
++echo "$as_me:11785: checking if you want to use dmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dmalloc or --without-dmalloc was given.
+@@ -11786,7 +11798,7 @@
+ else
+   with_dmalloc=
+ fi;
+-echo "$as_me:11789: result: ${with_dmalloc:-no}" >&5
++echo "$as_me:11801: result: ${with_dmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -11880,23 +11892,23 @@
+ esac
+ 
+ if test "$with_dmalloc" = yes ; then
+-	echo "$as_me:11883: checking for dmalloc.h" >&5
++	echo "$as_me:11895: checking for dmalloc.h" >&5
+ echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11889 "configure"
++#line 11901 "configure"
+ #include "confdefs.h"
+ #include <dmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:11893: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:11905: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:11899: \$? = $ac_status" >&5
++  echo "$as_me:11911: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -11915,11 +11927,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:11918: result: $ac_cv_header_dmalloc_h" >&5
++echo "$as_me:11930: result: $ac_cv_header_dmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+ if test $ac_cv_header_dmalloc_h = yes; then
+ 
+-echo "$as_me:11922: checking for dmalloc_debug in -ldmalloc" >&5
++echo "$as_me:11934: checking for dmalloc_debug in -ldmalloc" >&5
+ echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11927,7 +11939,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11930 "configure"
++#line 11942 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -11946,16 +11958,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11949: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11961: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11952: \$? = $ac_status" >&5
++  echo "$as_me:11964: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11955: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11967: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11958: \$? = $ac_status" >&5
++  echo "$as_me:11970: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+@@ -11966,7 +11978,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11969: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "$as_me:11981: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+ echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
+ if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
+   cat >>confdefs.h <<EOF
+@@ -11981,7 +11993,7 @@
+ 
+ fi
+ 
+-echo "$as_me:11984: checking if you want to use dbmalloc for testing" >&5
++echo "$as_me:11996: checking if you want to use dbmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dbmalloc or --without-dbmalloc was given.
+@@ -11997,7 +12009,7 @@
+ else
+   with_dbmalloc=
+ fi;
+-echo "$as_me:12000: result: ${with_dbmalloc:-no}" >&5
++echo "$as_me:12012: result: ${with_dbmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dbmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -12091,23 +12103,23 @@
+ esac
+ 
+ if test "$with_dbmalloc" = yes ; then
+-	echo "$as_me:12094: checking for dbmalloc.h" >&5
++	echo "$as_me:12106: checking for dbmalloc.h" >&5
+ echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12100 "configure"
++#line 12112 "configure"
+ #include "confdefs.h"
+ #include <dbmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:12104: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12116: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12110: \$? = $ac_status" >&5
++  echo "$as_me:12122: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12126,11 +12138,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12129: result: $ac_cv_header_dbmalloc_h" >&5
++echo "$as_me:12141: result: $ac_cv_header_dbmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+ if test $ac_cv_header_dbmalloc_h = yes; then
+ 
+-echo "$as_me:12133: checking for debug_malloc in -ldbmalloc" >&5
++echo "$as_me:12145: checking for debug_malloc in -ldbmalloc" >&5
+ echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12138,7 +12150,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldbmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12141 "configure"
++#line 12153 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12157,16 +12169,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12160: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12172: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12163: \$? = $ac_status" >&5
++  echo "$as_me:12175: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12166: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12178: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12169: \$? = $ac_status" >&5
++  echo "$as_me:12181: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+@@ -12177,7 +12189,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12180: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "$as_me:12192: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+ echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
+ if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12192,7 +12204,7 @@
+ 
+ fi
+ 
+-echo "$as_me:12195: checking if you want to use valgrind for testing" >&5
++echo "$as_me:12207: checking if you want to use valgrind for testing" >&5
+ echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-valgrind or --without-valgrind was given.
+@@ -12208,7 +12220,7 @@
+ else
+   with_valgrind=
+ fi;
+-echo "$as_me:12211: result: ${with_valgrind:-no}" >&5
++echo "$as_me:12223: result: ${with_valgrind:-no}" >&5
+ echo "${ECHO_T}${with_valgrind:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -12301,7 +12313,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:12304: checking if you want to perform memory-leak testing" >&5
++echo "$as_me:12316: checking if you want to perform memory-leak testing" >&5
+ echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
+ 
+ # Check whether --enable-leaks or --disable-leaks was given.
+@@ -12311,7 +12323,7 @@
+ else
+   : ${with_no_leaks:=no}
+ fi;
+-echo "$as_me:12314: result: $with_no_leaks" >&5
++echo "$as_me:12326: result: $with_no_leaks" >&5
+ echo "${ECHO_T}$with_no_leaks" >&6
+ 
+ if test "$with_no_leaks" = yes ; then
+@@ -12360,7 +12372,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:12363: checking whether to add trace feature to all models" >&5
++echo "$as_me:12375: checking whether to add trace feature to all models" >&5
+ echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
+ 
+ # Check whether --with-trace or --without-trace was given.
+@@ -12370,7 +12382,7 @@
+ else
+   cf_with_trace=$cf_all_traces
+ fi;
+-echo "$as_me:12373: result: $cf_with_trace" >&5
++echo "$as_me:12385: result: $cf_with_trace" >&5
+ echo "${ECHO_T}$cf_with_trace" >&6
+ 
+ if test "$cf_with_trace" = yes ; then
+@@ -12465,13 +12477,13 @@
+ *mingw32*) #(vi
+ 	;;
+ *)
+-echo "$as_me:12468: checking for gettimeofday" >&5
++echo "$as_me:12480: checking for gettimeofday" >&5
+ echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+ if test "${ac_cv_func_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12474 "configure"
++#line 12486 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char gettimeofday (); below.  */
+@@ -12502,16 +12514,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12505: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12517: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12508: \$? = $ac_status" >&5
++  echo "$as_me:12520: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12511: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12523: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12514: \$? = $ac_status" >&5
++  echo "$as_me:12526: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_gettimeofday=yes
+ else
+@@ -12521,7 +12533,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12524: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:12536: result: $ac_cv_func_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+ if test $ac_cv_func_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -12530,7 +12542,7 @@
+ 
+ else
+ 
+-echo "$as_me:12533: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:12545: checking for gettimeofday in -lbsd" >&5
+ echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12538,7 +12550,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12541 "configure"
++#line 12553 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12557,16 +12569,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12560: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12572: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12563: \$? = $ac_status" >&5
++  echo "$as_me:12575: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12566: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12578: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12569: \$? = $ac_status" >&5
++  echo "$as_me:12581: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -12577,7 +12589,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12580: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:12592: result: $ac_cv_lib_bsd_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+ if test $ac_cv_lib_bsd_gettimeofday = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -12591,14 +12603,14 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:12594: checking if -lm needed for math functions" >&5
++echo "$as_me:12606: checking if -lm needed for math functions" >&5
+ echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
+ if test "${cf_cv_need_libm+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 12601 "configure"
++#line 12613 "configure"
+ #include "confdefs.h"
+ 
+ 	#include <stdio.h>
+@@ -12613,16 +12625,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12616: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12628: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12619: \$? = $ac_status" >&5
++  echo "$as_me:12631: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12622: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12634: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12625: \$? = $ac_status" >&5
++  echo "$as_me:12637: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_need_libm=no
+ else
+@@ -12632,7 +12644,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12635: result: $cf_cv_need_libm" >&5
++echo "$as_me:12647: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+@@ -12640,13 +12652,13 @@
+ fi
+ 
+ ###	Checks for header files.
+-echo "$as_me:12643: checking for ANSI C header files" >&5
++echo "$as_me:12655: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12649 "configure"
++#line 12661 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -12654,13 +12666,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:12657: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12669: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12663: \$? = $ac_status" >&5
++  echo "$as_me:12675: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12682,7 +12694,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12685 "configure"
++#line 12697 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -12700,7 +12712,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12703 "configure"
++#line 12715 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -12721,7 +12733,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12724 "configure"
++#line 12736 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -12747,15 +12759,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12750: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12762: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12753: \$? = $ac_status" >&5
++  echo "$as_me:12765: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:12755: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12767: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12758: \$? = $ac_status" >&5
++  echo "$as_me:12770: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -12768,7 +12780,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:12771: result: $ac_cv_header_stdc" >&5
++echo "$as_me:12783: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -12781,13 +12793,13 @@
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:12784: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:12796: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12790 "configure"
++#line 12802 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -12802,16 +12814,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12817: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12808: \$? = $ac_status" >&5
++  echo "$as_me:12820: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12811: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12823: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12814: \$? = $ac_status" >&5
++  echo "$as_me:12826: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Header=yes"
+ else
+@@ -12821,7 +12833,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12824: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:12836: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12834,7 +12846,7 @@
+ done
+ # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+ if test $ac_header_dirent = dirent.h; then
+-  echo "$as_me:12837: checking for opendir in -ldir" >&5
++  echo "$as_me:12849: checking for opendir in -ldir" >&5
+ echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+ if test "${ac_cv_lib_dir_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12842,7 +12854,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12845 "configure"
++#line 12857 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12861,16 +12873,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12864: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12876: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12867: \$? = $ac_status" >&5
++  echo "$as_me:12879: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12870: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12882: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12873: \$? = $ac_status" >&5
++  echo "$as_me:12885: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dir_opendir=yes
+ else
+@@ -12881,14 +12893,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12884: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:12896: result: $ac_cv_lib_dir_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+ if test $ac_cv_lib_dir_opendir = yes; then
+   LIBS="$LIBS -ldir"
+ fi
+ 
+ else
+-  echo "$as_me:12891: checking for opendir in -lx" >&5
++  echo "$as_me:12903: checking for opendir in -lx" >&5
+ echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+ if test "${ac_cv_lib_x_opendir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12896,7 +12908,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12899 "configure"
++#line 12911 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12915,16 +12927,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12918: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12930: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12921: \$? = $ac_status" >&5
++  echo "$as_me:12933: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12924: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12936: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12927: \$? = $ac_status" >&5
++  echo "$as_me:12939: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_x_opendir=yes
+ else
+@@ -12935,7 +12947,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12938: result: $ac_cv_lib_x_opendir" >&5
++echo "$as_me:12950: result: $ac_cv_lib_x_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+ if test $ac_cv_lib_x_opendir = yes; then
+   LIBS="$LIBS -lx"
+@@ -12943,13 +12955,13 @@
+ 
+ fi
+ 
+-echo "$as_me:12946: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:12958: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12952 "configure"
++#line 12964 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -12965,16 +12977,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12968: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12980: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12971: \$? = $ac_status" >&5
++  echo "$as_me:12983: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12974: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12986: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12977: \$? = $ac_status" >&5
++  echo "$as_me:12989: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_header_time=yes
+ else
+@@ -12984,7 +12996,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12987: result: $ac_cv_header_time" >&5
++echo "$as_me:12999: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+ 
+@@ -13003,13 +13015,13 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:13006: checking for regcomp" >&5
++echo "$as_me:13018: checking for regcomp" >&5
+ echo $ECHO_N "checking for regcomp... $ECHO_C" >&6
+ if test "${ac_cv_func_regcomp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13012 "configure"
++#line 13024 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char regcomp (); below.  */
+@@ -13040,16 +13052,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13043: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13055: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13046: \$? = $ac_status" >&5
++  echo "$as_me:13058: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13049: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13061: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13052: \$? = $ac_status" >&5
++  echo "$as_me:13064: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_regcomp=yes
+ else
+@@ -13059,7 +13071,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13062: result: $ac_cv_func_regcomp" >&5
++echo "$as_me:13074: result: $ac_cv_func_regcomp" >&5
+ echo "${ECHO_T}$ac_cv_func_regcomp" >&6
+ if test $ac_cv_func_regcomp = yes; then
+   cf_regex_func=regcomp
+@@ -13068,7 +13080,7 @@
+ 	for cf_regex_lib in $cf_regex_libs
+ 	do
+ 		as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh`
+-echo "$as_me:13071: checking for regcomp in -l$cf_regex_lib" >&5
++echo "$as_me:13083: checking for regcomp in -l$cf_regex_lib" >&5
+ echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13076,7 +13088,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l$cf_regex_lib  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13079 "configure"
++#line 13091 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -13095,16 +13107,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13098: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13110: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13101: \$? = $ac_status" >&5
++  echo "$as_me:13113: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13104: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13116: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13107: \$? = $ac_status" >&5
++  echo "$as_me:13119: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -13115,7 +13127,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13118: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:13130: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+ 
+@@ -13129,13 +13141,13 @@
+ fi
+ 
+ if test "$cf_regex_func" = no ; then
+-	echo "$as_me:13132: checking for compile" >&5
++	echo "$as_me:13144: checking for compile" >&5
+ echo $ECHO_N "checking for compile... $ECHO_C" >&6
+ if test "${ac_cv_func_compile+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13138 "configure"
++#line 13150 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char compile (); below.  */
+@@ -13166,16 +13178,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13169: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13181: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13172: \$? = $ac_status" >&5
++  echo "$as_me:13184: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13175: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13187: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13178: \$? = $ac_status" >&5
++  echo "$as_me:13190: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_compile=yes
+ else
+@@ -13185,13 +13197,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13188: result: $ac_cv_func_compile" >&5
++echo "$as_me:13200: result: $ac_cv_func_compile" >&5
+ echo "${ECHO_T}$ac_cv_func_compile" >&6
+ if test $ac_cv_func_compile = yes; then
+   cf_regex_func=compile
+ else
+ 
+-		echo "$as_me:13194: checking for compile in -lgen" >&5
++		echo "$as_me:13206: checking for compile in -lgen" >&5
+ echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6
+ if test "${ac_cv_lib_gen_compile+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13199,7 +13211,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgen  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13202 "configure"
++#line 13214 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -13218,16 +13230,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13221: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13233: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13224: \$? = $ac_status" >&5
++  echo "$as_me:13236: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13227: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13239: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13230: \$? = $ac_status" >&5
++  echo "$as_me:13242: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gen_compile=yes
+ else
+@@ -13238,7 +13250,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13241: result: $ac_cv_lib_gen_compile" >&5
++echo "$as_me:13253: result: $ac_cv_lib_gen_compile" >&5
+ echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6
+ if test $ac_cv_lib_gen_compile = yes; then
+ 
+@@ -13251,11 +13263,11 @@
+ fi
+ 
+ if test "$cf_regex_func" = no ; then
+-	{ echo "$as_me:13254: WARNING: cannot find regular expression library" >&5
++	{ echo "$as_me:13266: WARNING: cannot find regular expression library" >&5
+ echo "$as_me: WARNING: cannot find regular expression library" >&2;}
+ fi
+ 
+-echo "$as_me:13258: checking for regular-expression headers" >&5
++echo "$as_me:13270: checking for regular-expression headers" >&5
+ echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
+ if test "${cf_cv_regex_hdrs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13267,7 +13279,7 @@
+ 	for cf_regex_hdr in regexp.h regexpr.h
+ 	do
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 13270 "configure"
++#line 13282 "configure"
+ #include "confdefs.h"
+ #include <$cf_regex_hdr>
+ int
+@@ -13282,16 +13294,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13285: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13297: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13288: \$? = $ac_status" >&5
++  echo "$as_me:13300: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13291: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13303: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13294: \$? = $ac_status" >&5
++  echo "$as_me:13306: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 			cf_cv_regex_hdrs=$cf_regex_hdr
+@@ -13308,7 +13320,7 @@
+ 	for cf_regex_hdr in regex.h
+ 	do
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 13311 "configure"
++#line 13323 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$cf_regex_hdr>
+@@ -13326,16 +13338,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13329: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13341: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13332: \$? = $ac_status" >&5
++  echo "$as_me:13344: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13335: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13347: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13338: \$? = $ac_status" >&5
++  echo "$as_me:13350: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 			cf_cv_regex_hdrs=$cf_regex_hdr
+@@ -13351,11 +13363,11 @@
+ esac
+ 
+ fi
+-echo "$as_me:13354: result: $cf_cv_regex_hdrs" >&5
++echo "$as_me:13366: result: $cf_cv_regex_hdrs" >&5
+ echo "${ECHO_T}$cf_cv_regex_hdrs" >&6
+ 
+ case $cf_cv_regex_hdrs in #(vi
+-    no)	       { echo "$as_me:13358: WARNING: no regular expression header found" >&5
++    no)	       { echo "$as_me:13370: WARNING: no regular expression header found" >&5
+ echo "$as_me: WARNING: no regular expression header found" >&2;} ;; #(vi
+     regex.h)   cat >>confdefs.h <<\EOF
+ #define HAVE_REGEX_H_FUNCS 1
+@@ -13391,23 +13403,23 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13394: checking for $ac_header" >&5
++echo "$as_me:13406: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13400 "configure"
++#line 13412 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:13404: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:13416: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:13410: \$? = $ac_status" >&5
++  echo "$as_me:13422: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -13426,7 +13438,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:13429: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:13441: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -13436,11 +13448,112 @@
+ fi
+ done
+ 
++for ac_header in unistd.h getopt.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:13454: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line 13460 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:13464: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  egrep -v '^ *\+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:13470: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  eval "$as_ac_Header=yes"
++else
++  echo "$as_me: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  eval "$as_ac_Header=no"
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:13489: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++  cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++echo "$as_me:13499: checking for header declaring getopt variables" >&5
++echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
++if test "${cf_cv_getopt_header+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++cat >conftest.$ac_ext <<_ACEOF
++#line 13509 "configure"
++#include "confdefs.h"
++
++#include <$cf_header>
++int
++main ()
++{
++int x = optind; char *y = optarg
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13522: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:13525: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:13528: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:13531: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  cf_cv_getopt_header=$cf_header
++ break
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
++fi
++echo "$as_me:13543: result: $cf_cv_getopt_header" >&5
++echo "${ECHO_T}$cf_cv_getopt_header" >&6
++if test $cf_cv_getopt_header != none ; then
++	cat >>confdefs.h <<\EOF
++#define HAVE_GETOPT_HEADER 1
++EOF
++
++fi
++
+ # check for ISC (this may also define _POSIX_SOURCE)
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+ if test "$ISC" = yes ; then
+ 
+-echo "$as_me:13443: checking for main in -lcposix" >&5
++echo "$as_me:13556: checking for main in -lcposix" >&5
+ echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
+ if test "${ac_cv_lib_cposix_main+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13448,7 +13561,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lcposix  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13451 "configure"
++#line 13564 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -13460,16 +13573,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13463: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13576: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13466: \$? = $ac_status" >&5
++  echo "$as_me:13579: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13469: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13582: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13472: \$? = $ac_status" >&5
++  echo "$as_me:13585: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_cposix_main=yes
+ else
+@@ -13480,7 +13593,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13483: result: $ac_cv_lib_cposix_main" >&5
++echo "$as_me:13596: result: $ac_cv_lib_cposix_main" >&5
+ echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
+ if test $ac_cv_lib_cposix_main = yes; then
+   cat >>confdefs.h <<EOF
+@@ -13491,7 +13604,7 @@
+ 
+ fi
+ 
+-	echo "$as_me:13494: checking for bzero in -linet" >&5
++	echo "$as_me:13607: checking for bzero in -linet" >&5
+ echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
+ if test "${ac_cv_lib_inet_bzero+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13499,7 +13612,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-linet  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13502 "configure"
++#line 13615 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -13518,16 +13631,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13521: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13634: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13524: \$? = $ac_status" >&5
++  echo "$as_me:13637: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13527: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13640: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13530: \$? = $ac_status" >&5
++  echo "$as_me:13643: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_inet_bzero=yes
+ else
+@@ -13538,21 +13651,21 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13541: result: $ac_cv_lib_inet_bzero" >&5
++echo "$as_me:13654: result: $ac_cv_lib_inet_bzero" >&5
+ echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
+ if test $ac_cv_lib_inet_bzero = yes; then
+   LIBS="-linet $LIBS"
+ fi
+ fi
+ 
+-echo "$as_me:13548: checking if sys/time.h works with sys/select.h" >&5
++echo "$as_me:13661: checking if sys/time.h works with sys/select.h" >&5
+ echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
+ if test "${cf_cv_sys_time_select+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13555 "configure"
++#line 13668 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -13572,16 +13685,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13575: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13688: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13578: \$? = $ac_status" >&5
++  echo "$as_me:13691: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13581: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13694: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13584: \$? = $ac_status" >&5
++  echo "$as_me:13697: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sys_time_select=yes
+ else
+@@ -13593,7 +13706,7 @@
+ 
+ fi
+ 
+-echo "$as_me:13596: result: $cf_cv_sys_time_select" >&5
++echo "$as_me:13709: result: $cf_cv_sys_time_select" >&5
+ echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+ test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_SYS_TIME_SELECT 1
+@@ -13607,7 +13720,7 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+ 
+-echo "$as_me:13610: checking for $CC option to accept ANSI C" >&5
++echo "$as_me:13723: checking for $CC option to accept ANSI C" >&5
+ echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13615,7 +13728,7 @@
+   ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13618 "configure"
++#line 13731 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -13664,16 +13777,16 @@
+ do
+   CC="$ac_save_CC $ac_arg"
+   rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13667: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13780: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13670: \$? = $ac_status" >&5
++  echo "$as_me:13783: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13673: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13786: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13676: \$? = $ac_status" >&5
++  echo "$as_me:13789: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -13690,21 +13803,21 @@
+ 
+ case "x$ac_cv_prog_cc_stdc" in
+   x|xno)
+-    echo "$as_me:13693: result: none needed" >&5
++    echo "$as_me:13806: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+   *)
+-    echo "$as_me:13696: result: $ac_cv_prog_cc_stdc" >&5
++    echo "$as_me:13809: result: $ac_cv_prog_cc_stdc" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+     CC="$CC $ac_cv_prog_cc_stdc" ;;
+ esac
+ 
+-echo "$as_me:13701: checking for an ANSI C-conforming const" >&5
++echo "$as_me:13814: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13707 "configure"
++#line 13820 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -13762,16 +13875,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13765: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13878: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13768: \$? = $ac_status" >&5
++  echo "$as_me:13881: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13771: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13884: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13774: \$? = $ac_status" >&5
++  echo "$as_me:13887: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_const=yes
+ else
+@@ -13781,7 +13894,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:13784: result: $ac_cv_c_const" >&5
++echo "$as_me:13897: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+ 
+@@ -13791,7 +13904,7 @@
+ 
+ fi
+ 
+-echo "$as_me:13794: checking for inline" >&5
++echo "$as_me:13907: checking for inline" >&5
+ echo $ECHO_N "checking for inline... $ECHO_C" >&6
+ if test "${ac_cv_c_inline+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13799,7 +13912,7 @@
+   ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13802 "configure"
++#line 13915 "configure"
+ #include "confdefs.h"
+ #ifndef __cplusplus
+ static $ac_kw int static_foo () {return 0; }
+@@ -13808,16 +13921,16 @@
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13811: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13924: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13814: \$? = $ac_status" >&5
++  echo "$as_me:13927: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13817: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13930: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13820: \$? = $ac_status" >&5
++  echo "$as_me:13933: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_inline=$ac_kw; break
+ else
+@@ -13828,7 +13941,7 @@
+ done
+ 
+ fi
+-echo "$as_me:13831: result: $ac_cv_c_inline" >&5
++echo "$as_me:13944: result: $ac_cv_c_inline" >&5
+ echo "${ECHO_T}$ac_cv_c_inline" >&6
+ case $ac_cv_c_inline in
+   inline | yes) ;;
+@@ -13851,7 +13964,7 @@
+     :
+   elif test "$GCC" = yes
+   then
+-    echo "$as_me:13854: checking if $CC supports options to tune inlining" >&5
++    echo "$as_me:13967: checking if $CC supports options to tune inlining" >&5
+ echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6
+ if test "${cf_cv_gcc_inline+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13860,7 +13973,7 @@
+       cf_save_CFLAGS=$CFLAGS
+       CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
+       cat >conftest.$ac_ext <<_ACEOF
+-#line 13863 "configure"
++#line 13976 "configure"
+ #include "confdefs.h"
+ inline int foo(void) { return 1; }
+ int
+@@ -13872,16 +13985,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13875: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13988: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13878: \$? = $ac_status" >&5
++  echo "$as_me:13991: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13881: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13994: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13884: \$? = $ac_status" >&5
++  echo "$as_me:13997: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gcc_inline=yes
+ else
+@@ -13893,7 +14006,7 @@
+       CFLAGS=$cf_save_CFLAGS
+ 
+ fi
+-echo "$as_me:13896: result: $cf_cv_gcc_inline" >&5
++echo "$as_me:14009: result: $cf_cv_gcc_inline" >&5
+ echo "${ECHO_T}$cf_cv_gcc_inline" >&6
+     if test "$cf_cv_gcc_inline" = yes ; then
+ 
+@@ -13979,7 +14092,7 @@
+   fi
+ fi
+ 
+-echo "$as_me:13982: checking for signal global datatype" >&5
++echo "$as_me:14095: checking for signal global datatype" >&5
+ echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
+ if test "${cf_cv_sig_atomic_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13991,7 +14104,7 @@
+ 		"int"
+ 	do
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13994 "configure"
++#line 14107 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -14014,16 +14127,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14017: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14130: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14020: \$? = $ac_status" >&5
++  echo "$as_me:14133: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14023: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14136: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14026: \$? = $ac_status" >&5
++  echo "$as_me:14139: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sig_atomic_t=$cf_type
+ else
+@@ -14037,7 +14150,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14040: result: $cf_cv_sig_atomic_t" >&5
++echo "$as_me:14153: result: $cf_cv_sig_atomic_t" >&5
+ echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
+ test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
+ #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+@@ -14045,7 +14158,7 @@
+ 
+ if test $NCURSES_CHTYPE = auto ; then
+ 
+-echo "$as_me:14048: checking for type of chtype" >&5
++echo "$as_me:14161: checking for type of chtype" >&5
+ echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+ if test "${cf_cv_typeof_chtype+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14055,7 +14168,7 @@
+   cf_cv_typeof_chtype=long
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14058 "configure"
++#line 14171 "configure"
+ #include "confdefs.h"
+ 
+ #define WANT_BITS 31
+@@ -14090,15 +14203,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14093: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14206: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14096: \$? = $ac_status" >&5
++  echo "$as_me:14209: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14098: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14211: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14101: \$? = $ac_status" >&5
++  echo "$as_me:14214: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_typeof_chtype=`cat cf_test.out`
+ else
+@@ -14113,7 +14226,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14116: result: $cf_cv_typeof_chtype" >&5
++echo "$as_me:14229: result: $cf_cv_typeof_chtype" >&5
+ echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
+ 
+ cat >>confdefs.h <<EOF
+@@ -14125,14 +14238,14 @@
+ fi
+ test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
+ 
+-echo "$as_me:14128: checking if unsigned literals are legal" >&5
++echo "$as_me:14241: checking if unsigned literals are legal" >&5
+ echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
+ if test "${cf_cv_unsigned_literals+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14135 "configure"
++#line 14248 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -14144,16 +14257,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14147: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14260: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14150: \$? = $ac_status" >&5
++  echo "$as_me:14263: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14153: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14266: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14156: \$? = $ac_status" >&5
++  echo "$as_me:14269: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_unsigned_literals=yes
+ else
+@@ -14165,7 +14278,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14168: result: $cf_cv_unsigned_literals" >&5
++echo "$as_me:14281: result: $cf_cv_unsigned_literals" >&5
+ echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+ 
+ cf_cv_1UL="1"
+@@ -14181,14 +14294,14 @@
+ 
+ ###	Checks for external-data
+ 
+-echo "$as_me:14184: checking if external errno is declared" >&5
++echo "$as_me:14297: checking if external errno is declared" >&5
+ echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
+ if test "${cf_cv_dcl_errno+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 14191 "configure"
++#line 14304 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_STDLIB_H
+@@ -14206,16 +14319,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14322: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14212: \$? = $ac_status" >&5
++  echo "$as_me:14325: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14215: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14328: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14218: \$? = $ac_status" >&5
++  echo "$as_me:14331: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_dcl_errno=yes
+ else
+@@ -14226,7 +14339,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:14229: result: $cf_cv_dcl_errno" >&5
++echo "$as_me:14342: result: $cf_cv_dcl_errno" >&5
+ echo "${ECHO_T}$cf_cv_dcl_errno" >&6
+ 
+ if test "$cf_cv_dcl_errno" = no ; then
+@@ -14241,14 +14354,14 @@
+ 
+ # It's possible (for near-UNIX clones) that the data doesn't exist
+ 
+-echo "$as_me:14244: checking if external errno exists" >&5
++echo "$as_me:14357: checking if external errno exists" >&5
+ echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
+ if test "${cf_cv_have_errno+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 14251 "configure"
++#line 14364 "configure"
+ #include "confdefs.h"
+ 
+ #undef errno
+@@ -14263,16 +14376,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14266: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14379: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14269: \$? = $ac_status" >&5
++  echo "$as_me:14382: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14272: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14385: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14275: \$? = $ac_status" >&5
++  echo "$as_me:14388: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_errno=yes
+ else
+@@ -14283,7 +14396,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:14286: result: $cf_cv_have_errno" >&5
++echo "$as_me:14399: result: $cf_cv_have_errno" >&5
+ echo "${ECHO_T}$cf_cv_have_errno" >&6
+ 
+ if test "$cf_cv_have_errno" = yes ; then
+@@ -14296,7 +14409,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14299: checking if data-only library module links" >&5
++echo "$as_me:14412: checking if data-only library module links" >&5
+ echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
+ if test "${cf_cv_link_dataonly+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14304,20 +14417,20 @@
+ 
+ 	rm -f conftest.a
+ 	cat >conftest.$ac_ext <<EOF
+-#line 14307 "configure"
++#line 14420 "configure"
+ int	testdata[3] = { 123, 456, 789 };
+ EOF
+-	if { (eval echo "$as_me:14310: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:14423: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14313: \$? = $ac_status" >&5
++  echo "$as_me:14426: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 		mv conftest.o data.o && \
+ 		( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
+ 	fi
+ 	rm -f conftest.$ac_ext data.o
+ 	cat >conftest.$ac_ext <<EOF
+-#line 14320 "configure"
++#line 14433 "configure"
+ int	testfunc()
+ {
+ #if defined(NeXT)
+@@ -14330,10 +14443,10 @@
+ #endif
+ }
+ EOF
+-	if { (eval echo "$as_me:14333: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:14446: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14336: \$? = $ac_status" >&5
++  echo "$as_me:14449: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+ 		mv conftest.o func.o && \
+ 		( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
+@@ -14346,7 +14459,7 @@
+   cf_cv_link_dataonly=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14349 "configure"
++#line 14462 "configure"
+ #include "confdefs.h"
+ 
+ 	int main()
+@@ -14357,15 +14470,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14360: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14473: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14363: \$? = $ac_status" >&5
++  echo "$as_me:14476: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14365: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14478: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14368: \$? = $ac_status" >&5
++  echo "$as_me:14481: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_link_dataonly=yes
+ else
+@@ -14380,7 +14493,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14383: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:14496: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+ 
+ if test "$cf_cv_link_dataonly" = no ; then
+@@ -14415,13 +14528,13 @@
+ 
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:14418: checking for $ac_func" >&5
++echo "$as_me:14531: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14424 "configure"
++#line 14537 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -14452,16 +14565,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14455: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14568: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14458: \$? = $ac_status" >&5
++  echo "$as_me:14571: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14461: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14574: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14464: \$? = $ac_status" >&5
++  echo "$as_me:14577: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -14471,7 +14584,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:14474: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:14587: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -14483,14 +14596,14 @@
+ 
+ if test "$with_getcap" = "yes" ; then
+ 
+-echo "$as_me:14486: checking for terminal-capability database functions" >&5
++echo "$as_me:14599: checking for terminal-capability database functions" >&5
+ echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
+ if test "${cf_cv_cgetent+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14493 "configure"
++#line 14606 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14510,16 +14623,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14513: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14626: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14516: \$? = $ac_status" >&5
++  echo "$as_me:14629: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14519: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14632: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14522: \$? = $ac_status" >&5
++  echo "$as_me:14635: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cgetent=yes
+ else
+@@ -14531,7 +14644,7 @@
+ 
+ fi
+ 
+-echo "$as_me:14534: result: $cf_cv_cgetent" >&5
++echo "$as_me:14647: result: $cf_cv_cgetent" >&5
+ echo "${ECHO_T}$cf_cv_cgetent" >&6
+ test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_BSD_CGETENT 1
+@@ -14539,14 +14652,14 @@
+ 
+ fi
+ 
+-echo "$as_me:14542: checking for isascii" >&5
++echo "$as_me:14655: checking for isascii" >&5
+ echo $ECHO_N "checking for isascii... $ECHO_C" >&6
+ if test "${cf_cv_have_isascii+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14549 "configure"
++#line 14662 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ int
+@@ -14558,16 +14671,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14561: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14674: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14564: \$? = $ac_status" >&5
++  echo "$as_me:14677: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14567: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14680: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14570: \$? = $ac_status" >&5
++  echo "$as_me:14683: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_isascii=yes
+ else
+@@ -14578,17 +14691,17 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:14581: result: $cf_cv_have_isascii" >&5
++echo "$as_me:14694: result: $cf_cv_have_isascii" >&5
+ echo "${ECHO_T}$cf_cv_have_isascii" >&6
+ test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_ISASCII 1
+ EOF
+ 
+ if test "$ac_cv_func_sigaction" = yes; then
+-echo "$as_me:14588: checking whether sigaction needs _POSIX_SOURCE" >&5
++echo "$as_me:14701: checking whether sigaction needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14591 "configure"
++#line 14704 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -14602,16 +14715,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14605: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14718: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14608: \$? = $ac_status" >&5
++  echo "$as_me:14721: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14611: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14724: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14614: \$? = $ac_status" >&5
++  echo "$as_me:14727: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   sigact_bad=no
+ else
+@@ -14619,7 +14732,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14622 "configure"
++#line 14735 "configure"
+ #include "confdefs.h"
+ 
+ #define _POSIX_SOURCE
+@@ -14634,20 +14747,20 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14637: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14750: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14640: \$? = $ac_status" >&5
++  echo "$as_me:14753: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14643: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14756: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14646: \$? = $ac_status" >&5
++  echo "$as_me:14759: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   sigact_bad=yes
+ 	 cat >>confdefs.h <<\EOF
+-#define SVR4_ACTION 1
++#define _POSIX_SOURCE 1
+ EOF
+ 
+ else
+@@ -14658,11 +14771,11 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14661: result: $sigact_bad" >&5
++echo "$as_me:14774: result: $sigact_bad" >&5
+ echo "${ECHO_T}$sigact_bad" >&6
+ fi
+ 
+-echo "$as_me:14665: checking if nanosleep really works" >&5
++echo "$as_me:14778: checking if nanosleep really works" >&5
+ echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
+ if test "${cf_cv_func_nanosleep+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14672,7 +14785,7 @@
+   cf_cv_func_nanosleep=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14675 "configure"
++#line 14788 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -14697,15 +14810,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14700: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14813: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14703: \$? = $ac_status" >&5
++  echo "$as_me:14816: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14705: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14818: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14708: \$? = $ac_status" >&5
++  echo "$as_me:14821: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_nanosleep=yes
+ else
+@@ -14717,7 +14830,7 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:14720: result: $cf_cv_func_nanosleep" >&5
++echo "$as_me:14833: result: $cf_cv_func_nanosleep" >&5
+ echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
+ 
+ test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
+@@ -14731,23 +14844,23 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:14734: checking for $ac_header" >&5
++echo "$as_me:14847: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14740 "configure"
++#line 14853 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:14744: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14857: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:14750: \$? = $ac_status" >&5
++  echo "$as_me:14863: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -14766,7 +14879,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:14769: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:14882: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -14781,23 +14894,23 @@
+ for ac_header in sys/termio.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:14784: checking for $ac_header" >&5
++echo "$as_me:14897: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14790 "configure"
++#line 14903 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:14794: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14907: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:14800: \$? = $ac_status" >&5
++  echo "$as_me:14913: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -14816,7 +14929,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:14819: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:14932: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -14834,10 +14947,10 @@
+ 	*)	termios_bad=maybe ;;
+ 	esac
+ 	if test "$termios_bad" = maybe ; then
+-	echo "$as_me:14837: checking whether termios.h needs _POSIX_SOURCE" >&5
++	echo "$as_me:14950: checking whether termios.h needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14840 "configure"
++#line 14953 "configure"
+ #include "confdefs.h"
+ #include <termios.h>
+ int
+@@ -14849,16 +14962,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14852: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14965: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14855: \$? = $ac_status" >&5
++  echo "$as_me:14968: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14858: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14971: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14861: \$? = $ac_status" >&5
++  echo "$as_me:14974: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   termios_bad=no
+ else
+@@ -14866,7 +14979,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 14869 "configure"
++#line 14982 "configure"
+ #include "confdefs.h"
+ 
+ #define _POSIX_SOURCE
+@@ -14880,23 +14993,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14883: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14996: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14886: \$? = $ac_status" >&5
++  echo "$as_me:14999: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14889: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15002: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14892: \$? = $ac_status" >&5
++  echo "$as_me:15005: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   termios_bad=unknown
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ termios_bad=yes cat >>confdefs.h <<\EOF
+-#define SVR4_TERMIO 1
++#define _POSIX_SOURCE 1
+ EOF
+ 
+ fi
+@@ -14904,19 +15017,19 @@
+ 
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-	echo "$as_me:14907: result: $termios_bad" >&5
++	echo "$as_me:15020: result: $termios_bad" >&5
+ echo "${ECHO_T}$termios_bad" >&6
+ 	fi
+ fi
+ 
+-echo "$as_me:14912: checking for tcgetattr" >&5
++echo "$as_me:15025: checking for tcgetattr" >&5
+ echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
+ if test "${cf_cv_have_tcgetattr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14919 "configure"
++#line 15032 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -14944,16 +15057,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14947: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15060: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14950: \$? = $ac_status" >&5
++  echo "$as_me:15063: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14953: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15066: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14956: \$? = $ac_status" >&5
++  echo "$as_me:15069: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_tcgetattr=yes
+ else
+@@ -14963,20 +15076,20 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:14966: result: $cf_cv_have_tcgetattr" >&5
++echo "$as_me:15079: result: $cf_cv_have_tcgetattr" >&5
+ echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
+ test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TCGETATTR 1
+ EOF
+ 
+-echo "$as_me:14972: checking for vsscanf function or workaround" >&5
++echo "$as_me:15085: checking for vsscanf function or workaround" >&5
+ echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
+ if test "${cf_cv_func_vsscanf+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14979 "configure"
++#line 15092 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -14992,16 +15105,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14995: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15108: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14998: \$? = $ac_status" >&5
++  echo "$as_me:15111: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15001: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15114: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15004: \$? = $ac_status" >&5
++  echo "$as_me:15117: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=vsscanf
+ else
+@@ -15009,7 +15122,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15012 "configure"
++#line 15125 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -15031,16 +15144,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15034: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15147: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15037: \$? = $ac_status" >&5
++  echo "$as_me:15150: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15040: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15153: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15043: \$? = $ac_status" >&5
++  echo "$as_me:15156: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=vfscanf
+ else
+@@ -15048,7 +15161,7 @@
+ cat conftest.$ac_ext >&5
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15051 "configure"
++#line 15164 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -15070,16 +15183,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15073: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15186: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15076: \$? = $ac_status" >&5
++  echo "$as_me:15189: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15079: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15192: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15082: \$? = $ac_status" >&5
++  echo "$as_me:15195: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_vsscanf=_doscan
+ else
+@@ -15094,7 +15207,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15097: result: $cf_cv_func_vsscanf" >&5
++echo "$as_me:15210: result: $cf_cv_func_vsscanf" >&5
+ echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
+ 
+ case $cf_cv_func_vsscanf in #(vi
+@@ -15112,7 +15225,7 @@
+ ;;
+ esac
+ 
+-echo "$as_me:15115: checking for working mkstemp" >&5
++echo "$as_me:15228: checking for working mkstemp" >&5
+ echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
+ if test "${cf_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15120,13 +15233,13 @@
+ 
+ rm -rf conftest*
+ if test "$cross_compiling" = yes; then
+-  echo "$as_me:15123: checking for mkstemp" >&5
++  echo "$as_me:15236: checking for mkstemp" >&5
+ echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
+ if test "${ac_cv_func_mkstemp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15129 "configure"
++#line 15242 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char mkstemp (); below.  */
+@@ -15157,16 +15270,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15160: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15273: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15163: \$? = $ac_status" >&5
++  echo "$as_me:15276: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15166: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15279: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15169: \$? = $ac_status" >&5
++  echo "$as_me:15282: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_mkstemp=yes
+ else
+@@ -15176,12 +15289,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15179: result: $ac_cv_func_mkstemp" >&5
++echo "$as_me:15292: result: $ac_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15184 "configure"
++#line 15297 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -15219,15 +15332,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15222: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15335: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15225: \$? = $ac_status" >&5
++  echo "$as_me:15338: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:15227: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15340: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15230: \$? = $ac_status" >&5
++  echo "$as_me:15343: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_mkstemp=yes
+ 
+@@ -15242,7 +15355,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:15245: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:15358: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
+ if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -15260,21 +15373,21 @@
+ fi
+ 
+ if test "$cross_compiling" = yes ; then
+-	{ echo "$as_me:15263: WARNING: cross compiling: assume setvbuf params not reversed" >&5
++	{ echo "$as_me:15376: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+ echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
+ else
+-	echo "$as_me:15266: checking whether setvbuf arguments are reversed" >&5
++	echo "$as_me:15379: checking whether setvbuf arguments are reversed" >&5
+ echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
+ if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test "$cross_compiling" = yes; then
+-  { { echo "$as_me:15272: error: cannot run test program while cross compiling" >&5
++  { { echo "$as_me:15385: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15277 "configure"
++#line 15390 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+@@ -15291,15 +15404,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15294: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15407: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15297: \$? = $ac_status" >&5
++  echo "$as_me:15410: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:15299: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15412: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15302: \$? = $ac_status" >&5
++  echo "$as_me:15415: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_setvbuf_reversed=yes
+ else
+@@ -15312,7 +15425,7 @@
+ fi
+ rm -f core core.* *.core
+ fi
+-echo "$as_me:15315: result: $ac_cv_func_setvbuf_reversed" >&5
++echo "$as_me:15428: result: $ac_cv_func_setvbuf_reversed" >&5
+ echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
+ if test $ac_cv_func_setvbuf_reversed = yes; then
+ 
+@@ -15323,13 +15436,13 @@
+ fi
+ 
+ fi
+-echo "$as_me:15326: checking return type of signal handlers" >&5
++echo "$as_me:15439: checking return type of signal handlers" >&5
+ echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+ if test "${ac_cv_type_signal+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15332 "configure"
++#line 15445 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -15351,16 +15464,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15354: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15467: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:15357: \$? = $ac_status" >&5
++  echo "$as_me:15470: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:15360: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15473: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15363: \$? = $ac_status" >&5
++  echo "$as_me:15476: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signal=void
+ else
+@@ -15370,21 +15483,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:15373: result: $ac_cv_type_signal" >&5
++echo "$as_me:15486: result: $ac_cv_type_signal" >&5
+ echo "${ECHO_T}$ac_cv_type_signal" >&6
+ 
+ cat >>confdefs.h <<EOF
+ #define RETSIGTYPE $ac_cv_type_signal
+ EOF
+ 
+-echo "$as_me:15380: checking for type sigaction_t" >&5
++echo "$as_me:15493: checking for type sigaction_t" >&5
+ echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
+ if test "${cf_cv_type_sigaction+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 15387 "configure"
++#line 15500 "configure"
+ #include "confdefs.h"
+ 
+ #include <signal.h>
+@@ -15397,16 +15510,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15400: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15513: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:15403: \$? = $ac_status" >&5
++  echo "$as_me:15516: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:15406: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15519: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15409: \$? = $ac_status" >&5
++  echo "$as_me:15522: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_sigaction=yes
+ else
+@@ -15417,13 +15530,13 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+-echo "$as_me:15420: result: $cf_cv_type_sigaction" >&5
++echo "$as_me:15533: result: $cf_cv_type_sigaction" >&5
+ echo "${ECHO_T}$cf_cv_type_sigaction" >&6
+ test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_TYPE_SIGACTION 1
+ EOF
+ 
+-echo "$as_me:15426: checking declaration of size-change" >&5
++echo "$as_me:15539: checking declaration of size-change" >&5
+ echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
+ if test "${cf_cv_sizechange+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15438,7 +15551,7 @@
+     CPPFLAGS="$cf_save_CPPFLAGS"
+     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 15441 "configure"
++#line 15554 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #ifdef HAVE_TERMIOS_H
+@@ -15482,16 +15595,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15485: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15598: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:15488: \$? = $ac_status" >&5
++  echo "$as_me:15601: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:15491: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15604: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15494: \$? = $ac_status" >&5
++  echo "$as_me:15607: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sizechange=yes
+ else
+@@ -15510,7 +15623,7 @@
+ done
+ 
+ fi
+-echo "$as_me:15513: result: $cf_cv_sizechange" >&5
++echo "$as_me:15626: result: $cf_cv_sizechange" >&5
+ echo "${ECHO_T}$cf_cv_sizechange" >&6
+ if test "$cf_cv_sizechange" != no ; then
+ 	cat >>confdefs.h <<\EOF
+@@ -15527,13 +15640,13 @@
+ 	esac
+ fi
+ 
+-echo "$as_me:15530: checking for memmove" >&5
++echo "$as_me:15643: checking for memmove" >&5
+ echo $ECHO_N "checking for memmove... $ECHO_C" >&6
+ if test "${ac_cv_func_memmove+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15536 "configure"
++#line 15649 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char memmove (); below.  */
+@@ -15564,16 +15677,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15567: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15680: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15570: \$? = $ac_status" >&5
++  echo "$as_me:15683: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15573: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15686: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15576: \$? = $ac_status" >&5
++  echo "$as_me:15689: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_memmove=yes
+ else
+@@ -15583,19 +15696,19 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15586: result: $ac_cv_func_memmove" >&5
++echo "$as_me:15699: result: $ac_cv_func_memmove" >&5
+ echo "${ECHO_T}$ac_cv_func_memmove" >&6
+ if test $ac_cv_func_memmove = yes; then
+   :
+ else
+ 
+-echo "$as_me:15592: checking for bcopy" >&5
++echo "$as_me:15705: checking for bcopy" >&5
+ echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
+ if test "${ac_cv_func_bcopy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15598 "configure"
++#line 15711 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char bcopy (); below.  */
+@@ -15626,16 +15739,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15629: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15742: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15632: \$? = $ac_status" >&5
++  echo "$as_me:15745: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15635: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15748: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15638: \$? = $ac_status" >&5
++  echo "$as_me:15751: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_bcopy=yes
+ else
+@@ -15645,11 +15758,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15648: result: $ac_cv_func_bcopy" >&5
++echo "$as_me:15761: result: $ac_cv_func_bcopy" >&5
+ echo "${ECHO_T}$ac_cv_func_bcopy" >&6
+ if test $ac_cv_func_bcopy = yes; then
+ 
+-	echo "$as_me:15652: checking if bcopy does overlapping moves" >&5
++	echo "$as_me:15765: checking if bcopy does overlapping moves" >&5
+ echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
+ if test "${cf_cv_good_bcopy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15659,7 +15772,7 @@
+   cf_cv_good_bcopy=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15662 "configure"
++#line 15775 "configure"
+ #include "confdefs.h"
+ 
+ int main() {
+@@ -15673,15 +15786,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15676: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15789: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15679: \$? = $ac_status" >&5
++  echo "$as_me:15792: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:15681: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15794: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15684: \$? = $ac_status" >&5
++  echo "$as_me:15797: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_good_bcopy=yes
+ else
+@@ -15694,7 +15807,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:15697: result: $cf_cv_good_bcopy" >&5
++echo "$as_me:15810: result: $cf_cv_good_bcopy" >&5
+ echo "${ECHO_T}$cf_cv_good_bcopy" >&6
+ 
+ else
+@@ -15715,7 +15828,7 @@
+ 
+ fi
+ 
+-echo "$as_me:15718: checking if poll really works" >&5
++echo "$as_me:15831: checking if poll really works" >&5
+ echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
+ if test "${cf_cv_working_poll+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15725,7 +15838,7 @@
+   cf_cv_working_poll=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15728 "configure"
++#line 15841 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -15746,15 +15859,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15749: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15862: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15752: \$? = $ac_status" >&5
++  echo "$as_me:15865: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:15754: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15867: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15757: \$? = $ac_status" >&5
++  echo "$as_me:15870: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_working_poll=yes
+ else
+@@ -15766,20 +15879,20 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:15769: result: $cf_cv_working_poll" >&5
++echo "$as_me:15882: result: $cf_cv_working_poll" >&5
+ echo "${ECHO_T}$cf_cv_working_poll" >&6
+ test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
+ #define HAVE_WORKING_POLL 1
+ EOF
+ 
+-echo "$as_me:15775: checking for va_copy" >&5
++echo "$as_me:15888: checking for va_copy" >&5
+ echo $ECHO_N "checking for va_copy... $ECHO_C" >&6
+ if test "${cf_cv_have_va_copy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15782 "configure"
++#line 15895 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -15796,16 +15909,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15799: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15912: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15802: \$? = $ac_status" >&5
++  echo "$as_me:15915: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15805: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15918: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15808: \$? = $ac_status" >&5
++  echo "$as_me:15921: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have_va_copy=yes
+ else
+@@ -15815,21 +15928,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15818: result: $cf_cv_have_va_copy" >&5
++echo "$as_me:15931: result: $cf_cv_have_va_copy" >&5
+ echo "${ECHO_T}$cf_cv_have_va_copy" >&6
+ 
+ test "$cf_cv_have_va_copy" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_VA_COPY 1
+ EOF
+ 
+-echo "$as_me:15825: checking for __va_copy" >&5
++echo "$as_me:15938: checking for __va_copy" >&5
+ echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6
+ if test "${cf_cv_have___va_copy+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15832 "configure"
++#line 15945 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdarg.h>
+@@ -15846,16 +15959,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15849: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15962: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15852: \$? = $ac_status" >&5
++  echo "$as_me:15965: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15855: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15968: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15858: \$? = $ac_status" >&5
++  echo "$as_me:15971: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_have___va_copy=yes
+ else
+@@ -15865,20 +15978,20 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15868: result: $cf_cv_have___va_copy" >&5
++echo "$as_me:15981: result: $cf_cv_have___va_copy" >&5
+ echo "${ECHO_T}$cf_cv_have___va_copy" >&6
+ 
+ test "$cf_cv_have___va_copy" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE___VA_COPY 1
+ EOF
+ 
+-echo "$as_me:15875: checking for pid_t" >&5
++echo "$as_me:15988: checking for pid_t" >&5
+ echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+ if test "${ac_cv_type_pid_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15881 "configure"
++#line 15994 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -15893,16 +16006,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15896: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16009: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:15899: \$? = $ac_status" >&5
++  echo "$as_me:16012: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:15902: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16015: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15905: \$? = $ac_status" >&5
++  echo "$as_me:16018: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_pid_t=yes
+ else
+@@ -15912,7 +16025,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:15915: result: $ac_cv_type_pid_t" >&5
++echo "$as_me:16028: result: $ac_cv_type_pid_t" >&5
+ echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+ if test $ac_cv_type_pid_t = yes; then
+   :
+@@ -15927,23 +16040,23 @@
+ for ac_header in unistd.h vfork.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:15930: checking for $ac_header" >&5
++echo "$as_me:16043: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15936 "configure"
++#line 16049 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:15940: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:16053: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:15946: \$? = $ac_status" >&5
++  echo "$as_me:16059: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -15962,7 +16075,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:15965: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:16078: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -15975,13 +16088,13 @@
+ for ac_func in fork vfork
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:15978: checking for $ac_func" >&5
++echo "$as_me:16091: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15984 "configure"
++#line 16097 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -16012,16 +16125,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16015: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16128: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16018: \$? = $ac_status" >&5
++  echo "$as_me:16131: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:16021: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16134: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16024: \$? = $ac_status" >&5
++  echo "$as_me:16137: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -16031,7 +16144,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:16034: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:16147: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -16043,7 +16156,7 @@
+ 
+ ac_cv_func_fork_works=$ac_cv_func_fork
+ if test "x$ac_cv_func_fork" = xyes; then
+-  echo "$as_me:16046: checking for working fork" >&5
++  echo "$as_me:16159: checking for working fork" >&5
+ echo $ECHO_N "checking for working fork... $ECHO_C" >&6
+ if test "${ac_cv_func_fork_works+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16066,15 +16179,15 @@
+       }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:16069: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16182: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16072: \$? = $ac_status" >&5
++  echo "$as_me:16185: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:16074: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16187: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16077: \$? = $ac_status" >&5
++  echo "$as_me:16190: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_fork_works=yes
+ else
+@@ -16086,7 +16199,7 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:16089: result: $ac_cv_func_fork_works" >&5
++echo "$as_me:16202: result: $ac_cv_func_fork_works" >&5
+ echo "${ECHO_T}$ac_cv_func_fork_works" >&6
+ 
+ fi
+@@ -16100,12 +16213,12 @@
+       ac_cv_func_fork_works=yes
+       ;;
+   esac
+-  { echo "$as_me:16103: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
++  { echo "$as_me:16216: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
+ echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
+ fi
+ ac_cv_func_vfork_works=$ac_cv_func_vfork
+ if test "x$ac_cv_func_vfork" = xyes; then
+-  echo "$as_me:16108: checking for working vfork" >&5
++  echo "$as_me:16221: checking for working vfork" >&5
+ echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
+ if test "${ac_cv_func_vfork_works+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16114,7 +16227,7 @@
+   ac_cv_func_vfork_works=cross
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 16117 "configure"
++#line 16230 "configure"
+ #include "confdefs.h"
+ /* Thanks to Paul Eggert for this test.  */
+ #include <stdio.h>
+@@ -16211,15 +16324,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:16214: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16327: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16217: \$? = $ac_status" >&5
++  echo "$as_me:16330: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:16219: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16332: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16222: \$? = $ac_status" >&5
++  echo "$as_me:16335: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_vfork_works=yes
+ else
+@@ -16231,13 +16344,13 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:16234: result: $ac_cv_func_vfork_works" >&5
++echo "$as_me:16347: result: $ac_cv_func_vfork_works" >&5
+ echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
+ 
+ fi;
+ if test "x$ac_cv_func_fork_works" = xcross; then
+   ac_cv_func_vfork_works=ac_cv_func_vfork
+-  { echo "$as_me:16240: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
++  { echo "$as_me:16353: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
+ echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
+ fi
+ 
+@@ -16264,7 +16377,7 @@
+ 
+ # special check for test/ditto.c
+ 
+-echo "$as_me:16267: checking for openpty in -lutil" >&5
++echo "$as_me:16380: checking for openpty in -lutil" >&5
+ echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
+ if test "${ac_cv_lib_util_openpty+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16272,7 +16385,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lutil  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16275 "configure"
++#line 16388 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -16291,16 +16404,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16294: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16407: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16297: \$? = $ac_status" >&5
++  echo "$as_me:16410: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:16300: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16413: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16303: \$? = $ac_status" >&5
++  echo "$as_me:16416: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_util_openpty=yes
+ else
+@@ -16311,7 +16424,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:16314: result: $ac_cv_lib_util_openpty" >&5
++echo "$as_me:16427: result: $ac_cv_lib_util_openpty" >&5
+ echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
+ if test $ac_cv_lib_util_openpty = yes; then
+   cf_cv_lib_util=yes
+@@ -16319,7 +16432,7 @@
+   cf_cv_lib_util=no
+ fi
+ 
+-echo "$as_me:16322: checking for openpty header" >&5
++echo "$as_me:16435: checking for openpty header" >&5
+ echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
+ if test "${cf_cv_func_openpty+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16330,7 +16443,7 @@
+     for cf_header in pty.h libutil.h util.h
+     do
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 16333 "configure"
++#line 16446 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -16347,16 +16460,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16350: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16463: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16353: \$? = $ac_status" >&5
++  echo "$as_me:16466: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:16356: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16469: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16359: \$? = $ac_status" >&5
++  echo "$as_me:16472: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+         cf_cv_func_openpty=$cf_header
+@@ -16374,7 +16487,7 @@
+     LIBS="$cf_save_LIBS"
+ 
+ fi
+-echo "$as_me:16377: result: $cf_cv_func_openpty" >&5
++echo "$as_me:16490: result: $cf_cv_func_openpty" >&5
+ echo "${ECHO_T}$cf_cv_func_openpty" >&6
+ 
+ if test "$cf_cv_func_openpty" != no ; then
+@@ -16426,7 +16539,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 16429 "configure"
++#line 16542 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -16438,16 +16551,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16441: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16554: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:16444: \$? = $ac_status" >&5
++  echo "$as_me:16557: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:16447: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16560: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16450: \$? = $ac_status" >&5
++  echo "$as_me:16563: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -16464,7 +16577,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:16467: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:16580: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -16498,7 +16611,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:16501: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:16614: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -16509,23 +16622,23 @@
+     fi
+ esac
+ 
+-echo "$as_me:16512: checking for db.h" >&5
++echo "$as_me:16625: checking for db.h" >&5
+ echo $ECHO_N "checking for db.h... $ECHO_C" >&6
+ if test "${ac_cv_header_db_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 16518 "configure"
++#line 16631 "configure"
+ #include "confdefs.h"
+ #include <db.h>
+ _ACEOF
+-if { (eval echo "$as_me:16522: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:16635: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:16528: \$? = $ac_status" >&5
++  echo "$as_me:16641: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -16544,11 +16657,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:16547: result: $ac_cv_header_db_h" >&5
++echo "$as_me:16660: result: $ac_cv_header_db_h" >&5
+ echo "${ECHO_T}$ac_cv_header_db_h" >&6
+ if test $ac_cv_header_db_h = yes; then
+ 
+-echo "$as_me:16551: checking for version of db" >&5
++echo "$as_me:16664: checking for version of db" >&5
+ echo $ECHO_N "checking for version of db... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16559,10 +16672,10 @@
+ for cf_db_version in 1 2 3 4 5
+ do
+ 
+-echo "${as_me:-configure}:16562: testing checking for db version $cf_db_version ..." 1>&5
++echo "${as_me:-configure}:16675: testing checking for db version $cf_db_version ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 16565 "configure"
++#line 16678 "configure"
+ #include "confdefs.h"
+ 
+ $ac_includes_default
+@@ -16592,16 +16705,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16595: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16708: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:16598: \$? = $ac_status" >&5
++  echo "$as_me:16711: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:16601: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16714: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16604: \$? = $ac_status" >&5
++  echo "$as_me:16717: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_hashed_db_version=$cf_db_version
+@@ -16615,16 +16728,16 @@
+ done
+ 
+ fi
+-echo "$as_me:16618: result: $cf_cv_hashed_db_version" >&5
++echo "$as_me:16731: result: $cf_cv_hashed_db_version" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
+ 
+ if test "$cf_cv_hashed_db_version" = unknown ; then
+-	{ { echo "$as_me:16622: error: Cannot determine version of db" >&5
++	{ { echo "$as_me:16735: error: Cannot determine version of db" >&5
+ echo "$as_me: error: Cannot determine version of db" >&2;}
+    { (exit 1); exit 1; }; }
+ else
+ 
+-echo "$as_me:16627: checking for db libraries" >&5
++echo "$as_me:16740: checking for db libraries" >&5
+ echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_libs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16638,10 +16751,10 @@
+ 		LIBS="-l$cf_db_libs $LIBS"
+ 	fi
+ 
+-echo "${as_me:-configure}:16641: testing checking for library "$cf_db_libs" ..." 1>&5
++echo "${as_me:-configure}:16754: testing checking for library "$cf_db_libs" ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 16644 "configure"
++#line 16757 "configure"
+ #include "confdefs.h"
+ 
+ $ac_includes_default
+@@ -16696,16 +16809,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16699: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16812: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16702: \$? = $ac_status" >&5
++  echo "$as_me:16815: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:16705: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16818: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16708: \$? = $ac_status" >&5
++  echo "$as_me:16821: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	if test -n "$cf_db_libs" ; then
+@@ -16725,11 +16838,11 @@
+ done
+ 
+ fi
+-echo "$as_me:16728: result: $cf_cv_hashed_db_libs" >&5
++echo "$as_me:16841: result: $cf_cv_hashed_db_libs" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
+ 
+ 	if test "$cf_cv_hashed_db_libs" = unknown ; then
+-		{ { echo "$as_me:16732: error: Cannot determine library for db" >&5
++		{ { echo "$as_me:16845: error: Cannot determine library for db" >&5
+ echo "$as_me: error: Cannot determine library for db" >&2;}
+    { (exit 1); exit 1; }; }
+ 	elif test "$cf_cv_hashed_db_libs" != default ; then
+@@ -16739,7 +16852,7 @@
+ 
+ else
+ 
+-	{ { echo "$as_me:16742: error: Cannot find db.h" >&5
++	{ { echo "$as_me:16855: error: Cannot find db.h" >&5
+ echo "$as_me: error: Cannot find db.h" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+@@ -16754,7 +16867,7 @@
+ 
+ # Just in case, check if the C compiler has a bool type.
+ 
+-echo "$as_me:16757: checking if we should include stdbool.h" >&5
++echo "$as_me:16870: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+ 
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -16762,7 +16875,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 16765 "configure"
++#line 16878 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -16774,23 +16887,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16777: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16890: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:16780: \$? = $ac_status" >&5
++  echo "$as_me:16893: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:16783: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16896: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16786: \$? = $ac_status" >&5
++  echo "$as_me:16899: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=0
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16793 "configure"
++#line 16906 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef __BEOS__
+@@ -16806,16 +16919,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16922: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:16812: \$? = $ac_status" >&5
++  echo "$as_me:16925: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:16815: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16928: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16818: \$? = $ac_status" >&5
++  echo "$as_me:16931: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=1
+ else
+@@ -16829,13 +16942,13 @@
+ fi
+ 
+ if test "$cf_cv_header_stdbool_h" = 1
+-then	echo "$as_me:16832: result: yes" >&5
++then	echo "$as_me:16945: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:16834: result: no" >&5
++else	echo "$as_me:16947: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:16838: checking for builtin bool type" >&5
++echo "$as_me:16951: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+ 
+ if test "${cf_cv_cc_bool_type+set}" = set; then
+@@ -16843,7 +16956,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 16846 "configure"
++#line 16959 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -16858,16 +16971,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16861: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16974: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:16864: \$? = $ac_status" >&5
++  echo "$as_me:16977: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:16867: \"$ac_try\"") >&5
++  { (eval echo "$as_me:16980: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16870: \$? = $ac_status" >&5
++  echo "$as_me:16983: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cc_bool_type=1
+ else
+@@ -16880,9 +16993,9 @@
+ fi
+ 
+ if test "$cf_cv_cc_bool_type" = 1
+-then	echo "$as_me:16883: result: yes" >&5
++then	echo "$as_me:16996: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:16885: result: no" >&5
++else	echo "$as_me:16998: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -16904,7 +17017,7 @@
+ 	cf_stdcpp_libname=stdc++
+ 	;;
+ esac
+-echo "$as_me:16907: checking for library $cf_stdcpp_libname" >&5
++echo "$as_me:17020: checking for library $cf_stdcpp_libname" >&5
+ echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
+ if test "${cf_cv_libstdcpp+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16913,7 +17026,7 @@
+ 	cf_save="$LIBS"
+ 	LIBS="-l$cf_stdcpp_libname $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16916 "configure"
++#line 17029 "configure"
+ #include "confdefs.h"
+ 
+ #include <strstream.h>
+@@ -16929,16 +17042,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16932: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17045: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:16935: \$? = $ac_status" >&5
++  echo "$as_me:17048: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:16938: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17051: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16941: \$? = $ac_status" >&5
++  echo "$as_me:17054: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_libstdcpp=yes
+ else
+@@ -16950,12 +17063,12 @@
+ 	LIBS="$cf_save"
+ 
+ fi
+-echo "$as_me:16953: result: $cf_cv_libstdcpp" >&5
++echo "$as_me:17066: result: $cf_cv_libstdcpp" >&5
+ echo "${ECHO_T}$cf_cv_libstdcpp" >&6
+ test "$cf_cv_libstdcpp" = yes && CXXLIBS="-l$cf_stdcpp_libname $CXXLIBS"
+ fi
+ 
+-	echo "$as_me:16958: checking whether $CXX understands -c and -o together" >&5
++	echo "$as_me:17071: checking whether $CXX understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CXX_c_o+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16971,15 +17084,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:16974: \"$ac_try\"") >&5
++if { (eval echo "$as_me:17087: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16977: \$? = $ac_status" >&5
++  echo "$as_me:17090: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-  test -f conftest2.$ac_objext && { (eval echo "$as_me:16979: \"$ac_try\"") >&5
++  test -f conftest2.$ac_objext && { (eval echo "$as_me:17092: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:16982: \$? = $ac_status" >&5
++  echo "$as_me:17095: \$? = $ac_status" >&5
+   (exit $ac_status); };
+ then
+   eval cf_cv_prog_CXX_c_o=yes
+@@ -16990,10 +17103,10 @@
+ 
+ fi
+ if test $cf_cv_prog_CXX_c_o = yes; then
+-  echo "$as_me:16993: result: yes" >&5
++  echo "$as_me:17106: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-  echo "$as_me:16996: result: no" >&5
++  echo "$as_me:17109: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -17013,12 +17126,12 @@
+ 	;;
+ esac
+ if test "$GXX" = yes; then
+-	echo "$as_me:17016: checking for lib$cf_gpp_libname" >&5
++	echo "$as_me:17129: checking for lib$cf_gpp_libname" >&5
+ echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
+ 	cf_save="$LIBS"
+ 	LIBS="-l$cf_gpp_libname $LIBS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 17021 "configure"
++#line 17134 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_gpp_libname/builtin.h>
+@@ -17032,16 +17145,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:17035: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17148: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:17038: \$? = $ac_status" >&5
++  echo "$as_me:17151: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:17041: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17154: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17044: \$? = $ac_status" >&5
++  echo "$as_me:17157: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cxx_library=yes
+ 	 CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
+@@ -17060,7 +17173,7 @@
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17063 "configure"
++#line 17176 "configure"
+ #include "confdefs.h"
+ 
+ #include <builtin.h>
+@@ -17074,16 +17187,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:17077: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17190: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:17080: \$? = $ac_status" >&5
++  echo "$as_me:17193: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:17083: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17196: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17086: \$? = $ac_status" >&5
++  echo "$as_me:17199: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cxx_library=yes
+ 	 CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
+@@ -17100,7 +17213,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 	LIBS="$cf_save"
+-	echo "$as_me:17103: result: $cf_cxx_library" >&5
++	echo "$as_me:17216: result: $cf_cxx_library" >&5
+ echo "${ECHO_T}$cf_cxx_library" >&6
+ fi
+ 
+@@ -17116,7 +17229,7 @@
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:17119: checking how to run the C++ preprocessor" >&5
++echo "$as_me:17232: checking how to run the C++ preprocessor" >&5
+ echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+ if test -z "$CXXCPP"; then
+   if test "${ac_cv_prog_CXXCPP+set}" = set; then
+@@ -17133,18 +17246,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17136 "configure"
++#line 17249 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:17141: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17254: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:17147: \$? = $ac_status" >&5
++  echo "$as_me:17260: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17167,17 +17280,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17170 "configure"
++#line 17283 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:17174: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17287: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:17180: \$? = $ac_status" >&5
++  echo "$as_me:17293: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17214,7 +17327,7 @@
+ else
+   ac_cv_prog_CXXCPP=$CXXCPP
+ fi
+-echo "$as_me:17217: result: $CXXCPP" >&5
++echo "$as_me:17330: result: $CXXCPP" >&5
+ echo "${ECHO_T}$CXXCPP" >&6
+ ac_preproc_ok=false
+ for ac_cxx_preproc_warn_flag in '' yes
+@@ -17224,18 +17337,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17227 "configure"
++#line 17340 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:17232: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17345: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:17238: \$? = $ac_status" >&5
++  echo "$as_me:17351: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17258,17 +17371,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17261 "configure"
++#line 17374 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:17265: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17378: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:17271: \$? = $ac_status" >&5
++  echo "$as_me:17384: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17296,7 +17409,7 @@
+ if $ac_preproc_ok; then
+   :
+ else
+-  { { echo "$as_me:17299: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
++  { { echo "$as_me:17412: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -17311,23 +17424,23 @@
+ for ac_header in iostream typeinfo
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:17314: checking for $ac_header" >&5
++echo "$as_me:17427: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17320 "configure"
++#line 17433 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:17324: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17437: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:17330: \$? = $ac_status" >&5
++  echo "$as_me:17443: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17346,7 +17459,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:17349: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:17462: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -17357,10 +17470,10 @@
+ done
+ 
+     if test x"$ac_cv_header_iostream" = xyes ; then
+-        echo "$as_me:17360: checking if iostream uses std-namespace" >&5
++        echo "$as_me:17473: checking if iostream uses std-namespace" >&5
+ echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 17363 "configure"
++#line 17476 "configure"
+ #include "confdefs.h"
+ 
+ #include <iostream>
+@@ -17377,16 +17490,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17380: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17493: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17383: \$? = $ac_status" >&5
++  echo "$as_me:17496: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17386: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17499: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17389: \$? = $ac_status" >&5
++  echo "$as_me:17502: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_iostream_namespace=yes
+ else
+@@ -17395,7 +17508,7 @@
+ cf_iostream_namespace=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-        echo "$as_me:17398: result: $cf_iostream_namespace" >&5
++        echo "$as_me:17511: result: $cf_iostream_namespace" >&5
+ echo "${ECHO_T}$cf_iostream_namespace" >&6
+         if test "$cf_iostream_namespace" = yes ; then
+             cat >>confdefs.h <<\EOF
+@@ -17405,7 +17518,7 @@
+         fi
+     fi
+ 
+-echo "$as_me:17408: checking if we should include stdbool.h" >&5
++echo "$as_me:17521: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+ 
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -17413,7 +17526,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 17416 "configure"
++#line 17529 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -17425,23 +17538,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17428: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17541: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17431: \$? = $ac_status" >&5
++  echo "$as_me:17544: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17434: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17547: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17437: \$? = $ac_status" >&5
++  echo "$as_me:17550: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=0
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17444 "configure"
++#line 17557 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef __BEOS__
+@@ -17457,16 +17570,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17460: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17573: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17463: \$? = $ac_status" >&5
++  echo "$as_me:17576: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17466: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17579: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17469: \$? = $ac_status" >&5
++  echo "$as_me:17582: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_header_stdbool_h=1
+ else
+@@ -17480,13 +17593,13 @@
+ fi
+ 
+ if test "$cf_cv_header_stdbool_h" = 1
+-then	echo "$as_me:17483: result: yes" >&5
++then	echo "$as_me:17596: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:17485: result: no" >&5
++else	echo "$as_me:17598: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:17489: checking for builtin bool type" >&5
++echo "$as_me:17602: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+ 
+ if test "${cf_cv_builtin_bool+set}" = set; then
+@@ -17494,7 +17607,7 @@
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 17497 "configure"
++#line 17610 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdio.h>
+@@ -17509,16 +17622,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17512: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17625: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17515: \$? = $ac_status" >&5
++  echo "$as_me:17628: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17518: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17631: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17521: \$? = $ac_status" >&5
++  echo "$as_me:17634: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_builtin_bool=1
+ else
+@@ -17531,13 +17644,13 @@
+ fi
+ 
+ if test "$cf_cv_builtin_bool" = 1
+-then	echo "$as_me:17534: result: yes" >&5
++then	echo "$as_me:17647: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else	echo "$as_me:17536: result: no" >&5
++else	echo "$as_me:17649: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:17540: checking for size of bool" >&5
++echo "$as_me:17653: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17548,7 +17661,7 @@
+   cf_cv_type_of_bool=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17551 "configure"
++#line 17664 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -17590,15 +17703,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17593: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17706: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:17596: \$? = $ac_status" >&5
++  echo "$as_me:17709: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:17598: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17711: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17601: \$? = $ac_status" >&5
++  echo "$as_me:17714: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_of_bool=`cat cf_test.out`
+ 		 if test -z "$cf_cv_type_of_bool"; then
+@@ -17616,18 +17729,18 @@
+ fi
+ 
+ 	rm -f cf_test.out
+-echo "$as_me:17619: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:17732: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ 	case .$NCURSES_BOOL in #(vi
+ 	.auto|.) NCURSES_BOOL=unsigned;;
+ 	esac
+-	{ echo "$as_me:17625: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++	{ echo "$as_me:17738: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ 	cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+ 
+-echo "$as_me:17630: checking for special defines needed for etip.h" >&5
++echo "$as_me:17743: checking for special defines needed for etip.h" >&5
+ echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ cf_result="none"
+@@ -17639,7 +17752,7 @@
+ 	test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
+ 	test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17642 "configure"
++#line 17755 "configure"
+ #include "confdefs.h"
+ 
+ #include <etip.h.in>
+@@ -17653,16 +17766,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17656: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17769: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17659: \$? = $ac_status" >&5
++  echo "$as_me:17772: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17662: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17775: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17665: \$? = $ac_status" >&5
++  echo "$as_me:17778: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	test -n "$cf_math" && cat >>confdefs.h <<EOF
+@@ -17683,12 +17796,12 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ done
+-echo "$as_me:17686: result: $cf_result" >&5
++echo "$as_me:17799: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ CXXFLAGS="$cf_save_CXXFLAGS"
+ 
+ if test -n "$CXX"; then
+-echo "$as_me:17691: checking if $CXX accepts parameter initialization" >&5
++echo "$as_me:17804: checking if $CXX accepts parameter initialization" >&5
+ echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
+ if test "${cf_cv_cpp_param_init+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17705,7 +17818,7 @@
+   cf_cv_cpp_param_init=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17708 "configure"
++#line 17821 "configure"
+ #include "confdefs.h"
+ 
+ class TEST {
+@@ -17724,15 +17837,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17727: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17840: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:17730: \$? = $ac_status" >&5
++  echo "$as_me:17843: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:17732: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17845: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17735: \$? = $ac_status" >&5
++  echo "$as_me:17848: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cpp_param_init=yes
+ else
+@@ -17751,7 +17864,7 @@
+ ac_main_return=return
+ 
+ fi
+-echo "$as_me:17754: result: $cf_cv_cpp_param_init" >&5
++echo "$as_me:17867: result: $cf_cv_cpp_param_init" >&5
+ echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
+ fi
+ test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
+@@ -17760,7 +17873,7 @@
+ 
+ if test -n "$CXX"; then
+ 
+-echo "$as_me:17763: checking if $CXX accepts static_cast" >&5
++echo "$as_me:17876: checking if $CXX accepts static_cast" >&5
+ echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
+ if test "${cf_cv_cpp_static_cast+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17774,7 +17887,7 @@
+ ac_main_return=return
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 17777 "configure"
++#line 17890 "configure"
+ #include "confdefs.h"
+ 
+ class NCursesPanel
+@@ -17818,16 +17931,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17821: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17934: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:17824: \$? = $ac_status" >&5
++  echo "$as_me:17937: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:17827: \"$ac_try\"") >&5
++  { (eval echo "$as_me:17940: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17830: \$? = $ac_status" >&5
++  echo "$as_me:17943: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_cpp_static_cast=yes
+ else
+@@ -17845,7 +17958,7 @@
+ ac_main_return=return
+ 
+ fi
+-echo "$as_me:17848: result: $cf_cv_cpp_static_cast" >&5
++echo "$as_me:17961: result: $cf_cv_cpp_static_cast" >&5
+ echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
+ 
+ fi
+@@ -17893,7 +18006,7 @@
+ 	else
+ 		if test "$cf_cv_header_stdbool_h" = 1 ; then
+ 
+-echo "$as_me:17896: checking for size of bool" >&5
++echo "$as_me:18009: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17904,7 +18017,7 @@
+   cf_cv_type_of_bool=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 17907 "configure"
++#line 18020 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -17946,15 +18059,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17949: \"$ac_link\"") >&5
++if { (eval echo "$as_me:18062: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:17952: \$? = $ac_status" >&5
++  echo "$as_me:18065: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:17954: \"$ac_try\"") >&5
++  { (eval echo "$as_me:18067: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:17957: \$? = $ac_status" >&5
++  echo "$as_me:18070: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_type_of_bool=`cat cf_test.out`
+ 		 if test -z "$cf_cv_type_of_bool"; then
+@@ -17972,25 +18085,25 @@
+ fi
+ 
+ 	rm -f cf_test.out
+-echo "$as_me:17975: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:18088: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ 	case .$NCURSES_BOOL in #(vi
+ 	.auto|.) NCURSES_BOOL=unsigned;;
+ 	esac
+-	{ echo "$as_me:17981: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++	{ echo "$as_me:18094: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ 	cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+ 
+ 		else
+-			echo "$as_me:17987: checking for fallback type of bool" >&5
++			echo "$as_me:18100: checking for fallback type of bool" >&5
+ echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
+ 			case "$host_cpu" in #(vi
+ 			i?86)	cf_cv_type_of_bool=char	;; #(vi
+ 			*)	cf_cv_type_of_bool=int	;;
+ 			esac
+-			echo "$as_me:17993: result: $cf_cv_type_of_bool" >&5
++			echo "$as_me:18106: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ 		fi
+ 	fi
+@@ -18019,7 +18132,7 @@
+ 
+ 	if test "$cf_with_ada" != "no" ; then
+ 		if test "$with_libtool" != "no"; then
+-			{ echo "$as_me:18022: WARNING: libtool does not support Ada - disabling feature" >&5
++			{ echo "$as_me:18135: WARNING: libtool does not support Ada - disabling feature" >&5
+ echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
+ 			cf_with_ada=no
+ 		fi
+@@ -18030,7 +18143,7 @@
+ cf_ada_make=gnatmake
+ # Extract the first word of "$cf_ada_make", so it can be a program name with args.
+ set dummy $cf_ada_make; ac_word=$2
+-echo "$as_me:18033: checking for $ac_word" >&5
++echo "$as_me:18146: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_gnat_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18045,7 +18158,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:18048: found $ac_dir/$ac_word" >&5
++echo "$as_me:18161: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -18054,10 +18167,10 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+-  echo "$as_me:18057: result: $gnat_exists" >&5
++  echo "$as_me:18170: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+-  echo "$as_me:18060: result: no" >&5
++  echo "$as_me:18173: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -18065,12 +18178,12 @@
+    cf_ada_make=
+ else
+ 
+-echo "$as_me:18068: checking for gnat version" >&5
++echo "$as_me:18181: checking for gnat version" >&5
+ echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
+ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
+ 	grep '[0-9].[0-9][0-9]*' |\
+     sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
+-echo "$as_me:18073: result: $cf_gnat_version" >&5
++echo "$as_me:18186: result: $cf_gnat_version" >&5
+ echo "${ECHO_T}$cf_gnat_version" >&6
+ 
+ case $cf_gnat_version in #(vi
+@@ -18078,7 +18191,7 @@
+ 	cf_cv_prog_gnat_correct=yes
+ 	;;
+ *)
+-	{ echo "$as_me:18081: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
++	{ echo "$as_me:18194: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
+ 	cf_cv_prog_gnat_correct=no
+ 	;;
+@@ -18086,7 +18199,7 @@
+ 
+    # Extract the first word of "m4", so it can be a program name with args.
+ set dummy m4; ac_word=$2
+-echo "$as_me:18089: checking for $ac_word" >&5
++echo "$as_me:18202: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_M4_exists+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18101,7 +18214,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:18104: found $ac_dir/$ac_word" >&5
++echo "$as_me:18217: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -18110,10 +18223,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+-  echo "$as_me:18113: result: $M4_exists" >&5
++  echo "$as_me:18226: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+-  echo "$as_me:18116: result: no" >&5
++  echo "$as_me:18229: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -18122,7 +18235,7 @@
+       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
+    fi
+    if test "$cf_cv_prog_gnat_correct" = yes; then
+-      echo "$as_me:18125: checking if GNAT works" >&5
++      echo "$as_me:18238: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+ 
+ rm -rf conftest* *~conftest*
+@@ -18150,7 +18263,7 @@
+ fi
+ rm -rf conftest* *~conftest*
+ 
+-      echo "$as_me:18153: result: $cf_cv_prog_gnat_correct" >&5
++      echo "$as_me:18266: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+    fi
+ fi
+@@ -18175,7 +18288,7 @@
+ 				;;
+ 			esac
+ 
+-echo "$as_me:18178: checking if GNAT supports generics" >&5
++echo "$as_me:18291: checking if GNAT supports generics" >&5
+ echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[1-9]*|[4-9].*) #(vi
+@@ -18185,7 +18298,7 @@
+ 	cf_gnat_generics=no
+ 	;;
+ esac
+-echo "$as_me:18188: result: $cf_gnat_generics" >&5
++echo "$as_me:18301: result: $cf_gnat_generics" >&5
+ echo "${ECHO_T}$cf_gnat_generics" >&6
+ 
+ if test "$cf_gnat_generics" = yes
+@@ -18197,7 +18310,7 @@
+ 	cf_generic_objects=
+ fi
+ 
+-echo "$as_me:18200: checking if GNAT supports SIGINT" >&5
++echo "$as_me:18313: checking if GNAT supports SIGINT" >&5
+ echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
+ if test "${cf_cv_gnat_sigint+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18245,7 +18358,7 @@
+ rm -rf conftest* *~conftest*
+ 
+ fi
+-echo "$as_me:18248: result: $cf_cv_gnat_sigint" >&5
++echo "$as_me:18361: result: $cf_cv_gnat_sigint" >&5
+ echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
+ 
+ if test $cf_cv_gnat_sigint = yes ; then
+@@ -18254,7 +18367,7 @@
+ 	USE_GNAT_SIGINT="#"
+ fi
+ 
+-echo "$as_me:18257: checking if GNAT pragma Unreferenced works" >&5
++echo "$as_me:18370: checking if GNAT pragma Unreferenced works" >&5
+ echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+ if test "${cf_cv_pragma_unreferenced+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18285,7 +18398,7 @@
+ rm -rf conftest* *~conftest*
+ 
+ fi
+-echo "$as_me:18288: result: $cf_cv_pragma_unreferenced" >&5
++echo "$as_me:18401: result: $cf_cv_pragma_unreferenced" >&5
+ echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+ 
+ # if the pragma is supported, use it (needed in the Trace code).
+@@ -18298,7 +18411,7 @@
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+ 
+-echo "$as_me:18301: checking if GNAT supports project files" >&5
++echo "$as_me:18414: checking if GNAT supports project files" >&5
+ echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[0-9]*) #(vi
+@@ -18366,14 +18479,14 @@
+ 	esac
+ 	;;
+ esac
+-echo "$as_me:18369: result: $cf_gnat_projects" >&5
++echo "$as_me:18482: result: $cf_gnat_projects" >&5
+ echo "${ECHO_T}$cf_gnat_projects" >&6
+ 
+ if test $cf_gnat_projects = yes
+ then
+-	echo "$as_me:18374: checking if GNAT supports libraries" >&5
++	echo "$as_me:18487: checking if GNAT supports libraries" >&5
+ echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
+-	echo "$as_me:18376: result: $cf_gnat_libraries" >&5
++	echo "$as_me:18489: result: $cf_gnat_libraries" >&5
+ echo "${ECHO_T}$cf_gnat_libraries" >&6
+ fi
+ 
+@@ -18393,7 +18506,7 @@
+ 	USE_GNAT_LIBRARIES="#"
+ fi
+ 
+-echo "$as_me:18396: checking for ada-compiler" >&5
++echo "$as_me:18509: checking for ada-compiler" >&5
+ echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-compiler or --without-ada-compiler was given.
+@@ -18404,12 +18517,12 @@
+   cf_ada_compiler=gnatmake
+ fi;
+ 
+-echo "$as_me:18407: result: $cf_ada_compiler" >&5
++echo "$as_me:18520: result: $cf_ada_compiler" >&5
+ echo "${ECHO_T}$cf_ada_compiler" >&6
+ 
+ 			cf_ada_package=terminal_interface
+ 
+-echo "$as_me:18412: checking for ada-include" >&5
++echo "$as_me:18525: checking for ada-include" >&5
+ echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-include or --without-ada-include was given.
+@@ -18445,7 +18558,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:18448: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:18561: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -18454,10 +18567,10 @@
+ fi
+ ADA_INCLUDE="$withval"
+ 
+-echo "$as_me:18457: result: $ADA_INCLUDE" >&5
++echo "$as_me:18570: result: $ADA_INCLUDE" >&5
+ echo "${ECHO_T}$ADA_INCLUDE" >&6
+ 
+-echo "$as_me:18460: checking for ada-objects" >&5
++echo "$as_me:18573: checking for ada-objects" >&5
+ echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-objects or --without-ada-objects was given.
+@@ -18493,7 +18606,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:18496: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:18609: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -18502,10 +18615,10 @@
+ fi
+ ADA_OBJECTS="$withval"
+ 
+-echo "$as_me:18505: result: $ADA_OBJECTS" >&5
++echo "$as_me:18618: result: $ADA_OBJECTS" >&5
+ echo "${ECHO_T}$ADA_OBJECTS" >&6
+ 
+-echo "$as_me:18508: checking if an Ada95 shared-library should be built" >&5
++echo "$as_me:18621: checking if an Ada95 shared-library should be built" >&5
+ echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+ 
+ # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
+@@ -18515,7 +18628,7 @@
+ else
+   with_ada_sharedlib=no
+ fi;
+-echo "$as_me:18518: result: $with_ada_sharedlib" >&5
++echo "$as_me:18631: result: $with_ada_sharedlib" >&5
+ echo "${ECHO_T}$with_ada_sharedlib" >&6
+ 
+ ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
+@@ -18546,7 +18659,7 @@
+ ### chooses to split module lists into libraries.
+ ###
+ ### (see CF_LIB_RULES).
+-echo "$as_me:18549: checking for library subsets" >&5
++echo "$as_me:18662: checking for library subsets" >&5
+ echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
+ LIB_SUBSETS=
+ 
+@@ -18587,7 +18700,7 @@
+ test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+ test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+ 
+-echo "$as_me:18590: result: $LIB_SUBSETS" >&5
++echo "$as_me:18703: result: $LIB_SUBSETS" >&5
+ echo "${ECHO_T}$LIB_SUBSETS" >&6
+ 
+ ### Construct the list of include-directories to be generated
+@@ -18625,7 +18738,7 @@
+ fi
+ 
+ ### Build up pieces for makefile rules
+-echo "$as_me:18628: checking default library suffix" >&5
++echo "$as_me:18741: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -18636,10 +18749,10 @@
+ 	shared)  DFT_ARG_SUFFIX=''   ;;
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:18639: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:18752: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+ 
+-echo "$as_me:18642: checking default library-dependency suffix" >&5
++echo "$as_me:18755: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in #(vi
+@@ -18692,10 +18805,10 @@
+ 	esac
+ 	test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
+ 	test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
+-echo "$as_me:18695: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:18808: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+ 
+-echo "$as_me:18698: checking default object directory" >&5
++echo "$as_me:18811: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+ 
+ 	case $DFT_LWR_MODEL in
+@@ -18711,12 +18824,12 @@
+ 			DFT_OBJ_SUBDIR='obj_s' ;;
+ 		esac
+ 	esac
+-echo "$as_me:18714: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:18827: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+ 
+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
+ if test "$cf_with_cxx" = yes ; then
+-echo "$as_me:18719: checking c++ library-dependency suffix" >&5
++echo "$as_me:18832: checking c++ library-dependency suffix" >&5
+ echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
+ if test "$with_libtool" != "no"; then
+ 	CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+@@ -18773,7 +18886,7 @@
+ 	test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
+ 	test -n "$LIB_SUFFIX" && CXX_DEP_SUFFIX="${LIB_SUFFIX}${CXX_DEP_SUFFIX}"
+ fi
+-echo "$as_me:18776: result: $CXX_LIB_SUFFIX" >&5
++echo "$as_me:18889: result: $CXX_LIB_SUFFIX" >&5
+ echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
+ 
+ fi
+@@ -18927,19 +19040,19 @@
+ 
+ if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
+ then
+-	echo "$as_me:18930: checking if linker supports switching between static/dynamic" >&5
++	echo "$as_me:19043: checking if linker supports switching between static/dynamic" >&5
+ echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6
+ 
+ 	rm -f libconftest.a
+ 	cat >conftest.$ac_ext <<EOF
+-#line 18935 "configure"
++#line 19048 "configure"
+ #include <stdio.h>
+ int cf_ldflags_static(FILE *fp) { return fflush(fp); }
+ EOF
+-	if { (eval echo "$as_me:18939: \"$ac_compile\"") >&5
++	if { (eval echo "$as_me:19052: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:18942: \$? = $ac_status" >&5
++  echo "$as_me:19055: \$? = $ac_status" >&5
+   (exit $ac_status); } ; then
+ 		( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null
+ 		( eval $RANLIB libconftest.a ) 2>&5 >/dev/null
+@@ -18950,10 +19063,10 @@
+ 
+ 	LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 18953 "configure"
++#line 19066 "configure"
+ #include "confdefs.h"
+ 
+-#line 18956 "configure"
++#line 19069 "configure"
+ #include <stdio.h>
+ int cf_ldflags_static(FILE *fp);
+ 
+@@ -18968,16 +19081,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:18971: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19084: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:18974: \$? = $ac_status" >&5
++  echo "$as_me:19087: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:18977: \"$ac_try\"") >&5
++  { (eval echo "$as_me:19090: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:18980: \$? = $ac_status" >&5
++  echo "$as_me:19093: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_ldflags_static=yes
+ else
+@@ -18990,7 +19103,7 @@
+ 	rm -f libconftest.*
+ 	LIBS="$cf_save_LIBS"
+ 
+-	echo "$as_me:18993: result: $cf_ldflags_static" >&5
++	echo "$as_me:19106: result: $cf_ldflags_static" >&5
+ echo "${ECHO_T}$cf_ldflags_static" >&6
+ 
+ 	if test $cf_ldflags_static != yes
+@@ -19006,12 +19119,12 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:19009: checking where we will install curses.h" >&5
++echo "$as_me:19122: checking where we will install curses.h" >&5
+ echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
+ test "$with_overwrite" = no && \
+ test "x$includedir" = 'x${prefix}/include' && \
+ 	includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
+-echo "$as_me:19014: result: $includedir" >&5
++echo "$as_me:19127: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ 
+ ### Resolve a conflict between normal and wide-curses by forcing applications
+@@ -19019,7 +19132,7 @@
+ if test "$with_overwrite" != no ; then
+ if test "$NCURSES_LIBUTF8" = 1 ; then
+ 	NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+-	{ echo "$as_me:19022: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
++	{ echo "$as_me:19135: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+ echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
+ fi
+ fi
+@@ -19036,7 +19149,7 @@
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+ 
+-echo "$as_me:19039: checking for src modules" >&5
++echo "$as_me:19152: checking for src modules" >&5
+ echo $ECHO_N "checking for src modules... $ECHO_C" >&6
+ 
+ # dependencies and linker-arguments for test-programs
+@@ -19099,7 +19212,7 @@
+ 		fi
+ 	fi
+ done
+-echo "$as_me:19102: result: $cf_cv_src_modules" >&5
++echo "$as_me:19215: result: $cf_cv_src_modules" >&5
+ echo "${ECHO_T}$cf_cv_src_modules" >&6
+ 
+ TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+@@ -19305,7 +19418,7 @@
+ 
+ # Extract the first word of "tic", so it can be a program name with args.
+ set dummy tic; ac_word=$2
+-echo "$as_me:19308: checking for $ac_word" >&5
++echo "$as_me:19421: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_TIC_PATH+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -19322,7 +19435,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_TIC_PATH="$ac_dir/$ac_word"
+-   echo "$as_me:19325: found $ac_dir/$ac_word" >&5
++   echo "$as_me:19438: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -19334,10 +19447,10 @@
+ TIC_PATH=$ac_cv_path_TIC_PATH
+ 
+ if test -n "$TIC_PATH"; then
+-  echo "$as_me:19337: result: $TIC_PATH" >&5
++  echo "$as_me:19450: result: $TIC_PATH" >&5
+ echo "${ECHO_T}$TIC_PATH" >&6
+ else
+-  echo "$as_me:19340: result: no" >&5
++  echo "$as_me:19453: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -19345,7 +19458,7 @@
+ then
+ 	if test "$TIC_PATH" = unknown
+ 	then
+-		{ echo "$as_me:19348: WARNING: no tic program found for fallbacks" >&5
++		{ echo "$as_me:19461: WARNING: no tic program found for fallbacks" >&5
+ echo "$as_me: WARNING: no tic program found for fallbacks" >&2;}
+ 	fi
+ fi
+@@ -19446,7 +19559,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:19449: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:19562: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -19622,7 +19735,7 @@
+     echo "$ac_cs_version"; exit 0 ;;
+   --he | --h)
+     # Conflict between --help and --header
+-    { { echo "$as_me:19625: error: ambiguous option: $1
++    { { echo "$as_me:19738: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -19641,7 +19754,7 @@
+     ac_need_defaults=false;;
+ 
+   # This is an error.
+-  -*) { { echo "$as_me:19644: error: unrecognized option: $1
++  -*) { { echo "$as_me:19757: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -19747,7 +19860,7 @@
+   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+   "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+-  *) { { echo "$as_me:19750: error: invalid argument: $ac_config_target" >&5
++  *) { { echo "$as_me:19863: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+    { (exit 1); exit 1; }; };;
+   esac
+@@ -20157,7 +20270,7 @@
+   esac
+ 
+   if test x"$ac_file" != x-; then
+-    { echo "$as_me:20160: creating $ac_file" >&5
++    { echo "$as_me:20273: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+     rm -f "$ac_file"
+   fi
+@@ -20175,7 +20288,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:20178: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:20291: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -20188,7 +20301,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:20191: error: cannot find input file: $f" >&5
++           { { echo "$as_me:20304: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -20254,7 +20367,7 @@
+   * )   ac_file_in=$ac_file.in ;;
+   esac
+ 
+-  test x"$ac_file" != x- && { echo "$as_me:20257: creating $ac_file" >&5
++  test x"$ac_file" != x- && { echo "$as_me:20370: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ 
+   # First look for the input files in the build tree, otherwise in the
+@@ -20265,7 +20378,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:20268: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:20381: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -20278,7 +20391,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:20281: error: cannot find input file: $f" >&5
++           { { echo "$as_me:20394: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -20336,7 +20449,7 @@
+   rm -f $tmp/in
+   if test x"$ac_file" != x-; then
+     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+-      { echo "$as_me:20339: $ac_file is unchanged" >&5
++      { echo "$as_me:20452: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+diff -Naur ncurses-5.9.orig/configure.in ncurses-5.9/configure.in
+--- ncurses-5.9.orig/configure.in	2011-03-28 00:22:26.000000000 +0000
++++ ncurses-5.9/configure.in	2011-05-17 16:13:14.826441282 +0000
+@@ -28,14 +28,14 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: configure.in,v 1.520 2011/03/28 00:22:26 tom Exp $
++dnl $Id: configure.in,v 1.522 2011/04/23 23:48:10 tom Exp $
+ dnl Process this file with autoconf to produce a configure script.
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+ AC_PREREQ(2.13.20020210)
+-AC_REVISION($Revision: 1.520 $)
++AC_REVISION($Revision: 1.522 $)
+ AC_INIT(ncurses/base/lib_initscr.c)
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+ 
+@@ -883,12 +883,15 @@
+ AC_MSG_RESULT($with_ext_funcs)
+ if test "$with_ext_funcs" = yes ; then
+ 	NCURSES_EXT_FUNCS=1
++	AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS)
+ 	AC_DEFINE(HAVE_CURSES_VERSION)
+ 	AC_DEFINE(HAVE_HAS_KEY)
+ 	AC_DEFINE(HAVE_RESIZETERM)
+ 	AC_DEFINE(HAVE_RESIZE_TERM)
+ 	AC_DEFINE(HAVE_TERM_ENTRY_H)
+ 	AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
++	AC_DEFINE(HAVE_USE_SCREEN)
++	AC_DEFINE(HAVE_USE_WINDOW)
+ 	AC_DEFINE(HAVE_WRESIZE)
+ 	AC_DEFINE(NCURSES_EXT_FUNCS)
+ 	GENERATED_EXT_FUNCS=generated
+@@ -1344,6 +1347,8 @@
+ wctype.h \
+ )
+ 
++CF_GETOPT_HEADER
++
+ # check for ISC (this may also define _POSIX_SOURCE)
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+ if test "$ISC" = yes ; then
+diff -Naur ncurses-5.9.orig/dist.mk ncurses-5.9/dist.mk
+--- ncurses-5.9.orig/dist.mk	2011-04-04 22:42:20.000000000 +0000
++++ ncurses-5.9/dist.mk	2011-05-17 16:13:21.529697506 +0000
+@@ -25,7 +25,7 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $
++# $Id: dist.mk,v 1.816 2011/05/14 17:22:21 tom Exp $
+ # Makefile for creating ncurses distributions.
+ #
+ # This only needs to be used directly as a makefile by developers, but
+@@ -37,7 +37,7 @@
+ # These define the major/minor/patch versions of ncurses.
+ NCURSES_MAJOR = 5
+ NCURSES_MINOR = 9
+-NCURSES_PATCH = 20110404
++NCURSES_PATCH = 20110514
+ 
+ # We don't append the patch to the version, since this only applies to releases
+ VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+diff -Naur ncurses-5.9.orig/include/ncurses_defs ncurses-5.9/include/ncurses_defs
+--- ncurses-5.9.orig/include/ncurses_defs	2011-03-22 09:17:59.000000000 +0000
++++ ncurses-5.9/include/ncurses_defs	2011-05-17 16:13:14.826441282 +0000
+@@ -1,4 +1,4 @@
+-# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $
++# $Id: ncurses_defs,v 1.49 2011/04/23 22:09:35 tom Exp $
+ ##############################################################################
+ # Copyright (c) 2000-2010,2011 Free Software Foundation, Inc.                #
+ #                                                                            #
+@@ -41,6 +41,7 @@
+ ETIP_NEEDS_MATH_H
+ GCC_NORETURN	/* nothing */
+ GCC_UNUSED	/* nothing */
++HAVE_ASSUME_DEFAULT_COLORS
+ HAVE_BIG_CORE
+ HAVE_BSD_CGETENT
+ HAVE_BSD_SIGNAL_H
+@@ -153,9 +154,12 @@
+ HAVE_TYPEINFO
+ HAVE_TYPE_ATTR_T
+ HAVE_TYPE_SIGACTION
++HAVE_UNCTRL_H	1
+ HAVE_UNISTD_H
+ HAVE_UNLINK
+ HAVE_USE_DEFAULT_COLORS
++HAVE_USE_SCREEN
++HAVE_USE_WINDOW
+ HAVE_VFSCANF
+ HAVE_VSNPRINTF
+ HAVE_VSSCANF
+diff -Naur ncurses-5.9.orig/misc/ncurses-config.in ncurses-5.9/misc/ncurses-config.in
+--- ncurses-5.9.orig/misc/ncurses-config.in	2011-03-19 22:43:38.000000000 +0000
++++ ncurses-5.9/misc/ncurses-config.in	2011-05-17 16:13:19.077969545 +0000
+@@ -1,5 +1,5 @@
+ #!@SHELL@
+-# $Id: ncurses-config.in,v 1.25 2011/03/19 22:43:38 tom Exp $
++# $Id: ncurses-config.in,v 1.26 2011/05/07 19:23:01 tom Exp $
+ ##############################################################################
+ # Copyright (c) 2006-2010,2011 Free Software Foundation, Inc.                #
+ #                                                                            #
+@@ -83,13 +83,19 @@
+ ENDECHO
+ 		;;
+ 	--libs)
++		if test "$libdir" = /usr/lib
++		then
++			LIBDIR=
++		else
++			LIBDIR=-L$libdir
++		fi
+ 		if test @TINFO_NAME@ = @LIB_NAME@ ; then
+ 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+-			-L$libdir @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
++			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
+ ENDECHO
+ 		else
+ 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+-			-L$libdir @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
++			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
+ ENDECHO
+ 		fi
+ 		;;
+@@ -163,4 +169,5 @@
+ 	esac
+ 	shift
+ done
++# vi:ts=4 sw=4
+ # vile:shmode
+diff -Naur ncurses-5.9.orig/ncurses/base/lib_color.c ncurses-5.9/ncurses/base/lib_color.c
+--- ncurses-5.9.orig/ncurses/base/lib_color.c	2010-04-24 22:57:53.000000000 +0000
++++ ncurses-5.9/ncurses/base/lib_color.c	2011-05-17 16:13:14.826441282 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -45,7 +45,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+ 
+-MODULE_ID("$Id: lib_color.c,v 1.98 2010/04/24 22:57:53 tom Exp $")
++MODULE_ID("$Id: lib_color.c,v 1.99 2011/04/23 18:22:22 tom Exp $")
+ 
+ #ifdef USE_TERM_DRIVER
+ #define CanChange      InfoOf(SP_PARM).canchange
+@@ -439,7 +439,7 @@
+ 
+     previous = SP_PARM->_color_pairs[pair];
+ #if NCURSES_EXT_FUNCS
+-    if (SP_PARM->_default_color) {
++    if (SP_PARM->_default_color || SP_PARM->_assumed_color) {
+ 	bool isDefault = FALSE;
+ 	bool wasDefault = FALSE;
+ 	int default_pairs = SP_PARM->_default_pairs;
+@@ -498,8 +498,9 @@
+     {
+ 	if ((f < 0) || !OkColorHi(f)
+ 	    || (b < 0) || !OkColorHi(b)
+-	    || (pair < 1))
++	    || (pair < 1)) {
+ 	    returnCode(ERR);
++	}
+     }
+ 
+     /*
+diff -Naur ncurses-5.9.orig/ncurses/base/lib_dft_fgbg.c ncurses-5.9/ncurses/base/lib_dft_fgbg.c
+--- ncurses-5.9.orig/ncurses/base/lib_dft_fgbg.c	2009-10-24 22:15:00.000000000 +0000
++++ ncurses-5.9/ncurses/base/lib_dft_fgbg.c	2011-05-17 16:13:14.826441282 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -37,7 +37,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+ 
+-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.25 2009/10/24 22:15:00 tom Exp $")
++MODULE_ID("$Id: lib_dft_fgbg.c,v 1.26 2011/04/23 18:28:18 tom Exp $")
+ 
+ /*
+  * Modify the behavior of color-pair 0 so that the library doesn't assume that
+@@ -80,6 +80,7 @@
+ 	SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
+ 	if (SP_PARM->_color_pairs != 0) {
+ 	    bool save = SP_PARM->_default_color;
++	    SP_PARM->_assumed_color = TRUE;
+ 	    SP_PARM->_default_color = TRUE;
+ 	    init_pair(0, (short) fg, (short) bg);
+ 	    SP_PARM->_default_color = save;
+diff -Naur ncurses-5.9.orig/ncurses/base/lib_newterm.c ncurses-5.9/ncurses/base/lib_newterm.c
+--- ncurses-5.9.orig/ncurses/base/lib_newterm.c	2010-05-20 23:25:18.000000000 +0000
++++ ncurses-5.9/ncurses/base/lib_newterm.c	2011-05-17 16:13:12.402710213 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,17 +42,13 @@
+ 
+ #include <curses.priv.h>
+ 
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+ #ifndef CUR
+ #define CUR SP_TERMTYPE
+ #endif
+ 
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $")
++MODULE_ID("$Id: lib_newterm.c,v 1.87 2011/04/16 16:42:10 tom Exp $")
+ 
+ #ifdef USE_TERM_DRIVER
+ #define NumLabels      InfoOf(SP_PARM).numlabels
+diff -Naur ncurses-5.9.orig/ncurses/base/lib_restart.c ncurses-5.9/ncurses/base/lib_restart.c
+--- ncurses-5.9.orig/ncurses/base/lib_restart.c	2009-10-24 22:47:43.000000000 +0000
++++ ncurses-5.9/ncurses/base/lib_restart.c	2011-05-17 16:13:12.402710213 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -41,11 +41,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+-MODULE_ID("$Id: lib_restart.c,v 1.13 2009/10/24 22:47:43 tom Exp $")
++MODULE_ID("$Id: lib_restart.c,v 1.14 2011/04/16 16:42:10 tom Exp $")
+ 
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
+diff -Naur ncurses-5.9.orig/ncurses/curses.priv.h ncurses-5.9/ncurses/curses.priv.h
+--- ncurses-5.9.orig/ncurses/curses.priv.h	2011-01-22 21:10:19.000000000 +0000
++++ ncurses-5.9/ncurses/curses.priv.h	2011-05-17 16:13:21.529697506 +0000
+@@ -34,7 +34,7 @@
+  ****************************************************************************/
+ 
+ /*
+- * $Id: curses.priv.h,v 1.475 2011/01/22 21:10:19 tom Exp $
++ * $Id: curses.priv.h,v 1.478 2011/05/14 17:36:15 tom Exp $
+  *
+  *	curses.priv.h
+  *
+@@ -61,6 +61,10 @@
+ #define MODULE_ID(id) /*nothing*/
+ #endif
+ 
++#if !(defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE))
++#define _POSIX_SOURCE
++#endif
++
+ #include <stddef.h>		/* for offsetof */
+ #include <stdlib.h>
+ #include <string.h>
+@@ -1015,6 +1019,7 @@
+ 	int		_pair_count;	/* count of color pairs		     */
+ 	int		_pair_limit;	/* actual limit of color-pairs       */
+ #if NCURSES_EXT_FUNCS
++	bool		_assumed_color; /* use assumed colors		     */
+ 	bool		_default_color; /* use default colors		     */
+ 	bool		_has_sgr_39_49; /* has ECMA default color support    */
+ 	int		_default_fg;	/* assumed default foreground	     */
+@@ -1412,25 +1417,25 @@
+ 
+ #define CHANGED_CELL(line,col) \
+ 	if (line->firstchar == _NOCHANGE) \
+-		line->firstchar = line->lastchar = (NCURSES_SIZE_T) col; \
++		line->firstchar = line->lastchar = (NCURSES_SIZE_T) (col); \
+ 	else if ((col) < line->firstchar) \
+-		line->firstchar = (NCURSES_SIZE_T) col; \
++		line->firstchar = (NCURSES_SIZE_T) (col); \
+ 	else if ((col) > line->lastchar) \
+-		line->lastchar = (NCURSES_SIZE_T) col
++		line->lastchar = (NCURSES_SIZE_T) (col)
+ 
+ #define CHANGED_RANGE(line,start,end) \
+ 	if (line->firstchar == _NOCHANGE \
+ 	 || line->firstchar > (start)) \
+-		line->firstchar = (NCURSES_SIZE_T) start; \
++		line->firstchar = (NCURSES_SIZE_T) (start); \
+ 	if (line->lastchar == _NOCHANGE \
+ 	 || line->lastchar < (end)) \
+-		line->lastchar = (NCURSES_SIZE_T) end
++		line->lastchar = (NCURSES_SIZE_T) (end)
+ 
+ #define CHANGED_TO_EOL(line,start,end) \
+ 	if (line->firstchar == _NOCHANGE \
+ 	 || line->firstchar > (start)) \
+-		line->firstchar = (NCURSES_SIZE_T) start; \
+-	line->lastchar = (NCURSES_SIZE_T) end
++		line->firstchar = (NCURSES_SIZE_T) (start); \
++	line->lastchar = (NCURSES_SIZE_T) (end)
+ 
+ #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
+ 
+diff -Naur ncurses-5.9.orig/ncurses/tinfo/access.c ncurses-5.9/ncurses/tinfo/access.c
+--- ncurses-5.9.orig/ncurses/tinfo/access.c	2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9/ncurses/tinfo/access.c	2011-05-17 16:13:19.081969101 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -37,7 +37,15 @@
+ 
+ #include <tic.h>
+ 
+-MODULE_ID("$Id: access.c,v 1.16 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: access.c,v 1.17 2011/05/07 15:02:03 tom Exp $")
++
++#ifdef __TANDEM
++#define ROOT_UID 65535
++#endif
++
++#ifndef ROOT_UID
++#define ROOT_UID 0
++#endif
+ 
+ #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+ 
+@@ -170,6 +178,7 @@
+ 	|| getgid() != getegid())
+ 	return FALSE;
+ #endif
+-    return getuid() != 0 && geteuid() != 0;	/* ...finally, disallow root */
++    /* ...finally, disallow root */
++    return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID);
+ }
+ #endif
+diff -Naur ncurses-5.9.orig/ncurses/tinfo/lib_raw.c ncurses-5.9/ncurses/tinfo/lib_raw.c
+--- ncurses-5.9.orig/ncurses/tinfo/lib_raw.c	2010-04-24 23:49:12.000000000 +0000
++++ ncurses-5.9/ncurses/tinfo/lib_raw.c	2011-05-17 16:13:12.406709769 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -49,11 +49,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_raw.c,v 1.19 2010/04/24 23:49:12 tom Exp $")
+-
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
++MODULE_ID("$Id: lib_raw.c,v 1.20 2011/04/16 16:42:10 tom Exp $")
+ 
+ #if HAVE_SYS_TERMIO_H
+ #include <sys/termio.h>		/* needed for ISC */
+diff -Naur ncurses-5.9.orig/ncurses/tinfo/lib_setup.c ncurses-5.9/ncurses/tinfo/lib_setup.c
+--- ncurses-5.9.orig/ncurses/tinfo/lib_setup.c	2011-02-06 01:04:21.000000000 +0000
++++ ncurses-5.9/ncurses/tinfo/lib_setup.c	2011-05-17 16:13:12.406709769 +0000
+@@ -43,15 +43,11 @@
+ #include <curses.priv.h>
+ #include <tic.h>		/* for MAX_NAME_SIZE */
+ 
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+ #endif
+ 
+-MODULE_ID("$Id: lib_setup.c,v 1.135 2011/02/06 01:04:21 tom Exp $")
++MODULE_ID("$Id: lib_setup.c,v 1.136 2011/04/16 15:32:45 tom Exp $")
+ 
+ /****************************************************************************
+  *
+diff -Naur ncurses-5.9.orig/ncurses/trace/lib_tracebits.c ncurses-5.9/ncurses/trace/lib_tracebits.c
+--- ncurses-5.9.orig/ncurses/trace/lib_tracebits.c	2011-01-09 00:23:03.000000000 +0000
++++ ncurses-5.9/ncurses/trace/lib_tracebits.c	2011-05-17 16:13:12.406709769 +0000
+@@ -34,11 +34,7 @@
+ 
+ #include <curses.priv.h>
+ 
+-MODULE_ID("$Id: lib_tracebits.c,v 1.19 2011/01/09 00:23:03 tom Exp $")
+-
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
++MODULE_ID("$Id: lib_tracebits.c,v 1.20 2011/04/16 15:32:45 tom Exp $")
+ 
+ #if HAVE_SYS_TERMIO_H
+ #include <sys/termio.h>		/* needed for ISC */
+diff -Naur ncurses-5.9.orig/ncurses/tty/lib_tstp.c ncurses-5.9/ncurses/tty/lib_tstp.c
+--- ncurses-5.9.orig/ncurses/tty/lib_tstp.c	2010-05-15 21:31:12.000000000 +0000
++++ ncurses-5.9/ncurses/tty/lib_tstp.c	2011-05-17 16:13:12.406709769 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,11 +42,7 @@
+ 
+ #include <SigAction.h>
+ 
+-#if SVR4_ACTION && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+-MODULE_ID("$Id: lib_tstp.c,v 1.41 2010/05/15 21:31:12 tom Exp $")
++MODULE_ID("$Id: lib_tstp.c,v 1.42 2011/04/16 16:42:10 tom Exp $")
+ 
+ #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
+ #define USE_SIGTSTP 1
+diff -Naur ncurses-5.9.orig/progs/dump_entry.c ncurses-5.9/progs/dump_entry.c
+--- ncurses-5.9.orig/progs/dump_entry.c	2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9/progs/dump_entry.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -39,7 +39,7 @@
+ #include "termsort.c"		/* this C file is generated */
+ #include <parametrized.h>	/* so is this */
+ 
+-MODULE_ID("$Id: dump_entry.c,v 1.89 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: dump_entry.c,v 1.91 2011/05/14 22:39:21 tom Exp $")
+ 
+ #define INDENT			8
+ #define DISCARD(string) string = ABSENT_STRING
+@@ -172,7 +172,11 @@
+ }
+ 
+ void
+-dump_init(const char *version, int mode, int sort, int twidth, int traceval,
++dump_init(const char *version,
++	  int mode,
++	  int sort,
++	  int twidth,
++	  unsigned traceval,
+ 	  bool formatted)
+ /* set up for entry display */
+ {
+@@ -393,8 +397,8 @@
+ static void
+ wrap_concat(const char *src)
+ {
+-    unsigned need = strlen(src);
+-    unsigned want = strlen(separator) + need;
++    size_t need = strlen(src);
++    size_t want = strlen(separator) + need;
+ 
+     if (column > INDENT
+ 	&& column + (int) want > width) {
+@@ -600,7 +604,7 @@
+ 
+     for_each_boolean(j, tterm) {
+ 	i = BoolIndirect(j);
+-	name = ExtBoolname(tterm, i, bool_names);
++	name = ExtBoolname(tterm, (int) i, bool_names);
+ 	assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+ 
+ 	if (!version_filter(BOOLEAN, i))
+@@ -624,7 +628,7 @@
+ 
+     for_each_number(j, tterm) {
+ 	i = NumIndirect(j);
+-	name = ExtNumname(tterm, i, num_names);
++	name = ExtNumname(tterm, (int) i, num_names);
+ 	assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+ 
+ 	if (!version_filter(NUMBER, i))
+@@ -670,7 +674,7 @@
+ 
+     for_each_string(j, tterm) {
+ 	i = StrIndirect(j);
+-	name = ExtStrname(tterm, i, str_names);
++	name = ExtStrname(tterm, (int) i, str_names);
+ 	assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+ 
+ 	capability = tterm->Strings[i];
+@@ -846,7 +850,7 @@
+      */
+     if (outcount) {
+ 	bool trimmed = FALSE;
+-	j = outbuf.used;
++	j = (PredIdx) outbuf.used;
+ 	if (j >= 2
+ 	    && outbuf.text[j - 1] == '\t'
+ 	    && outbuf.text[j - 2] == '\n') {
+@@ -1064,7 +1068,7 @@
+ 	     */
+ 	    unsigned n;
+ 	    for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
+-		const char *name = ExtStrname(tterm, n, strnames);
++		const char *name = ExtStrname(tterm, (int) n, strnames);
+ 
+ 		if (VALID_STRING(tterm->Strings[n])) {
+ 		    set_attributes = ABSENT_STRING;
+@@ -1158,7 +1162,7 @@
+ }
+ 
+ void
+-compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
++compare_entry(PredHook hook,
+ 	      TERMTYPE *tp GCC_UNUSED,
+ 	      bool quiet)
+ /* compare two entries */
+@@ -1170,7 +1174,7 @@
+ 	fputs("    comparing booleans.\n", stdout);
+     for_each_boolean(j, tp) {
+ 	i = BoolIndirect(j);
+-	name = ExtBoolname(tp, i, bool_names);
++	name = ExtBoolname(tp, (int) i, bool_names);
+ 
+ 	if (isObsolete(outform, name))
+ 	    continue;
+@@ -1182,7 +1186,7 @@
+ 	fputs("    comparing numbers.\n", stdout);
+     for_each_number(j, tp) {
+ 	i = NumIndirect(j);
+-	name = ExtNumname(tp, i, num_names);
++	name = ExtNumname(tp, (int) i, num_names);
+ 
+ 	if (isObsolete(outform, name))
+ 	    continue;
+@@ -1194,7 +1198,7 @@
+ 	fputs("    comparing strings.\n", stdout);
+     for_each_string(j, tp) {
+ 	i = StrIndirect(j);
+-	name = ExtStrname(tp, i, str_names);
++	name = ExtStrname(tp, (int) i, str_names);
+ 
+ 	if (isObsolete(outform, name))
+ 	    continue;
+diff -Naur ncurses-5.9.orig/progs/dump_entry.h ncurses-5.9/progs/dump_entry.h
+--- ncurses-5.9.orig/progs/dump_entry.h	2008-07-12 20:23:03.000000000 +0000
++++ ncurses-5.9/progs/dump_entry.h	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -32,9 +32,8 @@
+  *     and: Thomas E. Dickey                        1996-on                 *
+  ****************************************************************************/
+ 
+-
+ /*
+- * $Id: dump_entry.h,v 1.30 2008/07/12 20:23:03 tom Exp $
++ * $Id: dump_entry.h,v 1.31 2011/05/14 18:00:09 tom Exp $
+  *
+  * Dump control definitions and variables
+  */
+@@ -64,16 +63,17 @@
+ 
+ typedef unsigned PredType;
+ typedef unsigned PredIdx;
+-typedef int (*PredFunc)(PredType, PredIdx);
++typedef int (*PredFunc) (PredType, PredIdx);
++typedef void (*PredHook) (PredType, PredIdx, const char *);
+ 
+ extern NCURSES_CONST char *nametrans(const char *);
+ extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
+ extern int show_entry(void);
+-extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
++extern void compare_entry(PredHook, TERMTYPE *, bool);
+ extern void dump_entry(TERMTYPE *, bool, bool, int, PredFunc);
+-extern void dump_init(const char *, int, int, int, int, bool);
++extern void dump_init(const char *, int, int, int, unsigned, bool);
+ extern void dump_uses(const char *, bool);
+-extern void repair_acsc(TERMTYPE * tp);
++extern void repair_acsc(TERMTYPE *tp);
+ 
+ #define FAIL	-1
+ 
+diff -Naur ncurses-5.9.orig/progs/infocmp.c ncurses-5.9/progs/infocmp.c
+--- ncurses-5.9.orig/progs/infocmp.c	2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9/progs/infocmp.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -42,7 +42,7 @@
+ 
+ #include <dump_entry.h>
+ 
+-MODULE_ID("$Id: infocmp.c,v 1.105 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: infocmp.c,v 1.106 2011/05/14 22:51:04 tom Exp $")
+ 
+ #define L_CURL "{"
+ #define R_CURL "}"
+@@ -70,7 +70,7 @@
+ static const char *s_absent = "NULL";
+ static const char *s_cancel = "NULL";
+ static const char *tversion;	/* terminfo version selected */
+-static int itrace;		/* trace flag for debugging */
++static unsigned itrace;		/* trace flag for debugging */
+ static int mwidth = 60;
+ static int numbers = 0;		/* format "%'char'" to/from "%{number}" */
+ static int outform = F_TERMINFO;	/* output format */
+@@ -556,7 +556,7 @@
+ }
+ 
+ static bool
+-same_param(const char *table, const char *param, unsigned length)
++same_param(const char *table, const char *param, size_t length)
+ {
+     bool result = FALSE;
+     if (strncmp(table, param, length) == 0) {
+@@ -1090,7 +1090,8 @@
+ 	    *tp++ = '"';
+ 	    *tp = '\0';
+ 	    (void) printf("static char %-20s[] = %s;\n",
+-			  string_variable(ExtStrname(term, n, strnames)), buf);
++			  string_variable(ExtStrname(term, (int) n, strnames)),
++			  buf);
+ 	}
+     }
+     printf("\n");
+@@ -1116,7 +1117,7 @@
+ 	    break;
+ 	}
+ 	(void) printf("\t/* %3u: %-8s */\t%s,\n",
+-		      n, ExtBoolname(term, n, boolnames), str);
++		      n, ExtBoolname(term, (int) n, boolnames), str);
+     }
+     (void) printf("%s;\n", R_CURL);
+ 
+@@ -1137,7 +1138,7 @@
+ 	    break;
+ 	}
+ 	(void) printf("\t/* %3u: %-8s */\t%s,\n", n,
+-		      ExtNumname(term, n, numnames), str);
++		      ExtNumname(term, (int) n, numnames), str);
+     }
+     (void) printf("%s;\n", R_CURL);
+ 
+@@ -1150,10 +1151,10 @@
+ 	else if (term->Strings[n] == CANCELLED_STRING)
+ 	    str = "CANCELLED_STRING";
+ 	else {
+-	    str = string_variable(ExtStrname(term, n, strnames));
++	    str = string_variable(ExtStrname(term, (int) n, strnames));
+ 	}
+ 	(void) printf("\t/* %3u: %-8s */\t%s,\n", n,
+-		      ExtStrname(term, n, strnames), str);
++		      ExtStrname(term, (int) n, strnames), str);
+     }
+     (void) printf("%s;\n", R_CURL);
+ 
+@@ -1165,15 +1166,15 @@
+ 		      name_initializer("string_ext"), L_CURL);
+ 	for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
+ 	    (void) printf("\t/* %3u: bool */\t\"%s\",\n",
+-			  n, ExtBoolname(term, n, boolnames));
++			  n, ExtBoolname(term, (int) n, boolnames));
+ 	}
+ 	for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
+ 	    (void) printf("\t/* %3u: num */\t\"%s\",\n",
+-			  n, ExtNumname(term, n, numnames));
++			  n, ExtNumname(term, (int) n, numnames));
+ 	}
+ 	for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
+ 	    (void) printf("\t/* %3u: str */\t\"%s\",\n",
+-			  n, ExtStrname(term, n, strnames));
++			  n, ExtStrname(term, (int) n, strnames));
+ 	}
+ 	(void) printf("%s;\n", R_CURL);
+     }
+@@ -1269,7 +1270,7 @@
+     /* Also avoid overflowing smaller stacks on systems like AmigaOS */
+     path *tfile = 0;
+     char **tname = 0;
+-    int maxterms;
++    size_t maxterms;
+ 
+     char **myargv;
+ 
+@@ -1441,7 +1442,7 @@
+ 	    ExitProgram(EXIT_SUCCESS);
+ 
+ 	case 'v':
+-	    itrace = optarg_to_number();
++	    itrace = (unsigned) optarg_to_number();
+ 	    set_trace_level(itrace);
+ 	    break;
+ 
+@@ -1460,7 +1461,7 @@
+ 	}
+     }
+ 
+-    maxterms = (argc + 2 - optind);
++    maxterms = (size_t) (argc + 2 - optind);
+     tfile = typeMalloc(path, maxterms);
+     tname = typeCalloc(char *, maxterms);
+     entries = typeCalloc(ENTRY, maxterms);
+diff -Naur ncurses-5.9.orig/progs/progs.priv.h ncurses-5.9/progs/progs.priv.h
+--- ncurses-5.9.orig/progs/progs.priv.h	2008-08-03 17:43:05.000000000 +0000
++++ ncurses-5.9/progs/progs.priv.h	2011-05-17 16:13:14.826441282 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -30,7 +30,7 @@
+  *  Author: Thomas E. Dickey                    1997-on                     *
+  ****************************************************************************/
+ /*
+- * $Id: progs.priv.h,v 1.34 2008/08/03 17:43:05 tom Exp $
++ * $Id: progs.priv.h,v 1.35 2011/04/23 22:33:09 tom Exp $
+  *
+  *	progs.priv.h
+  *
+@@ -99,7 +99,7 @@
+ 
+ #if HAVE_GETOPT_H
+ #include <getopt.h>
+-#else
++#elif !defined(HAVE_GETOPT_HEADER)
+ /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
+  * variables doesn't hurt.
+  */
+diff -Naur ncurses-5.9.orig/progs/tabs.c ncurses-5.9/progs/tabs.c
+--- ncurses-5.9.orig/progs/tabs.c	2010-10-23 22:26:01.000000000 +0000
++++ ncurses-5.9/progs/tabs.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 2008-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -37,7 +37,7 @@
+ #define USE_LIBTINFO
+ #include <progs.priv.h>
+ 
+-MODULE_ID("$Id: tabs.c,v 1.19 2010/10/23 22:26:01 tom Exp $")
++MODULE_ID("$Id: tabs.c,v 1.20 2011/05/14 22:34:36 tom Exp $")
+ 
+ static void usage(void) GCC_NORETURN;
+ 
+@@ -227,7 +227,7 @@
+     bool result = FALSE;
+ 
+     if (source != 0) {
+-	unsigned len = strlen(source);
++	size_t len = strlen(source);
+ 	if (len != 0)
+ 	    result = (source[len - 1] != ',');
+     } else {
+@@ -251,7 +251,7 @@
+ 
+     if (copied != 0 && *copied != '\0') {
+ 	const char *comma = ",";
+-	unsigned need = 1 + strlen(copied);
++	size_t need = 1 + strlen(copied);
+ 
+ 	if (*copied == ',')
+ 	    comma = "";
+diff -Naur ncurses-5.9.orig/progs/tic.c ncurses-5.9/progs/tic.c
+--- ncurses-5.9.orig/progs/tic.c	2011-02-12 18:39:08.000000000 +0000
++++ ncurses-5.9/progs/tic.c	2011-05-17 16:13:21.533697062 +0000
+@@ -44,7 +44,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: tic.c,v 1.147 2011/02/12 18:39:08 tom Exp $")
++MODULE_ID("$Id: tic.c,v 1.149 2011/05/14 23:24:57 tom Exp $")
+ 
+ const char *_nc_progname = "tic";
+ 
+@@ -221,7 +221,7 @@
+     }
+ 
+     _nc_set_type(_nc_first_name(ep->tterm.term_names));
+-    _nc_curr_line = ep->startline;
++    _nc_curr_line = (int) ep->startline;
+     _nc_write_entry(&ep->tterm);
+ }
+ 
+@@ -475,7 +475,8 @@
+ main(int argc, char *argv[])
+ {
+     char my_tmpname[PATH_MAX];
+-    int v_opt = -1, debug_level;
++    int v_opt = -1;
++    unsigned debug_level;
+     int smart_defaults = TRUE;
+     char *termcap;
+     ENTRY *qp;
+@@ -618,7 +619,7 @@
+ 	last_opt = this_opt;
+     }
+ 
+-    debug_level = (v_opt > 0) ? v_opt : (v_opt == 0);
++    debug_level = (unsigned) ((v_opt > 0) ? v_opt : (v_opt == 0));
+     set_trace_level(debug_level);
+ 
+     if (_nc_tracing) {
+@@ -750,7 +751,7 @@
+ 
+ 	    for_entry_list(qp) {
+ 		if (matches(namelst, qp->tterm.term_names)) {
+-		    int j = qp->cend - qp->cstart;
++		    long j = qp->cend - qp->cstart;
+ 		    int len = 0;
+ 
+ 		    /* this is in case infotocap() generates warnings */
+@@ -767,7 +768,7 @@
+ 		    repair_acsc(&qp->tterm);
+ 		    dump_entry(&qp->tterm, suppress_untranslatable,
+ 			       limited, numbers, NULL);
+-		    for (j = 0; j < (int) qp->nuses; j++)
++		    for (j = 0; j < (long) qp->nuses; j++)
+ 			dump_uses(qp->uses[j].name, !capdump);
+ 		    len = show_entry();
+ 		    if (debug_level != 0 && !limited)
+@@ -915,18 +916,18 @@
+     return result;
+ }
+ 
+-static int
++static long
+ keypad_index(const char *string)
+ {
+     char *test;
+     const char *list = "PQRSwxymtuvlqrsPpn";	/* app-keypad except "Enter" */
+     int ch;
+-    int result = -1;
++    long result = -1;
+ 
+     if ((ch = keypad_final(string)) != '\0') {
+ 	test = strchr(list, ch);
+ 	if (test != 0)
+-	    result = (test - list);
++	    result = (long) (test - list);
+     }
+     return result;
+ }
+@@ -1097,11 +1098,11 @@
+ 	VALID_STRING(key_c1) &&
+ 	VALID_STRING(key_c3)) {
+ 	char final[MAX_KP + 1];
+-	int list[MAX_KP];
++	long list[MAX_KP];
+ 	int increase = 0;
+ 	int j, k, kk;
+-	int last;
+-	int test;
++	long last;
++	long test;
+ 
+ 	final[0] = keypad_final(key_a1);
+ 	final[1] = keypad_final(key_a3);
+@@ -1592,7 +1593,7 @@
+     for (j = 0; j < NUM_STRINGS(tp); j++) {
+ 	char *a = tp->Strings[j];
+ 	if (VALID_STRING(a))
+-	    check_params(tp, ExtStrname(tp, j, strnames), a);
++	    check_params(tp, ExtStrname(tp, (int) j, strnames), a);
+     }
+ 
+     check_acs(tp);
+diff -Naur ncurses-5.9.orig/progs/toe.c ncurses-5.9/progs/toe.c
+--- ncurses-5.9.orig/progs/toe.c	2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9/progs/toe.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -44,7 +44,7 @@
+ #include <hashed_db.h>
+ #endif
+ 
+-MODULE_ID("$Id: toe.c,v 1.52 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: toe.c,v 1.53 2011/05/14 22:35:49 tom Exp $")
+ 
+ #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
+ 
+@@ -340,7 +340,7 @@
+     unsigned i;
+     int code;
+     int this_opt, last_opt = '?';
+-    int v_opt = 0;
++    unsigned v_opt = 0;
+ 
+     _nc_progname = _nc_rootname(argv[0]);
+ 
+@@ -349,14 +349,14 @@
+ 	if (isdigit(this_opt)) {
+ 	    switch (last_opt) {
+ 	    case 'v':
+-		v_opt = (this_opt - '0');
++		v_opt = (unsigned) (this_opt - '0');
+ 		break;
+ 	    default:
+ 		if (isdigit(last_opt))
+ 		    v_opt *= 10;
+ 		else
+ 		    v_opt = 0;
+-		v_opt += (this_opt - '0');
++		v_opt += (unsigned) (this_opt - '0');
+ 		last_opt = this_opt;
+ 	    }
+ 	    continue;
+diff -Naur ncurses-5.9.orig/progs/transform.c ncurses-5.9/progs/transform.c
+--- ncurses-5.9.orig/progs/transform.c	2010-09-04 21:16:17.000000000 +0000
++++ ncurses-5.9/progs/transform.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -34,21 +34,21 @@
+ 
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: transform.c,v 1.2 2010/09/04 21:16:17 tom Exp $")
++MODULE_ID("$Id: transform.c,v 1.3 2011/05/14 22:41:17 tom Exp $")
+ 
+ #ifdef SUFFIX_IGNORED
+ static void
+-trim_suffix(const char *a, unsigned *len)
++trim_suffix(const char *a, size_t *len)
+ {
+     const char ignore[] = SUFFIX_IGNORED;
+ 
+     if (sizeof(ignore) != 0) {
+ 	bool trim = FALSE;
+-	unsigned need = (sizeof(ignore) - 1);
++	size_t need = (sizeof(ignore) - 1);
+ 
+ 	if (*len > need) {
+-	    unsigned first = *len - need;
+-	    unsigned n;
++	    size_t first = *len - need;
++	    size_t n;
+ 	    trim = TRUE;
+ 	    for (n = first; n < *len; ++n) {
+ 		if (tolower(UChar(a[n])) != tolower(UChar(ignore[n - first]))) {
+@@ -69,8 +69,8 @@
+ bool
+ same_program(const char *a, const char *b)
+ {
+-    unsigned len_a = strlen(a);
+-    unsigned len_b = strlen(b);
++    size_t len_a = strlen(a);
++    size_t len_b = strlen(b);
+ 
+     trim_suffix(a, &len_a);
+     trim_suffix(b, &len_b);
+diff -Naur ncurses-5.9.orig/progs/tset.c ncurses-5.9/progs/tset.c
+--- ncurses-5.9.orig/progs/tset.c	2010-05-01 21:42:46.000000000 +0000
++++ ncurses-5.9/progs/tset.c	2011-05-17 16:13:21.533697062 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -119,7 +119,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+ 
+-MODULE_ID("$Id: tset.c,v 1.82 2010/05/01 21:42:46 tom Exp $")
++MODULE_ID("$Id: tset.c,v 1.83 2011/05/14 22:50:45 tom Exp $")
+ 
+ /*
+  * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
+@@ -203,7 +203,7 @@
+ failed(const char *msg)
+ {
+     char temp[BUFSIZ];
+-    unsigned len = strlen(_nc_progname) + 2;
++    size_t len = strlen(_nc_progname) + 2;
+ 
+     if ((int) len < (int) sizeof(temp) - 12) {
+ 	strcpy(temp, _nc_progname);
+diff -Naur ncurses-5.9.orig/test/aclocal.m4 ncurses-5.9/test/aclocal.m4
+--- ncurses-5.9.orig/test/aclocal.m4	2011-03-24 08:28:07.000000000 +0000
++++ ncurses-5.9/test/aclocal.m4	2011-05-17 16:13:21.537696618 +0000
+@@ -26,7 +26,7 @@
+ dnl authorization.                                                           *
+ dnl***************************************************************************
+ dnl
+-dnl $Id: aclocal.m4,v 1.50 2011/03/24 08:28:07 tom Exp $
++dnl $Id: aclocal.m4,v 1.62 2011/05/14 20:46:00 tom Exp $
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+@@ -40,6 +40,31 @@
+ dnl
+ dnl ---------------------------------------------------------------------------
+ dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_CHECK version: 2 updated: 2011/05/08 11:22:03
++dnl ------------------
++dnl Conditionally generate script according to whether we're using a given autoconf.
++dnl
++dnl $1 = version to compare against
++dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
++dnl $3 = code to use if AC_ACVERSION is older than $1.
++define(CF_ACVERSION_CHECK,
++[
++ifdef([m4_version_compare],
++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
++[CF_ACVERSION_COMPARE(
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_COMPARE version: 2 updated: 2011/04/14 20:56:50
++dnl --------------------
++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
++dnl                      MAJOR2, MINOR2, TERNARY2,
++dnl                      PRINTABLE2, not FOUND, FOUND)
++define(CF_ACVERSION_COMPARE,
++[ifelse(builtin([eval], [$2 < $5]), 1,
++[ifelse([$8], , ,[$8])],
++[ifelse([$9], , ,[$9])])])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
+ dnl -------------
+ dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+@@ -533,7 +558,7 @@
+ CF_CURSES_LIBS
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
++dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
+ dnl ------------------
+ dnl Look for the curses headers.
+ AC_DEFUN([CF_CURSES_CPPFLAGS],[
+@@ -542,13 +567,19 @@
+ cf_cv_curses_incdir=no
+ case $host_os in #(vi
+ hpux10.*) #(vi
+-	test -d /usr/include/curses_colr && \
+-	cf_cv_curses_incdir="-I/usr/include/curses_colr"
++	if test "x$cf_cv_screen" = "xcurses_colr"
++	then
++		test -d /usr/include/curses_colr && \
++		cf_cv_curses_incdir="-I/usr/include/curses_colr"
++	fi
+ 	;;
+ sunos3*|sunos4*)
+-	test -d /usr/5lib && \
+-	test -d /usr/5include && \
+-	cf_cv_curses_incdir="-I/usr/5include"
++	if test "x$cf_cv_screen" = "xcurses_5lib"
++	then
++		test -d /usr/5lib && \
++		test -d /usr/5include && \
++		cf_cv_curses_incdir="-I/usr/5include"
++	fi
+ 	;;
+ esac
+ ])
+@@ -558,7 +589,7 @@
+ CF_TERM_HEADER
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32
++dnl CF_CURSES_FUNCS version: 17 updated: 2011/05/14 16:07:29
+ dnl ---------------
+ dnl Curses-functions are a little complicated, since a lot of them are macros.
+ AC_DEFUN([CF_CURSES_FUNCS],
+@@ -566,6 +597,7 @@
+ AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+ AC_REQUIRE([CF_XOPEN_CURSES])
+ AC_REQUIRE([CF_CURSES_TERM_H])
++AC_REQUIRE([CF_CURSES_UNCTRL_H])
+ for cf_func in $1
+ do
+ 	CF_UPPER(cf_tr_func,$cf_func)
+@@ -578,7 +610,8 @@
+ 			[
+ #ifndef ${cf_func}
+ long foo = (long)(&${cf_func});
+-${cf_cv_main_return:-return}(foo == 0);
++if (foo + 1234 > 5678)
++	${cf_cv_main_return:-return}(foo);
+ #endif
+ 			],
+ 			[cf_result=yes],
+@@ -595,7 +628,7 @@
+ done
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
+ dnl ----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -605,10 +638,10 @@
+ AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
+ cf_cv_ncurses_header=none
+ for cf_header in ifelse($1,,,[ \
+-    $1/curses.h \
+-	$1/ncurses.h]) \
+-	curses.h \
+-	ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
++    $1/ncurses.h \
++	$1/curses.h]) \
++	ncurses.h \
++	curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
+ do
+ AC_TRY_COMPILE([#include <${cf_header}>],
+ 	[initscr(); tgoto("?", 0,0)],
+@@ -624,7 +657,7 @@
+ AC_CHECK_HEADERS($cf_cv_ncurses_header)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18
++dnl CF_CURSES_LIBS version: 34 updated: 2011/04/09 14:51:08
+ dnl --------------
+ dnl Look for the curses libraries.  Older curses implementations may require
+ dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
+@@ -644,16 +677,23 @@
+     AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
+     ;;
+ hpux10.*) #(vi
+-    AC_CHECK_LIB(cur_colr,initscr,[
+-        CF_ADD_LIBS(-lcur_colr)
+-        ac_cv_func_initscr=yes
+-        ],[
+-    AC_CHECK_LIB(Hcurses,initscr,[
+-        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+-        CF_ADD_LIBS(-lHcurses)
+-        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+-        ac_cv_func_initscr=yes
+-        ])])
++	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
++	# next (1998), and xcurses "newer" (2000).  There is no header file for
++	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
++	# term.h) for cur_colr
++	if test "x$cf_cv_screen" = "xcurses_colr"
++	then
++		AC_CHECK_LIB(cur_colr,initscr,[
++			CF_ADD_LIBS(-lcur_colr)
++			ac_cv_func_initscr=yes
++			],[
++		AC_CHECK_LIB(Hcurses,initscr,[
++			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
++			CF_ADD_LIBS(-lHcurses)
++			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
++			ac_cv_func_initscr=yes
++			])])
++	fi
+     ;;
+ linux*)
+ 	case `arch 2>/dev/null` in
+@@ -671,9 +711,12 @@
+ 	esac
+     ;;
+ sunos3*|sunos4*)
+-    if test -d /usr/5lib ; then
+-      CF_ADD_LIBDIR(/usr/5lib)
+-      CF_ADD_LIBS(-lcurses -ltermcap)
++	if test "x$cf_cv_screen" = "xcurses_5lib"
++	then
++		if test -d /usr/5lib ; then
++			CF_ADD_LIBDIR(/usr/5lib)
++			CF_ADD_LIBS(-lcurses -ltermcap)
++		fi
+     fi
+     ac_cv_func_initscr=yes
+     ;;
+@@ -738,7 +781,7 @@
+ 
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49
++dnl CF_CURSES_TERM_H version: 9 updated: 2011/04/09 18:19:55
+ dnl ----------------
+ dnl SVr4 curses should have term.h as well (where it puts the definitions of
+ dnl the low-level interface).  This may not be true in old/broken implementations,
+@@ -752,9 +795,17 @@
+ 
+ # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+ # for <term.h> if we do not find the variant.
+-for cf_header in \
+-	`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
+-	term.h
++
++cf_header_list="term.h ncurses/term.h ncursesw/term.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
++	cf_header_list="$cf_header_item $cf_header_list"
++	;;
++esac
++
++for cf_header in $cf_header_list
+ do
+ 	AC_TRY_COMPILE([
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -800,6 +851,61 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_UNCTRL_H version: 1 updated: 2011/04/09 18:19:55
++dnl ------------------
++dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
++dnl may put it in a subdirectory (along with ncurses' other headers, of
++dnl course).  Packages which put the headers in inconsistent locations are
++dnl broken).
++AC_DEFUN([CF_CURSES_UNCTRL_H],
++[
++AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
++
++AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
++
++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
++# for <unctrl.h> if we do not find the variant.
++
++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
++	cf_header_list="$cf_header_item $cf_header_list"
++	;;
++esac
++
++for cf_header in $cf_header_list
++do
++	AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <${cf_header}>],
++	[WINDOW *x],
++	[cf_cv_unctrl_header=$cf_header
++	 break],
++	[cf_cv_unctrl_header=no])
++done
++
++case $cf_cv_unctrl_header in #(vi
++no)
++	AC_MSG_WARN(unctrl.h header not found)
++	;;
++esac
++])
++
++case $cf_cv_unctrl_header in #(vi
++unctrl.h) #(vi
++	AC_DEFINE(HAVE_UNCTRL_H)
++	;;
++ncurses/unctrl.h) #(vi
++	AC_DEFINE(HAVE_NCURSES_UNCTRL_H)
++	;;
++ncursesw/unctrl.h)
++	AC_DEFINE(HAVE_NCURSESW_UNCTRL_H)
++	;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
+ dnl ------------------
+ dnl Check for likely values of wacs_map[].
+@@ -1377,6 +1483,29 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GETOPT_HEADER version: 4 updated: 2009/08/31 20:07:52
++dnl ----------------
++dnl Check for getopt's variables which are commonly defined in stdlib.h,
++dnl unistd.h or (nonstandard) in getopt.h
++AC_DEFUN([CF_GETOPT_HEADER],
++[
++AC_HAVE_HEADERS(unistd.h getopt.h)
++AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++AC_TRY_COMPILE([
++#include <$cf_header>],
++[int x = optind; char *y = optarg],
++[cf_cv_getopt_header=$cf_header
++ break])
++done
++])
++if test $cf_cv_getopt_header != none ; then
++	AC_DEFINE(HAVE_GETOPT_HEADER)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
+ dnl -------------
+ dnl Check if we must define _GNU_SOURCE to get a reasonable value for
+@@ -2176,7 +2305,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -2193,7 +2322,9 @@
+ 	PKG_CONFIG=none
+ 	;;
+ yes) #(vi
+-	AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
++	CF_ACVERSION_CHECK(2.52,
++		[AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
++		[AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
+ 	;;
+ *)
+ 	PKG_CONFIG=$withval
+@@ -2495,6 +2626,50 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50
++dnl --------------
++dnl Check for type of function-pointer passed to tputs.  Some old
++dnl implementations used functions that had different prototypes, making it
++dnl hard to compile portable programs using tputs.
++AC_DEFUN([CF_TPUTS_PROTO],[
++CF_CURSES_FUNCS(tputs)
++if test x$cf_cv_func_tputs = xyes
++then
++	cf_done=no
++	for cf_arg in int char
++	do
++		for cf_ret in int void
++		do
++			if test $cf_ret = void
++			then
++				cf_return="/* nothing */"
++			else
++				cf_return="return value"
++			fi
++			AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_cv_term_header>
++
++static $cf_ret outc($cf_arg value) { $cf_return; }
++],[
++	tputs("hello", 0, outc); 
++	${cf_cv_main_return:-return}(0);
++],[
++		CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
++		cat >>confdefs.h <<EOF
++#define TPUTS_ARG               $cf_arg
++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
++#define TPUTS_RETURN(value)     $cf_return
++EOF
++		cf_done=yes
++		break
++])
++		done
++		test $cf_done = yes && break
++	done
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
+ dnl -----------------
+ dnl This is a simple wrapper to use for pkg-config, for libraries which may be
+diff -Naur ncurses-5.9.orig/test/background.c ncurses-5.9/test/background.c
+--- ncurses-5.9.orig/test/background.c	2006-06-03 16:43:08.000000000 +0000
++++ ncurses-5.9/test/background.c	2011-05-17 16:13:14.830440838 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003,2006 Free Software Foundation, Inc.                   *
++ * Copyright (c) 2003-2006,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,15 +26,128 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: background.c,v 1.3 2006/06/03 16:43:08 tom Exp $
++ * $Id: background.c,v 1.9 2011/04/23 21:16:38 tom Exp $
+  */
+ 
+-#include <test.priv.h>
++#define NEED_COLOR_CODE 1
++#define NEED_COLOR_NAME 1
++#include <color_name.h>
++
++static int default_bg = COLOR_BLACK;
++static int default_fg = COLOR_WHITE;
++
++static void
++test_background(void)
++{
++    short f, b;
++
++    pair_content(0, &f, &b);
++    printw("pair 0 contains (%d,%d)\n", f, b);
++    getch();
++
++    printw("Initializing pair 1 to red/%s\n", color_name(default_bg));
++    init_pair(1, COLOR_RED, (short) default_bg);
++    bkgdset(' ' | COLOR_PAIR(1));
++    printw("RED/BLACK\n");
++    getch();
++
++    printw("Initializing pair 2 to %s/blue\n", color_name(default_fg));
++    init_pair(2, (short) default_fg, COLOR_BLUE);
++    bkgdset(' ' | COLOR_PAIR(2));
++    printw("This line should be %s/blue\n", color_name(default_fg));
++    getch();
++
++    printw("Resetting colors to pair 0\n");
++    bkgdset(' ' | COLOR_PAIR(0));
++    printw("Default Colors\n");
++    getch();
++
++    printw("Resetting colors to pair 1\n");
++    bkgdset(' ' | COLOR_PAIR(1));
++    printw("This line should be red/%s\n", color_name(default_bg));
++    getch();
++
++    printw("Setting screen to pair 0\n");
++    bkgd(' ' | COLOR_PAIR(0));
++    getch();
++
++    printw("Setting screen to pair 1\n");
++    bkgd(' ' | COLOR_PAIR(1));
++    getch();
++
++    printw("Setting screen to pair 2\n");
++    bkgd(' ' | COLOR_PAIR(2));
++    getch();
++
++    printw("Setting screen to pair 0\n");
++    bkgd(' ' | COLOR_PAIR(0));
++    getch();
++}
++
++static void
++usage(void)
++{
++    static const char *msg[] =
++    {
++	"Usage: background [options]"
++	,""
++	,"Options:"
++#if HAVE_ASSUME_DEFAULT_COLORS
++	," -a       invoke assume_default_colors, repeat to use in init_pair"
++#endif
++	," -b XXX   specify background color"
++#if HAVE_USE_DEFAULT_COLORS
++	," -d       invoke use_default_colors, repeat to use in init_pair"
++#endif
++	," -f XXX   specify foreground color"
++    };
++    size_t n;
++
++    for (n = 0; n < SIZEOF(msg); n++)
++	fprintf(stderr, "%s\n", msg[n]);
++
++    ExitProgram(EXIT_FAILURE);
++}
+ 
+ int
+ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+ {
+-    short f, b;
++#if HAVE_ASSUME_DEFAULT_COLORS
++    int a_option = 0;
++#endif
++#if HAVE_USE_DEFAULT_COLORS
++    int d_option = 0;
++#endif
++    int n;
++
++    while ((n = getopt(argc, argv, "ab:df:")) != -1) {
++	switch (n) {
++#if HAVE_ASSUME_DEFAULT_COLORS
++	case 'a':
++	    ++a_option;
++	    break;
++#endif
++	case 'b':
++	    default_bg = color_code(optarg);
++	    break;
++#if HAVE_USE_DEFAULT_COLORS
++	case 'd':
++	    ++d_option;
++	    break;
++#endif
++	case 'f':
++	    default_fg = color_code(optarg);
++	    break;
++	default:
++	    usage();
++	}
++    }
++#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS
++    if (a_option && d_option) {
++	fprintf(stderr, "Use either -a or -d option, but not both\n");
++	ExitProgram(EXIT_FAILURE);
++    }
++#endif
+ 
+     initscr();
+     cbreak();
+@@ -43,47 +156,30 @@
+     if (has_colors()) {
+ 	start_color();
+ 
+-	pair_content(0, &f, &b);
+-	printw("pair 0 contains (%d,%d)\n", f, b);
+-	getch();
+-
+-	printw("Initializing pair 1 to red/black\n");
+-	init_pair(1, COLOR_RED, COLOR_BLACK);
+-	bkgdset(' ' | COLOR_PAIR(1));
+-	printw("RED/BLACK\n");
+-	getch();
+-
+-	printw("Initializing pair 2 to white/blue\n");
+-	init_pair(2, COLOR_WHITE, COLOR_BLUE);
+-	bkgdset(' ' | COLOR_PAIR(2));
+-	printw("WHITE/BLUE\n");
+-	getch();
+-
+-	printw("Resetting colors to pair 0\n");
+-	bkgdset(' ' | COLOR_PAIR(0));
+-	printw("Default Colors\n");
+-	getch();
+-
+-	printw("Resetting colors to pair 1\n");
+-	bkgdset(' ' | COLOR_PAIR(1));
+-	printw("RED/BLACK\n");
+-	getch();
++#if HAVE_USE_DEFAULT_COLORS
++	if (d_option) {
++	    printw("Using default colors...\n");
++	    use_default_colors();
++	    if (d_option > 1) {
++		default_fg = -1;
++		default_bg = -1;
++	    }
++	}
++#endif
++#if HAVE_ASSUME_DEFAULT_COLORS
++	if (a_option) {
++	    printw("Using assumed colors %s/%s...\n",
++		   color_name(default_fg),
++		   color_name(default_bg));
++	    assume_default_colors(default_fg, default_bg);
++	    if (a_option > 1) {
++		default_fg = -1;
++		default_bg = -1;
++	    }
++	}
++#endif
+ 
+-	printw("Setting screen to pair 0\n");
+-	bkgd(' ' | COLOR_PAIR(0));
+-	getch();
+-
+-	printw("Setting screen to pair 1\n");
+-	bkgd(' ' | COLOR_PAIR(1));
+-	getch();
+-
+-	printw("Setting screen to pair 2\n");
+-	bkgd(' ' | COLOR_PAIR(2));
+-	getch();
+-
+-	printw("Setting screen to pair 0\n");
+-	bkgd(' ' | COLOR_PAIR(0));
+-	getch();
++	test_background();
+ 
+     } else {
+ 	printw("This demo requires a color terminal");
+diff -Naur ncurses-5.9.orig/test/color_name.h ncurses-5.9/test/color_name.h
+--- ncurses-5.9.orig/test/color_name.h	1970-01-01 00:00:00.000000000 +0000
++++ ncurses-5.9/test/color_name.h	2011-05-17 16:13:21.537696618 +0000
+@@ -0,0 +1,103 @@
++/****************************************************************************
++ * Copyright (c) 2011 Free Software Foundation, Inc.                        *
++ *                                                                          *
++ * Permission is hereby granted, free of charge, to any person obtaining a  *
++ * copy of this software and associated documentation files (the            *
++ * "Software"), to deal in the Software without restriction, including      *
++ * without limitation the rights to use, copy, modify, merge, publish,      *
++ * distribute, distribute with modifications, sublicense, and/or sell       *
++ * copies of the Software, and to permit persons to whom the Software is    *
++ * furnished to do so, subject to the following conditions:                 *
++ *                                                                          *
++ * The above copyright notice and this permission notice shall be included  *
++ * in all copies or substantial portions of the Software.                   *
++ *                                                                          *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
++ *                                                                          *
++ * Except as contained in this notice, the name(s) of the above copyright   *
++ * holders shall not be used in advertising or otherwise to promote the     *
++ * sale, use or other dealings in this Software without prior written       *
++ * authorization.                                                           *
++ ****************************************************************************/
++/*
++ * $Id: color_name.h,v 1.3 2011/05/14 17:41:17 tom Exp $
++ */
++
++#ifndef __COLORNAME_H
++#define __COLORNAME_H 1
++
++#ifndef __TEST_PRIV_H
++#include <test.priv.h>
++#endif
++
++static NCURSES_CONST char *the_color_names[] =
++{
++    "black",
++    "red",
++    "green",
++    "yellow",
++    "blue",
++    "magenta",
++    "cyan",
++    "white",
++    "BLACK",
++    "RED",
++    "GREEN",
++    "YELLOW",
++    "BLUE",
++    "MAGENTA",
++    "CYAN",
++    "WHITE"
++};
++
++#ifdef NEED_COLOR_CODE
++static int
++color_code(const char *color)
++{
++    int result = 0;
++    char *endp = 0;
++    size_t n;
++
++    if ((result = (int) strtol(color, &endp, 0)) >= 0
++	&& (endp == 0 || *endp == 0)) {
++	;
++    } else if (!strcmp(color, "default")) {
++	result = -1;
++    } else {
++	for (n = 0; n < SIZEOF(the_color_names); ++n) {
++	    if (!strcmp(the_color_names[n], color)) {
++		result = (int) n;
++		break;
++	    }
++	}
++    }
++    return result;
++}
++#endif /* NEED_COLOR_NAME */
++
++#ifdef NEED_COLOR_NAME
++static const char *
++color_name(int color)
++{
++    static char temp[20];
++    const char *result = 0;
++
++    if (color > (int) SIZEOF(the_color_names)) {
++	sprintf(temp, "%d", color);
++	result = temp;
++    } else if (color < 0) {
++	result = "default";
++    } else {
++	result = the_color_names[color];
++    }
++    return result;
++}
++#endif /* NEED_COLOR_NAME */
++
++#endif /* __COLORNAME_H */
+diff -Naur ncurses-5.9.orig/test/configure ncurses-5.9/test/configure
+--- ncurses-5.9.orig/test/configure	2011-03-24 08:29:40.000000000 +0000
++++ ncurses-5.9/test/configure	2011-05-17 16:13:21.545695732 +0000
+@@ -105,42 +105,6 @@
+ : ${ac_max_here_lines=38}
+ 
+ ac_unique_file="ncurses.c"
+-# Factoring default headers for most tests.
+-ac_includes_default="\
+-#include <stdio.h>
+-#if HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
+-#if HAVE_SYS_STAT_H
+-# include <sys/stat.h>
+-#endif
+-#if STDC_HEADERS
+-# include <stdlib.h>
+-# include <stddef.h>
+-#else
+-# if HAVE_STDLIB_H
+-#  include <stdlib.h>
+-# endif
+-#endif
+-#if HAVE_STRING_H
+-# if !STDC_HEADERS && HAVE_MEMORY_H
+-#  include <memory.h>
+-# endif
+-# include <string.h>
+-#endif
+-#if HAVE_STRINGS_H
+-# include <strings.h>
+-#endif
+-#if HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#else
+-# if HAVE_STDINT_H
+-#  include <stdint.h>
+-# endif
+-#endif
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif"
+ 
+ # Initialize some variables set by options.
+ ac_init_help=
+@@ -687,11 +651,13 @@
+   --with-dbmalloc         test: use Conor Cahill's dbmalloc library
+   --with-valgrind         test: use valgrind
+   --disable-leaks         test: free permanent memory, analyze leaks
++--disable-widec           disable checks for wide-character functions
+   --with-curses-dir=DIR   directory in which (n)curses is installed
+-  --with-5lib             use SunOS sysv-libraries
+   --with-ncursesw         use wide ncurses-libraries (installed)
+   --with-ncurses          use ncurses-libraries (installed)
+   --with-pdcurses         compile/link with pdcurses X11 library
++  --with-curses-colr      compile/link with HPUX 10.x color-curses
++  --with-curses-5lib      compile/link with SunOS 5lib curses
+   --with-Xaw3d            link with Xaw 3d library
+   --with-neXtaw           link with neXT Athena library
+   --with-XawPlus          link with Athena-Plus library
+@@ -891,7 +857,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+   if test -r "$ac_site_file"; then
+-    { echo "$as_me:894: loading site script $ac_site_file" >&5
++    { echo "$as_me:860: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+     cat "$ac_site_file" >&5
+     . "$ac_site_file"
+@@ -902,7 +868,7 @@
+   # Some versions of bash will fail to source /dev/null (special
+   # files actually), so we avoid doing that.
+   if test -f "$cache_file"; then
+-    { echo "$as_me:905: loading cache $cache_file" >&5
++    { echo "$as_me:871: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+     case $cache_file in
+       [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -910,7 +876,7 @@
+     esac
+   fi
+ else
+-  { echo "$as_me:913: creating cache $cache_file" >&5
++  { echo "$as_me:879: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+   >$cache_file
+ fi
+@@ -926,21 +892,21 @@
+   eval ac_new_val="\$ac_env_${ac_var}_value"
+   case $ac_old_set,$ac_new_set in
+     set,)
+-      { echo "$as_me:929: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++      { echo "$as_me:895: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,set)
+-      { echo "$as_me:933: error: \`$ac_var' was not set in the previous run" >&5
++      { echo "$as_me:899: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,);;
+     *)
+       if test "x$ac_old_val" != "x$ac_new_val"; then
+-        { echo "$as_me:939: error: \`$ac_var' has changed since the previous run:" >&5
++        { echo "$as_me:905: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+-        { echo "$as_me:941:   former value:  $ac_old_val" >&5
++        { echo "$as_me:907:   former value:  $ac_old_val" >&5
+ echo "$as_me:   former value:  $ac_old_val" >&2;}
+-        { echo "$as_me:943:   current value: $ac_new_val" >&5
++        { echo "$as_me:909:   current value: $ac_new_val" >&5
+ echo "$as_me:   current value: $ac_new_val" >&2;}
+         ac_cache_corrupted=:
+       fi;;
+@@ -959,9 +925,9 @@
+   fi
+ done
+ if $ac_cache_corrupted; then
+-  { echo "$as_me:962: error: changes in the environment can compromise the build" >&5
++  { echo "$as_me:928: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  { { echo "$as_me:964: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++  { { echo "$as_me:930: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -982,10 +948,10 @@
+ echo "#! $SHELL" >conftest.sh
+ echo  "exit 0"   >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:985: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:951: PATH=\".;.\"; conftest.sh") >&5
+   (PATH=".;."; conftest.sh) 2>&5
+   ac_status=$?
+-  echo "$as_me:988: \$? = $ac_status" >&5
++  echo "$as_me:954: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   ac_path_separator=';'
+ else
+@@ -1017,7 +983,7 @@
+   fi
+ done
+ if test -z "$ac_aux_dir"; then
+-  { { echo "$as_me:1020: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++  { { echo "$as_me:986: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1027,11 +993,11 @@
+ 
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+-  { { echo "$as_me:1030: error: cannot run $ac_config_sub" >&5
++  { { echo "$as_me:996: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+-echo "$as_me:1034: checking build system type" >&5
++echo "$as_me:1000: checking build system type" >&5
+ echo $ECHO_N "checking build system type... $ECHO_C" >&6
+ if test "${ac_cv_build+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1040,16 +1006,16 @@
+ test -z "$ac_cv_build_alias" &&
+   ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+-  { { echo "$as_me:1043: error: cannot guess build type; you must specify one" >&5
++  { { echo "$as_me:1009: error: cannot guess build type; you must specify one" >&5
+ echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+    { (exit 1); exit 1; }; }
+ ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+-  { { echo "$as_me:1047: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++  { { echo "$as_me:1013: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:1052: result: $ac_cv_build" >&5
++echo "$as_me:1018: result: $ac_cv_build" >&5
+ echo "${ECHO_T}$ac_cv_build" >&6
+ build=$ac_cv_build
+ build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1057,7 +1023,7 @@
+ build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ 
+ if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+-	echo "$as_me:1060: checking host system type" >&5
++	echo "$as_me:1026: checking host system type" >&5
+ echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ if test "${ac_cv_host+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1066,12 +1032,12 @@
+ test -z "$ac_cv_host_alias" &&
+   ac_cv_host_alias=$ac_cv_build_alias
+ ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+-  { { echo "$as_me:1069: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++  { { echo "$as_me:1035: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:1074: result: $ac_cv_host" >&5
++echo "$as_me:1040: result: $ac_cv_host" >&5
+ echo "${ECHO_T}$ac_cv_host" >&6
+ host=$ac_cv_host
+ host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1096,13 +1062,13 @@
+ fi
+ 
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1099: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1065: result: Configuring for $cf_cv_system_name" >&5
+ echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
+ 
+ if test ".$system_name" != ".$cf_cv_system_name" ; then
+-	echo "$as_me:1103: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++	echo "$as_me:1069: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+-	{ { echo "$as_me:1105: error: \"Please remove config.cache and try again.\"" >&5
++	{ { echo "$as_me:1071: error: \"Please remove config.cache and try again.\"" >&5
+ echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -1120,7 +1086,7 @@
+ program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+ rm conftest.sed
+ 
+-echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:1089: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -1140,11 +1106,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$as_me:1143: result: yes" >&5
++  echo "$as_me:1109: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+   SET_MAKE=
+ else
+-  echo "$as_me:1147: result: no" >&5
++  echo "$as_me:1113: result: no" >&5
+ echo "${ECHO_T}no" >&6
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -1158,7 +1124,7 @@
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1161: checking for $ac_word" >&5
++echo "$as_me:1127: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1173,7 +1139,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1176: found $ac_dir/$ac_word" >&5
++echo "$as_me:1142: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1181,10 +1147,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1184: result: $CC" >&5
++  echo "$as_me:1150: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1187: result: no" >&5
++  echo "$as_me:1153: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1193,7 +1159,7 @@
+   ac_ct_CC=$CC
+   # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo "$as_me:1196: checking for $ac_word" >&5
++echo "$as_me:1162: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1208,7 +1174,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1211: found $ac_dir/$ac_word" >&5
++echo "$as_me:1177: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1216,10 +1182,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1219: result: $ac_ct_CC" >&5
++  echo "$as_me:1185: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1222: result: no" >&5
++  echo "$as_me:1188: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1232,7 +1198,7 @@
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1235: checking for $ac_word" >&5
++echo "$as_me:1201: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1247,7 +1213,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1250: found $ac_dir/$ac_word" >&5
++echo "$as_me:1216: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1255,10 +1221,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1258: result: $CC" >&5
++  echo "$as_me:1224: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1261: result: no" >&5
++  echo "$as_me:1227: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1267,7 +1233,7 @@
+   ac_ct_CC=$CC
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1270: checking for $ac_word" >&5
++echo "$as_me:1236: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1282,7 +1248,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1285: found $ac_dir/$ac_word" >&5
++echo "$as_me:1251: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1290,10 +1256,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1293: result: $ac_ct_CC" >&5
++  echo "$as_me:1259: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1296: result: no" >&5
++  echo "$as_me:1262: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1306,7 +1272,7 @@
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1309: checking for $ac_word" >&5
++echo "$as_me:1275: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1326,7 +1292,7 @@
+   continue
+ fi
+ ac_cv_prog_CC="cc"
+-echo "$as_me:1329: found $ac_dir/$ac_word" >&5
++echo "$as_me:1295: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1348,10 +1314,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1351: result: $CC" >&5
++  echo "$as_me:1317: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1354: result: no" >&5
++  echo "$as_me:1320: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1362,7 +1328,7 @@
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1365: checking for $ac_word" >&5
++echo "$as_me:1331: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1377,7 +1343,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1380: found $ac_dir/$ac_word" >&5
++echo "$as_me:1346: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1385,10 +1351,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$as_me:1388: result: $CC" >&5
++  echo "$as_me:1354: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$as_me:1391: result: no" >&5
++  echo "$as_me:1357: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1401,7 +1367,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1404: checking for $ac_word" >&5
++echo "$as_me:1370: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1416,7 +1382,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1419: found $ac_dir/$ac_word" >&5
++echo "$as_me:1385: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -1424,10 +1390,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+-  echo "$as_me:1427: result: $ac_ct_CC" >&5
++  echo "$as_me:1393: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$as_me:1430: result: no" >&5
++  echo "$as_me:1396: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -1439,32 +1405,32 @@
+ 
+ fi
+ 
+-test -z "$CC" && { { echo "$as_me:1442: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1408: error: no acceptable cc found in \$PATH" >&5
+ echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ # Provide some information about the compiler.
+-echo "$as_me:1447:" \
++echo "$as_me:1413:" \
+      "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1450: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1416: \"$ac_compiler --version </dev/null >&5\"") >&5
+   (eval $ac_compiler --version </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1453: \$? = $ac_status" >&5
++  echo "$as_me:1419: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:1455: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1421: \"$ac_compiler -v </dev/null >&5\"") >&5
+   (eval $ac_compiler -v </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1458: \$? = $ac_status" >&5
++  echo "$as_me:1424: \$? = $ac_status" >&5
+   (exit $ac_status); }
+-{ (eval echo "$as_me:1460: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1426: \"$ac_compiler -V </dev/null >&5\"") >&5
+   (eval $ac_compiler -V </dev/null >&5) 2>&5
+   ac_status=$?
+-  echo "$as_me:1463: \$? = $ac_status" >&5
++  echo "$as_me:1429: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1467 "configure"
++#line 1433 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1480,13 +1446,13 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1483: checking for C compiler default output" >&5
++echo "$as_me:1449: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1486: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1452: \"$ac_link_default\"") >&5
+   (eval $ac_link_default) 2>&5
+   ac_status=$?
+-  echo "$as_me:1489: \$? = $ac_status" >&5
++  echo "$as_me:1455: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # Find the output, starting from the most likely.  This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+@@ -1509,34 +1475,34 @@
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1512: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1478: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+    { (exit 77); exit 77; }; }
+ fi
+ 
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1518: result: $ac_file" >&5
++echo "$as_me:1484: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+ 
+ # Check the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1523: checking whether the C compiler works" >&5
++echo "$as_me:1489: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+   if { ac_try='./$ac_file'
+-  { (eval echo "$as_me:1529: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1495: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1532: \$? = $ac_status" >&5
++  echo "$as_me:1498: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+     cross_compiling=no
+   else
+     if test "$cross_compiling" = maybe; then
+ 	cross_compiling=yes
+     else
+-	{ { echo "$as_me:1539: error: cannot run C compiled programs.
++	{ { echo "$as_me:1505: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1544,24 +1510,24 @@
+     fi
+   fi
+ fi
+-echo "$as_me:1547: result: yes" >&5
++echo "$as_me:1513: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1554: checking whether we are cross compiling" >&5
++echo "$as_me:1520: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1556: result: $cross_compiling" >&5
++echo "$as_me:1522: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+ 
+-echo "$as_me:1559: checking for executable suffix" >&5
++echo "$as_me:1525: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1561: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1527: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:1564: \$? = $ac_status" >&5
++  echo "$as_me:1530: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+@@ -1577,25 +1543,25 @@
+   esac
+ done
+ else
+-  { { echo "$as_me:1580: error: cannot compute EXEEXT: cannot compile and link" >&5
++  { { echo "$as_me:1546: error: cannot compute EXEEXT: cannot compile and link" >&5
+ echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1586: result: $ac_cv_exeext" >&5
++echo "$as_me:1552: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+ 
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1592: checking for object suffix" >&5
++echo "$as_me:1558: checking for object suffix" >&5
+ echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1598 "configure"
++#line 1564 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1607,10 +1573,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1610: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1576: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1613: \$? = $ac_status" >&5
++  echo "$as_me:1579: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+   case $ac_file in
+@@ -1622,24 +1588,24 @@
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1625: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1591: error: cannot compute OBJEXT: cannot compile" >&5
+ echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1632: result: $ac_cv_objext" >&5
++echo "$as_me:1598: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1636: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1602: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1642 "configure"
++#line 1608 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1654,16 +1620,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1657: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1660: \$? = $ac_status" >&5
++  echo "$as_me:1626: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1663: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1629: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1666: \$? = $ac_status" >&5
++  echo "$as_me:1632: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_compiler_gnu=yes
+ else
+@@ -1675,19 +1641,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+ 
+ fi
+-echo "$as_me:1678: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1644: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1684: checking whether $CC accepts -g" >&5
++echo "$as_me:1650: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1690 "configure"
++#line 1656 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -1699,16 +1665,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1702: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1668: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1705: \$? = $ac_status" >&5
++  echo "$as_me:1671: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1708: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1674: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1711: \$? = $ac_status" >&5
++  echo "$as_me:1677: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_g=yes
+ else
+@@ -1718,7 +1684,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1721: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1687: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+   CFLAGS=$ac_save_CFLAGS
+@@ -1745,16 +1711,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1714: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1751: \$? = $ac_status" >&5
++  echo "$as_me:1717: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1754: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1720: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1757: \$? = $ac_status" >&5
++  echo "$as_me:1723: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   for ac_declaration in \
+    ''\
+@@ -1766,7 +1732,7 @@
+    'void exit (int);'
+ do
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1769 "configure"
++#line 1735 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1779,16 +1745,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1782: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1785: \$? = $ac_status" >&5
++  echo "$as_me:1751: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1788: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1754: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1791: \$? = $ac_status" >&5
++  echo "$as_me:1757: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -1798,7 +1764,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1801 "configure"
++#line 1767 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -1810,16 +1776,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1813: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1779: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:1816: \$? = $ac_status" >&5
++  echo "$as_me:1782: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:1819: \"$ac_try\"") >&5
++  { (eval echo "$as_me:1785: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:1822: \$? = $ac_status" >&5
++  echo "$as_me:1788: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   break
+ else
+@@ -1853,7 +1819,7 @@
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:1856: checking how to run the C preprocessor" >&5
++echo "$as_me:1822: checking how to run the C preprocessor" >&5
+ echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+@@ -1874,18 +1840,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1877 "configure"
++#line 1843 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:1882: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1848: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:1888: \$? = $ac_status" >&5
++  echo "$as_me:1854: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1908,17 +1874,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1911 "configure"
++#line 1877 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:1915: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1881: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:1921: \$? = $ac_status" >&5
++  echo "$as_me:1887: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1955,7 +1921,7 @@
+ else
+   ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:1958: result: $CPP" >&5
++echo "$as_me:1924: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -1965,18 +1931,18 @@
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 1968 "configure"
++#line 1934 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+                      Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:1973: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1939: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:1979: \$? = $ac_status" >&5
++  echo "$as_me:1945: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1999,17 +1965,17 @@
+   # OK, works on sane cases.  Now check whether non-existent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 2002 "configure"
++#line 1968 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2006: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1972: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:2012: \$? = $ac_status" >&5
++  echo "$as_me:1978: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2037,7 +2003,7 @@
+ if $ac_preproc_ok; then
+   :
+ else
+-  { { echo "$as_me:2040: error: C preprocessor \"$CPP\" fails sanity check" >&5
++  { { echo "$as_me:2006: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -2053,7 +2019,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2056: checking for $ac_word" >&5
++echo "$as_me:2022: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AWK+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2068,7 +2034,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:2071: found $ac_dir/$ac_word" >&5
++echo "$as_me:2037: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2076,10 +2042,10 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+-  echo "$as_me:2079: result: $AWK" >&5
++  echo "$as_me:2045: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+-  echo "$as_me:2082: result: no" >&5
++  echo "$as_me:2048: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2098,7 +2064,7 @@
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:2101: checking for a BSD compatible install" >&5
++echo "$as_me:2067: checking for a BSD compatible install" >&5
+ echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+@@ -2147,7 +2113,7 @@
+     INSTALL=$ac_install_sh
+   fi
+ fi
+-echo "$as_me:2150: result: $INSTALL" >&5
++echo "$as_me:2116: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+ 
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -2172,7 +2138,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2175: checking for $ac_word" >&5
++echo "$as_me:2141: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LINT+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2187,7 +2153,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LINT="$ac_prog"
+-echo "$as_me:2190: found $ac_dir/$ac_word" >&5
++echo "$as_me:2156: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2195,17 +2161,17 @@
+ fi
+ LINT=$ac_cv_prog_LINT
+ if test -n "$LINT"; then
+-  echo "$as_me:2198: result: $LINT" >&5
++  echo "$as_me:2164: result: $LINT" >&5
+ echo "${ECHO_T}$LINT" >&6
+ else
+-  echo "$as_me:2201: result: no" >&5
++  echo "$as_me:2167: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+   test -n "$LINT" && break
+ done
+ 
+-echo "$as_me:2208: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:2174: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2232,7 +2198,7 @@
+ fi
+ 
+ fi
+-echo "$as_me:2235: result: $cf_cv_mixedcase" >&5
++echo "$as_me:2201: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+ test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+@@ -2242,7 +2208,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2245: checking for $ac_word" >&5
++echo "$as_me:2211: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CTAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2257,7 +2223,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CTAGS="$ac_prog"
+-echo "$as_me:2260: found $ac_dir/$ac_word" >&5
++echo "$as_me:2226: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2265,10 +2231,10 @@
+ fi
+ CTAGS=$ac_cv_prog_CTAGS
+ if test -n "$CTAGS"; then
+-  echo "$as_me:2268: result: $CTAGS" >&5
++  echo "$as_me:2234: result: $CTAGS" >&5
+ echo "${ECHO_T}$CTAGS" >&6
+ else
+-  echo "$as_me:2271: result: no" >&5
++  echo "$as_me:2237: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2279,7 +2245,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2282: checking for $ac_word" >&5
++echo "$as_me:2248: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ETAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2294,7 +2260,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ETAGS="$ac_prog"
+-echo "$as_me:2297: found $ac_dir/$ac_word" >&5
++echo "$as_me:2263: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2302,10 +2268,10 @@
+ fi
+ ETAGS=$ac_cv_prog_ETAGS
+ if test -n "$ETAGS"; then
+-  echo "$as_me:2305: result: $ETAGS" >&5
++  echo "$as_me:2271: result: $ETAGS" >&5
+ echo "${ECHO_T}$ETAGS" >&6
+ else
+-  echo "$as_me:2308: result: no" >&5
++  echo "$as_me:2274: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2314,7 +2280,7 @@
+ 
+ # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
+ set dummy ${CTAGS:-ctags}; ac_word=$2
+-echo "$as_me:2317: checking for $ac_word" >&5
++echo "$as_me:2283: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2329,7 +2295,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:2332: found $ac_dir/$ac_word" >&5
++echo "$as_me:2298: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2338,17 +2304,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+-  echo "$as_me:2341: result: $MAKE_LOWER_TAGS" >&5
++  echo "$as_me:2307: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+-  echo "$as_me:2344: result: no" >&5
++  echo "$as_me:2310: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+ if test "$cf_cv_mixedcase" = yes ; then
+ 	# Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
+ set dummy ${ETAGS:-etags}; ac_word=$2
+-echo "$as_me:2351: checking for $ac_word" >&5
++echo "$as_me:2317: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2363,7 +2329,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:2366: found $ac_dir/$ac_word" >&5
++echo "$as_me:2332: found $ac_dir/$ac_word" >&5
+ break
+ done
+ 
+@@ -2372,10 +2338,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+-  echo "$as_me:2375: result: $MAKE_UPPER_TAGS" >&5
++  echo "$as_me:2341: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+-  echo "$as_me:2378: result: no" >&5
++  echo "$as_me:2344: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -2395,14 +2361,14 @@
+ 	MAKE_LOWER_TAGS="#"
+ fi
+ 
+-echo "$as_me:2398: checking if -lm needed for math functions" >&5
++echo "$as_me:2364: checking if -lm needed for math functions" >&5
+ echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
+ if test "${cf_cv_need_libm+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 2405 "configure"
++#line 2371 "configure"
+ #include "confdefs.h"
+ 
+ 	#include <stdio.h>
+@@ -2417,16 +2383,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2420: \"$ac_link\"") >&5
++if { (eval echo "$as_me:2386: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:2423: \$? = $ac_status" >&5
++  echo "$as_me:2389: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:2426: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2392: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2429: \$? = $ac_status" >&5
++  echo "$as_me:2395: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_need_libm=no
+ else
+@@ -2436,7 +2402,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:2439: result: $cf_cv_need_libm" >&5
++echo "$as_me:2405: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+@@ -2471,7 +2437,7 @@
+ cf_cv_screen=curses
+ cf_cv_libtype=
+ 
+-echo "$as_me:2474: checking for ${CC:-cc} option to accept ANSI C" >&5
++echo "$as_me:2440: checking for ${CC:-cc} option to accept ANSI C" >&5
+ echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
+ if test "${cf_cv_ansi_cc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2575,7 +2541,7 @@
+ fi
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 2578 "configure"
++#line 2544 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef CC_HAS_PROTOS
+@@ -2596,16 +2562,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2599: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2565: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2602: \$? = $ac_status" >&5
++  echo "$as_me:2568: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2605: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2571: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2608: \$? = $ac_status" >&5
++  echo "$as_me:2574: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ansi_cc="$cf_arg"; break
+ else
+@@ -2618,7 +2584,7 @@
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ 
+ fi
+-echo "$as_me:2621: result: $cf_cv_ansi_cc" >&5
++echo "$as_me:2587: result: $cf_cv_ansi_cc" >&5
+ echo "${ECHO_T}$cf_cv_ansi_cc" >&6
+ 
+ if test "$cf_cv_ansi_cc" != "no"; then
+@@ -2711,7 +2677,7 @@
+ fi
+ 
+ if test "$cf_cv_ansi_cc" = "no"; then
+-	{ { echo "$as_me:2714: error: Your compiler does not appear to recognize prototypes.
++	{ { echo "$as_me:2680: error: Your compiler does not appear to recognize prototypes.
+ You have the following choices:
+ 	a. adjust your compiler options
+ 	b. get an up-to-date compiler
+@@ -2742,10 +2708,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+-	{ echo "$as_me:2745: checking for $CC __attribute__ directives..." >&5
++	{ echo "$as_me:2711: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 2748 "${as_me:-configure}"
++#line 2714 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -2794,12 +2760,12 @@
+ 			;;
+ 		esac
+ 
+-		if { (eval echo "$as_me:2797: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:2763: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2800: \$? = $ac_status" >&5
++  echo "$as_me:2766: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:2802: result: ... $cf_attribute" >&5
++			test -n "$verbose" && echo "$as_me:2768: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ 			cat conftest.h >>confdefs.h
+ 			case $cf_attribute in #(vi
+@@ -2870,14 +2836,14 @@
+ 	;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+ 
+-echo "$as_me:2873: checking if we must define _GNU_SOURCE" >&5
++echo "$as_me:2839: checking if we must define _GNU_SOURCE" >&5
+ echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_gnu_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2880 "configure"
++#line 2846 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -2892,16 +2858,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2895: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2861: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2898: \$? = $ac_status" >&5
++  echo "$as_me:2864: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2901: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2867: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2904: \$? = $ac_status" >&5
++  echo "$as_me:2870: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -2910,7 +2876,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 2913 "configure"
++#line 2879 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -2925,16 +2891,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2928: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2894: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:2931: \$? = $ac_status" >&5
++  echo "$as_me:2897: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:2934: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2900: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:2937: \$? = $ac_status" >&5
++  echo "$as_me:2903: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_gnu_source=no
+ else
+@@ -2949,7 +2915,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:2952: result: $cf_cv_gnu_source" >&5
++echo "$as_me:2918: result: $cf_cv_gnu_source" >&5
+ echo "${ECHO_T}$cf_cv_gnu_source" >&6
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ 
+@@ -2979,14 +2945,14 @@
+ 	cf_xopen_source="-D__EXTENSIONS__"
+ 	;;
+ *)
+-	echo "$as_me:2982: checking if we should define _XOPEN_SOURCE" >&5
++	echo "$as_me:2948: checking if we should define _XOPEN_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_xopen_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 2989 "configure"
++#line 2955 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3001,16 +2967,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2970: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3007: \$? = $ac_status" >&5
++  echo "$as_me:2973: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3010: \"$ac_try\"") >&5
++  { (eval echo "$as_me:2976: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3013: \$? = $ac_status" >&5
++  echo "$as_me:2979: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -3019,7 +2985,7 @@
+ cf_save="$CPPFLAGS"
+ 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 3022 "configure"
++#line 2988 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3034,16 +3000,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3037: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3003: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3040: \$? = $ac_status" >&5
++  echo "$as_me:3006: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3043: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3009: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3046: \$? = $ac_status" >&5
++  echo "$as_me:3012: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xopen_source=no
+ else
+@@ -3058,7 +3024,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:3061: result: $cf_cv_xopen_source" >&5
++echo "$as_me:3027: result: $cf_cv_xopen_source" >&5
+ echo "${ECHO_T}$cf_cv_xopen_source" >&6
+ 	if test "$cf_cv_xopen_source" != no ; then
+ 
+@@ -3165,16 +3131,16 @@
+ 	sed	-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+ 		-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?$//g'`
+ 
+-echo "$as_me:3168: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:3134: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+-echo "${as_me:-configure}:3174: testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me:-configure}:3140: testing if the symbol is already defined go no further ..." 1>&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 3177 "configure"
++#line 3143 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3189,16 +3155,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3192: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3158: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3195: \$? = $ac_status" >&5
++  echo "$as_me:3161: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3198: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3164: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3201: \$? = $ac_status" >&5
++  echo "$as_me:3167: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_posix_c_source=no
+ else
+@@ -3219,7 +3185,7 @@
+ 	 esac
+ 	 if test "$cf_want_posix_source" = yes ; then
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 3222 "configure"
++#line 3188 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3234,16 +3200,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3237: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3203: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3240: \$? = $ac_status" >&5
++  echo "$as_me:3206: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3243: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3209: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3246: \$? = $ac_status" >&5
++  echo "$as_me:3212: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -3254,15 +3220,15 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 	 fi
+ 
+-echo "${as_me:-configure}:3257: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me:-configure}:3223: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+ 
+ 	 CFLAGS="$cf_trim_CFLAGS"
+ 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+ 
+-echo "${as_me:-configure}:3262: testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me:-configure}:3228: testing if the second compile does not leave our definition intact error ..." 1>&5
+ 
+ 	 cat >conftest.$ac_ext <<_ACEOF
+-#line 3265 "configure"
++#line 3231 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3277,16 +3243,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3280: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3246: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3283: \$? = $ac_status" >&5
++  echo "$as_me:3249: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3286: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3252: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3289: \$? = $ac_status" >&5
++  echo "$as_me:3255: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -3302,7 +3268,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:3305: result: $cf_cv_posix_c_source" >&5
++echo "$as_me:3271: result: $cf_cv_posix_c_source" >&5
+ echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+ 
+ if test "$cf_cv_posix_c_source" != no ; then
+@@ -3474,7 +3440,7 @@
+ 
+ fi
+ 
+-echo "$as_me:3477: checking for $CC option to accept ANSI C" >&5
++echo "$as_me:3443: checking for $CC option to accept ANSI C" >&5
+ echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3482,7 +3448,7 @@
+   ac_cv_prog_cc_stdc=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3485 "configure"
++#line 3451 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -3531,16 +3497,16 @@
+ do
+   CC="$ac_save_CC $ac_arg"
+   rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3500: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3537: \$? = $ac_status" >&5
++  echo "$as_me:3503: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3540: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3506: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3543: \$? = $ac_status" >&5
++  echo "$as_me:3509: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_prog_cc_stdc=$ac_arg
+ break
+@@ -3557,21 +3523,21 @@
+ 
+ case "x$ac_cv_prog_cc_stdc" in
+   x|xno)
+-    echo "$as_me:3560: result: none needed" >&5
++    echo "$as_me:3526: result: none needed" >&5
+ echo "${ECHO_T}none needed" >&6 ;;
+   *)
+-    echo "$as_me:3563: result: $ac_cv_prog_cc_stdc" >&5
++    echo "$as_me:3529: result: $ac_cv_prog_cc_stdc" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+     CC="$CC $ac_cv_prog_cc_stdc" ;;
+ esac
+ 
+-echo "$as_me:3568: checking for an ANSI C-conforming const" >&5
++echo "$as_me:3534: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 3574 "configure"
++#line 3540 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -3629,16 +3595,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3632: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3598: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3635: \$? = $ac_status" >&5
++  echo "$as_me:3601: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3638: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3604: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3641: \$? = $ac_status" >&5
++  echo "$as_me:3607: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_const=yes
+ else
+@@ -3648,7 +3614,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:3651: result: $ac_cv_c_const" >&5
++echo "$as_me:3617: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+ 
+@@ -3658,7 +3624,7 @@
+ 
+ fi
+ 
+-echo "$as_me:3661: checking for signal global datatype" >&5
++echo "$as_me:3627: checking for signal global datatype" >&5
+ echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
+ if test "${cf_cv_sig_atomic_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3670,7 +3636,7 @@
+ 		"int"
+ 	do
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 3673 "configure"
++#line 3639 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -3693,16 +3659,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3696: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3662: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3699: \$? = $ac_status" >&5
++  echo "$as_me:3665: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3702: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3668: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3705: \$? = $ac_status" >&5
++  echo "$as_me:3671: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sig_atomic_t=$cf_type
+ else
+@@ -3716,13 +3682,13 @@
+ 
+ fi
+ 
+-echo "$as_me:3719: result: $cf_cv_sig_atomic_t" >&5
++echo "$as_me:3685: result: $cf_cv_sig_atomic_t" >&5
+ echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
+ test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
+ #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+ EOF
+ 
+-echo "$as_me:3725: checking if you want to see long compiling messages" >&5
++echo "$as_me:3691: checking if you want to see long compiling messages" >&5
+ echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
+ 
+ # Check whether --enable-echo or --disable-echo was given.
+@@ -3756,22 +3722,22 @@
+     ECHO_CC=''
+ 
+ fi;
+-echo "$as_me:3759: result: $enableval" >&5
++echo "$as_me:3725: result: $enableval" >&5
+ echo "${ECHO_T}$enableval" >&6
+ 
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+-	echo "$as_me:3764: checking version of $CC" >&5
++	echo "$as_me:3730: checking version of $CC" >&5
+ echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
+ 	GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
+-	echo "$as_me:3768: result: $GCC_VERSION" >&5
++	echo "$as_me:3734: result: $GCC_VERSION" >&5
+ echo "${ECHO_T}$GCC_VERSION" >&6
+ fi
+ 
+ if ( test "$GCC" = yes || test "$GXX" = yes )
+ then
+-echo "$as_me:3774: checking if you want to turn on gcc warnings" >&5
++echo "$as_me:3740: checking if you want to turn on gcc warnings" >&5
+ echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
+ 
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -3788,7 +3754,7 @@
+   with_warnings=no
+ 
+ fi;
+-echo "$as_me:3791: result: $with_warnings" >&5
++echo "$as_me:3757: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+ if test "$with_warnings" = "yes"
+ then
+@@ -3811,10 +3777,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+-	{ echo "$as_me:3814: checking for $CC __attribute__ directives..." >&5
++	{ echo "$as_me:3780: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 3817 "${as_me:-configure}"
++#line 3783 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -3863,12 +3829,12 @@
+ 			;;
+ 		esac
+ 
+-		if { (eval echo "$as_me:3866: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:3832: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3869: \$? = $ac_status" >&5
++  echo "$as_me:3835: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:3871: result: ... $cf_attribute" >&5
++			test -n "$verbose" && echo "$as_me:3837: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ 			cat conftest.h >>confdefs.h
+ 			case $cf_attribute in #(vi
+@@ -3908,12 +3874,12 @@
+ if test "$GCC" = yes ; then
+ 	case $host_os in
+ 	linux*|gnu*)
+-		echo "$as_me:3911: checking if this is really Intel C compiler" >&5
++		echo "$as_me:3877: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ 		cf_save_CFLAGS="$CFLAGS"
+ 		CFLAGS="$CFLAGS -no-gcc"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 3916 "configure"
++#line 3882 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -3930,16 +3896,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3933: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3899: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3936: \$? = $ac_status" >&5
++  echo "$as_me:3902: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:3939: \"$ac_try\"") >&5
++  { (eval echo "$as_me:3905: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:3942: \$? = $ac_status" >&5
++  echo "$as_me:3908: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   INTEL_COMPILER=yes
+ cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+@@ -3950,14 +3916,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 		CFLAGS="$cf_save_CFLAGS"
+-		echo "$as_me:3953: result: $INTEL_COMPILER" >&5
++		echo "$as_me:3919: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ 		;;
+ 	esac
+ fi
+ 
+ cat > conftest.$ac_ext <<EOF
+-#line 3960 "${as_me:-configure}"
++#line 3926 "${as_me:-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+ 
+@@ -3974,7 +3940,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #279: controlling expression is constant
+ 
+-	{ echo "$as_me:3977: checking for $CC warning options..." >&5
++	{ echo "$as_me:3943: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS="-Wall"
+@@ -3990,12 +3956,12 @@
+ 		wd981
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:3959: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:3996: \$? = $ac_status" >&5
++  echo "$as_me:3962: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:3964: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ 		fi
+@@ -4004,7 +3970,7 @@
+ 
+ elif test "$GCC" = yes
+ then
+-	{ echo "$as_me:4007: checking for $CC warning options..." >&5
++	{ echo "$as_me:3973: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ 	cf_save_CFLAGS="$CFLAGS"
+ 	EXTRA_CFLAGS=
+@@ -4024,12 +3990,12 @@
+ 		Wundef $cf_warn_CONST
+ 	do
+ 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+-		if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5
++		if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4030: \$? = $ac_status" >&5
++  echo "$as_me:3996: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+-			test -n "$verbose" && echo "$as_me:4032: result: ... -$cf_opt" >&5
++			test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ 			case $cf_opt in #(vi
+ 			Wcast-qual) #(vi
+@@ -4040,7 +4006,7 @@
+ 				[34].*)
+ 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+ 
+-echo "${as_me:-configure}:4043: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++echo "${as_me:-configure}:4009: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+ 
+ 					continue;;
+ 				esac
+@@ -4056,7 +4022,7 @@
+ fi
+ fi
+ 
+-echo "$as_me:4059: checking if you want to use dmalloc for testing" >&5
++echo "$as_me:4025: checking if you want to use dmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dmalloc or --without-dmalloc was given.
+@@ -4072,7 +4038,7 @@
+ else
+   with_dmalloc=
+ fi;
+-echo "$as_me:4075: result: ${with_dmalloc:-no}" >&5
++echo "$as_me:4041: result: ${with_dmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -4166,23 +4132,23 @@
+ esac
+ 
+ if test "$with_dmalloc" = yes ; then
+-	echo "$as_me:4169: checking for dmalloc.h" >&5
++	echo "$as_me:4135: checking for dmalloc.h" >&5
+ echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4175 "configure"
++#line 4141 "configure"
+ #include "confdefs.h"
+ #include <dmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:4179: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4145: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:4185: \$? = $ac_status" >&5
++  echo "$as_me:4151: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4201,11 +4167,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4204: result: $ac_cv_header_dmalloc_h" >&5
++echo "$as_me:4170: result: $ac_cv_header_dmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+ if test $ac_cv_header_dmalloc_h = yes; then
+ 
+-echo "$as_me:4208: checking for dmalloc_debug in -ldmalloc" >&5
++echo "$as_me:4174: checking for dmalloc_debug in -ldmalloc" >&5
+ echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4213,7 +4179,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4216 "configure"
++#line 4182 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -4232,16 +4198,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4235: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4201: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4238: \$? = $ac_status" >&5
++  echo "$as_me:4204: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4241: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4207: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4244: \$? = $ac_status" >&5
++  echo "$as_me:4210: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+@@ -4252,7 +4218,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4255: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "$as_me:4221: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+ echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
+ if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
+   cat >>confdefs.h <<EOF
+@@ -4267,7 +4233,7 @@
+ 
+ fi
+ 
+-echo "$as_me:4270: checking if you want to use dbmalloc for testing" >&5
++echo "$as_me:4236: checking if you want to use dbmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-dbmalloc or --without-dbmalloc was given.
+@@ -4283,7 +4249,7 @@
+ else
+   with_dbmalloc=
+ fi;
+-echo "$as_me:4286: result: ${with_dbmalloc:-no}" >&5
++echo "$as_me:4252: result: ${with_dbmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dbmalloc:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -4377,23 +4343,23 @@
+ esac
+ 
+ if test "$with_dbmalloc" = yes ; then
+-	echo "$as_me:4380: checking for dbmalloc.h" >&5
++	echo "$as_me:4346: checking for dbmalloc.h" >&5
+ echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4386 "configure"
++#line 4352 "configure"
+ #include "confdefs.h"
+ #include <dbmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:4390: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4356: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:4396: \$? = $ac_status" >&5
++  echo "$as_me:4362: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4412,11 +4378,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4415: result: $ac_cv_header_dbmalloc_h" >&5
++echo "$as_me:4381: result: $ac_cv_header_dbmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+ if test $ac_cv_header_dbmalloc_h = yes; then
+ 
+-echo "$as_me:4419: checking for debug_malloc in -ldbmalloc" >&5
++echo "$as_me:4385: checking for debug_malloc in -ldbmalloc" >&5
+ echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4424,7 +4390,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldbmalloc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4427 "configure"
++#line 4393 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -4443,16 +4409,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4412: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:4449: \$? = $ac_status" >&5
++  echo "$as_me:4415: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:4452: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4418: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4455: \$? = $ac_status" >&5
++  echo "$as_me:4421: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+@@ -4463,7 +4429,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4466: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "$as_me:4432: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+ echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
+ if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
+   cat >>confdefs.h <<EOF
+@@ -4478,7 +4444,7 @@
+ 
+ fi
+ 
+-echo "$as_me:4481: checking if you want to use valgrind for testing" >&5
++echo "$as_me:4447: checking if you want to use valgrind for testing" >&5
+ echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
+ 
+ # Check whether --with-valgrind or --without-valgrind was given.
+@@ -4494,7 +4460,7 @@
+ else
+   with_valgrind=
+ fi;
+-echo "$as_me:4497: result: ${with_valgrind:-no}" >&5
++echo "$as_me:4463: result: ${with_valgrind:-no}" >&5
+ echo "${ECHO_T}${with_valgrind:-no}" >&6
+ 
+ case .$with_cflags in #(vi
+@@ -4587,7 +4553,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:4590: checking if you want to perform memory-leak testing" >&5
++echo "$as_me:4556: checking if you want to perform memory-leak testing" >&5
+ echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
+ 
+ # Check whether --enable-leaks or --disable-leaks was given.
+@@ -4597,7 +4563,7 @@
+ else
+   : ${with_no_leaks:=no}
+ fi;
+-echo "$as_me:4600: result: $with_no_leaks" >&5
++echo "$as_me:4566: result: $with_no_leaks" >&5
+ echo "${ECHO_T}$with_no_leaks" >&6
+ 
+ if test "$with_no_leaks" = yes ; then
+@@ -4611,7 +4577,27 @@
+ 
+ fi
+ 
+-echo "$as_me:4614: checking for specific curses-directory" >&5
++echo "$as_me:4580: checking if you want to check for wide-character functions" >&5
++echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6
++
++# Check whether --enable-widec or --disable-widec was given.
++if test "${enable_widec+set}" = set; then
++  enableval="$enable_widec"
++  test "$enableval" != no && enableval=yes
++  if test "$enableval" != "yes" ; then
++    cf_enable_widec=no
++  else
++    cf_enable_widec=yes
++  fi
++else
++  enableval=yes
++  cf_enable_widec=yes
++
++fi;
++echo "$as_me:4597: result: $cf_enable_widec" >&5
++echo "${ECHO_T}$cf_enable_widec" >&6
++
++echo "$as_me:4600: checking for specific curses-directory" >&5
+ echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
+ 
+ # Check whether --with-curses-dir or --without-curses-dir was given.
+@@ -4621,7 +4607,7 @@
+ else
+   cf_cv_curses_dir=no
+ fi;
+-echo "$as_me:4624: result: $cf_cv_curses_dir" >&5
++echo "$as_me:4610: result: $cf_cv_curses_dir" >&5
+ echo "${ECHO_T}$cf_cv_curses_dir" >&6
+ 
+ if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+@@ -4652,7 +4638,7 @@
+   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:4655: error: expected a pathname, not \"$withval\"" >&5
++  { { echo "$as_me:4641: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -4685,7 +4671,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 4688 "configure"
++#line 4674 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4697,16 +4683,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4700: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4686: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4703: \$? = $ac_status" >&5
++  echo "$as_me:4689: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4706: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4692: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4709: \$? = $ac_status" >&5
++  echo "$as_me:4695: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -4723,7 +4709,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:4726: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4712: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -4757,7 +4743,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:4760: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:4746: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -4768,12 +4754,8 @@
+ 	fi
+ fi
+ 
+-# Check whether --with-5lib or --without-5lib was given.
+-if test "${with_5lib+set}" = set; then
+-  withval="$with_5lib"
+-  LIBS="-L/usr/5lib $LIBS"
+-	 CPPFLAGS="$CPPFLAGS -I/usr/5include"
+-fi;
++echo "$as_me:4757: checking for specified curses library type" >&5
++echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6
+ 
+ # Check whether --with-ncursesw or --without-ncursesw was given.
+ if test "${with_ncursesw+set}" = set; then
+@@ -4791,14 +4773,31 @@
+ if test "${with_pdcurses+set}" = set; then
+   withval="$with_pdcurses"
+   cf_cv_screen=pdcurses
++else
++
++# Check whether --with-curses-colr or --without-curses-colr was given.
++if test "${with_curses_colr+set}" = set; then
++  withval="$with_curses_colr"
++  cf_cv_screen=curses_colr
++else
++
++# Check whether --with-curses-5lib or --without-curses-5lib was given.
++if test "${with_curses_5lib+set}" = set; then
++  withval="$with_curses_5lib"
++  cf_cv_screen=curses_5lib
++fi;
+ fi;
+ fi;
+ fi;
++fi;
++
++echo "$as_me:4794: result: $cf_cv_screen" >&5
++echo "${ECHO_T}$cf_cv_screen" >&6
+ 
+ case $cf_cv_screen in
+-curses)
++curses|curses_*)
+ 
+-echo "$as_me:4801: checking for extra include directories" >&5
++echo "$as_me:4800: checking for extra include directories" >&5
+ echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
+ if test "${cf_cv_curses_incdir+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4807,22 +4806,28 @@
+ cf_cv_curses_incdir=no
+ case $host_os in #(vi
+ hpux10.*) #(vi
+-	test -d /usr/include/curses_colr && \
+-	cf_cv_curses_incdir="-I/usr/include/curses_colr"
++	if test "x$cf_cv_screen" = "xcurses_colr"
++	then
++		test -d /usr/include/curses_colr && \
++		cf_cv_curses_incdir="-I/usr/include/curses_colr"
++	fi
+ 	;;
+ sunos3*|sunos4*)
+-	test -d /usr/5lib && \
+-	test -d /usr/5include && \
+-	cf_cv_curses_incdir="-I/usr/5include"
++	if test "x$cf_cv_screen" = "xcurses_5lib"
++	then
++		test -d /usr/5lib && \
++		test -d /usr/5include && \
++		cf_cv_curses_incdir="-I/usr/5include"
++	fi
+ 	;;
+ esac
+ 
+ fi
+-echo "$as_me:4821: result: $cf_cv_curses_incdir" >&5
++echo "$as_me:4826: result: $cf_cv_curses_incdir" >&5
+ echo "${ECHO_T}$cf_cv_curses_incdir" >&6
+ test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
+ 
+-echo "$as_me:4825: checking if we have identified curses headers" >&5
++echo "$as_me:4830: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4830,11 +4835,11 @@
+ 
+ cf_cv_ncurses_header=none
+ for cf_header in  \
+-	curses.h \
+-	ncurses.h ncurses/curses.h ncurses/ncurses.h
++	ncurses.h \
++	curses.h ncurses/ncurses.h ncurses/curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4837 "configure"
++#line 4842 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -4846,16 +4851,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4849: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4854: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4852: \$? = $ac_status" >&5
++  echo "$as_me:4857: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4855: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4860: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4858: \$? = $ac_status" >&5
++  echo "$as_me:4863: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -4866,11 +4871,11 @@
+ done
+ 
+ fi
+-echo "$as_me:4869: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:4874: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+ 
+ if test "$cf_cv_ncurses_header" = none ; then
+-	{ { echo "$as_me:4873: error: No curses header-files found" >&5
++	{ { echo "$as_me:4878: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -4880,23 +4885,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:4883: checking for $ac_header" >&5
++echo "$as_me:4888: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 4889 "configure"
++#line 4894 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4893: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4898: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:4899: \$? = $ac_status" >&5
++  echo "$as_me:4904: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4915,7 +4920,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4918: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:4923: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -4925,7 +4930,7 @@
+ fi
+ done
+ 
+-echo "$as_me:4928: checking for terminfo header" >&5
++echo "$as_me:4933: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4943,7 +4948,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4946 "configure"
++#line 4951 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -4958,16 +4963,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4961: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4966: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:4964: \$? = $ac_status" >&5
++  echo "$as_me:4969: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:4967: \"$ac_try\"") >&5
++  { (eval echo "$as_me:4972: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:4970: \$? = $ac_status" >&5
++  echo "$as_me:4975: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_term_header="$cf_test"
+@@ -4983,7 +4988,7 @@
+ done
+ 
+ fi
+-echo "$as_me:4986: result: $cf_cv_term_header" >&5
++echo "$as_me:4991: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+@@ -5012,7 +5017,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:5015: checking for ncurses version" >&5
++echo "$as_me:5020: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5038,10 +5043,10 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo "$as_me:5041: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:5046: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5044: \$? = $ac_status" >&5
++  echo "$as_me:5049: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -5051,7 +5056,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5054 "configure"
++#line 5059 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5076,15 +5081,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5079: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5084: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5082: \$? = $ac_status" >&5
++  echo "$as_me:5087: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:5084: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5089: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5087: \$? = $ac_status" >&5
++  echo "$as_me:5092: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -5098,16 +5103,16 @@
+ 	rm -f $cf_tempfile
+ 
+ fi
+-echo "$as_me:5101: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:5106: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+ test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+ 
+-echo "$as_me:5107: checking if we have identified curses libraries" >&5
++echo "$as_me:5112: checking if we have identified curses libraries" >&5
+ echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5110 "configure"
++#line 5115 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5119,16 +5124,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5122: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5127: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5125: \$? = $ac_status" >&5
++  echo "$as_me:5130: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5128: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5133: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5131: \$? = $ac_status" >&5
++  echo "$as_me:5136: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -5137,13 +5142,13 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-echo "$as_me:5140: result: $cf_result" >&5
++echo "$as_me:5145: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 
+ if test "$cf_result" = no ; then
+ case $host_os in #(vi
+ freebsd*) #(vi
+-    echo "$as_me:5146: checking for tgoto in -lmytinfo" >&5
++    echo "$as_me:5151: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5151,7 +5156,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5154 "configure"
++#line 5159 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5170,16 +5175,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5178: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5176: \$? = $ac_status" >&5
++  echo "$as_me:5181: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5179: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5184: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5182: \$? = $ac_status" >&5
++  echo "$as_me:5187: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -5190,7 +5195,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5193: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:5198: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+   LIBS="-lmytinfo $LIBS"
+@@ -5198,7 +5203,13 @@
+ 
+     ;;
+ hpux10.*) #(vi
+-    echo "$as_me:5201: checking for initscr in -lcur_colr" >&5
++	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
++	# next (1998), and xcurses "newer" (2000).  There is no header file for
++	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
++	# term.h) for cur_colr
++	if test "x$cf_cv_screen" = "xcurses_colr"
++	then
++		echo "$as_me:5212: checking for initscr in -lcur_colr" >&5
+ echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
+ if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5206,7 +5217,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lcur_colr  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5209 "configure"
++#line 5220 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5225,16 +5236,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5228: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5239: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5231: \$? = $ac_status" >&5
++  echo "$as_me:5242: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5234: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5245: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5237: \$? = $ac_status" >&5
++  echo "$as_me:5248: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_cur_colr_initscr=yes
+ else
+@@ -5245,16 +5256,16 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5248: result: $ac_cv_lib_cur_colr_initscr" >&5
++echo "$as_me:5259: result: $ac_cv_lib_cur_colr_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
+ if test $ac_cv_lib_cur_colr_initscr = yes; then
+ 
+-        LIBS="-lcur_colr $LIBS"
+-        ac_cv_func_initscr=yes
++			LIBS="-lcur_colr $LIBS"
++			ac_cv_func_initscr=yes
+ 
+ else
+ 
+-    echo "$as_me:5257: checking for initscr in -lHcurses" >&5
++		echo "$as_me:5268: checking for initscr in -lHcurses" >&5
+ echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
+ if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5262,7 +5273,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lHcurses  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5265 "configure"
++#line 5276 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5281,16 +5292,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5284: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5295: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5287: \$? = $ac_status" >&5
++  echo "$as_me:5298: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5290: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5301: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5293: \$? = $ac_status" >&5
++  echo "$as_me:5304: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_Hcurses_initscr=yes
+ else
+@@ -5301,19 +5312,20 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5304: result: $ac_cv_lib_Hcurses_initscr" >&5
++echo "$as_me:5315: result: $ac_cv_lib_Hcurses_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
+ if test $ac_cv_lib_Hcurses_initscr = yes; then
+ 
+-        # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+-        LIBS="-lHcurses $LIBS"
+-        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+-        ac_cv_func_initscr=yes
++			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
++			LIBS="-lHcurses $LIBS"
++			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
++			ac_cv_func_initscr=yes
+ 
+ fi
+ 
+ fi
+ 
++	fi
+     ;;
+ linux*)
+ 	case `arch 2>/dev/null` in
+@@ -5340,7 +5352,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:5343: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:5355: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -5369,7 +5381,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:5372: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:5384: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -5400,7 +5412,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:5403: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:5415: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -5412,7 +5424,9 @@
+ 	esac
+     ;;
+ sunos3*|sunos4*)
+-    if test -d /usr/5lib ; then
++	if test "x$cf_cv_screen" = "xcurses_5lib"
++	then
++		if test -d /usr/5lib ; then
+ 
+ if test -n "/usr/5lib" ; then
+   for cf_add_libdir in /usr/5lib
+@@ -5433,7 +5447,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:5436: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:5450: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -5441,7 +5455,8 @@
+   done
+ fi
+ 
+-      LIBS="-lcurses -ltermcap $LIBS"
++			LIBS="-lcurses -ltermcap $LIBS"
++		fi
+     fi
+     ac_cv_func_initscr=yes
+     ;;
+@@ -5461,13 +5476,13 @@
+ 
+     # Check for library containing tgoto.  Do this before curses library
+     # because it may be needed to link the test-case for initscr.
+-    echo "$as_me:5464: checking for tgoto" >&5
++    echo "$as_me:5479: checking for tgoto" >&5
+ echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
+ if test "${ac_cv_func_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5470 "configure"
++#line 5485 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char tgoto (); below.  */
+@@ -5498,16 +5513,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5501: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5516: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5504: \$? = $ac_status" >&5
++  echo "$as_me:5519: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5507: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5522: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5510: \$? = $ac_status" >&5
++  echo "$as_me:5525: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_tgoto=yes
+ else
+@@ -5517,7 +5532,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5520: result: $ac_cv_func_tgoto" >&5
++echo "$as_me:5535: result: $ac_cv_func_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_func_tgoto" >&6
+ if test $ac_cv_func_tgoto = yes; then
+   cf_term_lib=predefined
+@@ -5526,7 +5541,7 @@
+         for cf_term_lib in $cf_check_list termcap termlib unknown
+         do
+             as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
+-echo "$as_me:5529: checking for tgoto in -l$cf_term_lib" >&5
++echo "$as_me:5544: checking for tgoto in -l$cf_term_lib" >&5
+ echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5534,7 +5549,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l$cf_term_lib  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5537 "configure"
++#line 5552 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5553,16 +5568,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5556: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5571: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5559: \$? = $ac_status" >&5
++  echo "$as_me:5574: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5562: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5577: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5565: \$? = $ac_status" >&5
++  echo "$as_me:5580: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -5573,7 +5588,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5576: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:5591: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+   break
+@@ -5588,7 +5603,7 @@
+  	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
+     do
+         as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
+-echo "$as_me:5591: checking for initscr in -l$cf_curs_lib" >&5
++echo "$as_me:5606: checking for initscr in -l$cf_curs_lib" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5596,7 +5611,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l$cf_curs_lib  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5599 "configure"
++#line 5614 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -5615,16 +5630,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5618: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5633: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5621: \$? = $ac_status" >&5
++  echo "$as_me:5636: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5624: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5639: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5627: \$? = $ac_status" >&5
++  echo "$as_me:5642: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -5635,23 +5650,23 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5638: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:5653: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+   break
+ fi
+ 
+     done
+-    test $cf_curs_lib = unknown && { { echo "$as_me:5645: error: no curses library found" >&5
++    test $cf_curs_lib = unknown && { { echo "$as_me:5660: error: no curses library found" >&5
+ echo "$as_me: error: no curses library found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+     LIBS="-l$cf_curs_lib $cf_save_LIBS"
+     if test "$cf_term_lib" = unknown ; then
+-        echo "$as_me:5651: checking if we can link with $cf_curs_lib library" >&5
++        echo "$as_me:5666: checking if we can link with $cf_curs_lib library" >&5
+ echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 5654 "configure"
++#line 5669 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5663,16 +5678,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5666: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5681: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5669: \$? = $ac_status" >&5
++  echo "$as_me:5684: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5672: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5687: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5675: \$? = $ac_status" >&5
++  echo "$as_me:5690: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -5681,18 +5696,18 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-        echo "$as_me:5684: result: $cf_result" >&5
++        echo "$as_me:5699: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+-        test $cf_result = no && { { echo "$as_me:5686: error: Cannot link curses library" >&5
++        test $cf_result = no && { { echo "$as_me:5701: error: Cannot link curses library" >&5
+ echo "$as_me: error: Cannot link curses library" >&2;}
+    { (exit 1); exit 1; }; }
+     elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+         :
+     elif test "$cf_term_lib" != predefined ; then
+-        echo "$as_me:5692: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
++        echo "$as_me:5707: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+ echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 5695 "configure"
++#line 5710 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5704,16 +5719,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5722: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5710: \$? = $ac_status" >&5
++  echo "$as_me:5725: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5713: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5728: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5716: \$? = $ac_status" >&5
++  echo "$as_me:5731: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=no
+ else
+@@ -5722,7 +5737,7 @@
+ 
+             LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+             cat >conftest.$ac_ext <<_ACEOF
+-#line 5725 "configure"
++#line 5740 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5734,16 +5749,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5737: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5752: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:5740: \$? = $ac_status" >&5
++  echo "$as_me:5755: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:5743: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5758: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5746: \$? = $ac_status" >&5
++  echo "$as_me:5761: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -5755,20 +5770,20 @@
+ 
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-        echo "$as_me:5758: result: $cf_result" >&5
++        echo "$as_me:5773: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+     fi
+ fi
+ fi
+ 
+-echo "$as_me:5764: checking for NetBSD form.h" >&5
++echo "$as_me:5779: checking for NetBSD form.h" >&5
+ echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
+ if test "${cf_cv_netbsd_form_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5771 "configure"
++#line 5786 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5787,16 +5802,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5790: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5805: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5793: \$? = $ac_status" >&5
++  echo "$as_me:5808: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5796: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5811: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5799: \$? = $ac_status" >&5
++  echo "$as_me:5814: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_netbsd_form_h=yes
+ 
+@@ -5808,21 +5823,21 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:5811: result: $cf_cv_netbsd_form_h" >&5
++echo "$as_me:5826: result: $cf_cv_netbsd_form_h" >&5
+ echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
+ 
+ test "$cf_cv_netbsd_form_h" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_NETBSD_FORM_H 1
+ EOF
+ 
+-echo "$as_me:5818: checking for NetBSD menu.h" >&5
++echo "$as_me:5833: checking for NetBSD menu.h" >&5
+ echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
+ if test "${cf_cv_netbsd_menu_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5825 "configure"
++#line 5840 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5840,16 +5855,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5843: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5858: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5846: \$? = $ac_status" >&5
++  echo "$as_me:5861: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5849: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5864: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5852: \$? = $ac_status" >&5
++  echo "$as_me:5867: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_netbsd_menu_h=yes
+ 
+@@ -5861,7 +5876,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:5864: result: $cf_cv_netbsd_menu_h" >&5
++echo "$as_me:5879: result: $cf_cv_netbsd_menu_h" >&5
+ echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
+ 
+ test "$cf_cv_netbsd_menu_h" = yes && cat >>confdefs.h <<\EOF
+@@ -5878,7 +5893,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:5881: checking for $ac_word" >&5
++echo "$as_me:5896: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5895,7 +5910,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:5898: found $ac_dir/$ac_word" >&5
++   echo "$as_me:5913: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -5906,10 +5921,10 @@
+ NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+ 
+ if test -n "$NCURSES_CONFIG"; then
+-  echo "$as_me:5909: result: $NCURSES_CONFIG" >&5
++  echo "$as_me:5924: result: $NCURSES_CONFIG" >&5
+ echo "${ECHO_T}$NCURSES_CONFIG" >&6
+ else
+-  echo "$as_me:5912: result: no" >&5
++  echo "$as_me:5927: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -5924,7 +5939,7 @@
+ 
+ # even with config script, some packages use no-override for curses.h
+ 
+-echo "$as_me:5927: checking if we have identified curses headers" >&5
++echo "$as_me:5942: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5932,13 +5947,13 @@
+ 
+ cf_cv_ncurses_header=none
+ for cf_header in  \
+-    ncurses/curses.h \
+-	ncurses/ncurses.h \
+-	curses.h \
+-	ncurses.h
++    ncurses/ncurses.h \
++	ncurses/curses.h \
++	ncurses.h \
++	curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5941 "configure"
++#line 5956 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -5950,16 +5965,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5953: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5968: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:5956: \$? = $ac_status" >&5
++  echo "$as_me:5971: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:5959: \"$ac_try\"") >&5
++  { (eval echo "$as_me:5974: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:5962: \$? = $ac_status" >&5
++  echo "$as_me:5977: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -5970,11 +5985,11 @@
+ done
+ 
+ fi
+-echo "$as_me:5973: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:5988: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+ 
+ if test "$cf_cv_ncurses_header" = none ; then
+-	{ { echo "$as_me:5977: error: No curses header-files found" >&5
++	{ { echo "$as_me:5992: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -5984,23 +5999,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:5987: checking for $ac_header" >&5
++echo "$as_me:6002: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 5993 "configure"
++#line 6008 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:5997: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:6012: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:6003: \$? = $ac_status" >&5
++  echo "$as_me:6018: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -6019,7 +6034,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:6022: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:6037: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -6072,7 +6087,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6075 "configure"
++#line 6090 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6084,16 +6099,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6087: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6102: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6090: \$? = $ac_status" >&5
++  echo "$as_me:6105: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6093: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6108: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6096: \$? = $ac_status" >&5
++  echo "$as_me:6111: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6110,7 +6125,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6113: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6128: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6127,7 +6142,7 @@
+ 
+ }
+ 
+-echo "$as_me:6130: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:6145: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6139,7 +6154,7 @@
+ 	do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6142 "configure"
++#line 6157 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -6163,16 +6178,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6166: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6181: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6169: \$? = $ac_status" >&5
++  echo "$as_me:6184: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6172: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6187: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6175: \$? = $ac_status" >&5
++  echo "$as_me:6190: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h=$cf_header
+ 
+@@ -6187,14 +6202,14 @@
+ 	done
+ 
+ fi
+-echo "$as_me:6190: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:6205: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+ 
+ if test "$cf_cv_ncurses_h" != no ; then
+ 	cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+ 
+-echo "$as_me:6197: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:6212: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6334,7 +6349,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6337 "configure"
++#line 6352 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6346,16 +6361,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6349: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6364: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6352: \$? = $ac_status" >&5
++  echo "$as_me:6367: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6355: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6370: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6358: \$? = $ac_status" >&5
++  echo "$as_me:6373: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6372,7 +6387,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6375: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6390: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6393,7 +6408,7 @@
+ 		do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 6396 "configure"
++#line 6411 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -6417,16 +6432,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6420: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6435: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6423: \$? = $ac_status" >&5
++  echo "$as_me:6438: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6426: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6441: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6429: \$? = $ac_status" >&5
++  echo "$as_me:6444: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h2=$cf_header
+ 
+@@ -6447,12 +6462,12 @@
+ 		CPPFLAGS="$cf_save2_CPPFLAGS"
+ 		test "$cf_cv_ncurses_h2" != no && break
+ 	done
+-	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6450: error: not found" >&5
++	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6465: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:6455: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:6470: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+ 
+ 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -6485,7 +6500,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 6488 "configure"
++#line 6503 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6497,16 +6512,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6500: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6515: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6503: \$? = $ac_status" >&5
++  echo "$as_me:6518: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6506: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6521: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6509: \$? = $ac_status" >&5
++  echo "$as_me:6524: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -6523,7 +6538,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:6526: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6541: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -6566,7 +6581,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:6569: checking for terminfo header" >&5
++echo "$as_me:6584: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6584,7 +6599,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6587 "configure"
++#line 6602 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6599,16 +6614,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6602: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6617: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:6605: \$? = $ac_status" >&5
++  echo "$as_me:6620: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:6608: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6623: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6611: \$? = $ac_status" >&5
++  echo "$as_me:6626: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_term_header="$cf_test"
+@@ -6624,7 +6639,7 @@
+ done
+ 
+ fi
+-echo "$as_me:6627: result: $cf_cv_term_header" >&5
++echo "$as_me:6642: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+@@ -6658,7 +6673,7 @@
+ #define NCURSES 1
+ EOF
+ 
+-echo "$as_me:6661: checking for ncurses version" >&5
++echo "$as_me:6676: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6684,10 +6699,10 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo "$as_me:6687: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:6702: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6690: \$? = $ac_status" >&5
++  echo "$as_me:6705: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -6697,7 +6712,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6700 "configure"
++#line 6715 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6722,15 +6737,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6725: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6740: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6728: \$? = $ac_status" >&5
++  echo "$as_me:6743: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:6730: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6745: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6733: \$? = $ac_status" >&5
++  echo "$as_me:6748: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -6744,7 +6759,7 @@
+ 	rm -f $cf_tempfile
+ 
+ fi
+-echo "$as_me:6747: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:6762: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+ test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+@@ -6756,7 +6771,7 @@
+ 	# to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:6759: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:6774: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6764,7 +6779,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6767 "configure"
++#line 6782 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6783,16 +6798,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6786: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6801: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6789: \$? = $ac_status" >&5
++  echo "$as_me:6804: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6792: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6807: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6795: \$? = $ac_status" >&5
++  echo "$as_me:6810: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -6803,10 +6818,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6806: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:6821: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+-  echo "$as_me:6809: checking for initscr in -lgpm" >&5
++  echo "$as_me:6824: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6814,7 +6829,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6817 "configure"
++#line 6832 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6833,16 +6848,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6836: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6851: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6839: \$? = $ac_status" >&5
++  echo "$as_me:6854: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6842: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6857: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6845: \$? = $ac_status" >&5
++  echo "$as_me:6860: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_initscr=yes
+ else
+@@ -6853,7 +6868,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6856: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:6871: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+   LIBS="$cf_ncurses_SAVE"
+@@ -6868,7 +6883,7 @@
+ 	# This is only necessary if you are linking against an obsolete
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+-		echo "$as_me:6871: checking for tgoto in -lmytinfo" >&5
++		echo "$as_me:6886: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6876,7 +6891,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6879 "configure"
++#line 6894 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -6895,16 +6910,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6898: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6913: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6901: \$? = $ac_status" >&5
++  echo "$as_me:6916: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6904: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6919: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6907: \$? = $ac_status" >&5
++  echo "$as_me:6922: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -6915,7 +6930,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6918: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:6933: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -6934,13 +6949,13 @@
+ 
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+-	echo "$as_me:6937: checking for initscr" >&5
++	echo "$as_me:6952: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 6943 "configure"
++#line 6958 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr (); below.  */
+@@ -6971,16 +6986,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6974: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6989: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:6977: \$? = $ac_status" >&5
++  echo "$as_me:6992: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:6980: \"$ac_try\"") >&5
++  { (eval echo "$as_me:6995: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:6983: \$? = $ac_status" >&5
++  echo "$as_me:6998: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_initscr=yes
+ else
+@@ -6990,18 +7005,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6993: result: $ac_cv_func_initscr" >&5
++echo "$as_me:7008: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ 
+ 		cf_save_LIBS="$LIBS"
+-		echo "$as_me:7000: checking for initscr in -l$cf_nculib_root" >&5
++		echo "$as_me:7015: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 7004 "configure"
++#line 7019 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7013,25 +7028,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7016: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7031: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7019: \$? = $ac_status" >&5
++  echo "$as_me:7034: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7022: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7037: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7025: \$? = $ac_status" >&5
++  echo "$as_me:7040: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:7027: result: yes" >&5
++  echo "$as_me:7042: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7034: result: no" >&5
++echo "$as_me:7049: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 
+ cf_search=
+@@ -7121,11 +7136,11 @@
+ 
+ 			for cf_libdir in $cf_search
+ 			do
+-				echo "$as_me:7124: checking for -l$cf_nculib_root in $cf_libdir" >&5
++				echo "$as_me:7139: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat >conftest.$ac_ext <<_ACEOF
+-#line 7128 "configure"
++#line 7143 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7137,25 +7152,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7140: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7155: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7143: \$? = $ac_status" >&5
++  echo "$as_me:7158: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7146: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7161: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7149: \$? = $ac_status" >&5
++  echo "$as_me:7164: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:7151: result: yes" >&5
++  echo "$as_me:7166: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 					 break
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7158: result: no" >&5
++echo "$as_me:7173: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 					 LIBS="$cf_save_LIBS"
+ fi
+@@ -7170,7 +7185,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+ 
+ if test $cf_found_library = no ; then
+-	{ { echo "$as_me:7173: error: Cannot link $cf_nculib_root library" >&5
++	{ { echo "$as_me:7188: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -7178,7 +7193,7 @@
+ fi
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+-	echo "$as_me:7181: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++	echo "$as_me:7196: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+@@ -7188,7 +7203,7 @@
+ 		fi
+ 	done
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 7191 "configure"
++#line 7206 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7200,23 +7215,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7203: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7218: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7206: \$? = $ac_status" >&5
++  echo "$as_me:7221: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7209: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7224: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7212: \$? = $ac_status" >&5
++  echo "$as_me:7227: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:7214: result: yes" >&5
++  echo "$as_me:7229: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7219: result: no" >&5
++echo "$as_me:7234: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 		 LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -7235,7 +7250,7 @@
+ ncursesw)
+ 	cf_cv_libtype=w
+ 
+-echo "$as_me:7238: checking for multibyte character support" >&5
++echo "$as_me:7253: checking for multibyte character support" >&5
+ echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
+ if test "${cf_cv_utf8_lib+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7243,7 +7258,7 @@
+ 
+ 	cf_save_LIBS="$LIBS"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 7246 "configure"
++#line 7261 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -7256,16 +7271,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7259: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7274: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7262: \$? = $ac_status" >&5
++  echo "$as_me:7277: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7265: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7280: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7268: \$? = $ac_status" >&5
++  echo "$as_me:7283: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_utf8_lib=yes
+ else
+@@ -7277,12 +7292,12 @@
+ cf_cv_header_path_utf8=
+ cf_cv_library_path_utf8=
+ 
+-echo "${as_me:-configure}:7280: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:7295: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+ cf_save_LIBS="$LIBS"
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7285 "configure"
++#line 7300 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -7295,16 +7310,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7298: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7313: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7301: \$? = $ac_status" >&5
++  echo "$as_me:7316: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7304: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7319: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7307: \$? = $ac_status" >&5
++  echo "$as_me:7322: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_find_linkage_utf8=yes
+@@ -7318,7 +7333,7 @@
+ LIBS="-lutf8  $cf_save_LIBS"
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7321 "configure"
++#line 7336 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -7331,16 +7346,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7334: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7349: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7337: \$? = $ac_status" >&5
++  echo "$as_me:7352: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7340: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7355: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7343: \$? = $ac_status" >&5
++  echo "$as_me:7358: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_find_linkage_utf8=yes
+@@ -7357,9 +7372,9 @@
+ 
+     test -n "$verbose" && echo "	find linkage for utf8 library" 1>&6
+ 
+-echo "${as_me:-configure}:7360: testing find linkage for utf8 library ..." 1>&5
++echo "${as_me:-configure}:7375: testing find linkage for utf8 library ..." 1>&5
+ 
+-echo "${as_me:-configure}:7362: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:7377: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+     cf_save_CPPFLAGS="$CPPFLAGS"
+     cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -7472,11 +7487,11 @@
+       if test -d $cf_cv_header_path_utf8 ; then
+         test -n "$verbose" && echo "	... testing $cf_cv_header_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:7475: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:7490: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+ 
+         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+         cat >conftest.$ac_ext <<_ACEOF
+-#line 7479 "configure"
++#line 7494 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -7489,21 +7504,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7492: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7507: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7495: \$? = $ac_status" >&5
++  echo "$as_me:7510: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7498: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7513: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7501: \$? = $ac_status" >&5
++  echo "$as_me:7516: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+             test -n "$verbose" && echo "	... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:7506: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:7521: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+ 
+             cf_cv_find_linkage_utf8=maybe
+             cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -7521,7 +7536,7 @@
+ 
+     if test "$cf_cv_find_linkage_utf8" = maybe ; then
+ 
+-echo "${as_me:-configure}:7524: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:7539: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+ 
+       cf_save_LIBS="$LIBS"
+       cf_save_LDFLAGS="$LDFLAGS"
+@@ -7618,13 +7633,13 @@
+           if test -d $cf_cv_library_path_utf8 ; then
+             test -n "$verbose" && echo "	... testing $cf_cv_library_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:7621: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:7636: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+ 
+             CPPFLAGS="$cf_test_CPPFLAGS"
+             LIBS="-lutf8  $cf_save_LIBS"
+             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+             cat >conftest.$ac_ext <<_ACEOF
+-#line 7627 "configure"
++#line 7642 "configure"
+ #include "confdefs.h"
+ 
+ #include <libutf8.h>
+@@ -7637,21 +7652,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7640: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7655: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:7643: \$? = $ac_status" >&5
++  echo "$as_me:7658: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:7646: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7661: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7649: \$? = $ac_status" >&5
++  echo "$as_me:7664: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+                 test -n "$verbose" && echo "	... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+ 
+-echo "${as_me:-configure}:7654: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:7669: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+ 
+                 cf_cv_find_linkage_utf8=yes
+                 cf_cv_library_file_utf8="-lutf8"
+@@ -7693,7 +7708,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:7696: result: $cf_cv_utf8_lib" >&5
++echo "$as_me:7711: result: $cf_cv_utf8_lib" >&5
+ echo "${ECHO_T}$cf_cv_utf8_lib" >&6
+ 
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+@@ -7727,7 +7742,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 7730 "configure"
++#line 7745 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7739,16 +7754,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7742: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7757: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7745: \$? = $ac_status" >&5
++  echo "$as_me:7760: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7748: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7763: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7751: \$? = $ac_status" >&5
++  echo "$as_me:7766: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -7765,7 +7780,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:7768: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:7783: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -7799,7 +7814,7 @@
+       if test "$cf_have_libdir" = no ; then
+         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+ 
+-echo "${as_me:-configure}:7802: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:7817: testing adding $cf_add_libdir to library-path ..." 1>&5
+ 
+         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+       fi
+@@ -7817,7 +7832,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:7820: checking for $ac_word" >&5
++echo "$as_me:7835: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7834,7 +7849,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:7837: found $ac_dir/$ac_word" >&5
++   echo "$as_me:7852: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -7845,10 +7860,10 @@
+ NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+ 
+ if test -n "$NCURSES_CONFIG"; then
+-  echo "$as_me:7848: result: $NCURSES_CONFIG" >&5
++  echo "$as_me:7863: result: $NCURSES_CONFIG" >&5
+ echo "${ECHO_T}$NCURSES_CONFIG" >&6
+ else
+-  echo "$as_me:7851: result: no" >&5
++  echo "$as_me:7866: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -7863,7 +7878,7 @@
+ 
+ # even with config script, some packages use no-override for curses.h
+ 
+-echo "$as_me:7866: checking if we have identified curses headers" >&5
++echo "$as_me:7881: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7871,13 +7886,13 @@
+ 
+ cf_cv_ncurses_header=none
+ for cf_header in  \
+-    ncursesw/curses.h \
+-	ncursesw/ncurses.h \
+-	curses.h \
+-	ncurses.h
++    ncursesw/ncurses.h \
++	ncursesw/curses.h \
++	ncurses.h \
++	curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7880 "configure"
++#line 7895 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -7889,16 +7904,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7892: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7907: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:7895: \$? = $ac_status" >&5
++  echo "$as_me:7910: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:7898: \"$ac_try\"") >&5
++  { (eval echo "$as_me:7913: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:7901: \$? = $ac_status" >&5
++  echo "$as_me:7916: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -7909,11 +7924,11 @@
+ done
+ 
+ fi
+-echo "$as_me:7912: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:7927: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+ 
+ if test "$cf_cv_ncurses_header" = none ; then
+-	{ { echo "$as_me:7916: error: No curses header-files found" >&5
++	{ { echo "$as_me:7931: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -7923,23 +7938,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:7926: checking for $ac_header" >&5
++echo "$as_me:7941: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 7932 "configure"
++#line 7947 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:7936: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:7951: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:7942: \$? = $ac_status" >&5
++  echo "$as_me:7957: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -7958,7 +7973,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:7961: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:7976: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -8011,7 +8026,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 8014 "configure"
++#line 8029 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8023,16 +8038,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8026: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8041: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8029: \$? = $ac_status" >&5
++  echo "$as_me:8044: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8032: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8047: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8035: \$? = $ac_status" >&5
++  echo "$as_me:8050: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8049,7 +8064,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:8052: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:8067: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -8066,7 +8081,7 @@
+ 
+ }
+ 
+-echo "$as_me:8069: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:8084: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8078,7 +8093,7 @@
+ 	do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 8081 "configure"
++#line 8096 "configure"
+ #include "confdefs.h"
+ 
+ #define _XOPEN_SOURCE_EXTENDED
+@@ -8110,16 +8125,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8113: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8128: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8116: \$? = $ac_status" >&5
++  echo "$as_me:8131: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8119: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8134: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8122: \$? = $ac_status" >&5
++  echo "$as_me:8137: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h=$cf_header
+ 
+@@ -8134,14 +8149,14 @@
+ 	done
+ 
+ fi
+-echo "$as_me:8137: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:8152: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+ 
+ if test "$cf_cv_ncurses_h" != no ; then
+ 	cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+ 
+-echo "$as_me:8144: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:8159: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8281,7 +8296,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 8284 "configure"
++#line 8299 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8293,16 +8308,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8311: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8299: \$? = $ac_status" >&5
++  echo "$as_me:8314: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8302: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8317: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8305: \$? = $ac_status" >&5
++  echo "$as_me:8320: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8319,7 +8334,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:8322: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:8337: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -8340,7 +8355,7 @@
+ 		do
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 8343 "configure"
++#line 8358 "configure"
+ #include "confdefs.h"
+ 
+ #include <$cf_header>
+@@ -8364,16 +8379,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8367: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8382: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8370: \$? = $ac_status" >&5
++  echo "$as_me:8385: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8373: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8388: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8376: \$? = $ac_status" >&5
++  echo "$as_me:8391: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_ncurses_h2=$cf_header
+ 
+@@ -8394,12 +8409,12 @@
+ 		CPPFLAGS="$cf_save2_CPPFLAGS"
+ 		test "$cf_cv_ncurses_h2" != no && break
+ 	done
+-	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8397: error: not found" >&5
++	test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8412: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+-echo "$as_me:8402: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:8417: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+ 
+ 	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -8432,7 +8447,7 @@
+ 			  cf_save_CPPFLAGS=$CPPFLAGS
+ 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 			  cat >conftest.$ac_ext <<_ACEOF
+-#line 8435 "configure"
++#line 8450 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8444,16 +8459,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8447: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8462: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8450: \$? = $ac_status" >&5
++  echo "$as_me:8465: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8453: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8468: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8456: \$? = $ac_status" >&5
++  echo "$as_me:8471: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -8470,7 +8485,7 @@
+ 		if test "$cf_have_incdir" = no ; then
+ 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+ 
+-echo "${as_me:-configure}:8473: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:8488: testing adding $cf_add_incdir to include-path ..." 1>&5
+ 
+ 		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ 
+@@ -8513,7 +8528,7 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:8516: checking for terminfo header" >&5
++echo "$as_me:8531: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8531,7 +8546,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8534 "configure"
++#line 8549 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -8546,16 +8561,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8549: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8564: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:8552: \$? = $ac_status" >&5
++  echo "$as_me:8567: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:8555: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8570: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8558: \$? = $ac_status" >&5
++  echo "$as_me:8573: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_term_header="$cf_test"
+@@ -8571,7 +8586,7 @@
+ done
+ 
+ fi
+-echo "$as_me:8574: result: $cf_cv_term_header" >&5
++echo "$as_me:8589: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+@@ -8605,7 +8620,7 @@
+ #define NCURSES 1
+ EOF
+ 
+-echo "$as_me:8608: checking for ncurses version" >&5
++echo "$as_me:8623: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8631,10 +8646,10 @@
+ #endif
+ EOF
+ 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+-	{ (eval echo "$as_me:8634: \"$cf_try\"") >&5
++	{ (eval echo "$as_me:8649: \"$cf_try\"") >&5
+   (eval $cf_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8637: \$? = $ac_status" >&5
++  echo "$as_me:8652: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 	if test -f conftest.out ; then
+ 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -8644,7 +8659,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8647 "configure"
++#line 8662 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -8669,15 +8684,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8672: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8687: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8675: \$? = $ac_status" >&5
++  echo "$as_me:8690: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:8677: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8692: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8680: \$? = $ac_status" >&5
++  echo "$as_me:8695: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+ 
+ 	cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -8691,7 +8706,7 @@
+ 	rm -f $cf_tempfile
+ 
+ fi
+-echo "$as_me:8694: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:8709: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+ test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+@@ -8703,7 +8718,7 @@
+ 	# to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:8706: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:8721: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8711,7 +8726,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8714 "configure"
++#line 8729 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -8730,16 +8745,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8733: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8748: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8736: \$? = $ac_status" >&5
++  echo "$as_me:8751: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8739: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8754: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8742: \$? = $ac_status" >&5
++  echo "$as_me:8757: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -8750,10 +8765,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:8753: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:8768: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+-  echo "$as_me:8756: checking for initscr in -lgpm" >&5
++  echo "$as_me:8771: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8761,7 +8776,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8764 "configure"
++#line 8779 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -8780,16 +8795,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8798: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8786: \$? = $ac_status" >&5
++  echo "$as_me:8801: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8789: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8804: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8792: \$? = $ac_status" >&5
++  echo "$as_me:8807: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_gpm_initscr=yes
+ else
+@@ -8800,7 +8815,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:8803: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:8818: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+   LIBS="$cf_ncurses_SAVE"
+@@ -8815,7 +8830,7 @@
+ 	# This is only necessary if you are linking against an obsolete
+ 	# version of ncurses (but it should do no harm, since it's static).
+ 	if test "$cf_nculib_root" = ncurses ; then
+-		echo "$as_me:8818: checking for tgoto in -lmytinfo" >&5
++		echo "$as_me:8833: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8823,7 +8838,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8826 "configure"
++#line 8841 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -8842,16 +8857,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8845: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8860: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8848: \$? = $ac_status" >&5
++  echo "$as_me:8863: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8851: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8866: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8854: \$? = $ac_status" >&5
++  echo "$as_me:8869: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -8862,7 +8877,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:8865: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:8880: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+   cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -8881,13 +8896,13 @@
+ 
+ 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ 	cf_libdir=""
+-	echo "$as_me:8884: checking for initscr" >&5
++	echo "$as_me:8899: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 8890 "configure"
++#line 8905 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char initscr (); below.  */
+@@ -8918,16 +8933,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8921: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8936: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8924: \$? = $ac_status" >&5
++  echo "$as_me:8939: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8927: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8942: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8930: \$? = $ac_status" >&5
++  echo "$as_me:8945: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_initscr=yes
+ else
+@@ -8937,18 +8952,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8940: result: $ac_cv_func_initscr" >&5
++echo "$as_me:8955: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+   eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+ 
+ 		cf_save_LIBS="$LIBS"
+-		echo "$as_me:8947: checking for initscr in -l$cf_nculib_root" >&5
++		echo "$as_me:8962: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ 		LIBS="-l$cf_nculib_root $LIBS"
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 8951 "configure"
++#line 8966 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -8960,25 +8975,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8963: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8978: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:8966: \$? = $ac_status" >&5
++  echo "$as_me:8981: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:8969: \"$ac_try\"") >&5
++  { (eval echo "$as_me:8984: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:8972: \$? = $ac_status" >&5
++  echo "$as_me:8987: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:8974: result: yes" >&5
++  echo "$as_me:8989: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:8981: result: no" >&5
++echo "$as_me:8996: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 
+ cf_search=
+@@ -9068,11 +9083,11 @@
+ 
+ 			for cf_libdir in $cf_search
+ 			do
+-				echo "$as_me:9071: checking for -l$cf_nculib_root in $cf_libdir" >&5
++				echo "$as_me:9086: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ 				cat >conftest.$ac_ext <<_ACEOF
+-#line 9075 "configure"
++#line 9090 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -9084,25 +9099,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9087: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9102: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9090: \$? = $ac_status" >&5
++  echo "$as_me:9105: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9093: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9108: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9096: \$? = $ac_status" >&5
++  echo "$as_me:9111: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:9098: result: yes" >&5
++  echo "$as_me:9113: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ 					 break
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:9105: result: no" >&5
++echo "$as_me:9120: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 					 LIBS="$cf_save_LIBS"
+ fi
+@@ -9117,7 +9132,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+ 
+ if test $cf_found_library = no ; then
+-	{ { echo "$as_me:9120: error: Cannot link $cf_nculib_root library" >&5
++	{ { echo "$as_me:9135: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -9125,7 +9140,7 @@
+ fi
+ 
+ if test -n "$cf_ncurses_LIBS" ; then
+-	echo "$as_me:9128: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++	echo "$as_me:9143: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ 	cf_ncurses_SAVE="$LIBS"
+ 	for p in $cf_ncurses_LIBS ; do
+@@ -9135,7 +9150,7 @@
+ 		fi
+ 	done
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 9138 "configure"
++#line 9153 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -9147,23 +9162,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9150: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9165: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9153: \$? = $ac_status" >&5
++  echo "$as_me:9168: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9156: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9171: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9159: \$? = $ac_status" >&5
++  echo "$as_me:9174: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  echo "$as_me:9161: result: yes" >&5
++  echo "$as_me:9176: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:9166: result: no" >&5
++echo "$as_me:9181: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 		 LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -9181,7 +9196,7 @@
+ 	;;
+ pdcurses) #(vi
+ 
+-echo "$as_me:9184: checking if you want to use pkg-config" >&5
++echo "$as_me:9199: checking if you want to use pkg-config" >&5
+ echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
+ 
+ # Check whether --with-pkg-config or --without-pkg-config was given.
+@@ -9191,7 +9206,7 @@
+ else
+   cf_pkg_config=yes
+ fi;
+-echo "$as_me:9194: result: $cf_pkg_config" >&5
++echo "$as_me:9209: result: $cf_pkg_config" >&5
+ echo "${ECHO_T}$cf_pkg_config" >&6
+ 
+ case $cf_pkg_config in #(vi
+@@ -9199,10 +9214,11 @@
+ 	PKG_CONFIG=none
+ 	;;
+ yes) #(vi
+-	if test -n "$ac_tool_prefix"; then
++
++if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+-echo "$as_me:9205: checking for $ac_word" >&5
++echo "$as_me:9221: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9219,7 +9235,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:9222: found $ac_dir/$ac_word" >&5
++   echo "$as_me:9238: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -9230,10 +9246,10 @@
+ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+ 
+ if test -n "$PKG_CONFIG"; then
+-  echo "$as_me:9233: result: $PKG_CONFIG" >&5
++  echo "$as_me:9249: result: $PKG_CONFIG" >&5
+ echo "${ECHO_T}$PKG_CONFIG" >&6
+ else
+-  echo "$as_me:9236: result: no" >&5
++  echo "$as_me:9252: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -9242,7 +9258,7 @@
+   ac_pt_PKG_CONFIG=$PKG_CONFIG
+   # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+-echo "$as_me:9245: checking for $ac_word" >&5
++echo "$as_me:9261: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9259,7 +9275,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:9262: found $ac_dir/$ac_word" >&5
++   echo "$as_me:9278: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -9271,10 +9287,10 @@
+ ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+ 
+ if test -n "$ac_pt_PKG_CONFIG"; then
+-  echo "$as_me:9274: result: $ac_pt_PKG_CONFIG" >&5
++  echo "$as_me:9290: result: $ac_pt_PKG_CONFIG" >&5
+ echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+ else
+-  echo "$as_me:9277: result: no" >&5
++  echo "$as_me:9293: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -9317,7 +9333,7 @@
+   PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+   ;;
+ *)
+-  { { echo "$as_me:9320: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
++  { { echo "$as_me:9336: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+    { (exit 1); exit 1; }; }
+   ;;
+@@ -9325,7 +9341,7 @@
+ 
+ fi
+ 
+-echo "$as_me:9328: checking for X" >&5
++echo "$as_me:9344: checking for X" >&5
+ echo $ECHO_N "checking for X... $ECHO_C" >&6
+ 
+ # Check whether --with-x or --without-x was given.
+@@ -9422,17 +9438,17 @@
+   # Guess where to find include files, by looking for Intrinsic.h.
+   # First, try using that file with no special directory specified.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9425 "configure"
++#line 9441 "configure"
+ #include "confdefs.h"
+ #include <X11/Intrinsic.h>
+ _ACEOF
+-if { (eval echo "$as_me:9429: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9445: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:9435: \$? = $ac_status" >&5
++  echo "$as_me:9451: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9465,7 +9481,7 @@
+   ac_save_LIBS=$LIBS
+   LIBS="-lXt $LIBS"
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9468 "configure"
++#line 9484 "configure"
+ #include "confdefs.h"
+ #include <X11/Intrinsic.h>
+ int
+@@ -9477,16 +9493,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9480: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9496: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9483: \$? = $ac_status" >&5
++  echo "$as_me:9499: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9486: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9502: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9489: \$? = $ac_status" >&5
++  echo "$as_me:9505: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   LIBS=$ac_save_LIBS
+ # We can link X programs with no special library path.
+@@ -9524,7 +9540,7 @@
+ fi # $with_x != no
+ 
+ if test "$have_x" != yes; then
+-  echo "$as_me:9527: result: $have_x" >&5
++  echo "$as_me:9543: result: $have_x" >&5
+ echo "${ECHO_T}$have_x" >&6
+   no_x=yes
+ else
+@@ -9534,7 +9550,7 @@
+   # Update the cache value to reflect the command line values.
+   ac_cv_have_x="have_x=yes \
+ 		ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+-  echo "$as_me:9537: result: libraries $x_libraries, headers $x_includes" >&5
++  echo "$as_me:9553: result: libraries $x_libraries, headers $x_includes" >&5
+ echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+ fi
+ 
+@@ -9558,11 +9574,11 @@
+     # others require no space.  Words are not sufficient . . . .
+     case `(uname -sr) 2>/dev/null` in
+     "SunOS 5"*)
+-      echo "$as_me:9561: checking whether -R must be followed by a space" >&5
++      echo "$as_me:9577: checking whether -R must be followed by a space" >&5
+ echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+       ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+       cat >conftest.$ac_ext <<_ACEOF
+-#line 9565 "configure"
++#line 9581 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -9574,16 +9590,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9577: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9593: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9580: \$? = $ac_status" >&5
++  echo "$as_me:9596: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9583: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9599: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9586: \$? = $ac_status" >&5
++  echo "$as_me:9602: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_R_nospace=yes
+ else
+@@ -9593,13 +9609,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+       if test $ac_R_nospace = yes; then
+-	echo "$as_me:9596: result: no" >&5
++	echo "$as_me:9612: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ 	X_LIBS="$X_LIBS -R$x_libraries"
+       else
+ 	LIBS="$ac_xsave_LIBS -R $x_libraries"
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 9602 "configure"
++#line 9618 "configure"
+ #include "confdefs.h"
+ 
+ int
+@@ -9611,16 +9627,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9614: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9630: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9617: \$? = $ac_status" >&5
++  echo "$as_me:9633: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9620: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9636: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9623: \$? = $ac_status" >&5
++  echo "$as_me:9639: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_R_space=yes
+ else
+@@ -9630,11 +9646,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 	if test $ac_R_space = yes; then
+-	  echo "$as_me:9633: result: yes" >&5
++	  echo "$as_me:9649: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ 	  X_LIBS="$X_LIBS -R $x_libraries"
+ 	else
+-	  echo "$as_me:9637: result: neither works" >&5
++	  echo "$as_me:9653: result: neither works" >&5
+ echo "${ECHO_T}neither works" >&6
+ 	fi
+       fi
+@@ -9654,7 +9670,7 @@
+     # the Alpha needs dnet_stub (dnet does not exist).
+     ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+     cat >conftest.$ac_ext <<_ACEOF
+-#line 9657 "configure"
++#line 9673 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9673,22 +9689,22 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9676: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9692: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9679: \$? = $ac_status" >&5
++  echo "$as_me:9695: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9682: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9698: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9685: \$? = $ac_status" >&5
++  echo "$as_me:9701: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:9691: checking for dnet_ntoa in -ldnet" >&5
++echo "$as_me:9707: checking for dnet_ntoa in -ldnet" >&5
+ echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+ if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9696,7 +9712,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldnet  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9699 "configure"
++#line 9715 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9715,16 +9731,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9718: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9734: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9721: \$? = $ac_status" >&5
++  echo "$as_me:9737: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9724: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9740: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9727: \$? = $ac_status" >&5
++  echo "$as_me:9743: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dnet_dnet_ntoa=yes
+ else
+@@ -9735,14 +9751,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9738: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
++echo "$as_me:9754: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+ echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+ if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+ fi
+ 
+     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+-      echo "$as_me:9745: checking for dnet_ntoa in -ldnet_stub" >&5
++      echo "$as_me:9761: checking for dnet_ntoa in -ldnet_stub" >&5
+ echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+ if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9750,7 +9766,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldnet_stub  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9753 "configure"
++#line 9769 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9769,16 +9785,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9772: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9788: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9775: \$? = $ac_status" >&5
++  echo "$as_me:9791: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9778: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9794: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9781: \$? = $ac_status" >&5
++  echo "$as_me:9797: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_dnet_stub_dnet_ntoa=yes
+ else
+@@ -9789,7 +9805,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9792: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
++echo "$as_me:9808: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+ echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+ if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+@@ -9808,13 +9824,13 @@
+     # on Irix 5.2, according to T.E. Dickey.
+     # The functions gethostbyname, getservbyname, and inet_addr are
+     # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+-    echo "$as_me:9811: checking for gethostbyname" >&5
++    echo "$as_me:9827: checking for gethostbyname" >&5
+ echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+ if test "${ac_cv_func_gethostbyname+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9817 "configure"
++#line 9833 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char gethostbyname (); below.  */
+@@ -9845,16 +9861,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9848: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9864: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9851: \$? = $ac_status" >&5
++  echo "$as_me:9867: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9854: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9870: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9857: \$? = $ac_status" >&5
++  echo "$as_me:9873: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_gethostbyname=yes
+ else
+@@ -9864,11 +9880,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9867: result: $ac_cv_func_gethostbyname" >&5
++echo "$as_me:9883: result: $ac_cv_func_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+ 
+     if test $ac_cv_func_gethostbyname = no; then
+-      echo "$as_me:9871: checking for gethostbyname in -lnsl" >&5
++      echo "$as_me:9887: checking for gethostbyname in -lnsl" >&5
+ echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+ if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9876,7 +9892,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lnsl  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9879 "configure"
++#line 9895 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9895,16 +9911,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9914: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9901: \$? = $ac_status" >&5
++  echo "$as_me:9917: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9904: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9920: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9907: \$? = $ac_status" >&5
++  echo "$as_me:9923: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_nsl_gethostbyname=yes
+ else
+@@ -9915,14 +9931,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9918: result: $ac_cv_lib_nsl_gethostbyname" >&5
++echo "$as_me:9934: result: $ac_cv_lib_nsl_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+ if test $ac_cv_lib_nsl_gethostbyname = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+ fi
+ 
+       if test $ac_cv_lib_nsl_gethostbyname = no; then
+-        echo "$as_me:9925: checking for gethostbyname in -lbsd" >&5
++        echo "$as_me:9941: checking for gethostbyname in -lbsd" >&5
+ echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9930,7 +9946,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9933 "configure"
++#line 9949 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -9949,16 +9965,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9952: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9968: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:9955: \$? = $ac_status" >&5
++  echo "$as_me:9971: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:9958: \"$ac_try\"") >&5
++  { (eval echo "$as_me:9974: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:9961: \$? = $ac_status" >&5
++  echo "$as_me:9977: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_bsd_gethostbyname=yes
+ else
+@@ -9969,7 +9985,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9972: result: $ac_cv_lib_bsd_gethostbyname" >&5
++echo "$as_me:9988: result: $ac_cv_lib_bsd_gethostbyname" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+ if test $ac_cv_lib_bsd_gethostbyname = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+@@ -9985,13 +10001,13 @@
+     # variants that don't use the nameserver (or something).  -lsocket
+     # must be given before -lnsl if both are needed.  We assume that
+     # if connect needs -lnsl, so does gethostbyname.
+-    echo "$as_me:9988: checking for connect" >&5
++    echo "$as_me:10004: checking for connect" >&5
+ echo $ECHO_N "checking for connect... $ECHO_C" >&6
+ if test "${ac_cv_func_connect+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 9994 "configure"
++#line 10010 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char connect (); below.  */
+@@ -10022,16 +10038,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10025: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10041: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10028: \$? = $ac_status" >&5
++  echo "$as_me:10044: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10031: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10047: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10034: \$? = $ac_status" >&5
++  echo "$as_me:10050: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_connect=yes
+ else
+@@ -10041,11 +10057,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10044: result: $ac_cv_func_connect" >&5
++echo "$as_me:10060: result: $ac_cv_func_connect" >&5
+ echo "${ECHO_T}$ac_cv_func_connect" >&6
+ 
+     if test $ac_cv_func_connect = no; then
+-      echo "$as_me:10048: checking for connect in -lsocket" >&5
++      echo "$as_me:10064: checking for connect in -lsocket" >&5
+ echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+ if test "${ac_cv_lib_socket_connect+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10053,7 +10069,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10056 "configure"
++#line 10072 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10072,16 +10088,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10091: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10078: \$? = $ac_status" >&5
++  echo "$as_me:10094: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10081: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10097: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10084: \$? = $ac_status" >&5
++  echo "$as_me:10100: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_socket_connect=yes
+ else
+@@ -10092,7 +10108,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10095: result: $ac_cv_lib_socket_connect" >&5
++echo "$as_me:10111: result: $ac_cv_lib_socket_connect" >&5
+ echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+ if test $ac_cv_lib_socket_connect = yes; then
+   X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+@@ -10101,13 +10117,13 @@
+     fi
+ 
+     # Guillermo Gomez says -lposix is necessary on A/UX.
+-    echo "$as_me:10104: checking for remove" >&5
++    echo "$as_me:10120: checking for remove" >&5
+ echo $ECHO_N "checking for remove... $ECHO_C" >&6
+ if test "${ac_cv_func_remove+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10110 "configure"
++#line 10126 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char remove (); below.  */
+@@ -10138,16 +10154,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10141: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10157: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10144: \$? = $ac_status" >&5
++  echo "$as_me:10160: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10147: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10163: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10150: \$? = $ac_status" >&5
++  echo "$as_me:10166: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_remove=yes
+ else
+@@ -10157,11 +10173,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10160: result: $ac_cv_func_remove" >&5
++echo "$as_me:10176: result: $ac_cv_func_remove" >&5
+ echo "${ECHO_T}$ac_cv_func_remove" >&6
+ 
+     if test $ac_cv_func_remove = no; then
+-      echo "$as_me:10164: checking for remove in -lposix" >&5
++      echo "$as_me:10180: checking for remove in -lposix" >&5
+ echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+ if test "${ac_cv_lib_posix_remove+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10169,7 +10185,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lposix  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10172 "configure"
++#line 10188 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10188,16 +10204,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10191: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10207: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10194: \$? = $ac_status" >&5
++  echo "$as_me:10210: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10197: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10213: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10200: \$? = $ac_status" >&5
++  echo "$as_me:10216: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_posix_remove=yes
+ else
+@@ -10208,7 +10224,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10211: result: $ac_cv_lib_posix_remove" >&5
++echo "$as_me:10227: result: $ac_cv_lib_posix_remove" >&5
+ echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+ if test $ac_cv_lib_posix_remove = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+@@ -10217,13 +10233,13 @@
+     fi
+ 
+     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+-    echo "$as_me:10220: checking for shmat" >&5
++    echo "$as_me:10236: checking for shmat" >&5
+ echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+ if test "${ac_cv_func_shmat+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 10226 "configure"
++#line 10242 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char shmat (); below.  */
+@@ -10254,16 +10270,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10257: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10273: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10260: \$? = $ac_status" >&5
++  echo "$as_me:10276: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10263: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10279: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10266: \$? = $ac_status" >&5
++  echo "$as_me:10282: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_shmat=yes
+ else
+@@ -10273,11 +10289,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10276: result: $ac_cv_func_shmat" >&5
++echo "$as_me:10292: result: $ac_cv_func_shmat" >&5
+ echo "${ECHO_T}$ac_cv_func_shmat" >&6
+ 
+     if test $ac_cv_func_shmat = no; then
+-      echo "$as_me:10280: checking for shmat in -lipc" >&5
++      echo "$as_me:10296: checking for shmat in -lipc" >&5
+ echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+ if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10285,7 +10301,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lipc  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10288 "configure"
++#line 10304 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10304,16 +10320,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10307: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10323: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10310: \$? = $ac_status" >&5
++  echo "$as_me:10326: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10313: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10329: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10316: \$? = $ac_status" >&5
++  echo "$as_me:10332: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_ipc_shmat=yes
+ else
+@@ -10324,7 +10340,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10327: result: $ac_cv_lib_ipc_shmat" >&5
++echo "$as_me:10343: result: $ac_cv_lib_ipc_shmat" >&5
+ echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+ if test $ac_cv_lib_ipc_shmat = yes; then
+   X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+@@ -10342,7 +10358,7 @@
+   # These have to be linked with before -lX11, unlike the other
+   # libraries we check for below, so use a different variable.
+   # John Interrante, Karl Berry
+-  echo "$as_me:10345: checking for IceConnectionNumber in -lICE" >&5
++  echo "$as_me:10361: checking for IceConnectionNumber in -lICE" >&5
+ echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+ if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10350,7 +10366,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10353 "configure"
++#line 10369 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10369,16 +10385,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10372: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10388: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10375: \$? = $ac_status" >&5
++  echo "$as_me:10391: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10378: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10394: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10381: \$? = $ac_status" >&5
++  echo "$as_me:10397: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_ICE_IceConnectionNumber=yes
+ else
+@@ -10389,7 +10405,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10392: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
++echo "$as_me:10408: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+ echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+ if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+   X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+@@ -10401,7 +10417,7 @@
+ 
+ cf_x_athena=${cf_x_athena:-Xaw}
+ 
+-echo "$as_me:10404: checking if you want to link with Xaw 3d library" >&5
++echo "$as_me:10420: checking if you want to link with Xaw 3d library" >&5
+ echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
+ withval=
+ 
+@@ -10412,14 +10428,14 @@
+ fi;
+ if test "$withval" = yes ; then
+ 	cf_x_athena=Xaw3d
+-	echo "$as_me:10415: result: yes" >&5
++	echo "$as_me:10431: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-	echo "$as_me:10418: result: no" >&5
++	echo "$as_me:10434: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:10422: checking if you want to link with neXT Athena library" >&5
++echo "$as_me:10438: checking if you want to link with neXT Athena library" >&5
+ echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
+ withval=
+ 
+@@ -10430,14 +10446,14 @@
+ fi;
+ if test "$withval" = yes ; then
+ 	cf_x_athena=neXtaw
+-	echo "$as_me:10433: result: yes" >&5
++	echo "$as_me:10449: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-	echo "$as_me:10436: result: no" >&5
++	echo "$as_me:10452: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+-echo "$as_me:10440: checking if you want to link with Athena-Plus library" >&5
++echo "$as_me:10456: checking if you want to link with Athena-Plus library" >&5
+ echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
+ withval=
+ 
+@@ -10448,10 +10464,10 @@
+ fi;
+ if test "$withval" = yes ; then
+ 	cf_x_athena=XawPlus
+-	echo "$as_me:10451: result: yes" >&5
++	echo "$as_me:10467: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+-	echo "$as_me:10454: result: no" >&5
++	echo "$as_me:10470: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -10471,17 +10487,17 @@
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
+ 	test -n "$verbose" && echo "	found package $cf_athena_pkg" 1>&6
+ 
+-echo "${as_me:-configure}:10474: testing found package $cf_athena_pkg ..." 1>&5
++echo "${as_me:-configure}:10490: testing found package $cf_athena_pkg ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   $cf_athena_pkg 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:10480: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:10496: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:10484: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:10500: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -10571,14 +10587,14 @@
+ #define $cf_x_athena_LIBS 1
+ EOF
+ 
+-echo "$as_me:10574: checking for usable $cf_x_athena/Xmu package" >&5
++echo "$as_me:10590: checking for usable $cf_x_athena/Xmu package" >&5
+ echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
+ if test "${cf_cv_xaw_compat+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10581 "configure"
++#line 10597 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Xmu/CharSet.h>
+@@ -10594,16 +10610,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10597: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10613: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10600: \$? = $ac_status" >&5
++  echo "$as_me:10616: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10603: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10619: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10606: \$? = $ac_status" >&5
++  echo "$as_me:10622: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xaw_compat=yes
+ else
+@@ -10613,7 +10629,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10616: result: $cf_cv_xaw_compat" >&5
++echo "$as_me:10632: result: $cf_cv_xaw_compat" >&5
+ echo "${ECHO_T}$cf_cv_xaw_compat" >&6
+ 
+ 			if test "$cf_cv_xaw_compat" = no
+@@ -10625,22 +10641,22 @@
+ 				*)
+ 					test -n "$verbose" && echo "	work around broken package" 1>&6
+ 
+-echo "${as_me:-configure}:10628: testing work around broken package ..." 1>&5
++echo "${as_me:-configure}:10644: testing work around broken package ..." 1>&5
+ 
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
+ 	test -n "$verbose" && echo "	found package xmu" 1>&6
+ 
+-echo "${as_me:-configure}:10633: testing found package xmu ..." 1>&5
++echo "${as_me:-configure}:10649: testing found package xmu ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xmu 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:10639: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:10655: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package xmu LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:10643: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:10659: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -10726,12 +10742,12 @@
+ 
+ test -n "$verbose" && echo "	...before $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:10729: testing ...before $LIBS ..." 1>&5
++echo "${as_me:-configure}:10745: testing ...before $LIBS ..." 1>&5
+ 
+ LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/  / /g'`
+ test -n "$verbose" && echo "	...after  $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:10734: testing ...after  $LIBS ..." 1>&5
++echo "${as_me:-configure}:10750: testing ...after  $LIBS ..." 1>&5
+ 
+ fi
+ 
+@@ -10752,17 +10768,17 @@
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
+ 	test -n "$verbose" && echo "	found package Xext" 1>&6
+ 
+-echo "${as_me:-configure}:10755: testing found package Xext ..." 1>&5
++echo "${as_me:-configure}:10771: testing found package Xext ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   Xext 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:10761: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:10777: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package Xext LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:10765: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:10781: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -10846,7 +10862,7 @@
+ 	:
+ else
+ 
+-	echo "$as_me:10849: checking for XextCreateExtension in -lXext" >&5
++	echo "$as_me:10865: checking for XextCreateExtension in -lXext" >&5
+ echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
+ if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10854,7 +10870,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lXext  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10857 "configure"
++#line 10873 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -10873,16 +10889,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10876: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10892: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:10879: \$? = $ac_status" >&5
++  echo "$as_me:10895: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:10882: \"$ac_try\"") >&5
++  { (eval echo "$as_me:10898: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:10885: \$? = $ac_status" >&5
++  echo "$as_me:10901: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_Xext_XextCreateExtension=yes
+ else
+@@ -10893,7 +10909,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10896: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
++echo "$as_me:10912: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
+ echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
+ if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
+   LIBS="-lXext $LIBS"
+@@ -10906,17 +10922,17 @@
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
+ 	test -n "$verbose" && echo "	found package xt" 1>&6
+ 
+-echo "${as_me:-configure}:10909: testing found package xt ..." 1>&5
++echo "${as_me:-configure}:10925: testing found package xt ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xt 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:10915: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:10931: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package xt LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:10919: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:10935: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -11003,14 +11019,14 @@
+ 		;;
+ 	*)
+ # we have an "xt" package, but it may omit Xt's dependency on X11
+-echo "$as_me:11006: checking for usable X dependency" >&5
++echo "$as_me:11022: checking for usable X dependency" >&5
+ echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
+ if test "${cf_cv_xt_x11_compat+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11013 "configure"
++#line 11029 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Xlib.h>
+@@ -11029,16 +11045,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11032: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11048: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11035: \$? = $ac_status" >&5
++  echo "$as_me:11051: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11038: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11054: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11041: \$? = $ac_status" >&5
++  echo "$as_me:11057: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xt_x11_compat=yes
+ else
+@@ -11048,30 +11064,30 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11051: result: $cf_cv_xt_x11_compat" >&5
++echo "$as_me:11067: result: $cf_cv_xt_x11_compat" >&5
+ echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
+ 		if test "$cf_cv_xt_x11_compat" = no
+ 		then
+ 			test -n "$verbose" && echo "	work around broken X11 dependency" 1>&6
+ 
+-echo "${as_me:-configure}:11057: testing work around broken X11 dependency ..." 1>&5
++echo "${as_me:-configure}:11073: testing work around broken X11 dependency ..." 1>&5
+ 
+ 			# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
+ 
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
+ 	test -n "$verbose" && echo "	found package x11" 1>&6
+ 
+-echo "${as_me:-configure}:11064: testing found package x11 ..." 1>&5
++echo "${as_me:-configure}:11080: testing found package x11 ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   x11 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:11070: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:11086: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package x11 LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:11074: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:11090: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -11157,12 +11173,12 @@
+ 
+ test -n "$verbose" && echo "	...before $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:11160: testing ...before $LIBS ..." 1>&5
++echo "${as_me:-configure}:11176: testing ...before $LIBS ..." 1>&5
+ 
+ LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/  / /g'`
+ test -n "$verbose" && echo "	...after  $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:11165: testing ...after  $LIBS ..." 1>&5
++echo "${as_me:-configure}:11181: testing ...after  $LIBS ..." 1>&5
+ 
+ fi
+ 
+@@ -11170,14 +11186,14 @@
+ 		;;
+ 	esac
+ 
+-echo "$as_me:11173: checking for usable X Toolkit package" >&5
++echo "$as_me:11189: checking for usable X Toolkit package" >&5
+ echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
+ if test "${cf_cv_xt_ice_compat+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11180 "configure"
++#line 11196 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Shell.h>
+@@ -11192,16 +11208,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11195: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11211: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11198: \$? = $ac_status" >&5
++  echo "$as_me:11214: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11201: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11217: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11204: \$? = $ac_status" >&5
++  echo "$as_me:11220: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_xt_ice_compat=yes
+ else
+@@ -11211,7 +11227,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11214: result: $cf_cv_xt_ice_compat" >&5
++echo "$as_me:11230: result: $cf_cv_xt_ice_compat" >&5
+ echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
+ 
+ 	if test "$cf_cv_xt_ice_compat" = no
+@@ -11225,22 +11241,22 @@
+ 			*)
+ 				test -n "$verbose" && echo "	work around broken ICE dependency" 1>&6
+ 
+-echo "${as_me:-configure}:11228: testing work around broken ICE dependency ..." 1>&5
++echo "${as_me:-configure}:11244: testing work around broken ICE dependency ..." 1>&5
+ 
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
+ 	test -n "$verbose" && echo "	found package ice" 1>&6
+ 
+-echo "${as_me:-configure}:11233: testing found package ice ..." 1>&5
++echo "${as_me:-configure}:11249: testing found package ice ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   ice 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:11239: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:11255: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package ice LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:11243: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:11259: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -11325,17 +11341,17 @@
+ if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
+ 	test -n "$verbose" && echo "	found package sm" 1>&6
+ 
+-echo "${as_me:-configure}:11328: testing found package sm ..." 1>&5
++echo "${as_me:-configure}:11344: testing found package sm ..." 1>&5
+ 
+ 	cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
+ 	cf_pkgconfig_libs="`$PKG_CONFIG --libs   sm 2>/dev/null`"
+ 	test -n "$verbose" && echo "	package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
+ 
+-echo "${as_me:-configure}:11334: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:11350: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+ 
+ 	test -n "$verbose" && echo "	package sm LIBS: $cf_pkgconfig_libs" 1>&6
+ 
+-echo "${as_me:-configure}:11338: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:11354: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
+ 
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -11425,12 +11441,12 @@
+ 
+ test -n "$verbose" && echo "	...before $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:11428: testing ...before $LIBS ..." 1>&5
++echo "${as_me:-configure}:11444: testing ...before $LIBS ..." 1>&5
+ 
+ LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/  / /g'`
+ test -n "$verbose" && echo "	...after  $LIBS" 1>&6
+ 
+-echo "${as_me:-configure}:11433: testing ...after  $LIBS ..." 1>&5
++echo "${as_me:-configure}:11449: testing ...after  $LIBS ..." 1>&5
+ 
+ fi
+ 
+@@ -11448,7 +11464,7 @@
+ 
+ test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:11451: testing checking additions to CFLAGS ..." 1>&5
++echo "${as_me:-configure}:11467: testing checking additions to CFLAGS ..." 1>&5
+ 
+ cf_check_cflags="$CFLAGS"
+ cf_check_cppflags="$CPPFLAGS"
+@@ -11519,7 +11535,7 @@
+ if test -n "$cf_new_cflags" ; then
+ 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
+ 
+-echo "${as_me:-configure}:11522: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
++echo "${as_me:-configure}:11538: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+ 
+ 	CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+@@ -11527,7 +11543,7 @@
+ if test -n "$cf_new_cppflags" ; then
+ 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
+ 
+-echo "${as_me:-configure}:11530: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
++echo "${as_me:-configure}:11546: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+ 
+ 	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+@@ -11535,14 +11551,14 @@
+ if test -n "$cf_new_extra_cppflags" ; then
+ 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
+ 
+-echo "${as_me:-configure}:11538: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
++echo "${as_me:-configure}:11554: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+ 
+ 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+ 
+ if test "$cf_check_cflags" != "$CFLAGS" ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11545 "configure"
++#line 11561 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -11554,16 +11570,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11557: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11573: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11560: \$? = $ac_status" >&5
++  echo "$as_me:11576: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11563: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11579: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11566: \$? = $ac_status" >&5
++  echo "$as_me:11582: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -11571,12 +11587,12 @@
+ cat conftest.$ac_ext >&5
+ test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:11574: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
++echo "${as_me:-configure}:11590: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+ 
+ 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
+ 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:11579: testing but keeping change to \$CPPFLAGS ..." 1>&5
++echo "${as_me:-configure}:11595: testing but keeping change to \$CPPFLAGS ..." 1>&5
+ 
+ 	 fi
+ 	 CFLAGS="$cf_check_flags"
+@@ -11584,13 +11600,13 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+ 
+-	echo "$as_me:11587: checking for XOpenDisplay" >&5
++	echo "$as_me:11603: checking for XOpenDisplay" >&5
+ echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
+ if test "${ac_cv_func_XOpenDisplay+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11593 "configure"
++#line 11609 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char XOpenDisplay (); below.  */
+@@ -11621,16 +11637,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11624: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11640: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11627: \$? = $ac_status" >&5
++  echo "$as_me:11643: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11630: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11646: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11633: \$? = $ac_status" >&5
++  echo "$as_me:11649: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_XOpenDisplay=yes
+ else
+@@ -11640,13 +11656,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11643: result: $ac_cv_func_XOpenDisplay" >&5
++echo "$as_me:11659: result: $ac_cv_func_XOpenDisplay" >&5
+ echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
+ if test $ac_cv_func_XOpenDisplay = yes; then
+   :
+ else
+ 
+-	echo "$as_me:11649: checking for XOpenDisplay in -lX11" >&5
++	echo "$as_me:11665: checking for XOpenDisplay in -lX11" >&5
+ echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
+ if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11654,7 +11670,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11657 "configure"
++#line 11673 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -11673,16 +11689,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11676: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11692: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11679: \$? = $ac_status" >&5
++  echo "$as_me:11695: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11682: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11698: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11685: \$? = $ac_status" >&5
++  echo "$as_me:11701: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_X11_XOpenDisplay=yes
+ else
+@@ -11693,7 +11709,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11696: result: $ac_cv_lib_X11_XOpenDisplay" >&5
++echo "$as_me:11712: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+ echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
+ if test $ac_cv_lib_X11_XOpenDisplay = yes; then
+   LIBS="-lX11 $LIBS"
+@@ -11701,13 +11717,13 @@
+ 
+ fi
+ 
+-	echo "$as_me:11704: checking for XtAppInitialize" >&5
++	echo "$as_me:11720: checking for XtAppInitialize" >&5
+ echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
+ if test "${ac_cv_func_XtAppInitialize+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 11710 "configure"
++#line 11726 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char XtAppInitialize (); below.  */
+@@ -11738,16 +11754,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11741: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11757: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11744: \$? = $ac_status" >&5
++  echo "$as_me:11760: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11747: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11763: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11750: \$? = $ac_status" >&5
++  echo "$as_me:11766: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_XtAppInitialize=yes
+ else
+@@ -11757,13 +11773,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11760: result: $ac_cv_func_XtAppInitialize" >&5
++echo "$as_me:11776: result: $ac_cv_func_XtAppInitialize" >&5
+ echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
+ if test $ac_cv_func_XtAppInitialize = yes; then
+   :
+ else
+ 
+-	echo "$as_me:11766: checking for XtAppInitialize in -lXt" >&5
++	echo "$as_me:11782: checking for XtAppInitialize in -lXt" >&5
+ echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
+ if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11771,7 +11787,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11774 "configure"
++#line 11790 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -11790,16 +11806,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11793: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11809: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11796: \$? = $ac_status" >&5
++  echo "$as_me:11812: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11799: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11815: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11802: \$? = $ac_status" >&5
++  echo "$as_me:11818: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_Xt_XtAppInitialize=yes
+ else
+@@ -11810,7 +11826,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11813: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
++echo "$as_me:11829: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
+ echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
+ if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -11826,7 +11842,7 @@
+ fi
+ 
+ if test $cf_have_X_LIBS = no ; then
+-	{ echo "$as_me:11829: WARNING: Unable to successfully link X Toolkit library (-lXt) with
++	{ echo "$as_me:11845: WARNING: Unable to successfully link X Toolkit library (-lXt) with
+ test program.  You will have to check and add the proper libraries by hand
+ to makefile." >&5
+ echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
+@@ -11848,14 +11864,14 @@
+ 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
+ 		if test $cf_path != default ; then
+ 			CPPFLAGS="$cf_save -I$cf_path/include"
+-			echo "$as_me:11851: checking for $cf_test in $cf_path" >&5
++			echo "$as_me:11867: checking for $cf_test in $cf_path" >&5
+ echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
+ 		else
+-			echo "$as_me:11854: checking for $cf_test" >&5
++			echo "$as_me:11870: checking for $cf_test" >&5
+ echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
+ 		fi
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 11858 "configure"
++#line 11874 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Intrinsic.h>
+@@ -11869,16 +11885,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11872: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11888: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:11875: \$? = $ac_status" >&5
++  echo "$as_me:11891: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:11878: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11894: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11881: \$? = $ac_status" >&5
++  echo "$as_me:11897: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -11887,7 +11903,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-		echo "$as_me:11890: result: $cf_result" >&5
++		echo "$as_me:11906: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 		if test "$cf_result" = yes ; then
+ 			cf_x_athena_inc=$cf_path
+@@ -11899,7 +11915,7 @@
+ done
+ 
+ if test -z "$cf_x_athena_inc" ; then
+-	{ echo "$as_me:11902: WARNING: Unable to successfully find Athena header files with test program" >&5
++	{ echo "$as_me:11918: WARNING: Unable to successfully find Athena header files with test program" >&5
+ echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
+ elif test "$cf_x_athena_inc" != default ; then
+ 	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
+@@ -11924,15 +11940,15 @@
+ 			cf_test=XawSimpleMenuAddGlobalActions
+ 			if test $cf_path != default ; then
+ 				LIBS="-L$cf_path/lib $cf_lib $LIBS"
+-				echo "$as_me:11927: checking for $cf_lib in $cf_path" >&5
++				echo "$as_me:11943: checking for $cf_lib in $cf_path" >&5
+ echo $ECHO_N "checking for $cf_lib in $cf_path... $ECHO_C" >&6
+ 			else
+ 				LIBS="$cf_lib $LIBS"
+-				echo "$as_me:11931: checking for $cf_test in $cf_lib" >&5
++				echo "$as_me:11947: checking for $cf_test in $cf_lib" >&5
+ echo $ECHO_N "checking for $cf_test in $cf_lib... $ECHO_C" >&6
+ 			fi
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 11935 "configure"
++#line 11951 "configure"
+ #include "confdefs.h"
+ 
+ #include <X11/Intrinsic.h>
+@@ -11948,16 +11964,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11951: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11967: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:11954: \$? = $ac_status" >&5
++  echo "$as_me:11970: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:11957: \"$ac_try\"") >&5
++  { (eval echo "$as_me:11973: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:11960: \$? = $ac_status" >&5
++  echo "$as_me:11976: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -11966,7 +11982,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-			echo "$as_me:11969: result: $cf_result" >&5
++			echo "$as_me:11985: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 			if test "$cf_result" = yes ; then
+ 				cf_x_athena_lib="$cf_lib"
+@@ -11978,7 +11994,7 @@
+ done
+ 
+ if test -z "$cf_x_athena_lib" ; then
+-	{ { echo "$as_me:11981: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
++	{ { echo "$as_me:11997: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
+ echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -11995,7 +12011,7 @@
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:11998: checking for $ac_word" >&5
++echo "$as_me:12014: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_XCURSES_CONFIG+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12012,7 +12028,7 @@
+   test -z "$ac_dir" && ac_dir=.
+   if $as_executable_p "$ac_dir/$ac_word"; then
+    ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
+-   echo "$as_me:12015: found $ac_dir/$ac_word" >&5
++   echo "$as_me:12031: found $ac_dir/$ac_word" >&5
+    break
+ fi
+ done
+@@ -12023,10 +12039,10 @@
+ XCURSES_CONFIG=$ac_cv_path_XCURSES_CONFIG
+ 
+ if test -n "$XCURSES_CONFIG"; then
+-  echo "$as_me:12026: result: $XCURSES_CONFIG" >&5
++  echo "$as_me:12042: result: $XCURSES_CONFIG" >&5
+ echo "${ECHO_T}$XCURSES_CONFIG" >&6
+ else
+-  echo "$as_me:12029: result: no" >&5
++  echo "$as_me:12045: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+ 
+@@ -12047,7 +12063,7 @@
+ 
+ test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:12050: testing checking additions to CFLAGS ..." 1>&5
++echo "${as_me:-configure}:12066: testing checking additions to CFLAGS ..." 1>&5
+ 
+ cf_check_cflags="$CFLAGS"
+ cf_check_cppflags="$CPPFLAGS"
+@@ -12118,7 +12134,7 @@
+ if test -n "$cf_new_cflags" ; then
+ 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
+ 
+-echo "${as_me:-configure}:12121: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
++echo "${as_me:-configure}:12137: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+ 
+ 	CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+@@ -12126,7 +12142,7 @@
+ if test -n "$cf_new_cppflags" ; then
+ 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
+ 
+-echo "${as_me:-configure}:12129: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
++echo "${as_me:-configure}:12145: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+ 
+ 	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+@@ -12134,14 +12150,14 @@
+ if test -n "$cf_new_extra_cppflags" ; then
+ 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
+ 
+-echo "${as_me:-configure}:12137: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
++echo "${as_me:-configure}:12153: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+ 
+ 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+ 
+ if test "$cf_check_cflags" != "$CFLAGS" ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12144 "configure"
++#line 12160 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -12153,16 +12169,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12156: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12172: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12159: \$? = $ac_status" >&5
++  echo "$as_me:12175: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12162: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12178: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12165: \$? = $ac_status" >&5
++  echo "$as_me:12181: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -12170,12 +12186,12 @@
+ cat conftest.$ac_ext >&5
+ test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:12173: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
++echo "${as_me:-configure}:12189: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+ 
+ 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
+ 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
+ 
+-echo "${as_me:-configure}:12178: testing but keeping change to \$CPPFLAGS ..." 1>&5
++echo "${as_me:-configure}:12194: testing but keeping change to \$CPPFLAGS ..." 1>&5
+ 
+ 	 fi
+ 	 CFLAGS="$cf_check_flags"
+@@ -12183,7 +12199,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+ 
+-echo "$as_me:12186: checking for XOpenDisplay in -lX11" >&5
++echo "$as_me:12202: checking for XOpenDisplay in -lX11" >&5
+ echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
+ if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12191,7 +12207,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12194 "configure"
++#line 12210 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12210,16 +12226,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12213: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12229: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12216: \$? = $ac_status" >&5
++  echo "$as_me:12232: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12219: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12235: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12222: \$? = $ac_status" >&5
++  echo "$as_me:12238: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_lib_X11_XOpenDisplay=yes
+ else
+@@ -12230,13 +12246,13 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12233: result: $ac_cv_lib_X11_XOpenDisplay" >&5
++echo "$as_me:12249: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+ echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
+ if test $ac_cv_lib_X11_XOpenDisplay = yes; then
+   LIBS="-lX11 $LIBS"
+ fi
+ 
+-echo "$as_me:12239: checking for XCurses library" >&5
++echo "$as_me:12255: checking for XCurses library" >&5
+ echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
+ if test "${cf_cv_lib_XCurses+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12244,7 +12260,7 @@
+ 
+ LIBS="-lXCurses $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12247 "configure"
++#line 12263 "configure"
+ #include "confdefs.h"
+ 
+ #include <xcurses.h>
+@@ -12259,16 +12275,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12262: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12278: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12265: \$? = $ac_status" >&5
++  echo "$as_me:12281: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12268: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12284: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12271: \$? = $ac_status" >&5
++  echo "$as_me:12287: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_lib_XCurses=yes
+ else
+@@ -12279,7 +12295,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+-echo "$as_me:12282: result: $cf_cv_lib_XCurses" >&5
++echo "$as_me:12298: result: $cf_cv_lib_XCurses" >&5
+ echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
+ 
+ fi
+@@ -12293,23 +12309,23 @@
+ #define XCURSES 1
+ EOF
+ 
+-	echo "$as_me:12296: checking for xcurses.h" >&5
++	echo "$as_me:12312: checking for xcurses.h" >&5
+ echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
+ if test "${ac_cv_header_xcurses_h+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12302 "configure"
++#line 12318 "configure"
+ #include "confdefs.h"
+ #include <xcurses.h>
+ _ACEOF
+-if { (eval echo "$as_me:12306: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12322: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12312: \$? = $ac_status" >&5
++  echo "$as_me:12328: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12328,7 +12344,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12331: result: $ac_cv_header_xcurses_h" >&5
++echo "$as_me:12347: result: $ac_cv_header_xcurses_h" >&5
+ echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
+ if test $ac_cv_header_xcurses_h = yes; then
+   cat >>confdefs.h <<\EOF
+@@ -12338,7 +12354,7 @@
+ fi
+ 
+ else
+-	{ { echo "$as_me:12341: error: Cannot link with XCurses" >&5
++	{ { echo "$as_me:12357: error: Cannot link with XCurses" >&5
+ echo "$as_me: error: Cannot link with XCurses" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+@@ -12353,7 +12369,7 @@
+ 	# look for curses-related libraries
+ 
+ as_ac_Lib=`echo "ac_cv_lib_panel$cf_cv_libtype''_new_panel" | $as_tr_sh`
+-echo "$as_me:12356: checking for new_panel in -lpanel$cf_cv_libtype" >&5
++echo "$as_me:12372: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+ echo $ECHO_N "checking for new_panel in -lpanel$cf_cv_libtype... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12361,7 +12377,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lpanel$cf_cv_libtype  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12364 "configure"
++#line 12380 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12380,16 +12396,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12383: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12399: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12386: \$? = $ac_status" >&5
++  echo "$as_me:12402: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12389: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12405: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12392: \$? = $ac_status" >&5
++  echo "$as_me:12408: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -12400,7 +12416,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12403: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:12419: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12412,7 +12428,7 @@
+ fi
+ 
+ as_ac_Lib=`echo "ac_cv_lib_menu$cf_cv_libtype''_menu_driver" | $as_tr_sh`
+-echo "$as_me:12415: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
++echo "$as_me:12431: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+ echo $ECHO_N "checking for menu_driver in -lmenu$cf_cv_libtype... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12420,7 +12436,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmenu$cf_cv_libtype  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12423 "configure"
++#line 12439 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12439,16 +12455,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12442: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12458: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12445: \$? = $ac_status" >&5
++  echo "$as_me:12461: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12448: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12464: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12451: \$? = $ac_status" >&5
++  echo "$as_me:12467: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -12459,7 +12475,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12462: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:12478: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12471,7 +12487,7 @@
+ fi
+ 
+ as_ac_Lib=`echo "ac_cv_lib_form$cf_cv_libtype''_form_driver" | $as_tr_sh`
+-echo "$as_me:12474: checking for form_driver in -lform$cf_cv_libtype" >&5
++echo "$as_me:12490: checking for form_driver in -lform$cf_cv_libtype" >&5
+ echo $ECHO_N "checking for form_driver in -lform$cf_cv_libtype... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12479,7 +12495,7 @@
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lform$cf_cv_libtype  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12482 "configure"
++#line 12498 "configure"
+ #include "confdefs.h"
+ 
+ /* Override any gcc2 internal prototype to avoid an error.  */
+@@ -12498,16 +12514,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12501: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12517: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12504: \$? = $ac_status" >&5
++  echo "$as_me:12520: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12507: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12523: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12510: \$? = $ac_status" >&5
++  echo "$as_me:12526: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_Lib=yes"
+ else
+@@ -12518,7 +12534,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12521: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:12537: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12541,23 +12557,23 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12544: checking for $ac_header" >&5
++echo "$as_me:12560: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12550 "configure"
++#line 12566 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:12554: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12570: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12560: \$? = $ac_status" >&5
++  echo "$as_me:12576: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12576,7 +12592,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12579: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:12595: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12589,13 +12605,13 @@
+ 	;;
+ esac
+ 
+-echo "$as_me:12592: checking return type of signal handlers" >&5
++echo "$as_me:12608: checking return type of signal handlers" >&5
+ echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+ if test "${ac_cv_type_signal+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12598 "configure"
++#line 12614 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -12617,16 +12633,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12620: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12636: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12623: \$? = $ac_status" >&5
++  echo "$as_me:12639: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12626: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12642: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12629: \$? = $ac_status" >&5
++  echo "$as_me:12645: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_signal=void
+ else
+@@ -12636,20 +12652,20 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12639: result: $ac_cv_type_signal" >&5
++echo "$as_me:12655: result: $ac_cv_type_signal" >&5
+ echo "${ECHO_T}$ac_cv_type_signal" >&6
+ 
+ cat >>confdefs.h <<EOF
+ #define RETSIGTYPE $ac_cv_type_signal
+ EOF
+ 
+-echo "$as_me:12646: checking for ANSI C header files" >&5
++echo "$as_me:12662: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12652 "configure"
++#line 12668 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -12657,13 +12673,13 @@
+ #include <float.h>
+ 
+ _ACEOF
+-if { (eval echo "$as_me:12660: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12676: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12666: \$? = $ac_status" >&5
++  echo "$as_me:12682: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12685,7 +12701,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12688 "configure"
++#line 12704 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ 
+@@ -12703,7 +12719,7 @@
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12706 "configure"
++#line 12722 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ 
+@@ -12724,7 +12740,7 @@
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12727 "configure"
++#line 12743 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -12750,15 +12766,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12753: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12769: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12756: \$? = $ac_status" >&5
++  echo "$as_me:12772: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:12758: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12774: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12761: \$? = $ac_status" >&5
++  echo "$as_me:12777: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+@@ -12771,7 +12787,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:12774: result: $ac_cv_header_stdc" >&5
++echo "$as_me:12790: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+ 
+@@ -12781,13 +12797,13 @@
+ 
+ fi
+ 
+-echo "$as_me:12784: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:12800: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12790 "configure"
++#line 12806 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -12803,16 +12819,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12806: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12822: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:12809: \$? = $ac_status" >&5
++  echo "$as_me:12825: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:12812: \"$ac_try\"") >&5
++  { (eval echo "$as_me:12828: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12815: \$? = $ac_status" >&5
++  echo "$as_me:12831: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_header_time=yes
+ else
+@@ -12822,7 +12838,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12825: result: $ac_cv_header_time" >&5
++echo "$as_me:12841: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+ 
+@@ -12845,23 +12861,71 @@
+ 
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12848: checking for $ac_header" >&5
++echo "$as_me:12864: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line 12870 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:12874: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  egrep -v '^ *\+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:12880: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  eval "$as_ac_Header=yes"
++else
++  echo "$as_me: failed program was:" >&5
++  cat conftest.$ac_ext >&5
++  eval "$as_ac_Header=no"
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:12899: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++  cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++for ac_header in unistd.h getopt.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:12912: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12854 "configure"
++#line 12918 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:12858: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12922: \"$ac_cpp conftest.$ac_ext\"") >&5
+   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+   ac_status=$?
+   egrep -v '^ *\+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+-  echo "$as_me:12864: \$? = $ac_status" >&5
++  echo "$as_me:12928: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null; then
+   if test -s conftest.err; then
+     ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12880,7 +12944,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12883: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:12947: result: `eval echo '${'$as_ac_Header'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12890,27 +12954,152 @@
+ fi
+ done
+ 
++echo "$as_me:12957: checking for header declaring getopt variables" >&5
++echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
++if test "${cf_cv_getopt_header+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++cat >conftest.$ac_ext <<_ACEOF
++#line 12967 "configure"
++#include "confdefs.h"
++
++#include <$cf_header>
++int
++main ()
++{
++int x = optind; char *y = optarg
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12980: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:12983: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:12986: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:12989: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  cf_cv_getopt_header=$cf_header
++ break
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
++fi
++echo "$as_me:13001: result: $cf_cv_getopt_header" >&5
++echo "${ECHO_T}$cf_cv_getopt_header" >&6
++if test $cf_cv_getopt_header != none ; then
++	cat >>confdefs.h <<\EOF
++#define HAVE_GETOPT_HEADER 1
++EOF
++
++fi
++
+ for ac_func in \
+ gettimeofday \
++strdup \
++
++do
++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
++echo "$as_me:13016: checking for $ac_func" >&5
++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
++if eval "test \"\${$as_ac_var+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line 13022 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++    which can conflict with char $ac_func (); below.  */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++   builtin and then its argument prototype would still apply.  */
++char $ac_func ();
++char (*f) ();
++
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++    to always fail with ENOSYS.  Some functions are actually named
++    something starting with __ and the normal name is an alias.  */
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
++choke me
++#else
++f = $ac_func;
++#endif
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:13053: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:13056: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:13059: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:13062: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  eval "$as_ac_var=yes"
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++eval "$as_ac_var=no"
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:13072: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
++if test `eval echo '${'$as_ac_var'}'` = yes; then
++  cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++if test "$cf_enable_widec" = yes; then
++
++for ac_func in \
+ mblen \
+ mbrlen \
+ mbrtowc \
+ mbsrtowcs \
+ mbstowcs \
+ mbtowc \
+-strdup \
+ wcsrtombs \
+ wcstombs \
+ 
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:12907: checking for $ac_func" >&5
++echo "$as_me:13096: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 12913 "configure"
++#line 13102 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.  */
+@@ -12941,16 +13130,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12944: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13133: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:12947: \$? = $ac_status" >&5
++  echo "$as_me:13136: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:12950: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13139: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:12953: \$? = $ac_status" >&5
++  echo "$as_me:13142: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   eval "$as_ac_var=yes"
+ else
+@@ -12960,7 +13149,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12963: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:13152: result: `eval echo '${'$as_ac_var'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ if test `eval echo '${'$as_ac_var'}'` = yes; then
+   cat >>confdefs.h <<EOF
+@@ -12970,14 +13159,16 @@
+ fi
+ done
+ 
+-echo "$as_me:12973: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
++fi
++
++echo "$as_me:13164: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+ echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
+ if test "${cf_cv_need_xopen_extension+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12980 "configure"
++#line 13171 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -12999,23 +13190,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13002: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13193: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13005: \$? = $ac_status" >&5
++  echo "$as_me:13196: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13008: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13199: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13011: \$? = $ac_status" >&5
++  echo "$as_me:13202: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_need_xopen_extension=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13018 "configure"
++#line 13209 "configure"
+ #include "confdefs.h"
+ 
+ #define _XOPEN_SOURCE_EXTENDED
+@@ -13037,16 +13228,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13040: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13231: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13043: \$? = $ac_status" >&5
++  echo "$as_me:13234: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13046: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13237: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13049: \$? = $ac_status" >&5
++  echo "$as_me:13240: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_need_xopen_extension=yes
+ else
+@@ -13058,11 +13249,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13061: result: $cf_cv_need_xopen_extension" >&5
++echo "$as_me:13252: result: $cf_cv_need_xopen_extension" >&5
+ echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
+ test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+ 
+-echo "$as_me:13065: checking for term.h" >&5
++echo "$as_me:13256: checking for term.h" >&5
+ echo $ECHO_N "checking for term.h... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13070,12 +13261,20 @@
+ 
+ # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+ # for <term.h> if we do not find the variant.
+-for cf_header in \
+-	`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
+-	term.h
++
++cf_header_list="term.h ncurses/term.h ncursesw/term.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
++	cf_header_list="$cf_header_item $cf_header_list"
++	;;
++esac
++
++for cf_header in $cf_header_list
+ do
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 13078 "configure"
++#line 13277 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -13089,16 +13288,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13092: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13291: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13095: \$? = $ac_status" >&5
++  echo "$as_me:13294: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13098: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13297: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13101: \$? = $ac_status" >&5
++  echo "$as_me:13300: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_term_header=$cf_header
+ 	 break
+@@ -13117,7 +13316,7 @@
+ 	for cf_header in ncurses/term.h ncursesw/term.h
+ 	do
+ 		cat >conftest.$ac_ext <<_ACEOF
+-#line 13120 "configure"
++#line 13319 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -13135,16 +13334,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13138: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13337: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13141: \$? = $ac_status" >&5
++  echo "$as_me:13340: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13144: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13343: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13147: \$? = $ac_status" >&5
++  echo "$as_me:13346: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_term_header=$cf_header
+ 			 break
+@@ -13159,7 +13358,7 @@
+ esac
+ 
+ fi
+-echo "$as_me:13162: result: $cf_cv_term_header" >&5
++echo "$as_me:13361: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+ 
+ case $cf_cv_term_header in #(vi
+@@ -13183,48 +13382,139 @@
+ 	;;
+ esac
+ 
+-for cf_func in \
+-chgat \
+-color_set \
+-filter \
+-getbegx \
+-getcurx \
+-getmaxx \
+-getnstr \
+-getparx \
+-getwin \
+-mvvline \
+-mvwvline \
+-napms \
+-putwin \
+-resize_term \
+-resizeterm \
+-ripoffline \
+-scr_dump \
+-setupterm \
+-slk_color \
+-slk_init \
+-termattrs \
+-tgetent \
+-tigetnum \
+-tigetstr \
+-typeahead \
+-use_default_colors \
+-vw_printw \
+-vsscanf \
+-wchgat \
+-winsstr \
+-wresize \
+-wsyncdown \
+-
+-do
++echo "$as_me:13385: checking for unctrl.h" >&5
++echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6
++if test "${cf_cv_unctrl_header+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+ 
+-cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
++# for <unctrl.h> if we do not find the variant.
+ 
+-	echo "$as_me:13224: checking for ${cf_func}" >&5
+-echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
+ 
+-echo "${as_me:-configure}:13227: testing ${cf_func} ..." 1>&5
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
++	cf_header_list="$cf_header_item $cf_header_list"
++	;;
++esac
++
++for cf_header in $cf_header_list
++do
++	cat >conftest.$ac_ext <<_ACEOF
++#line 13406 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <${cf_header}>
++int
++main ()
++{
++WINDOW *x
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13420: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:13423: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:13426: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:13429: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  cf_cv_unctrl_header=$cf_header
++	 break
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_unctrl_header=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
++case $cf_cv_unctrl_header in #(vi
++no)
++	{ echo "$as_me:13443: WARNING: unctrl.h header not found" >&5
++echo "$as_me: WARNING: unctrl.h header not found" >&2;}
++	;;
++esac
++
++fi
++echo "$as_me:13449: result: $cf_cv_unctrl_header" >&5
++echo "${ECHO_T}$cf_cv_unctrl_header" >&6
++
++case $cf_cv_unctrl_header in #(vi
++unctrl.h) #(vi
++	cat >>confdefs.h <<\EOF
++#define HAVE_UNCTRL_H 1
++EOF
++
++	;;
++ncurses/unctrl.h) #(vi
++	cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_UNCTRL_H 1
++EOF
++
++	;;
++ncursesw/unctrl.h)
++	cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_UNCTRL_H 1
++EOF
++
++	;;
++esac
++
++for cf_func in \
++assume_default_colors \
++chgat \
++color_set \
++filter \
++getbegx \
++getcurx \
++getmaxx \
++getnstr \
++getparx \
++getwin \
++mvvline \
++mvwvline \
++napms \
++putwin \
++resize_term \
++resizeterm \
++ripoffline \
++scr_dump \
++setupterm \
++slk_color \
++slk_init \
++termattrs \
++tgetent \
++tigetnum \
++tigetstr \
++typeahead \
++use_default_colors \
++use_screen \
++use_window \
++vsscanf \
++vw_printw \
++wchgat \
++winsstr \
++wresize \
++wsyncdown \
++
++do
++
++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++	echo "$as_me:13514: checking for ${cf_func}" >&5
++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
++
++echo "${as_me:-configure}:13517: testing ${cf_func} ..." 1>&5
+ 
+ 	if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13233,7 +13523,7 @@
+ 		eval cf_result='$ac_cv_func_'$cf_func
+ 		if test ".$cf_result" != ".no"; then
+ 			cat >conftest.$ac_ext <<_ACEOF
+-#line 13236 "configure"
++#line 13526 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -13256,7 +13546,8 @@
+ 
+ #ifndef ${cf_func}
+ long foo = (long)(&${cf_func});
+-${cf_cv_main_return:-return}(foo == 0);
++if (foo + 1234 > 5678)
++	${cf_cv_main_return:-return}(foo);
+ #endif
+ 
+   ;
+@@ -13264,16 +13555,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13267: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13558: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13270: \$? = $ac_status" >&5
++  echo "$as_me:13561: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13273: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13564: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13276: \$? = $ac_status" >&5
++  echo "$as_me:13567: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -13289,7 +13580,7 @@
+ 
+ 	# use the computed/retrieved cache-value:
+ 	eval 'cf_result=$cf_cv_func_'$cf_func
+-	echo "$as_me:13292: result: $cf_result" >&5
++	echo "$as_me:13583: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 	if test $cf_result != no; then
+ 		cat >>confdefs.h <<EOF
+@@ -13299,602 +13590,325 @@
+ 	fi
+ done
+ 
+-echo "$as_me:13302: checking for ncurses extended functions" >&5
+-echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++for cf_func in tputs
++do
+ 
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 13309 "configure"
+-#include "confdefs.h"
++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ 
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int
+-main ()
+-{
++	echo "$as_me:13598: checking for ${cf_func}" >&5
++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
+ 
+-int x = NCURSES_EXT_FUNCS
++echo "${as_me:-configure}:13601: testing ${cf_func} ..." 1>&5
+ 
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13324: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13327: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13330: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13333: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  cf_cv_ncurses_ext_funcs=defined
++	if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+ 
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 13341 "configure"
++		eval cf_result='$ac_cv_func_'$cf_func
++		if test ".$cf_result" != ".no"; then
++			cat >conftest.$ac_ext <<_ACEOF
++#line 13610 "configure"
+ #include "confdefs.h"
+ 
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
+ #include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
++#endif
++
+ int
+ main ()
+ {
+ 
+-	(void) assume_default_colors (0, 0);
+-	(void) curses_version ();
+-	(void) define_key (0, 0);
+-	(void) is_term_resized (0, 0);
+-	(void) key_defined (0);
+-	(void) keybound (0, 0);
+-	(void) keyok (0, 0);
+-	(void) resize_term (0, 0);
+-	(void) resizeterm (0, 0);
+-	(void) use_default_colors ();
+-	(void) use_extended_names (0);
+-	(void) wresize (0, 0, 0);
++#ifndef ${cf_func}
++long foo = (long)(&${cf_func});
++if (foo + 1234 > 5678)
++	${cf_cv_main_return:-return}(foo);
++#endif
++
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13366: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13642: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13369: \$? = $ac_status" >&5
++  echo "$as_me:13645: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13372: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13648: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13375: \$? = $ac_status" >&5
++  echo "$as_me:13651: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  cf_cv_ncurses_ext_funcs=yes
++  cf_result=yes
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_ext_funcs=no
++cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++		fi
++		eval 'cf_cv_func_'$cf_func'=$cf_result'
+ 
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+-fi
+-echo "$as_me:13389: result: $cf_cv_ncurses_ext_funcs" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
+-test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF
+-#define NCURSES_EXT_FUNCS 1
++	# use the computed/retrieved cache-value:
++	eval 'cf_result=$cf_cv_func_'$cf_func
++	echo "$as_me:13667: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++	if test $cf_result != no; then
++		cat >>confdefs.h <<EOF
++#define HAVE_${cf_tr_func} 1
+ EOF
+ 
+-echo "$as_me:13395: checking for wide-character functions" >&5
+-echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
+-if test "${cf_cv_widechar_funcs+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++	fi
++done
+ 
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 13402 "configure"
++if test x$cf_cv_func_tputs = xyes
++then
++	cf_done=no
++	for cf_arg in int char
++	do
++		for cf_ret in int void
++		do
++			if test $cf_ret = void
++			then
++				cf_return="/* nothing */"
++			else
++				cf_return="return value"
++			fi
++			cat >conftest.$ac_ext <<_ACEOF
++#line 13691 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_cv_term_header>
++
++static $cf_ret outc($cf_arg value) { $cf_return; }
++
+ int
+ main ()
+ {
+ 
+-	static wchar_t src_wchar[2];
+-	static cchar_t dst_cchar;
+-	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
++	tputs("hello", 0, outc);
++	${cf_cv_main_return:-return}(0);
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13419: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13711: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13422: \$? = $ac_status" >&5
++  echo "$as_me:13714: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-         { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13425: \"$ac_try\"") >&5
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:13717: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13428: \$? = $ac_status" >&5
++  echo "$as_me:13720: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  cf_cv_widechar_funcs=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_cv_widechar_funcs=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
+-fi
+-echo "$as_me:13439: result: $cf_cv_widechar_funcs" >&5
+-echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
+-if test "$cf_cv_widechar_funcs" != no ; then
+-	cat >>confdefs.h <<\EOF
+-#define USE_WIDEC_SUPPORT 1
+-EOF
+ 
+-else
+-	cat >>confdefs.h <<\EOF
+-#define USE_WIDEC_SUPPORT 0
+-EOF
++		test -n "$verbose" && echo "	prototype $cf_ret func($cf_arg value)" 1>&6
+ 
+-fi
++echo "${as_me:-configure}:13725: testing prototype $cf_ret func($cf_arg value) ..." 1>&5
+ 
+-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
++		cat >>confdefs.h <<EOF
++#define TPUTS_ARG               $cf_arg
++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
++#define TPUTS_RETURN(value)     $cf_return
++EOF
++		cf_done=yes
++		break
+ 
+-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+-                  inttypes.h stdint.h unistd.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13459: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 13465 "configure"
+-#include "confdefs.h"
+-$ac_includes_default
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13471: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13474: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-         { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13477: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13480: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  eval "$as_ac_Header=yes"
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Header=no"
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++		done
++		test $cf_done = yes && break
++	done
+ fi
+-echo "$as_me:13490: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
+-
+-fi
+-done
+ 
+-echo "$as_me:13500: checking for pid_t" >&5
+-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+-if test "${ac_cv_type_pid_t+set}" = set; then
++echo "$as_me:13745: checking for ncurses extended functions" >&5
++echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
++if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 13506 "configure"
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 13752 "configure"
+ #include "confdefs.h"
+-$ac_includes_default
++
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-if ((pid_t *) 0)
+-  return 0;
+-if (sizeof (pid_t))
+-  return 0;
++
++int x = NCURSES_EXT_FUNCS
++
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13521: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13767: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13524: \$? = $ac_status" >&5
++  echo "$as_me:13770: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13527: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13773: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13530: \$? = $ac_status" >&5
++  echo "$as_me:13776: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  ac_cv_type_pid_t=yes
++  cf_cv_ncurses_ext_funcs=defined
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_type_pid_t=no
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:13540: result: $ac_cv_type_pid_t" >&5
+-echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+-if test $ac_cv_type_pid_t = yes; then
+-  :
+-else
+ 
+-cat >>confdefs.h <<EOF
+-#define pid_t int
+-EOF
+-
+-fi
+-
+-for ac_header in unistd.h vfork.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13555: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 13561 "configure"
+-#include "confdefs.h"
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:13565: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  egrep -v '^ *\+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:13571: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  eval "$as_ac_Header=yes"
+-else
+-  echo "$as_me: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi
+-echo "$as_me:13590: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
+-
+-fi
+-done
+-
+-for ac_func in fork vfork
+-do
+-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:13603: checking for $ac_func" >&5
+-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_var+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 13609 "configure"
++cat >conftest.$ac_ext <<_ACEOF
++#line 13784 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char $ac_func (); below.  */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char $ac_func ();
+-char (*f) ();
+ 
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+-    to always fail with ENOSYS.  Some functions are actually named
+-    something starting with __ and the normal name is an alias.  */
+-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+-choke me
+-#else
+-f = $ac_func;
+-#endif
+ 
++	(void) assume_default_colors (0, 0);
++	(void) curses_version ();
++	(void) define_key (0, 0);
++	(void) is_term_resized (0, 0);
++	(void) key_defined (0);
++	(void) keybound (0, 0);
++	(void) keyok (0, 0);
++	(void) resize_term (0, 0);
++	(void) resizeterm (0, 0);
++	(void) use_default_colors ();
++	(void) use_extended_names (0);
++	(void) wresize (0, 0, 0);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13640: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13809: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13643: \$? = $ac_status" >&5
++  echo "$as_me:13812: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:13646: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13815: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13649: \$? = $ac_status" >&5
++  echo "$as_me:13818: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  eval "$as_ac_var=yes"
++  cf_cv_ncurses_ext_funcs=yes
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_var=no"
++cf_cv_ncurses_ext_funcs=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:13659: result: `eval echo '${'$as_ac_var'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+-if test `eval echo '${'$as_ac_var'}'` = yes; then
+-  cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-EOF
+ 
+ fi
+-done
++rm -f conftest.$ac_objext conftest.$ac_ext
+ 
+-ac_cv_func_fork_works=$ac_cv_func_fork
+-if test "x$ac_cv_func_fork" = xyes; then
+-  echo "$as_me:13671: checking for working fork" >&5
+-echo $ECHO_N "checking for working fork... $ECHO_C" >&6
+-if test "${ac_cv_func_fork_works+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test "$cross_compiling" = yes; then
+-  ac_cv_func_fork_works=cross
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* By RÃŒdiger Kuhlmann. */
+-      #include <sys/types.h>
+-      #if HAVE_UNISTD_H
+-      # include <unistd.h>
+-      #endif
+-      /* Some systems only have a dummy stub for fork() */
+-      int main ()
+-      {
+-        if (fork() < 0)
+-          $ac_main_return (1);
+-        $ac_main_return (0);
+-      }
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13694: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13697: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:13699: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:13702: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_func_fork_works=yes
+-else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_fork_works=no
+ fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+-echo "$as_me:13714: result: $ac_cv_func_fork_works" >&5
+-echo "${ECHO_T}$ac_cv_func_fork_works" >&6
++echo "$as_me:13832: result: $cf_cv_ncurses_ext_funcs" >&5
++echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
++test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF
++#define NCURSES_EXT_FUNCS 1
++EOF
+ 
+-fi
+-if test "x$ac_cv_func_fork_works" = xcross; then
+-  case $host in
+-    *-*-amigaos* | *-*-msdosdjgpp*)
+-      # Override, as these systems have only a dummy fork() stub
+-      ac_cv_func_fork_works=no
+-      ;;
+-    *)
+-      ac_cv_func_fork_works=yes
+-      ;;
+-  esac
+-  { echo "$as_me:13728: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
+-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
+-fi
+-ac_cv_func_vfork_works=$ac_cv_func_vfork
+-if test "x$ac_cv_func_vfork" = xyes; then
+-  echo "$as_me:13733: checking for working vfork" >&5
+-echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
+-if test "${ac_cv_func_vfork_works+set}" = set; then
++if test "$cf_enable_widec" = yes
++then
++	echo "$as_me:13840: checking for wide-character functions" >&5
++echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
++if test "${cf_cv_widechar_funcs+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  if test "$cross_compiling" = yes; then
+-  ac_cv_func_vfork_works=cross
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-#line 13742 "configure"
++
++	cat >conftest.$ac_ext <<_ACEOF
++#line 13847 "configure"
+ #include "confdefs.h"
+-/* Thanks to Paul Eggert for this test.  */
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif
+-#if HAVE_VFORK_H
+-# include <vfork.h>
+-#endif
+-/* On some sparc systems, changes by the child to local and incoming
+-   argument registers are propagated back to the parent.  The compiler
+-   is told about this with #include <vfork.h>, but some compilers
+-   (e.g. gcc -O) don't grok <vfork.h>.  Test for this by using a
+-   static variable whose address is put into a register that is
+-   clobbered by the vfork.  */
+-static
+-#ifdef __cplusplus
+-sparc_address_test (int arg)
+-# else
+-sparc_address_test (arg) int arg;
+-#endif
+-{
+-  static pid_t child;
+-  if (!child) {
+-    child = vfork ();
+-    if (child < 0) {
+-      perror ("vfork");
+-      _exit(2);
+-    }
+-    if (!child) {
+-      arg = getpid();
+-      write(-1, "", 0);
+-      _exit (arg);
+-    }
+-  }
+-}
+ 
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-  pid_t parent = getpid ();
+-  pid_t child;
+ 
+-  sparc_address_test ();
++		static wchar_t src_wchar[2];
++		static cchar_t dst_cchar;
++		setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+ 
+-  child = vfork ();
+-
+-  if (child == 0) {
+-    /* Here is another test for sparc vfork register problems.  This
+-       test uses lots of local variables, at least as many local
+-       variables as main has allocated so far including compiler
+-       temporaries.  4 locals are enough for gcc 1.40.3 on a Solaris
+-       4.1.3 sparc, but we use 8 to be safe.  A buggy compiler should
+-       reuse the register of parent for one of the local variables,
+-       since it will think that parent can't possibly be used any more
+-       in this routine.  Assigning to the local variable will thus
+-       munge parent in the parent process.  */
+-    pid_t
+-      p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
+-      p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
+-    /* Convince the compiler that p..p7 are live; otherwise, it might
+-       use the same hardware register for all 8 local variables.  */
+-    if (p != p1 || p != p2 || p != p3 || p != p4
+-	|| p != p5 || p != p6 || p != p7)
+-      _exit(1);
+-
+-    /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
+-       from child file descriptors.  If the child closes a descriptor
+-       before it execs or exits, this munges the parent's descriptor
+-       as well.  Test for this by closing stdout in the child.  */
+-    _exit(close(fileno(stdout)) != 0);
+-  } else {
+-    int status;
+-    struct stat st;
+-
+-    while (wait(&status) != child)
+-      ;
+-    $ac_main_return(
+-	 /* Was there some problem with vforking?  */
+-	 child < 0
+-
+-	 /* Did the child fail?  (This shouldn't happen.)  */
+-	 || status
+-
+-	 /* Did the vfork/compiler bug occur?  */
+-	 || parent != getpid()
+-
+-	 /* Did the file descriptor bug occur?  */
+-	 || fstat(fileno(stdout), &st) != 0
+-	 );
+-  }
++  ;
++  return 0;
+ }
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13839: \"$ac_link\"") >&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:13864: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13842: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:13844: \"$ac_try\"") >&5
++  echo "$as_me:13867: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:13870: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13847: \$? = $ac_status" >&5
++  echo "$as_me:13873: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+-  ac_cv_func_vfork_works=yes
++  cf_cv_widechar_funcs=yes
+ else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
++  echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_vfork_works=no
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
++cf_cv_widechar_funcs=no
+ fi
+-echo "$as_me:13859: result: $ac_cv_func_vfork_works" >&5
+-echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 
+-fi;
+-if test "x$ac_cv_func_fork_works" = xcross; then
+-  ac_cv_func_vfork_works=ac_cv_func_vfork
+-  { echo "$as_me:13865: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
+-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
+ fi
+-
+-if test "x$ac_cv_func_vfork_works" = xyes; then
+-
+-cat >>confdefs.h <<\EOF
+-#define HAVE_WORKING_VFORK 1
++echo "$as_me:13884: result: $cf_cv_widechar_funcs" >&5
++echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
++	if test "$cf_cv_widechar_funcs" != no ; then
++		cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 1
+ EOF
+ 
+-else
+-
+-cat >>confdefs.h <<\EOF
+-#define vfork fork
++	else
++		cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 0
+ EOF
+ 
+-fi
+-if test "x$ac_cv_func_fork_works" = xyes; then
+-
+-cat >>confdefs.h <<\EOF
+-#define HAVE_WORKING_FORK 1
++	fi
++else
++	cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 0
+ EOF
+ 
+ fi
+ 
+-echo "$as_me:13890: checking if sys/time.h works with sys/select.h" >&5
++echo "$as_me:13904: checking if sys/time.h works with sys/select.h" >&5
+ echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
+ if test "${cf_cv_sys_time_select+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13897 "configure"
++#line 13911 "configure"
+ #include "confdefs.h"
+ 
+ #include <sys/types.h>
+@@ -13914,16 +13928,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13917: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13931: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:13920: \$? = $ac_status" >&5
++  echo "$as_me:13934: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:13923: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13937: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13926: \$? = $ac_status" >&5
++  echo "$as_me:13940: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_sys_time_select=yes
+ else
+@@ -13935,13 +13949,13 @@
+ 
+ fi
+ 
+-echo "$as_me:13938: result: $cf_cv_sys_time_select" >&5
++echo "$as_me:13952: result: $cf_cv_sys_time_select" >&5
+ echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+ test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_SYS_TIME_SELECT 1
+ EOF
+ 
+-echo "$as_me:13944: checking for function curses_version" >&5
++echo "$as_me:13958: checking for function curses_version" >&5
+ echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
+ if test "${cf_cv_func_curses_version+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13951,7 +13965,7 @@
+   cf_cv_func_curses_version=unknown
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 13954 "configure"
++#line 13968 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -13964,15 +13978,15 @@
+ 
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13967: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13981: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:13970: \$? = $ac_status" >&5
++  echo "$as_me:13984: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:13972: \"$ac_try\"") >&5
++  { (eval echo "$as_me:13986: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:13975: \$? = $ac_status" >&5
++  echo "$as_me:13989: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_func_curses_version=yes
+ 
+@@ -13987,13 +14001,13 @@
+ fi
+ rm -f core
+ fi
+-echo "$as_me:13990: result: $cf_cv_func_curses_version" >&5
++echo "$as_me:14004: result: $cf_cv_func_curses_version" >&5
+ echo "${ECHO_T}$cf_cv_func_curses_version" >&6
+ test "$cf_cv_func_curses_version" = yes && cat >>confdefs.h <<\EOF
+ #define HAVE_CURSES_VERSION 1
+ EOF
+ 
+-echo "$as_me:13996: checking for ncurses wrap-prefix" >&5
++echo "$as_me:14010: checking for ncurses wrap-prefix" >&5
+ echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
+ 
+ # Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
+@@ -14003,10 +14017,10 @@
+ else
+   NCURSES_WRAP_PREFIX=_nc_
+ fi;
+-echo "$as_me:14006: result: $NCURSES_WRAP_PREFIX" >&5
++echo "$as_me:14020: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+ 
+-echo "$as_me:14009: checking for alternate character set array" >&5
++echo "$as_me:14023: checking for alternate character set array" >&5
+ echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
+ if test "${cf_cv_curses_acs_map+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14016,7 +14030,7 @@
+ for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14019 "configure"
++#line 14033 "configure"
+ #include "confdefs.h"
+ 
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -14032,16 +14046,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14035: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14049: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14038: \$? = $ac_status" >&5
++  echo "$as_me:14052: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14041: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14055: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14044: \$? = $ac_status" >&5
++  echo "$as_me:14058: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_curses_acs_map=$name; break
+ else
+@@ -14052,14 +14066,16 @@
+ done
+ 
+ fi
+-echo "$as_me:14055: result: $cf_cv_curses_acs_map" >&5
++echo "$as_me:14069: result: $cf_cv_curses_acs_map" >&5
+ echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
+ 
+ test "$cf_cv_curses_acs_map" != unknown && cat >>confdefs.h <<EOF
+ #define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
+ EOF
+ 
+-echo "$as_me:14062: checking for wide alternate character set array" >&5
++if test "$cf_enable_widec" = yes; then
++
++echo "$as_me:14078: checking for wide alternate character set array" >&5
+ echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
+ if test "${cf_cv_curses_wacs_map+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14069,7 +14085,7 @@
+ 	for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
+ 	do
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14072 "configure"
++#line 14088 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14085,16 +14101,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14088: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14104: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14091: \$? = $ac_status" >&5
++  echo "$as_me:14107: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14094: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14110: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14097: \$? = $ac_status" >&5
++  echo "$as_me:14113: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_curses_wacs_map=$name
+ 	 break
+@@ -14105,14 +14121,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ 	done
+ fi
+-echo "$as_me:14108: result: $cf_cv_curses_wacs_map" >&5
++echo "$as_me:14124: result: $cf_cv_curses_wacs_map" >&5
+ echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
+ 
+ test "$cf_cv_curses_wacs_map" != unknown && cat >>confdefs.h <<EOF
+ #define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
+ EOF
+ 
+-echo "$as_me:14115: checking for wide alternate character constants" >&5
++echo "$as_me:14131: checking for wide alternate character constants" >&5
+ echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
+ if test "${cf_cv_curses_wacs_symbols+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14122,7 +14138,7 @@
+ if test "$cf_cv_curses_wacs_map" != unknown
+ then
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14125 "configure"
++#line 14141 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14139,16 +14155,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14142: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14158: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14145: \$? = $ac_status" >&5
++  echo "$as_me:14161: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14148: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14164: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14151: \$? = $ac_status" >&5
++  echo "$as_me:14167: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_curses_wacs_symbols=yes
+ else
+@@ -14158,7 +14174,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ else
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14161 "configure"
++#line 14177 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14174,16 +14190,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14177: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14193: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14180: \$? = $ac_status" >&5
++  echo "$as_me:14196: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14183: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14199: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14186: \$? = $ac_status" >&5
++  echo "$as_me:14202: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_curses_wacs_symbols=yes
+ else
+@@ -14194,17 +14210,19 @@
+ fi
+ 
+ fi
+-echo "$as_me:14197: result: $cf_cv_curses_wacs_symbols" >&5
++echo "$as_me:14213: result: $cf_cv_curses_wacs_symbols" >&5
+ echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
+ 
+ test "$cf_cv_curses_wacs_symbols" != no && cat >>confdefs.h <<\EOF
+ #define CURSES_WACS_SYMBOLS 1
+ EOF
+ 
+-echo "$as_me:14204: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++fi
++
++echo "$as_me:14222: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14207 "configure"
++#line 14225 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14222,16 +14240,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14225: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14243: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14228: \$? = $ac_status" >&5
++  echo "$as_me:14246: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14231: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14249: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14234: \$? = $ac_status" >&5
++  echo "$as_me:14252: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14240,7 +14258,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14243: result: $cf_result" >&5
++echo "$as_me:14261: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ if test $cf_result = yes ; then
+ 
+@@ -14257,15 +14275,17 @@
+ 
+ fi
+ 
++if test "$cf_enable_widec" = yes; then
++
+ # This is needed on Tru64 5.0 to declare mbstate_t
+-echo "$as_me:14261: checking if we must include wchar.h to declare mbstate_t" >&5
++echo "$as_me:14281: checking if we must include wchar.h to declare mbstate_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+ if test "${cf_cv_mbstate_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14268 "configure"
++#line 14288 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14283,23 +14303,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14286: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14306: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14289: \$? = $ac_status" >&5
++  echo "$as_me:14309: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14292: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14312: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14295: \$? = $ac_status" >&5
++  echo "$as_me:14315: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_mbstate_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14302 "configure"
++#line 14322 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14318,16 +14338,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14321: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14341: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14324: \$? = $ac_status" >&5
++  echo "$as_me:14344: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14327: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14347: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14330: \$? = $ac_status" >&5
++  echo "$as_me:14350: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_mbstate_t=yes
+ else
+@@ -14339,7 +14359,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:14342: result: $cf_cv_mbstate_t" >&5
++echo "$as_me:14362: result: $cf_cv_mbstate_t" >&5
+ echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+ 
+ if test "$cf_cv_mbstate_t" = yes ; then
+@@ -14361,14 +14381,14 @@
+ fi
+ 
+ # This is needed on Tru64 5.0 to declare wchar_t
+-echo "$as_me:14364: checking if we must include wchar.h to declare wchar_t" >&5
++echo "$as_me:14384: checking if we must include wchar.h to declare wchar_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
+ if test "${cf_cv_wchar_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14371 "configure"
++#line 14391 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14386,23 +14406,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14389: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14409: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14392: \$? = $ac_status" >&5
++  echo "$as_me:14412: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14395: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14415: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14398: \$? = $ac_status" >&5
++  echo "$as_me:14418: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wchar_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14405 "configure"
++#line 14425 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14421,16 +14441,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14424: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14444: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14427: \$? = $ac_status" >&5
++  echo "$as_me:14447: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14430: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14450: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14433: \$? = $ac_status" >&5
++  echo "$as_me:14453: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wchar_t=yes
+ else
+@@ -14442,7 +14462,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:14445: result: $cf_cv_wchar_t" >&5
++echo "$as_me:14465: result: $cf_cv_wchar_t" >&5
+ echo "${ECHO_T}$cf_cv_wchar_t" >&6
+ 
+ if test "$cf_cv_wchar_t" = yes ; then
+@@ -14464,14 +14484,14 @@
+ fi
+ 
+ # This is needed on Tru64 5.0 to declare wint_t
+-echo "$as_me:14467: checking if we must include wchar.h to declare wint_t" >&5
++echo "$as_me:14487: checking if we must include wchar.h to declare wint_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
+ if test "${cf_cv_wint_t+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14474 "configure"
++#line 14494 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14489,23 +14509,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14492: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14512: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14495: \$? = $ac_status" >&5
++  echo "$as_me:14515: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14498: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14518: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14501: \$? = $ac_status" >&5
++  echo "$as_me:14521: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wint_t=no
+ else
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14508 "configure"
++#line 14528 "configure"
+ #include "confdefs.h"
+ 
+ #include <stdlib.h>
+@@ -14524,16 +14544,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14527: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14547: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14530: \$? = $ac_status" >&5
++  echo "$as_me:14550: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14533: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14553: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14536: \$? = $ac_status" >&5
++  echo "$as_me:14556: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_cv_wint_t=yes
+ else
+@@ -14545,7 +14565,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:14548: result: $cf_cv_wint_t" >&5
++echo "$as_me:14568: result: $cf_cv_wint_t" >&5
+ echo "${ECHO_T}$cf_cv_wint_t" >&6
+ 
+ if test "$cf_cv_wint_t" = yes ; then
+@@ -14566,12 +14586,12 @@
+ 	NCURSES_OK_WINT_T=1
+ fi
+ 
+-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
++	if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
+ 
+-echo "$as_me:14571: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo "$as_me:14591: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14574 "configure"
++#line 14594 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14589,16 +14609,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14592: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14612: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14595: \$? = $ac_status" >&5
++  echo "$as_me:14615: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14598: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14618: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14601: \$? = $ac_status" >&5
++  echo "$as_me:14621: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14607,7 +14627,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14610: result: $cf_result" >&5
++echo "$as_me:14630: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ if test $cf_result = yes ; then
+ 
+@@ -14624,14 +14644,14 @@
+ 
+ fi
+ 
+-fi
++	fi
+ 
+-if test "$NCURSES_OK_WCHAR_T" = 0 ; then
++	if test "$NCURSES_OK_WCHAR_T" = 0 ; then
+ 
+-echo "$as_me:14631: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo "$as_me:14651: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14634 "configure"
++#line 14654 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14649,16 +14669,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14652: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14672: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14655: \$? = $ac_status" >&5
++  echo "$as_me:14675: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14658: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14678: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14661: \$? = $ac_status" >&5
++  echo "$as_me:14681: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14667,7 +14687,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14670: result: $cf_result" >&5
++echo "$as_me:14690: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ if test $cf_result = yes ; then
+ 
+@@ -14684,14 +14704,14 @@
+ 
+ fi
+ 
+-fi
++	fi
+ 
+-if test "$NCURSES_OK_WINT_T" = 0 ; then
++	if test "$NCURSES_OK_WINT_T" = 0 ; then
+ 
+-echo "$as_me:14691: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo "$as_me:14711: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14694 "configure"
++#line 14714 "configure"
+ #include "confdefs.h"
+ 
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14709,16 +14729,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14712: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14732: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14715: \$? = $ac_status" >&5
++  echo "$as_me:14735: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14718: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14738: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14721: \$? = $ac_status" >&5
++  echo "$as_me:14741: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14727,7 +14747,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14730: result: $cf_result" >&5
++echo "$as_me:14750: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ if test $cf_result = yes ; then
+ 
+@@ -14744,13 +14764,14 @@
+ 
+ fi
+ 
++	fi
+ fi
+ 
+-echo "$as_me:14749: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo "$as_me:14770: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14753 "configure"
++#line 14774 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -14778,16 +14799,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14781: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14802: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14784: \$? = $ac_status" >&5
++  echo "$as_me:14805: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14787: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14808: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14790: \$? = $ac_status" >&5
++  echo "$as_me:14811: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14796,7 +14817,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14799: result: $cf_result" >&5
++echo "$as_me:14820: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 
+ if test $cf_result = yes ; then
+@@ -14808,14 +14829,14 @@
+ EOF
+ 
+ else
+-	echo "$as_me:14811: checking for data boolnames in library" >&5
++	echo "$as_me:14832: checking for data boolnames in library" >&5
+ echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
+ 	# BSD linkers insist on making weak linkage, but resolve at runtime.
+ 	if test "$cross_compiling" = yes; then
+ 
+ 	# cross-compiling
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14818 "configure"
++#line 14839 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -14847,16 +14868,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14850: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14871: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14853: \$? = $ac_status" >&5
++  echo "$as_me:14874: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:14856: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14877: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14859: \$? = $ac_status" >&5
++  echo "$as_me:14880: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14868,7 +14889,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 14871 "configure"
++#line 14892 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -14893,15 +14914,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14896: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14917: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:14899: \$? = $ac_status" >&5
++  echo "$as_me:14920: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:14901: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14922: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14904: \$? = $ac_status" >&5
++  echo "$as_me:14925: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14912,7 +14933,7 @@
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+-	echo "$as_me:14915: result: $cf_result" >&5
++	echo "$as_me:14936: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 	if test $cf_result = yes ; then
+ 
+@@ -14925,11 +14946,11 @@
+ 	fi
+ fi
+ 
+-echo "$as_me:14928: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo "$as_me:14949: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
+ echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14932 "configure"
++#line 14953 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -14957,16 +14978,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14960: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14981: \"$ac_compile\"") >&5
+   (eval $ac_compile) 2>&5
+   ac_status=$?
+-  echo "$as_me:14963: \$? = $ac_status" >&5
++  echo "$as_me:14984: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:14966: \"$ac_try\"") >&5
++  { (eval echo "$as_me:14987: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:14969: \$? = $ac_status" >&5
++  echo "$as_me:14990: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -14975,7 +14996,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14978: result: $cf_result" >&5
++echo "$as_me:14999: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 
+ if test $cf_result = yes ; then
+@@ -14987,14 +15008,14 @@
+ EOF
+ 
+ else
+-	echo "$as_me:14990: checking for data boolfnames in library" >&5
++	echo "$as_me:15011: checking for data boolfnames in library" >&5
+ echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
+ 	# BSD linkers insist on making weak linkage, but resolve at runtime.
+ 	if test "$cross_compiling" = yes; then
+ 
+ 	# cross-compiling
+ 	cat >conftest.$ac_ext <<_ACEOF
+-#line 14997 "configure"
++#line 15018 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -15026,16 +15047,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15029: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15050: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15032: \$? = $ac_status" >&5
++  echo "$as_me:15053: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+          { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:15035: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15056: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15038: \$? = $ac_status" >&5
++  echo "$as_me:15059: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -15047,7 +15068,7 @@
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+-#line 15050 "configure"
++#line 15071 "configure"
+ #include "confdefs.h"
+ 
+ #ifdef HAVE_XCURSES
+@@ -15072,15 +15093,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15075: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15096: \"$ac_link\"") >&5
+   (eval $ac_link) 2>&5
+   ac_status=$?
+-  echo "$as_me:15078: \$? = $ac_status" >&5
++  echo "$as_me:15099: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:15080: \"$ac_try\"") >&5
++  { (eval echo "$as_me:15101: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  echo "$as_me:15083: \$? = $ac_status" >&5
++  echo "$as_me:15104: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   cf_result=yes
+ else
+@@ -15091,7 +15112,7 @@
+ fi
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+-	echo "$as_me:15094: result: $cf_result" >&5
++	echo "$as_me:15115: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ 	if test $cf_result = yes ; then
+ 
+@@ -15188,7 +15209,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:15191: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:15212: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -15364,7 +15385,7 @@
+     echo "$ac_cs_version"; exit 0 ;;
+   --he | --h)
+     # Conflict between --help and --header
+-    { { echo "$as_me:15367: error: ambiguous option: $1
++    { { echo "$as_me:15388: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15383,7 +15404,7 @@
+     ac_need_defaults=false;;
+ 
+   # This is an error.
+-  -*) { { echo "$as_me:15386: error: unrecognized option: $1
++  -*) { { echo "$as_me:15407: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15431,7 +15452,7 @@
+   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+   "ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;;
+-  *) { { echo "$as_me:15434: error: invalid argument: $ac_config_target" >&5
++  *) { { echo "$as_me:15455: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+    { (exit 1); exit 1; }; };;
+   esac
+@@ -15694,7 +15715,7 @@
+   esac
+ 
+   if test x"$ac_file" != x-; then
+-    { echo "$as_me:15697: creating $ac_file" >&5
++    { echo "$as_me:15718: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+     rm -f "$ac_file"
+   fi
+@@ -15712,7 +15733,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:15715: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:15736: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -15725,7 +15746,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:15728: error: cannot find input file: $f" >&5
++           { { echo "$as_me:15749: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -15791,7 +15812,7 @@
+   * )   ac_file_in=$ac_file.in ;;
+   esac
+ 
+-  test x"$ac_file" != x- && { echo "$as_me:15794: creating $ac_file" >&5
++  test x"$ac_file" != x- && { echo "$as_me:15815: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ 
+   # First look for the input files in the build tree, otherwise in the
+@@ -15802,7 +15823,7 @@
+       -) echo $tmp/stdin ;;
+       [\\/$]*)
+          # Absolute (can't be DOS-style, as IFS=:)
+-         test -f "$f" || { { echo "$as_me:15805: error: cannot find input file: $f" >&5
++         test -f "$f" || { { echo "$as_me:15826: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          echo $f;;
+@@ -15815,7 +15836,7 @@
+            echo $srcdir/$f
+          else
+            # /dev/null tree
+-           { { echo "$as_me:15818: error: cannot find input file: $f" >&5
++           { { echo "$as_me:15839: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+    { (exit 1); exit 1; }; }
+          fi;;
+@@ -15873,7 +15894,7 @@
+   rm -f $tmp/in
+   if test x"$ac_file" != x-; then
+     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+-      { echo "$as_me:15876: $ac_file is unchanged" >&5
++      { echo "$as_me:15897: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+diff -Naur ncurses-5.9.orig/test/configure.in ncurses-5.9/test/configure.in
+--- ncurses-5.9.orig/test/configure.in	2011-03-22 09:15:08.000000000 +0000
++++ ncurses-5.9/test/configure.in	2011-05-17 16:13:14.838439950 +0000
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1996, etc.
+ dnl
+-dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $
++dnl $Id: configure.in,v 1.97 2011/04/23 22:10:32 tom Exp $
+ dnl This is a simple configuration-script for the ncurses test programs that
+ dnl allows the test-directory to be separately configured against a reference
+ dnl system (i.e., sysvr4 curses)
+@@ -101,16 +101,21 @@
+ CF_ENABLE_WARNINGS
+ 
+ CF_DISABLE_LEAKS
+-CF_WITH_CURSES_DIR
+ 
+-dnl SunOS 4.x
+-AC_ARG_WITH(5lib,
+-	[  --with-5lib             use SunOS sysv-libraries],
+-	[LIBS="-L/usr/5lib $LIBS"
+-	 CPPFLAGS="$CPPFLAGS -I/usr/5include"])
++dnl ---------------------------------------------------------------------------
++AC_MSG_CHECKING(if you want to check for wide-character functions)
++CF_ARG_DISABLE(widec,
++	[--disable-widec           disable checks for wide-character functions],
++	cf_enable_widec=no,
++	cf_enable_widec=yes,
++	yes)
++AC_MSG_RESULT($cf_enable_widec)
++
++CF_WITH_CURSES_DIR
+ 
+ dnl ---------------------------------------------------------------------------
+ dnl NcursesW, installed in conventional location
++AC_MSG_CHECKING(for specified curses library type)
+ AC_ARG_WITH(ncursesw,
+ 	[  --with-ncursesw         use wide ncurses-libraries (installed)],
+ 	[cf_cv_screen=ncursesw],[
+@@ -122,10 +127,20 @@
+ 
+ AC_ARG_WITH(pdcurses,
+ 	[  --with-pdcurses         compile/link with pdcurses X11 library],
+-	[cf_cv_screen=pdcurses])])])
++	[cf_cv_screen=pdcurses],[
++
++AC_ARG_WITH(curses-colr,
++	[  --with-curses-colr      compile/link with HPUX 10.x color-curses],
++	[cf_cv_screen=curses_colr],[
++
++AC_ARG_WITH(curses-5lib,
++	[  --with-curses-5lib      compile/link with SunOS 5lib curses],
++	[cf_cv_screen=curses_5lib])])])])])
++
++AC_MSG_RESULT($cf_cv_screen)
+ 
+ case $cf_cv_screen in
+-curses)
++curses|curses_*)
+ 	CF_CURSES_CONFIG
+ 	CF_NETBSD_FORM_H
+ 	CF_NETBSD_MENU_H
+@@ -185,20 +200,28 @@
+ unistd.h \
+ )
+ 
++CF_GETOPT_HEADER
++
+ AC_CHECK_FUNCS( \
+ gettimeofday \
++strdup \
++)
++
++if test "$cf_enable_widec" = yes; then
++AC_CHECK_FUNCS( \
+ mblen \
+ mbrlen \
+ mbrtowc \
+ mbsrtowcs \
+ mbstowcs \
+ mbtowc \
+-strdup \
+ wcsrtombs \
+ wcstombs \
+ )
++fi
+ 
+ CF_CURSES_FUNCS( \
++assume_default_colors \
+ chgat \
+ color_set \
+ filter \
+@@ -225,56 +248,68 @@
+ tigetstr \
+ typeahead \
+ use_default_colors \
+-vw_printw \
++use_screen \
++use_window \
+ vsscanf \
++vw_printw \
+ wchgat \
+ winsstr \
+ wresize \
+ wsyncdown \
+ )
+ 
++CF_TPUTS_PROTO
+ CF_NCURSES_EXT_FUNCS
+ 
+-AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
+-AC_TRY_LINK([
++if test "$cf_enable_widec" = yes
++then
++	AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
++	AC_TRY_LINK([
+ #include <${cf_cv_ncurses_header:-curses.h}>],
+-[
+-	static wchar_t src_wchar[2];
+-	static cchar_t dst_cchar;
+-	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+-	],
+-	[cf_cv_widechar_funcs=yes],
+-	[cf_cv_widechar_funcs=no])
+-])
+-if test "$cf_cv_widechar_funcs" != no ; then
+-	AC_DEFINE(USE_WIDEC_SUPPORT,1)
++	[
++		static wchar_t src_wchar[2];
++		static cchar_t dst_cchar;
++		setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
++		],
++		[cf_cv_widechar_funcs=yes],
++		[cf_cv_widechar_funcs=no])
++	])
++	if test "$cf_cv_widechar_funcs" != no ; then
++		AC_DEFINE(USE_WIDEC_SUPPORT,1)
++	else
++		AC_DEFINE(USE_WIDEC_SUPPORT,0)
++	fi
+ else
+ 	AC_DEFINE(USE_WIDEC_SUPPORT,0)
+ fi
+ 
+-AC_FUNC_VFORK
+ CF_SYS_TIME_SELECT
+ CF_FUNC_CURSES_VERSION
+ CF_CURSES_ACS_MAP
+-CF_CURSES_WACS_MAP
+-CF_CURSES_WACS_SYMBOLS
+ 
+-CF_CURSES_CHECK_TYPE(attr_t,long)
+-
+-CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
+-CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
+-CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
+-
+-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
+-	CF_CURSES_CHECK_TYPE(mbstate_t,long)
++if test "$cf_enable_widec" = yes; then
++	CF_CURSES_WACS_MAP
++	CF_CURSES_WACS_SYMBOLS
+ fi
+ 
+-if test "$NCURSES_OK_WCHAR_T" = 0 ; then
+-	CF_CURSES_CHECK_TYPE(wchar_t,long)
+-fi
++CF_CURSES_CHECK_TYPE(attr_t,long)
+ 
+-if test "$NCURSES_OK_WINT_T" = 0 ; then
+-	CF_CURSES_CHECK_TYPE(wint_t,long)
++if test "$cf_enable_widec" = yes; then
++	CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
++	CF_WCHAR_TYPE(wchar_t,   NCURSES_WCHAR_T,   NCURSES_OK_WCHAR_T)
++	CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
++
++	if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
++		CF_CURSES_CHECK_TYPE(mbstate_t,long)
++	fi
++
++	if test "$NCURSES_OK_WCHAR_T" = 0 ; then
++		CF_CURSES_CHECK_TYPE(wchar_t,long)
++	fi
++
++	if test "$NCURSES_OK_WINT_T" = 0 ; then
++		CF_CURSES_CHECK_TYPE(wint_t,long)
++	fi
+ fi
+ 
+ CF_CURSES_CHECK_DATA(boolnames)
+diff -Naur ncurses-5.9.orig/test/dots.c ncurses-5.9/test/dots.c
+--- ncurses-5.9.orig/test/dots.c	2010-11-14 01:00:02.000000000 +0000
++++ ncurses-5.9/test/dots.c	2011-05-17 16:13:14.838439950 +0000
+@@ -29,7 +29,7 @@
+ /*
+  * Author: Thomas E. Dickey <dickey@clark.net> 1999
+  *
+- * $Id: dots.c,v 1.22 2010/11/14 01:00:02 tom Exp $
++ * $Id: dots.c,v 1.23 2011/04/23 19:15:04 tom Exp $
+  *
+  * A simple demo of the terminfo interface.
+  */
+@@ -46,8 +46,8 @@
+ static long total_chars = 0;
+ static time_t started;
+ 
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+     int rc = c;
+ 
+@@ -58,7 +58,7 @@
+     } else {
+ 	rc = putc(c, stdout);
+     }
+-    return rc;
++    TPUTS_RETURN(rc);
+ }
+ 
+ static bool
+diff -Naur ncurses-5.9.orig/test/dots_mvcur.c ncurses-5.9/test/dots_mvcur.c
+--- ncurses-5.9.orig/test/dots_mvcur.c	2010-11-14 01:00:44.000000000 +0000
++++ ncurses-5.9/test/dots_mvcur.c	2011-05-17 16:13:14.838439950 +0000
+@@ -29,7 +29,7 @@
+ /*
+  * Author: Thomas E. Dickey - 2007
+  *
+- * $Id: dots_mvcur.c,v 1.6 2010/11/14 01:00:44 tom Exp $
++ * $Id: dots_mvcur.c,v 1.7 2011/04/23 19:17:20 tom Exp $
+  *
+  * A simple demo of the terminfo interface, and mvcur.
+  */
+@@ -46,8 +46,8 @@
+ static long total_chars = 0;
+ static time_t started;
+ 
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+     int rc = c;
+ 
+@@ -59,7 +59,7 @@
+ 	if (putc(c, stdout) == EOF)
+ 	    rc = EOF;
+     }
+-    return rc;
++    TPUTS_RETURN(rc);
+ }
+ 
+ static bool
+diff -Naur ncurses-5.9.orig/test/filter.c ncurses-5.9/test/filter.c
+--- ncurses-5.9.orig/test/filter.c	2010-11-13 20:55:54.000000000 +0000
++++ ncurses-5.9/test/filter.c	2011-05-17 16:13:14.838439950 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+ /*
+  * Author:  Thomas E. Dickey <dickey@clark.net> 1998
+  *
+- * $Id: filter.c,v 1.13 2010/11/13 20:55:54 tom Exp $
++ * $Id: filter.c,v 1.14 2011/04/23 20:13:32 tom Exp $
+  */
+ #include <test.priv.h>
+ 
+@@ -143,7 +143,7 @@
+ 	reset_shell_mode();
+ 	printf("\n");
+ 	fflush(stdout);
+-	system(buffer);
++	IGNORE_RC(system(buffer));
+ 	reset_prog_mode();
+ 	touchwin(stdscr);
+ 	erase();
+diff -Naur ncurses-5.9.orig/test/ncurses.c ncurses-5.9/test/ncurses.c
+--- ncurses-5.9.orig/test/ncurses.c	2011-01-22 19:48:33.000000000 +0000
++++ ncurses-5.9/test/ncurses.c	2011-05-17 16:13:14.838439950 +0000
+@@ -40,7 +40,7 @@
+    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
+            Thomas E. Dickey (beginning revision 1.27 in 1996).
+ 
+-$Id: ncurses.c,v 1.365 2011/01/22 19:48:33 tom Exp $
++$Id: ncurses.c,v 1.367 2011/04/23 21:16:43 tom Exp $
+ 
+ ***************************************************************************/
+ 
+@@ -490,7 +490,7 @@
+ #ifdef __MINGW32__
+     system("cmd.exe");
+ #else
+-    system("sh");
++    IGNORE_RC(system("sh"));
+ #endif
+     if (message)
+ 	addstr("returned from shellout.\n");
+@@ -777,7 +777,7 @@
+     }
+     doupdate();
+ }
+-#endif	/* resize_boxes */
++#endif /* resize_boxes */
+ #else
+ #define forget_boxes()		/* nothing */
+ #define remember_boxes(level,text,frame)	/* nothing */
+@@ -6772,7 +6772,7 @@
+ 	    use_default_colors();
+ 	    min_colors = -1;
+ 	}
+-#if NCURSES_VERSION_PATCH >= 20000708
++#if HAVE_ASSUME_DEFAULT_COLORS
+ 	if (assumed_colors)
+ 	    assume_default_colors(default_fg, default_bg);
+ #endif
+diff -Naur ncurses-5.9.orig/test/railroad.c ncurses-5.9/test/railroad.c
+--- ncurses-5.9.orig/test/railroad.c	2009-10-24 21:37:56.000000000 +0000
++++ ncurses-5.9/test/railroad.c	2011-05-17 16:13:14.838439950 +0000
+@@ -29,7 +29,7 @@
+ /*
+  * Author: Thomas E. Dickey - 2000
+  *
+- * $Id: railroad.c,v 1.19 2009/10/24 21:37:56 tom Exp $
++ * $Id: railroad.c,v 1.20 2011/04/23 19:15:04 tom Exp $
+  *
+  * A simple demo of the termcap interface.
+  */
+@@ -55,8 +55,8 @@
+ 
+ static bool interrupted = FALSE;
+ 
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+     int rc = OK;
+ 
+@@ -68,7 +68,7 @@
+ 	if (putc(c, stdout) == EOF)
+ 	    rc = ERR;
+     }
+-    return rc;
++    TPUTS_RETURN(rc);
+ }
+ 
+ static void
+diff -Naur ncurses-5.9.orig/test/redraw.c ncurses-5.9/test/redraw.c
+--- ncurses-5.9.orig/test/redraw.c	2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9/test/redraw.c	2011-05-17 16:13:14.838439950 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 2006-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -26,7 +26,7 @@
+  * authorization.                                                           *
+  ****************************************************************************/
+ /*
+- * $Id: redraw.c,v 1.5 2010/05/01 22:04:08 tom Exp $
++ * $Id: redraw.c,v 1.6 2011/04/23 20:13:21 tom Exp $
+  *
+  * Demonstrate the redrawwin() and wredrawln() functions.
+  * Thomas Dickey - 2006/11/4
+@@ -113,7 +113,7 @@
+ 	     * using mvcur().  It is ifdef'd for NCURSES, since X/Open does
+ 	     * not define the case where the old location is unknown. 
+ 	     */
+-	    system("date");
++	    IGNORE_RC(system("date"));
+ 	    mvcur(-1, -1, y, x);
+ 	    break;
+ #endif
+diff -Naur ncurses-5.9.orig/test/test.priv.h ncurses-5.9/test/test.priv.h
+--- ncurses-5.9.orig/test/test.priv.h	2011-03-22 09:15:45.000000000 +0000
++++ ncurses-5.9/test/test.priv.h	2011-05-17 16:13:14.838439950 +0000
+@@ -29,7 +29,7 @@
+ /****************************************************************************
+  *  Author: Thomas E. Dickey                    1996-on                     *
+  ****************************************************************************/
+-/* $Id: test.priv.h,v 1.103 2011/03/22 09:15:45 tom Exp $ */
++/* $Id: test.priv.h,v 1.112 2011/04/23 23:32:07 tom Exp $ */
+ 
+ #ifndef __TEST_PRIV_H
+ #define __TEST_PRIV_H 1
+@@ -58,6 +58,10 @@
+ /*
+  * Fallback definitions to accommodate broken compilers.
+  */
++#ifndef HAVE_ASSUME_DEFAULT_COLORS
++#define HAVE_ASSUME_DEFAULT_COLORS 0
++#endif
++
+ #ifndef HAVE_CURSES_VERSION
+ #define HAVE_CURSES_VERSION 0
+ #endif
+@@ -202,6 +206,14 @@
+ #define HAVE_USE_DEFAULT_COLORS 0
+ #endif
+ 
++#ifndef HAVE_USE_SCREEN
++#define HAVE_USE_SCREEN 0
++#endif
++
++#ifndef HAVE_USE_WINDOW
++#define HAVE_USE_WINDOW 0
++#endif
++
+ #ifndef HAVE_WRESIZE
+ #define HAVE_WRESIZE 0
+ #endif
+@@ -222,6 +234,13 @@
+ #define NO_LEAKS 0
+ #endif
+ 
++/*
++ * Workaround for HPUX
++ */
++#if defined(__hpux) && !defined(NCURSES_VERSION)
++#define _ACS_COMPAT_CODE	/* needed for acs_map vs __acs_map */
++#endif
++
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
+@@ -269,21 +288,18 @@
+ 
+ /*
+  * Not all curses.h implementations include unctrl.h,
+- * Solaris 10 xpg4 for example.
+  */
+-#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
+-#if defined(HAVE_NCURSESW_NCURSES_H)
++#if defined(HAVE_NCURSESW_UNCTRL_H)
+ #include <ncursesw/unctrl.h>
+-#elif defined(HAVE_NCURSES_NCURSES_H)
++#elif defined(HAVE_NCURSES_UNCTRL_H)
+ #include <ncurses/unctrl.h>
+-#else
++#elif defined(HAVE_UNCTRL_H)
+ #include <unctrl.h>
+ #endif
+-#endif
+ 
+ #if HAVE_GETOPT_H
+ #include <getopt.h>
+-#else
++#elif !defined(HAVE_GETOPT_HEADER)
+ /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
+  * doesn't hurt.
+  */
+@@ -323,13 +339,13 @@
+ #endif
+ 
+ #if !USE_SOFTKEYS
+-#define slk_init() /* nothing */
+-#define slk_restore() /* nothing */
+-#define slk_clear() /* nothing */
++#define slk_init()		/* nothing */
++#define slk_restore()		/* nothing */
++#define slk_clear()		/* nothing */
+ #endif
+ 
+ #ifndef HAVE_WSYNCDOWN
+-#define wsyncdown(win) /* nothing */
++#define wsyncdown(win)		/* nothing */
+ #endif
+ 
+ #ifndef USE_WIDEC_SUPPORT
+@@ -653,25 +669,32 @@
+  * The same would be needed for HPUX 10.20
+  */
+ #ifndef TPUTS_ARG
++#define TPUTS_ARG int
++#endif
++
+ #if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
++#undef TPUTS_ARG
+ #define TPUTS_ARG char
+ extern char *tgoto(char *, int, int);	/* available, but not prototyped */
+-#else
+-#define TPUTS_ARG int
+ #endif
++
++#ifndef TPUTS_PROTO
++#define TPUTS_PROTO(func,value) int func(TPUTS_ARG value)
++#endif
++
++#ifndef TPUTS_RETURN
++#define TPUTS_RETURN(value) return value
+ #endif
+ 
+ /*
+  * Workarounds for Solaris's X/Open curses
+  */
+-#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
+ #if !defined(KEY_MIN) && defined(__KEY_MIN)
+ #define KEY_MIN __KEY_MIN
+ #endif
+ #if !defined(KEY_MAX) && defined(__KEY_MIN)
+ #define KEY_MAX __KEY_MAX
+ #endif
+-#endif
+ 
+ /*
+  * Workaround to build with Sun's default SVr4 curses.
+@@ -702,23 +725,10 @@
+ #define CONST_MENUS		/* nothing */
+ #endif
+ 
+-#ifndef HAVE_USE_WINDOW
+-#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS
+-#define HAVE_USE_WINDOW 0
+-#else
+-#define HAVE_USE_WINDOW 1
+-#endif
+-#endif
+-
+ /*
+  * Simplify setting up demo of threading with these macros.
+  */
+ 
+-#if !HAVE_USE_WINDOW
+-typedef int (*NCURSES_WINDOW_CB) (WINDOW *, void *);
+-typedef int (*NCURSES_SCREEN_CB) (SCREEN *, void *);
+-#endif
+-
+ #if HAVE_USE_WINDOW
+ #define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w)
+ #define USING_WINDOW2(w,func,data) use_window(w, (NCURSES_WINDOW_CB) func, data)
+diff -Naur ncurses-5.9.orig/test/testaddch.c ncurses-5.9/test/testaddch.c
+--- ncurses-5.9.orig/test/testaddch.c	2009-08-29 19:02:25.000000000 +0000
++++ ncurses-5.9/test/testaddch.c	2011-05-17 16:13:14.842439506 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -29,7 +29,7 @@
+  * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
+  * to demonstrate an inconsistency between ncurses and SVr4 curses.
+  *
+- * $Id: testaddch.c,v 1.7 2009/08/29 19:02:25 tom Exp $
++ * $Id: testaddch.c,v 1.8 2011/04/23 20:13:12 tom Exp $
+  */
+ #include <test.priv.h>
+ 
+@@ -63,7 +63,7 @@
+     for (i = 0; i < 8; i++) {
+ 	back = (i & 1) ? A_BOLD | 'B' : ' ';
+ 	set = (i & 2) ? A_REVERSE : 0;
+-	attr = (i & 4) ? COLOR_PAIR(4) : 0;
++	attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0);
+ 
+ 	bkgdset(back);
+ 	(void) attrset(set);
+@@ -74,7 +74,7 @@
+     for (i = 0; i < 8; i++) {
+ 	back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' ';
+ 	set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0;
+-	attr = (i & 4) ? COLOR_PAIR(4) : 0;
++	attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0);
+ 
+ 	bkgdset(back);
+ 	(void) attrset(set);
+diff -Naur ncurses-5.9.orig/test/view.c ncurses-5.9/test/view.c
+--- ncurses-5.9.orig/test/view.c	2010-11-14 01:06:02.000000000 +0000
++++ ncurses-5.9/test/view.c	2011-05-17 16:13:21.545695732 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+  * copy of this software and associated documentation files (the            *
+@@ -50,7 +50,7 @@
+  * scroll operation worked, and the refresh() code only had to do a
+  * partial repaint.
+  *
+- * $Id: view.c,v 1.81 2010/11/14 01:06:02 tom Exp $
++ * $Id: view.c,v 1.82 2011/05/14 17:43:12 tom Exp $
+  */
+ 
+ #include <test.priv.h>
+@@ -180,7 +180,7 @@
+ {
+     unsigned len = (unsigned) strlen(src);
+     NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
+-    unsigned j, k;
++    size_t j, k;
+ #if USE_WIDEC_SUPPORT
+     wchar_t wstr[CCHARW_MAX + 1];
+     wchar_t wch;
Index: patches/tar-1.25-man-1.patch
===================================================================
--- patches/tar-1.25-man-1.patch	(revision 7d97f36d6c68f7a3e42aeabc0732ea935a9c68d5)
+++ 	(revision )
@@ -1,549 +1,0 @@
-Submitted By: Joe Ciccone <jciccone@gmail.com>
-Date: 2011-01-08
-Initial Package Version: 1.22
-Origin: Debian
-Upstream Status: Unknown
-Description: This patch adds a man page for tar generated by the perl script
-             from debian.
-
-diff -Naur tar-1.25.orig/doc/Makefile.am tar-1.25/doc/Makefile.am
---- tar-1.25.orig/doc/Makefile.am	2010-10-24 14:07:54.000000000 -0400
-+++ tar-1.25/doc/Makefile.am	2011-01-08 16:52:08.938781619 -0500
-@@ -17,6 +17,7 @@
- ## along with this program; if not, write to the Free Software Foundation,
- ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- 
-+man_MANS = tar.1
- info_TEXINFOS = tar.texi
- tar_TEXINFOS = \
-  dumpdir.texi\
-diff -Naur tar-1.25.orig/doc/Makefile.in tar-1.25/doc/Makefile.in
---- tar-1.25.orig/doc/Makefile.in	2010-11-07 08:53:45.000000000 -0500
-+++ tar-1.25/doc/Makefile.in	2011-01-08 16:52:08.938781619 -0500
-@@ -172,7 +172,7 @@
- MAKEINFOHTML = $(MAKEINFO) --html
- AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
- DVIPS = dvips
--am__installdirs = "$(DESTDIR)$(infodir)"
-+am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
- am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
- am__vpath_adj = case $$p in \
-     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-@@ -194,6 +194,9 @@
- am__base_list = \
-   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-+man1dir = $(mandir)/man1
-+NROFF = nroff
-+MANS = $(man_MANS)
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- ACLOCAL = @ACLOCAL@
- ALLOCA = @ALLOCA@
-@@ -875,6 +878,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
-+man_MANS = tar.1
- info_TEXINFOS = tar.texi
- tar_TEXINFOS = \
-  dumpdir.texi\
-@@ -1097,6 +1101,44 @@
- 	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
- 	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
- 	done
-+install-man1: $(man_MANS)
-+	@$(NORMAL_INSTALL)
-+	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-+	@list=''; test -n "$(man1dir)" || exit 0; \
-+	{ for i in $$list; do echo "$$i"; done; \
-+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-+	  sed -n '/\.1[a-z]*$$/p'; \
-+	} | while read p; do \
-+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-+	  echo "$$d$$p"; echo "$$p"; \
-+	done | \
-+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
-+	sed 'N;N;s,\n, ,g' | { \
-+	list=; while read file base inst; do \
-+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
-+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
-+	  fi; \
-+	done; \
-+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
-+	while read files; do \
-+	  test -z "$$files" || { \
-+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
-+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
-+	done; }
-+
-+uninstall-man1:
-+	@$(NORMAL_UNINSTALL)
-+	@list=''; test -n "$(man1dir)" || exit 0; \
-+	files=`{ for i in $$list; do echo "$$i"; done; \
-+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-+	  sed -n '/\.1[a-z]*$$/p'; \
-+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-+	test -z "$$files" || { \
-+	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-+	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
- tags: TAGS
- TAGS:
- 
-@@ -1105,6 +1147,19 @@
- 
- 
- distdir: $(DISTFILES)
-+	@list='$(MANS)'; if test -n "$$list"; then \
-+	  list=`for p in $$list; do \
-+	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-+	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-+	  if test -n "$$list" && \
-+	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-+	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-+	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-+	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-+	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
-+	    exit 1; \
-+	  else :; fi; \
-+	else :; fi
- 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- 	list='$(DISTFILES)'; \
-@@ -1139,9 +1194,9 @@
- 	  dist-info
- check-am: all-am
- check: check-am
--all-am: Makefile $(INFO_DEPS)
-+all-am: Makefile $(INFO_DEPS) $(MANS)
- installdirs:
--	for dir in "$(DESTDIR)$(infodir)"; do \
-+	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
- 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- 	done
- install: install-am
-@@ -1189,7 +1244,7 @@
- 
- info-am: $(INFO_DEPS)
- 
--install-data-am: install-info-am
-+install-data-am: install-info-am install-man
- 
- install-dvi: install-dvi-am
- 
-@@ -1263,7 +1318,7 @@
- 	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
- 	  done; \
- 	else : ; fi
--install-man:
-+install-man: install-man1
- 
- install-pdf: install-pdf-am
- 
-@@ -1311,7 +1366,9 @@
- ps-am: $(PSS)
- 
- uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
--	uninstall-pdf-am uninstall-ps-am
-+	uninstall-man uninstall-pdf-am uninstall-ps-am
-+
-+uninstall-man: uninstall-man1
- 
- .MAKE: install-am install-strip
- 
-@@ -1320,14 +1377,15 @@
- 	dvi-am html html-am info info-am install install-am \
- 	install-data install-data-am install-dvi install-dvi-am \
- 	install-exec install-exec-am install-html install-html-am \
--	install-info install-info-am install-man install-pdf \
--	install-pdf-am install-ps install-ps-am install-strip \
--	installcheck installcheck-am installdirs maintainer-clean \
--	maintainer-clean-aminfo maintainer-clean-generic \
--	maintainer-clean-vti mostlyclean mostlyclean-aminfo \
--	mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
--	uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
--	uninstall-info-am uninstall-pdf-am uninstall-ps-am
-+	install-info install-info-am install-man install-man1 \
-+	install-pdf install-pdf-am install-ps install-ps-am \
-+	install-strip installcheck installcheck-am installdirs \
-+	maintainer-clean maintainer-clean-aminfo \
-+	maintainer-clean-generic maintainer-clean-vti mostlyclean \
-+	mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
-+	pdf-am ps ps-am uninstall uninstall-am uninstall-dvi-am \
-+	uninstall-html-am uninstall-info-am uninstall-man \
-+	uninstall-man1 uninstall-pdf-am uninstall-ps-am
- 
- 
- header.texi: $(top_srcdir)/src/tar.h
-diff -Naur tar-1.25.orig/doc/tar.1 tar-1.25/doc/tar.1
---- tar-1.25.orig/doc/tar.1	1969-12-31 19:00:00.000000000 -0500
-+++ tar-1.25/doc/tar.1	2011-01-08 16:53:11.798664576 -0500
-@@ -0,0 +1,366 @@
-+.\" generated by script on Sat Jan  8 16:53:11 2011
-+.Dd Jan  8, 2011
-+.Dt TAR 1
-+.Sh NAME
-+.Nm tar
-+.Nd The GNU version of the tar archiving utility
-+.Sh SYNOPSIS
-+.Nm tar
-+.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
-+.Op Ar options
-+.Op Ar pathname ...
-+.Sh DESCRIPTION
-+.Nm Tar
-+stores and extracts files from a tape or disk archive.
-+.Pp
-+The first argument to
-+tar
-+should be a function; either one of the letters
-+.Cm Acdrtux ,
-+or one of the long function names.
-+A function letter need not be prefixed with ``\-'', and may be combined
-+with other single-letter options.
-+A long function name must be prefixed with
-+.Cm \\-\\- .
-+Some options take a parameter; with the single-letter form
-+these must be given as separate arguments.
-+With the long form, they may be given by appending
-+.Cm = Ns Ar value
-+to the option.
-+.Sh FUNCTION LETTERS
-+Main operation mode:
-+.Bl -tag -width flag
-+.It Fl A , Fl \-catenate , Fl \-concatenate
-+append tar files to an archive
-+.It Fl c , Fl \-create
-+create a new archive
-+.It Fl d , Fl \-diff , Fl \-compare
-+find differences between archive and file system
-+.It Fl \-delete
-+delete from the archive (not on mag tapes!)
-+.It Fl r , Fl \-append
-+append files to the end of an archive
-+.It Fl t , Fl \-list
-+list the contents of an archive
-+.It Fl \-test\-label
-+test the archive volume label and exit
-+.It Fl u , Fl \-update
-+only append files newer than copy in archive
-+.It Fl x , Fl \-extract , Fl \-get
-+extract files from an archive
-+.El
-+.Sh OTHER OPTIONS
-+Operation modifiers:
-+.Bl -tag -width flag
-+.It \-[0\-7][lmh]
-+specify drive and density
-+.It Fl a , Fl \-auto\-compress
-+use archive suffix to determine the compression program
-+.It Fl \-add\-file Ns \= Ns Ar FILE
-+add given FILE to the archive (useful if its name starts with a dash)
-+.It Fl \-anchored
-+patterns match file name start
-+.It Fl \-no\-anchored
-+patterns match after any `/' (default for exclusion)
-+.It Fl \-atime\-preserve
-+preserve access times on dumped files, either by restoring the times
-+.It Fl \-no\-auto\-compress
-+do not use archive suffix to determine the compression program
-+.It Fl b , Fl \-blocking\-factor Ar BLOCKS
-+BLOCKS x 512 bytes per record
-+.It Fl B , Fl \-read\-full\-records
-+reblock as we read (for 4.2BSD pipes)
-+.It Fl \-backup
-+backup before removal, choose version CONTROL
-+.It Fl C , Fl \-directory Ar DIR
-+change to directory DIR
-+.It Fl \-check\-device
-+check device numbers when creating incremental archives (default)
-+.It Fl \-no\-check\-device
-+do not check device numbers when creating incremental archives
-+.It Fl \-checkpoint
-+display progress messages every NUMBERth record (default 10)
-+.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
-+execute ACTION on each checkpoint
-+.It Fl \-delay\-directory\-restore
-+delay setting modification times and permissions of extracted
-+.It Fl \-no\-delay\-directory\-restore
-+cancel the effect of --delay-directory-restore option
-+.It Fl \-exclude Ns \= Ns Ar PATTERN
-+exclude files, given as a PATTERN
-+.It Fl \-exclude\-backups
-+exclude backup and lock files
-+.It Fl \-exclude\-caches
-+exclude contents of directories containing CACHEDIR.TAG, 
-+.It Fl \-exclude\-caches\-all
-+exclude directories containing CACHEDIR.TAG
-+.It Fl \-exclude\-caches\-under
-+exclude everything under directories containing CACHEDIR.TAG
-+.It Fl \-exclude\-tag Ns \= Ns Ar FILE
-+exclude contents of directories containing FILE, except
-+.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
-+exclude directories containing FILE
-+.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
-+exclude everything under directories containing FILE
-+.It Fl \-exclude\-vcs
-+exclude version control system directories
-+.It Fl f , Fl \-file Ar ARCHIVE
-+use archive file or device ARCHIVE
-+.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
-+run script at end of each tape (implies -M)
-+.It Fl \-force\-local
-+archive file is local even if it has a colon
-+.It Fl \-full\-time
-+print file time to its full resolution
-+.It Fl g , Fl \-listed\-incremental Ar FILE
-+handle new GNU-format incremental backup
-+.It Fl G , Fl \-incremental
-+handle old GNU-format incremental backup
-+.It Fl \-group Ns \= Ns Ar NAME
-+force NAME as group for added files
-+.It Fl h , Fl \-dereference
-+follow symlinks; archive and dump the files they point to
-+.It Fl H , Fl \-format Ar FORMAT
-+create archive of the given formatFORMAT is one of the following:
-+.Bl -tag -width flag
-+.It Fl \-format=gnu
-+GNU tar 1.13.x format
-+.It Fl \-format=oldgnu
-+GNU format as per tar <= 1.12
-+.It Fl \-format=pax
-+POSIX 1003.1-2001 (pax) format
-+.It Fl \-format=posix
-+same as pax
-+.It Fl \-format=ustar
-+POSIX 1003.1-1988 (ustar) format
-+.It Fl \-format=v7
-+old V7 tar format
-+.El
-+.It Fl \-hard\-dereference
-+follow hard links; archive and dump the files they refer to
-+.It Fl i , Fl \-ignore\-zeros
-+ignore zeroed blocks in archive (means EOF)
-+.It Fl I , Fl \-use\-compress\-program Ar PROG
-+filter through PROG (must accept -d)
-+.It Fl \-ignore\-case
-+ignore case
-+.It Fl \-no\-ignore\-case
-+case sensitive matching (default)
-+.It Fl \-ignore\-command\-error
-+ignore exit codes of children
-+.It Fl \-no\-ignore\-command\-error
-+treat non-zero exit codes of children as error
-+.It Fl \-ignore\-failed\-read
-+do not exit with nonzero on unreadable files
-+.It Fl \-index\-file Ns \= Ns Ar FILE
-+send verbose output to FILE
-+.It Fl j , Fl \-bzip2
-+
-+.It Fl J , Fl \-xz
-+
-+.It Fl k , Fl \-keep\-old\-files
-+don't replace existing files when extracting
-+.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
-+begin at member MEMBER-NAME in the archive
-+.It Fl \-keep\-newer\-files
-+don't replace existing files that are newer than their archive copies
-+.It Fl l , Fl \-check\-links
-+print a message if not all links are dumped
-+.It Fl L , Fl \-tape\-length Ar NUMBER
-+change tape after writing NUMBER x 1024 bytes
-+.It Fl \-level Ns \= Ns Ar NUMBER
-+dump level for created listed-incremental archive
-+.It Fl \-lzip
-+
-+.It Fl \-lzma
-+
-+.It Fl \-lzop
-+
-+.It Fl m , Fl \-touch
-+don't extract file modified time
-+.It Fl M , Fl \-multi\-volume
-+create/list/extract multi-volume archive
-+.It Fl \-mode Ns \= Ns Ar CHANGES
-+force (symbolic) mode CHANGES for added files
-+.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
-+set mtime for added files from DATE-OR-FILE
-+.It Fl n , Fl \-seek
-+archive is seekable
-+.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
-+only store files newer than DATE-OR-FILE
-+.It Fl \-newer\-mtime Ns \= Ns Ar DATE
-+compare date and time when data changed only
-+.It Fl \-null
-+-T reads null-terminated names, disable -C
-+.It Fl \-no\-null
-+disable the effect of the previous --null option
-+.It Fl \-numeric\-owner
-+always use numbers for user/group names
-+.It Fl O , Fl \-to\-stdout
-+extract files to standard output
-+.It Fl \-occurrence
-+process only the NUMBERth occurrence of each file in the archive;
-+.It Fl \-old\-archive , Fl \-portability
-+same as --format=v7
-+.It Fl \-one\-file\-system
-+stay in local file system when creating archive
-+.It Fl \-overwrite
-+overwrite existing files when extracting
-+.It Fl \-overwrite\-dir
-+overwrite metadata of existing directories when extracting (default)
-+.It Fl \-no\-overwrite\-dir
-+preserve metadata of existing directories
-+.It Fl \-owner Ns \= Ns Ar NAME
-+force NAME as owner for added files
-+.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
-+extract information about file permissions (default for superuser)
-+.It Fl P , Fl \-absolute\-names
-+don't strip leading `/'s from file names
-+.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
-+control pax keywords
-+.It Fl \-posix
-+same as --format=posix
-+.It Fl \-preserve
-+same as both -p and -s
-+.It Fl \-quote\-chars Ns \= Ns Ar STRING
-+additionally quote characters from STRING
-+.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
-+disable quoting for characters from STRING
-+.It Fl \-quoting\-style Ns \= Ns Ar STYLE
-+set name quoting style; see below for valid STYLE values
-+.It Fl R , Fl \-block\-number
-+show block number within archive with each message
-+.It Fl \-record\-size Ns \= Ns Ar NUMBER
-+NUMBER of bytes per record, multiple of 512
-+.It Fl \-recursion
-+recurse into directories (default)
-+.It Fl \-no\-recursion
-+avoid descending automatically in directories
-+.It Fl \-recursive\-unlink
-+empty hierarchies prior to extracting directory
-+.It Fl \-remove\-files
-+remove files after adding them to the archive
-+.It Fl \-restrict
-+disable use of some potentially harmful options
-+.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
-+use given rmt COMMAND instead of rmt
-+.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
-+use remote COMMAND instead of rsh
-+.It Fl s , Fl \-preserve\-order , Fl \-same\-order
-+sort names to extract to match archive
-+.It Fl S , Fl \-sparse
-+handle sparse files efficiently
-+.It Fl \-same\-owner
-+try extracting files with the same ownership as exists in the archive (default for superuser)
-+.It Fl \-no\-same\-owner
-+extract files as yourself (default for ordinary users)
-+.It Fl \-no\-same\-permissions
-+apply the user's umask when extracting permissions from the archive (default for ordinary users)
-+.It Fl \-no\-seek
-+archive is not seekable
-+.It Fl \-show\-defaults
-+show tar defaults
-+.It Fl \-show\-omitted\-dirs
-+when listing or extracting, list each directory that does not match search criteria
-+.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
-+show file or archive names after transformation
-+.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
-+set version of the sparse format to use (implies --sparse)
-+.It Fl \-strip\-components Ns \= Ns Ar NUMBER
-+strip NUMBER leading components from file names on extraction
-+.It Fl \-suffix Ns \= Ns Ar STRING
-+backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
-+.It Fl T , Fl \-files\-from Ar FILE
-+get names to extract or create from FILE
-+.It Fl \-to\-command Ns \= Ns Ar COMMAND
-+pipe extracted files to another program
-+.It Fl \-totals
-+print total bytes after processing the archive; 
-+.It Fl \-transform , Fl \-xform Ar EXPRESSION
-+use sed replace EXPRESSION to transform file names
-+.It Fl U , Fl \-unlink\-first
-+remove each file prior to extracting over it
-+.It Fl \-unquote
-+unquote filenames read with -T (default)
-+.It Fl \-no\-unquote
-+do not unquote filenames read with -T
-+.It Fl \-utc
-+print file modification times in UTC
-+.It Fl v , Fl \-verbose
-+verbosely list files processed
-+.It Fl V , Fl \-label Ar TEXT
-+create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
-+.It Fl \-volno\-file Ns \= Ns Ar FILE
-+use/update the volume number in FILE
-+.It Fl w , Fl \-interactive , Fl \-confirmation
-+ask for confirmation for every action
-+.It Fl W , Fl \-verify
-+attempt to verify the archive after writing it
-+.It Fl \-warning Ns \= Ns Ar KEYWORD
-+warning control
-+.It Fl \-wildcards
-+use wildcards (default for exclusion)
-+.It Fl \-wildcards\-match\-slash
-+wildcards match `/' (default for exclusion)
-+.It Fl \-no\-wildcards\-match\-slash
-+wildcards do not match `/'
-+.It Fl \-no\-wildcards
-+verbatim string matching
-+.It Fl X , Fl \-exclude\-from Ar FILE
-+exclude patterns listed in FILE
-+.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
-+
-+.It Fl Z , Fl \-compress , Fl \-uncompress
-+
-+.El
-+.Sh ENVIRONMENT
-+The behavior of tar is controlled by the following environment variables,
-+among others:
-+.Bl -tag -width Ds
-+.It Ev SIMPLE_BACKUP_SUFFIX
-+Backup prefix to use when extracting, if
-+.Fl \-suffix
-+is not specified.
-+The backup suffix defaults to `~' if neither is specified.
-+.It Ev TAR_OPTIONS
-+Options to prepend to those specified on the command line, separated by
-+whitespace.  Embedded backslashes may be used to escape whitespace or
-+backslashes within an option.
-+.It Ev TAPE
-+Device or file to use for the archive if 
-+.Fl \-file
-+is not specified.
-+If this environment variable is unset, use stdin or stdout instead.
-+.El
-+.Sh EXAMPLES
-+Create archive.tar from files foo and bar.
-+.Bd -literal -offset indent -compact
-+tar \-cf archive.tar foo bar
-+.Ed
-+List all files in archive.tar verbosely.
-+.Bd -literal -offset indent -compact
-+tar \-tvf archive.tar
-+.Ed
-+Extract all files from archive.tar.
-+.Bd -literal -offset indent -compact
-+tar \-xf archive.tar
-+.Ed
-+.Sh SEE ALSO
-+.\" libarchive
-+.Xr tar 5 ,
-+.\" man-pages
-+.Xr symlink 7 ,
-+.Xr rmt 8
-+.Sh HISTORY
-+The
-+.Nm tar
-+command appeared in
-+.At v7 .
-+.Sh BUGS
-+The GNU folks, in general, abhor man pages, and create info documents instead.
-+Unfortunately, the info document describing tar is licensed under the GFDL with
-+invariant cover texts, which makes it impossible to include any text
-+from that document in this man page.
-+Most of the text in this document was automatically extracted from the usage
-+text in the source.
-+It may not completely describe all features of the program.
Index: patches/tar-1.26-man-1.patch
===================================================================
--- patches/tar-1.26-man-1.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
+++ patches/tar-1.26-man-1.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
@@ -0,0 +1,2073 @@
+Submitted By: Jonathan Norman <jonathan at bluesquarelinux.co.uk >
+Date: 2011-05-18
+Initial Package Version: 1.22
+Origin: Debian
+Upstream Status: Unknown
+Description: This patch adds a man page for tar generated by the perl script
+             from debian.
+
+Rediffed: Against 1.26 by Jonathan Norman 2011-05-18
+
+diff -Naur tar-1.26.orig/doc/Makefile.am tar-1.26/doc/Makefile.am
+--- tar-1.26.orig/doc/Makefile.am	2011-05-18 17:55:21.025857021 +0000
++++ tar-1.26/doc/Makefile.am	2011-05-18 17:55:36.872098438 +0000
+@@ -17,6 +17,7 @@
+ ## along with this program; if not, write to the Free Software Foundation,
+ ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ 
++man_MANS = tar.1
+ info_TEXINFOS = tar.texi
+ tar_TEXINFOS = \
+  dumpdir.texi\
+diff -Naur tar-1.26.orig/doc/Makefile.in tar-1.26/doc/Makefile.in
+--- tar-1.26.orig/doc/Makefile.in	2011-05-18 17:55:21.029856577 +0000
++++ tar-1.26/doc/Makefile.in	2011-05-18 17:55:36.872098438 +0000
+@@ -172,7 +172,7 @@
+ MAKEINFOHTML = $(MAKEINFO) --html
+ AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+ DVIPS = dvips
+-am__installdirs = "$(DESTDIR)$(infodir)"
++am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+ am__vpath_adj = case $$p in \
+     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+@@ -194,6 +194,9 @@
+ am__base_list = \
+   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
++man1dir = $(mandir)/man1
++NROFF = nroff
++MANS = $(man_MANS)
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ pkglibexecdir = @pkglibexecdir@
+ ACLOCAL = @ACLOCAL@
+@@ -956,6 +959,7 @@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
++man_MANS = tar.1
+ info_TEXINFOS = tar.texi
+ tar_TEXINFOS = \
+  dumpdir.texi\
+@@ -1178,6 +1182,44 @@
+ 	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ 	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ 	done
++install-man1: $(man_MANS)
++	@$(NORMAL_INSTALL)
++	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
++	@list=''; test -n "$(man1dir)" || exit 0; \
++	{ for i in $$list; do echo "$$i"; done; \
++	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
++	  sed -n '/\.1[a-z]*$$/p'; \
++	} | while read p; do \
++	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
++	  echo "$$d$$p"; echo "$$p"; \
++	done | \
++	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
++	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
++	sed 'N;N;s,\n, ,g' | { \
++	list=; while read file base inst; do \
++	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
++	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
++	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
++	  fi; \
++	done; \
++	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
++	while read files; do \
++	  test -z "$$files" || { \
++	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
++	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
++	done; }
++
++uninstall-man1:
++	@$(NORMAL_UNINSTALL)
++	@list=''; test -n "$(man1dir)" || exit 0; \
++	files=`{ for i in $$list; do echo "$$i"; done; \
++	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
++	  sed -n '/\.1[a-z]*$$/p'; \
++	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
++	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
++	test -z "$$files" || { \
++	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
++	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+ tags: TAGS
+ TAGS:
+ 
+@@ -1186,6 +1228,19 @@
+ 
+ 
+ distdir: $(DISTFILES)
++	@list='$(MANS)'; if test -n "$$list"; then \
++	  list=`for p in $$list; do \
++	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
++	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
++	  if test -n "$$list" && \
++	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
++	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
++	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
++	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
++	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
++	    exit 1; \
++	  else :; fi; \
++	else :; fi
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+@@ -1220,9 +1275,9 @@
+ 	  dist-info
+ check-am: all-am
+ check: check-am
+-all-am: Makefile $(INFO_DEPS)
++all-am: Makefile $(INFO_DEPS) $(MANS)
+ installdirs:
+-	for dir in "$(DESTDIR)$(infodir)"; do \
++	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+@@ -1270,7 +1325,7 @@
+ 
+ info-am: $(INFO_DEPS)
+ 
+-install-data-am: install-info-am
++install-data-am: install-info-am install-man
+ 
+ install-dvi: install-dvi-am
+ 
+@@ -1344,7 +1399,7 @@
+ 	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+ 	  done; \
+ 	else : ; fi
+-install-man:
++install-man: install-man1
+ 
+ install-pdf: install-pdf-am
+ 
+@@ -1392,7 +1447,9 @@
+ ps-am: $(PSS)
+ 
+ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+-	uninstall-pdf-am uninstall-ps-am
++	uninstall-man uninstall-pdf-am uninstall-ps-am
++
++uninstall-man: uninstall-man1
+ 
+ .MAKE: install-am install-strip
+ 
+@@ -1401,14 +1458,15 @@
+ 	dvi-am html html-am info info-am install install-am \
+ 	install-data install-data-am install-dvi install-dvi-am \
+ 	install-exec install-exec-am install-html install-html-am \
+-	install-info install-info-am install-man install-pdf \
+-	install-pdf-am install-ps install-ps-am install-strip \
+-	installcheck installcheck-am installdirs maintainer-clean \
+-	maintainer-clean-aminfo maintainer-clean-generic \
+-	maintainer-clean-vti mostlyclean mostlyclean-aminfo \
+-	mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
+-	uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
+-	uninstall-info-am uninstall-pdf-am uninstall-ps-am
++	install-info install-info-am install-man install-man1 \
++	install-pdf install-pdf-am install-ps install-ps-am \
++	install-strip installcheck installcheck-am installdirs \
++	maintainer-clean maintainer-clean-aminfo \
++	maintainer-clean-generic maintainer-clean-vti mostlyclean \
++	mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
++	pdf-am ps ps-am uninstall uninstall-am uninstall-dvi-am \
++	uninstall-html-am uninstall-info-am uninstall-man \
++	uninstall-man1 uninstall-pdf-am uninstall-ps-am
+ 
+ 
+ header.texi: $(top_srcdir)/src/tar.h
+diff -Naur tar-1.26.orig/doc/Makefile.in.orig tar-1.26/doc/Makefile.in.orig
+--- tar-1.26.orig/doc/Makefile.in.orig	1970-01-01 00:00:00.000000000 +0000
++++ tar-1.26/doc/Makefile.in.orig	2011-03-12 09:50:09.000000000 +0000
+@@ -0,0 +1,1518 @@
++# Makefile.in generated by automake 1.11.1 from Makefile.am.
++# @configure_input@
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
++# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
++# Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++@SET_MAKE@
++
++# Makefile for GNU tar documentation.
++
++# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
++# 2007 Free Software Foundation, Inc.
++VPATH = @srcdir@
++pkgdatadir = $(datadir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
++install_sh_DATA = $(install_sh) -c -m 644
++install_sh_PROGRAM = $(install_sh) -c
++install_sh_SCRIPT = $(install_sh) -c
++INSTALL_HEADER = $(INSTALL_DATA)
++transform = $(program_transform_name)
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++build_triplet = @build@
++host_triplet = @host@
++subdir = doc
++DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
++	$(srcdir)/stamp-vti $(srcdir)/version.texi $(tar_TEXINFOS)
++ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
++am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
++	$(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argmatch.m4 \
++	$(top_srcdir)/m4/argp.m4 $(top_srcdir)/m4/backupfile.m4 \
++	$(top_srcdir)/m4/bison.m4 $(top_srcdir)/m4/btowc.m4 \
++	$(top_srcdir)/m4/canonicalize.m4 \
++	$(top_srcdir)/m4/chdir-long.m4 $(top_srcdir)/m4/chown.m4 \
++	$(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/cloexec.m4 \
++	$(top_srcdir)/m4/close-stream.m4 $(top_srcdir)/m4/close.m4 \
++	$(top_srcdir)/m4/closeout.m4 $(top_srcdir)/m4/codeset.m4 \
++	$(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/d-ino.m4 \
++	$(top_srcdir)/m4/dirent-safer.m4 $(top_srcdir)/m4/dirent_h.m4 \
++	$(top_srcdir)/m4/dirfd.m4 $(top_srcdir)/m4/dirname.m4 \
++	$(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \
++	$(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \
++	$(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
++	$(top_srcdir)/m4/exclude.m4 $(top_srcdir)/m4/extensions.m4 \
++	$(top_srcdir)/m4/fchdir.m4 $(top_srcdir)/m4/fclose.m4 \
++	$(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl.m4 \
++	$(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fdopendir.m4 \
++	$(top_srcdir)/m4/fileblocks.m4 $(top_srcdir)/m4/filenamecat.m4 \
++	$(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
++	$(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseeko.m4 \
++	$(top_srcdir)/m4/futimens.m4 \
++	$(top_srcdir)/m4/getcwd-abort-bug.m4 \
++	$(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.m4 \
++	$(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getdtablesize.m4 \
++	$(top_srcdir)/m4/getline.m4 $(top_srcdir)/m4/getopt.m4 \
++	$(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
++	$(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
++	$(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
++	$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/hash.m4 \
++	$(top_srcdir)/m4/human.m4 $(top_srcdir)/m4/iconv.m4 \
++	$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
++	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
++	$(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
++	$(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
++	$(top_srcdir)/m4/iswblank.m4 $(top_srcdir)/m4/langinfo_h.m4 \
++	$(top_srcdir)/m4/lchown.m4 $(top_srcdir)/m4/lib-ld.m4 \
++	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
++	$(top_srcdir)/m4/libunistring-base.m4 \
++	$(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
++	$(top_srcdir)/m4/linkat.m4 $(top_srcdir)/m4/localcharset.m4 \
++	$(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \
++	$(top_srcdir)/m4/locale-zh.m4 $(top_srcdir)/m4/longlong.m4 \
++	$(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \
++	$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
++	$(top_srcdir)/m4/mbchar.m4 $(top_srcdir)/m4/mbiter.m4 \
++	$(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
++	$(top_srcdir)/m4/mbsrtowcs.m4 $(top_srcdir)/m4/mbstate_t.m4 \
++	$(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
++	$(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
++	$(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkdtemp.m4 \
++	$(top_srcdir)/m4/mkfifo.m4 $(top_srcdir)/m4/mkfifoat.m4 \
++	$(top_srcdir)/m4/mknod.m4 $(top_srcdir)/m4/mktime.m4 \
++	$(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \
++	$(top_srcdir)/m4/modechange.m4 $(top_srcdir)/m4/multiarch.m4 \
++	$(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
++	$(top_srcdir)/m4/open.m4 $(top_srcdir)/m4/openat.m4 \
++	$(top_srcdir)/m4/parse-datetime.m4 $(top_srcdir)/m4/pathmax.m4 \
++	$(top_srcdir)/m4/paxutils.m4 $(top_srcdir)/m4/po.m4 \
++	$(top_srcdir)/m4/printf.m4 $(top_srcdir)/m4/priv-set.m4 \
++	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
++	$(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/rawmemchr.m4 \
++	$(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/readlinkat.m4 \
++	$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
++	$(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/renameat.m4 \
++	$(top_srcdir)/m4/rmdir.m4 $(top_srcdir)/m4/rmt.m4 \
++	$(top_srcdir)/m4/rpmatch.m4 $(top_srcdir)/m4/rtapelib.m4 \
++	$(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/safe-write.m4 \
++	$(top_srcdir)/m4/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
++	$(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/size_max.m4 \
++	$(top_srcdir)/m4/sleep.m4 $(top_srcdir)/m4/snprintf.m4 \
++	$(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \
++	$(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdarg.m4 \
++	$(top_srcdir)/m4/stdbool.m4 $(top_srcdir)/m4/stddef_h.m4 \
++	$(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdint_h.m4 \
++	$(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
++	$(top_srcdir)/m4/stpcpy.m4 $(top_srcdir)/m4/strcase.m4 \
++	$(top_srcdir)/m4/strchrnul.m4 $(top_srcdir)/m4/strdup.m4 \
++	$(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
++	$(top_srcdir)/m4/strings_h.m4 $(top_srcdir)/m4/strndup.m4 \
++	$(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strtoimax.m4 \
++	$(top_srcdir)/m4/strtol.m4 $(top_srcdir)/m4/strtoll.m4 \
++	$(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
++	$(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
++	$(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_stat_h.m4 \
++	$(top_srcdir)/m4/sys_time_h.m4 $(top_srcdir)/m4/sysexits.m4 \
++	$(top_srcdir)/m4/system.m4 $(top_srcdir)/m4/tempname.m4 \
++	$(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/time_r.m4 \
++	$(top_srcdir)/m4/timespec.m4 $(top_srcdir)/m4/tm_gmtoff.m4 \
++	$(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \
++	$(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \
++	$(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/utimbuf.m4 \
++	$(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
++	$(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
++	$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
++	$(top_srcdir)/m4/vsnprintf.m4 $(top_srcdir)/m4/warn-on-use.m4 \
++	$(top_srcdir)/m4/wchar_h.m4 $(top_srcdir)/m4/wchar_t.m4 \
++	$(top_srcdir)/m4/wcrtomb.m4 $(top_srcdir)/m4/wctype_h.m4 \
++	$(top_srcdir)/m4/wcwidth.m4 $(top_srcdir)/m4/wint_t.m4 \
++	$(top_srcdir)/m4/write.m4 $(top_srcdir)/m4/xalloc.m4 \
++	$(top_srcdir)/m4/xgetcwd.m4 $(top_srcdir)/m4/xsize.m4 \
++	$(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/m4/xstrtol.m4 \
++	$(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/acinclude.m4 \
++	$(top_srcdir)/configure.ac
++am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
++	$(ACLOCAL_M4)
++mkinstalldirs = $(install_sh) -d
++CONFIG_HEADER = $(top_builddir)/config.h
++CONFIG_CLEAN_FILES =
++CONFIG_CLEAN_VPATH_FILES =
++AM_V_GEN = $(am__v_GEN_$(V))
++am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
++am__v_GEN_0 = @echo "  GEN   " $@;
++AM_V_at = $(am__v_at_$(V))
++am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
++am__v_at_0 = @
++SOURCES =
++DIST_SOURCES =
++INFO_DEPS = $(srcdir)/tar.info
++TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
++am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
++DVIS = tar.dvi
++PDFS = tar.pdf
++PSS = tar.ps
++HTMLS = tar.html
++TEXINFOS = tar.texi
++TEXI2PDF = $(TEXI2DVI) --pdf --batch
++MAKEINFOHTML = $(MAKEINFO) --html
++AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
++DVIPS = dvips
++am__installdirs = "$(DESTDIR)$(infodir)"
++am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
++am__vpath_adj = case $$p in \
++    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
++    *) f=$$p;; \
++  esac;
++am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
++am__install_max = 40
++am__nobase_strip_setup = \
++  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
++am__nobase_strip = \
++  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
++am__nobase_list = $(am__nobase_strip_setup); \
++  for p in $$list; do echo "$$p $$p"; done | \
++  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
++  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
++    if (++n[$$2] == $(am__install_max)) \
++      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
++    END { for (dir in files) print dir, files[dir] }'
++am__base_list = \
++  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
++  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
++DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
++pkglibexecdir = @pkglibexecdir@
++ACLOCAL = @ACLOCAL@
++ALLOCA = @ALLOCA@
++ALLOCA_H = @ALLOCA_H@
++AMTAR = @AMTAR@
++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
++APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
++AUTOCONF = @AUTOCONF@
++AUTOHEADER = @AUTOHEADER@
++AUTOM4TE = @AUTOM4TE@
++AUTOMAKE = @AUTOMAKE@
++AWK = @AWK@
++BACKUP_LIBEXEC_SCRIPTS = @BACKUP_LIBEXEC_SCRIPTS@
++BACKUP_SBIN_SCRIPTS = @BACKUP_SBIN_SCRIPTS@
++BACKUP_SED_COND = @BACKUP_SED_COND@
++BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
++BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
++BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
++BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
++BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
++CC = @CC@
++CCDEPMODE = @CCDEPMODE@
++CFLAGS = @CFLAGS@
++CPP = @CPP@
++CPPFLAGS = @CPPFLAGS@
++CYGPATH_W = @CYGPATH_W@
++DEFAULT_ARCHIVE = @DEFAULT_ARCHIVE@
++DEFAULT_ARCHIVE_FORMAT = @DEFAULT_ARCHIVE_FORMAT@
++DEFAULT_BLOCKING = @DEFAULT_BLOCKING@
++DEFAULT_QUOTING_STYLE = @DEFAULT_QUOTING_STYLE@
++DEFAULT_RMT_COMMAND = @DEFAULT_RMT_COMMAND@
++DEFAULT_RMT_DIR = @DEFAULT_RMT_DIR@
++DEFS = @DEFS@
++DEPDIR = @DEPDIR@
++ECHO_C = @ECHO_C@
++ECHO_N = @ECHO_N@
++ECHO_T = @ECHO_T@
++EGREP = @EGREP@
++EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@
++EMULTIHOP_VALUE = @EMULTIHOP_VALUE@
++ENOLINK_HIDDEN = @ENOLINK_HIDDEN@
++ENOLINK_VALUE = @ENOLINK_VALUE@
++EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@
++EOVERFLOW_VALUE = @EOVERFLOW_VALUE@
++ERRNO_H = @ERRNO_H@
++EXEEXT = @EXEEXT@
++FLOAT_H = @FLOAT_H@
++FNMATCH_H = @FNMATCH_H@
++GETOPT_H = @GETOPT_H@
++GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
++GLIBC21 = @GLIBC21@
++GMSGFMT = @GMSGFMT@
++GMSGFMT_015 = @GMSGFMT_015@
++GNULIB_ALPHASORT = @GNULIB_ALPHASORT@
++GNULIB_ATOLL = @GNULIB_ATOLL@
++GNULIB_BTOWC = @GNULIB_BTOWC@
++GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
++GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
++GNULIB_CHOWN = @GNULIB_CHOWN@
++GNULIB_CLOSE = @GNULIB_CLOSE@
++GNULIB_DIRFD = @GNULIB_DIRFD@
++GNULIB_DPRINTF = @GNULIB_DPRINTF@
++GNULIB_DUP2 = @GNULIB_DUP2@
++GNULIB_DUP3 = @GNULIB_DUP3@
++GNULIB_ENVIRON = @GNULIB_ENVIRON@
++GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
++GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
++GNULIB_FCHDIR = @GNULIB_FCHDIR@
++GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
++GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
++GNULIB_FCLOSE = @GNULIB_FCLOSE@
++GNULIB_FCNTL = @GNULIB_FCNTL@
++GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
++GNULIB_FFLUSH = @GNULIB_FFLUSH@
++GNULIB_FOPEN = @GNULIB_FOPEN@
++GNULIB_FPRINTF = @GNULIB_FPRINTF@
++GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
++GNULIB_FPURGE = @GNULIB_FPURGE@
++GNULIB_FPUTC = @GNULIB_FPUTC@
++GNULIB_FPUTS = @GNULIB_FPUTS@
++GNULIB_FREOPEN = @GNULIB_FREOPEN@
++GNULIB_FSEEK = @GNULIB_FSEEK@
++GNULIB_FSEEKO = @GNULIB_FSEEKO@
++GNULIB_FSTATAT = @GNULIB_FSTATAT@
++GNULIB_FSYNC = @GNULIB_FSYNC@
++GNULIB_FTELL = @GNULIB_FTELL@
++GNULIB_FTELLO = @GNULIB_FTELLO@
++GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
++GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
++GNULIB_FWRITE = @GNULIB_FWRITE@
++GNULIB_GETCWD = @GNULIB_GETCWD@
++GNULIB_GETDELIM = @GNULIB_GETDELIM@
++GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
++GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
++GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
++GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
++GNULIB_GETLINE = @GNULIB_GETLINE@
++GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
++GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
++GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
++GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
++GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
++GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
++GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
++GNULIB_GRANTPT = @GNULIB_GRANTPT@
++GNULIB_IMAXABS = @GNULIB_IMAXABS@
++GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
++GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
++GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
++GNULIB_LCHMOD = @GNULIB_LCHMOD@
++GNULIB_LCHOWN = @GNULIB_LCHOWN@
++GNULIB_LINK = @GNULIB_LINK@
++GNULIB_LINKAT = @GNULIB_LINKAT@
++GNULIB_LSEEK = @GNULIB_LSEEK@
++GNULIB_LSTAT = @GNULIB_LSTAT@
++GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
++GNULIB_MBRLEN = @GNULIB_MBRLEN@
++GNULIB_MBRTOWC = @GNULIB_MBRTOWC@
++GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
++GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
++GNULIB_MBSCHR = @GNULIB_MBSCHR@
++GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
++GNULIB_MBSINIT = @GNULIB_MBSINIT@
++GNULIB_MBSLEN = @GNULIB_MBSLEN@
++GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
++GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
++GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@
++GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
++GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
++GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
++GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@
++GNULIB_MBSSEP = @GNULIB_MBSSEP@
++GNULIB_MBSSPN = @GNULIB_MBSSPN@
++GNULIB_MBSSTR = @GNULIB_MBSSTR@
++GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
++GNULIB_MBTOWC = @GNULIB_MBTOWC@
++GNULIB_MEMCHR = @GNULIB_MEMCHR@
++GNULIB_MEMMEM = @GNULIB_MEMMEM@
++GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
++GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
++GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
++GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
++GNULIB_MKFIFO = @GNULIB_MKFIFO@
++GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
++GNULIB_MKNOD = @GNULIB_MKNOD@
++GNULIB_MKNODAT = @GNULIB_MKNODAT@
++GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
++GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
++GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
++GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
++GNULIB_MKTIME = @GNULIB_MKTIME@
++GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
++GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
++GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
++GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
++GNULIB_OPEN = @GNULIB_OPEN@
++GNULIB_OPENAT = @GNULIB_OPENAT@
++GNULIB_PERROR = @GNULIB_PERROR@
++GNULIB_PIPE = @GNULIB_PIPE@
++GNULIB_PIPE2 = @GNULIB_PIPE2@
++GNULIB_POPEN = @GNULIB_POPEN@
++GNULIB_PREAD = @GNULIB_PREAD@
++GNULIB_PRINTF = @GNULIB_PRINTF@
++GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
++GNULIB_PTSNAME = @GNULIB_PTSNAME@
++GNULIB_PUTC = @GNULIB_PUTC@
++GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
++GNULIB_PUTENV = @GNULIB_PUTENV@
++GNULIB_PUTS = @GNULIB_PUTS@
++GNULIB_PWRITE = @GNULIB_PWRITE@
++GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
++GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
++GNULIB_READLINK = @GNULIB_READLINK@
++GNULIB_READLINKAT = @GNULIB_READLINKAT@
++GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
++GNULIB_REALPATH = @GNULIB_REALPATH@
++GNULIB_REMOVE = @GNULIB_REMOVE@
++GNULIB_RENAME = @GNULIB_RENAME@
++GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
++GNULIB_RMDIR = @GNULIB_RMDIR@
++GNULIB_RPMATCH = @GNULIB_RPMATCH@
++GNULIB_SCANDIR = @GNULIB_SCANDIR@
++GNULIB_SETENV = @GNULIB_SETENV@
++GNULIB_SLEEP = @GNULIB_SLEEP@
++GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
++GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
++GNULIB_STAT = @GNULIB_STAT@
++GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
++GNULIB_STPCPY = @GNULIB_STPCPY@
++GNULIB_STPNCPY = @GNULIB_STPNCPY@
++GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
++GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
++GNULIB_STRDUP = @GNULIB_STRDUP@
++GNULIB_STRERROR = @GNULIB_STRERROR@
++GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
++GNULIB_STRNCAT = @GNULIB_STRNCAT@
++GNULIB_STRNDUP = @GNULIB_STRNDUP@
++GNULIB_STRNLEN = @GNULIB_STRNLEN@
++GNULIB_STRPBRK = @GNULIB_STRPBRK@
++GNULIB_STRPTIME = @GNULIB_STRPTIME@
++GNULIB_STRSEP = @GNULIB_STRSEP@
++GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
++GNULIB_STRSTR = @GNULIB_STRSTR@
++GNULIB_STRTOD = @GNULIB_STRTOD@
++GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@
++GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
++GNULIB_STRTOLL = @GNULIB_STRTOLL@
++GNULIB_STRTOULL = @GNULIB_STRTOULL@
++GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@
++GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
++GNULIB_SYMLINK = @GNULIB_SYMLINK@
++GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
++GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
++GNULIB_TIMEGM = @GNULIB_TIMEGM@
++GNULIB_TIME_R = @GNULIB_TIME_R@
++GNULIB_TMPFILE = @GNULIB_TMPFILE@
++GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
++GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
++GNULIB_UNISTD_H_GETOPT = @GNULIB_UNISTD_H_GETOPT@
++GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
++GNULIB_UNLINK = @GNULIB_UNLINK@
++GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
++GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
++GNULIB_UNSETENV = @GNULIB_UNSETENV@
++GNULIB_USLEEP = @GNULIB_USLEEP@
++GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
++GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
++GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
++GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
++GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
++GNULIB_VPRINTF = @GNULIB_VPRINTF@
++GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
++GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
++GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
++GNULIB_WCPCPY = @GNULIB_WCPCPY@
++GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
++GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
++GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
++GNULIB_WCSCAT = @GNULIB_WCSCAT@
++GNULIB_WCSCHR = @GNULIB_WCSCHR@
++GNULIB_WCSCMP = @GNULIB_WCSCMP@
++GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
++GNULIB_WCSCPY = @GNULIB_WCSCPY@
++GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
++GNULIB_WCSDUP = @GNULIB_WCSDUP@
++GNULIB_WCSLEN = @GNULIB_WCSLEN@
++GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
++GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
++GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
++GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
++GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
++GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
++GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
++GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
++GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
++GNULIB_WCSSPN = @GNULIB_WCSSPN@
++GNULIB_WCSSTR = @GNULIB_WCSSTR@
++GNULIB_WCSTOK = @GNULIB_WCSTOK@
++GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
++GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
++GNULIB_WCTOB = @GNULIB_WCTOB@
++GNULIB_WCTOMB = @GNULIB_WCTOMB@
++GNULIB_WCTRANS = @GNULIB_WCTRANS@
++GNULIB_WCTYPE = @GNULIB_WCTYPE@
++GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
++GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
++GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
++GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
++GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
++GNULIB_WMEMSET = @GNULIB_WMEMSET@
++GNULIB_WRITE = @GNULIB_WRITE@
++GNULIB__EXIT = @GNULIB__EXIT@
++GREP = @GREP@
++HAVE_ALPHASORT = @HAVE_ALPHASORT@
++HAVE_ATOLL = @HAVE_ATOLL@
++HAVE_BTOWC = @HAVE_BTOWC@
++HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
++HAVE_CHOWN = @HAVE_CHOWN@
++HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
++HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
++HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
++HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
++HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
++HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
++HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
++HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
++HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
++HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
++HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
++HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
++HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
++HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
++HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
++HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
++HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
++HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
++HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
++HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
++HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
++HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
++HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
++HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
++HAVE_DECL_STRNCASECMP = @HAVE_DECL_STRNCASECMP@
++HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
++HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
++HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
++HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@
++HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
++HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@
++HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
++HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
++HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
++HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
++HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
++HAVE_DPRINTF = @HAVE_DPRINTF@
++HAVE_DUP2 = @HAVE_DUP2@
++HAVE_DUP3 = @HAVE_DUP3@
++HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
++HAVE_FACCESSAT = @HAVE_FACCESSAT@
++HAVE_FCHDIR = @HAVE_FCHDIR@
++HAVE_FCHMODAT = @HAVE_FCHMODAT@
++HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
++HAVE_FCNTL = @HAVE_FCNTL@
++HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
++HAVE_FEATURES_H = @HAVE_FEATURES_H@
++HAVE_FSEEKO = @HAVE_FSEEKO@
++HAVE_FSTATAT = @HAVE_FSTATAT@
++HAVE_FSYNC = @HAVE_FSYNC@
++HAVE_FTELLO = @HAVE_FTELLO@
++HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
++HAVE_FUTIMENS = @HAVE_FUTIMENS@
++HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
++HAVE_GETGROUPS = @HAVE_GETGROUPS@
++HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
++HAVE_GETLOGIN = @HAVE_GETLOGIN@
++HAVE_GETOPT_H = @HAVE_GETOPT_H@
++HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
++HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
++HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
++HAVE_GRANTPT = @HAVE_GRANTPT@
++HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
++HAVE_ISWBLANK = @HAVE_ISWBLANK@
++HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
++HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
++HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
++HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
++HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
++HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
++HAVE_LCHMOD = @HAVE_LCHMOD@
++HAVE_LCHOWN = @HAVE_LCHOWN@
++HAVE_LINK = @HAVE_LINK@
++HAVE_LINKAT = @HAVE_LINKAT@
++HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
++HAVE_LSTAT = @HAVE_LSTAT@
++HAVE_MBRLEN = @HAVE_MBRLEN@
++HAVE_MBRTOWC = @HAVE_MBRTOWC@
++HAVE_MBSINIT = @HAVE_MBSINIT@
++HAVE_MBSLEN = @HAVE_MBSLEN@
++HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
++HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
++HAVE_MEMCHR = @HAVE_MEMCHR@
++HAVE_MEMPCPY = @HAVE_MEMPCPY@
++HAVE_MKDIRAT = @HAVE_MKDIRAT@
++HAVE_MKDTEMP = @HAVE_MKDTEMP@
++HAVE_MKFIFO = @HAVE_MKFIFO@
++HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
++HAVE_MKNOD = @HAVE_MKNOD@
++HAVE_MKNODAT = @HAVE_MKNODAT@
++HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
++HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
++HAVE_MKSTEMP = @HAVE_MKSTEMP@
++HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
++HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
++HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
++HAVE_OPENAT = @HAVE_OPENAT@
++HAVE_OS_H = @HAVE_OS_H@
++HAVE_PIPE = @HAVE_PIPE@
++HAVE_PIPE2 = @HAVE_PIPE2@
++HAVE_PREAD = @HAVE_PREAD@
++HAVE_PTSNAME = @HAVE_PTSNAME@
++HAVE_PWRITE = @HAVE_PWRITE@
++HAVE_RANDOM_H = @HAVE_RANDOM_H@
++HAVE_RANDOM_R = @HAVE_RANDOM_R@
++HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
++HAVE_READLINK = @HAVE_READLINK@
++HAVE_READLINKAT = @HAVE_READLINKAT@
++HAVE_REALPATH = @HAVE_REALPATH@
++HAVE_RENAMEAT = @HAVE_RENAMEAT@
++HAVE_RPMATCH = @HAVE_RPMATCH@
++HAVE_SCANDIR = @HAVE_SCANDIR@
++HAVE_SETENV = @HAVE_SETENV@
++HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
++HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
++HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
++HAVE_SLEEP = @HAVE_SLEEP@
++HAVE_STDINT_H = @HAVE_STDINT_H@
++HAVE_STPCPY = @HAVE_STPCPY@
++HAVE_STPNCPY = @HAVE_STPNCPY@
++HAVE_STRCASECMP = @HAVE_STRCASECMP@
++HAVE_STRCASESTR = @HAVE_STRCASESTR@
++HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
++HAVE_STRPBRK = @HAVE_STRPBRK@
++HAVE_STRPTIME = @HAVE_STRPTIME@
++HAVE_STRSEP = @HAVE_STRSEP@
++HAVE_STRTOD = @HAVE_STRTOD@
++HAVE_STRTOLL = @HAVE_STRTOLL@
++HAVE_STRTOULL = @HAVE_STRTOULL@
++HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
++HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
++HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
++HAVE_SYMLINK = @HAVE_SYMLINK@
++HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
++HAVE_SYSEXITS_H = @HAVE_SYSEXITS_H@
++HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
++HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
++HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
++HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
++HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
++HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
++HAVE_TIMEGM = @HAVE_TIMEGM@
++HAVE_UNISTD_H = @HAVE_UNISTD_H@
++HAVE_UNLINKAT = @HAVE_UNLINKAT@
++HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
++HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
++HAVE_USLEEP = @HAVE_USLEEP@
++HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
++HAVE_VASPRINTF = @HAVE_VASPRINTF@
++HAVE_VDPRINTF = @HAVE_VDPRINTF@
++HAVE_WCHAR_H = @HAVE_WCHAR_H@
++HAVE_WCHAR_T = @HAVE_WCHAR_T@
++HAVE_WCPCPY = @HAVE_WCPCPY@
++HAVE_WCPNCPY = @HAVE_WCPNCPY@
++HAVE_WCRTOMB = @HAVE_WCRTOMB@
++HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
++HAVE_WCSCAT = @HAVE_WCSCAT@
++HAVE_WCSCHR = @HAVE_WCSCHR@
++HAVE_WCSCMP = @HAVE_WCSCMP@
++HAVE_WCSCOLL = @HAVE_WCSCOLL@
++HAVE_WCSCPY = @HAVE_WCSCPY@
++HAVE_WCSCSPN = @HAVE_WCSCSPN@
++HAVE_WCSDUP = @HAVE_WCSDUP@
++HAVE_WCSLEN = @HAVE_WCSLEN@
++HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
++HAVE_WCSNCAT = @HAVE_WCSNCAT@
++HAVE_WCSNCMP = @HAVE_WCSNCMP@
++HAVE_WCSNCPY = @HAVE_WCSNCPY@
++HAVE_WCSNLEN = @HAVE_WCSNLEN@
++HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
++HAVE_WCSPBRK = @HAVE_WCSPBRK@
++HAVE_WCSRCHR = @HAVE_WCSRCHR@
++HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
++HAVE_WCSSPN = @HAVE_WCSSPN@
++HAVE_WCSSTR = @HAVE_WCSSTR@
++HAVE_WCSTOK = @HAVE_WCSTOK@
++HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
++HAVE_WCSXFRM = @HAVE_WCSXFRM@
++HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
++HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
++HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
++HAVE_WINT_T = @HAVE_WINT_T@
++HAVE_WMEMCHR = @HAVE_WMEMCHR@
++HAVE_WMEMCMP = @HAVE_WMEMCMP@
++HAVE_WMEMCPY = @HAVE_WMEMCPY@
++HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
++HAVE_WMEMSET = @HAVE_WMEMSET@
++HAVE__BOOL = @HAVE__BOOL@
++HAVE__EXIT = @HAVE__EXIT@
++INCLUDE_NEXT = @INCLUDE_NEXT@
++INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
++INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@
++INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@
++INTLLIBS = @INTLLIBS@
++INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
++LDFLAGS = @LDFLAGS@
++LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
++LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
++LIBICONV = @LIBICONV@
++LIBINTL = @LIBINTL@
++LIBOBJS = @LIBOBJS@
++LIBS = @LIBS@
++LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
++LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
++LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
++LIB_SETSOCKOPT = @LIB_SETSOCKOPT@
++LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
++LOCALE_FR = @LOCALE_FR@
++LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
++LOCALE_JA = @LOCALE_JA@
++LOCALE_ZH_CN = @LOCALE_ZH_CN@
++LTLIBICONV = @LTLIBICONV@
++LTLIBINTL = @LTLIBINTL@
++LTLIBOBJS = @LTLIBOBJS@
++MAKEINFO = @MAKEINFO@
++MKDIR_P = @MKDIR_P@
++MSGFMT = @MSGFMT@
++MSGFMT_015 = @MSGFMT_015@
++MSGMERGE = @MSGMERGE@
++NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@
++NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
++NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
++NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
++NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
++NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
++NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
++NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
++NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
++NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
++NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
++NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
++NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
++NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
++NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H = @NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H@
++NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
++NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
++NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
++NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
++NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
++NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
++NEXT_DIRENT_H = @NEXT_DIRENT_H@
++NEXT_ERRNO_H = @NEXT_ERRNO_H@
++NEXT_FCNTL_H = @NEXT_FCNTL_H@
++NEXT_FLOAT_H = @NEXT_FLOAT_H@
++NEXT_GETOPT_H = @NEXT_GETOPT_H@
++NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
++NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
++NEXT_STDARG_H = @NEXT_STDARG_H@
++NEXT_STDDEF_H = @NEXT_STDDEF_H@
++NEXT_STDINT_H = @NEXT_STDINT_H@
++NEXT_STDIO_H = @NEXT_STDIO_H@
++NEXT_STDLIB_H = @NEXT_STDLIB_H@
++NEXT_STRINGS_H = @NEXT_STRINGS_H@
++NEXT_STRING_H = @NEXT_STRING_H@
++NEXT_SYSEXITS_H = @NEXT_SYSEXITS_H@
++NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
++NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
++NEXT_TIME_H = @NEXT_TIME_H@
++NEXT_UNISTD_H = @NEXT_UNISTD_H@
++NEXT_WCHAR_H = @NEXT_WCHAR_H@
++NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
++OBJEXT = @OBJEXT@
++PACKAGE = @PACKAGE@
++PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
++PACKAGE_NAME = @PACKAGE_NAME@
++PACKAGE_STRING = @PACKAGE_STRING@
++PACKAGE_TARNAME = @PACKAGE_TARNAME@
++PACKAGE_VERSION = @PACKAGE_VERSION@
++PATH_SEPARATOR = @PATH_SEPARATOR@
++POSUB = @POSUB@
++PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
++PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
++PRIPTR_PREFIX = @PRIPTR_PREFIX@
++PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
++PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
++PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
++PU_RMT_PROG = @PU_RMT_PROG@
++RANLIB = @RANLIB@
++REPLACE_BTOWC = @REPLACE_BTOWC@
++REPLACE_CALLOC = @REPLACE_CALLOC@
++REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
++REPLACE_CHOWN = @REPLACE_CHOWN@
++REPLACE_CLOSE = @REPLACE_CLOSE@
++REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
++REPLACE_DIRFD = @REPLACE_DIRFD@
++REPLACE_DPRINTF = @REPLACE_DPRINTF@
++REPLACE_DUP = @REPLACE_DUP@
++REPLACE_DUP2 = @REPLACE_DUP2@
++REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
++REPLACE_FCLOSE = @REPLACE_FCLOSE@
++REPLACE_FCNTL = @REPLACE_FCNTL@
++REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@
++REPLACE_FFLUSH = @REPLACE_FFLUSH@
++REPLACE_FOPEN = @REPLACE_FOPEN@
++REPLACE_FPRINTF = @REPLACE_FPRINTF@
++REPLACE_FPURGE = @REPLACE_FPURGE@
++REPLACE_FREOPEN = @REPLACE_FREOPEN@
++REPLACE_FSEEK = @REPLACE_FSEEK@
++REPLACE_FSEEKO = @REPLACE_FSEEKO@
++REPLACE_FSTAT = @REPLACE_FSTAT@
++REPLACE_FSTATAT = @REPLACE_FSTATAT@
++REPLACE_FTELL = @REPLACE_FTELL@
++REPLACE_FTELLO = @REPLACE_FTELLO@
++REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
++REPLACE_GETCWD = @REPLACE_GETCWD@
++REPLACE_GETDELIM = @REPLACE_GETDELIM@
++REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
++REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
++REPLACE_GETLINE = @REPLACE_GETLINE@
++REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
++REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
++REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
++REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
++REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
++REPLACE_LCHOWN = @REPLACE_LCHOWN@
++REPLACE_LINK = @REPLACE_LINK@
++REPLACE_LINKAT = @REPLACE_LINKAT@
++REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
++REPLACE_LSEEK = @REPLACE_LSEEK@
++REPLACE_LSTAT = @REPLACE_LSTAT@
++REPLACE_MALLOC = @REPLACE_MALLOC@
++REPLACE_MBRLEN = @REPLACE_MBRLEN@
++REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
++REPLACE_MBSINIT = @REPLACE_MBSINIT@
++REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
++REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
++REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
++REPLACE_MBTOWC = @REPLACE_MBTOWC@
++REPLACE_MEMCHR = @REPLACE_MEMCHR@
++REPLACE_MEMMEM = @REPLACE_MEMMEM@
++REPLACE_MKDIR = @REPLACE_MKDIR@
++REPLACE_MKFIFO = @REPLACE_MKFIFO@
++REPLACE_MKNOD = @REPLACE_MKNOD@
++REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
++REPLACE_MKTIME = @REPLACE_MKTIME@
++REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
++REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
++REPLACE_NULL = @REPLACE_NULL@
++REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
++REPLACE_OPEN = @REPLACE_OPEN@
++REPLACE_OPENAT = @REPLACE_OPENAT@
++REPLACE_OPENDIR = @REPLACE_OPENDIR@
++REPLACE_PERROR = @REPLACE_PERROR@
++REPLACE_POPEN = @REPLACE_POPEN@
++REPLACE_PREAD = @REPLACE_PREAD@
++REPLACE_PRINTF = @REPLACE_PRINTF@
++REPLACE_PUTENV = @REPLACE_PUTENV@
++REPLACE_PWRITE = @REPLACE_PWRITE@
++REPLACE_READLINK = @REPLACE_READLINK@
++REPLACE_REALLOC = @REPLACE_REALLOC@
++REPLACE_REALPATH = @REPLACE_REALPATH@
++REPLACE_REMOVE = @REPLACE_REMOVE@
++REPLACE_RENAME = @REPLACE_RENAME@
++REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
++REPLACE_RMDIR = @REPLACE_RMDIR@
++REPLACE_SETENV = @REPLACE_SETENV@
++REPLACE_SLEEP = @REPLACE_SLEEP@
++REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
++REPLACE_SPRINTF = @REPLACE_SPRINTF@
++REPLACE_STAT = @REPLACE_STAT@
++REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
++REPLACE_STPNCPY = @REPLACE_STPNCPY@
++REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
++REPLACE_STRDUP = @REPLACE_STRDUP@
++REPLACE_STRERROR = @REPLACE_STRERROR@
++REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
++REPLACE_STRNCAT = @REPLACE_STRNCAT@
++REPLACE_STRNDUP = @REPLACE_STRNDUP@
++REPLACE_STRNLEN = @REPLACE_STRNLEN@
++REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
++REPLACE_STRSTR = @REPLACE_STRSTR@
++REPLACE_STRTOD = @REPLACE_STRTOD@
++REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
++REPLACE_SYMLINK = @REPLACE_SYMLINK@
++REPLACE_TIMEGM = @REPLACE_TIMEGM@
++REPLACE_TMPFILE = @REPLACE_TMPFILE@
++REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
++REPLACE_UNLINK = @REPLACE_UNLINK@
++REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
++REPLACE_UNSETENV = @REPLACE_UNSETENV@
++REPLACE_USLEEP = @REPLACE_USLEEP@
++REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
++REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
++REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
++REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
++REPLACE_VPRINTF = @REPLACE_VPRINTF@
++REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@
++REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
++REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
++REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
++REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
++REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
++REPLACE_WCTOB = @REPLACE_WCTOB@
++REPLACE_WCTOMB = @REPLACE_WCTOMB@
++REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
++REPLACE_WRITE = @REPLACE_WRITE@
++SET_MAKE = @SET_MAKE@
++SHELL = @SHELL@
++SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
++SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
++STDARG_H = @STDARG_H@
++STDBOOL_H = @STDBOOL_H@
++STDDEF_H = @STDDEF_H@
++STDINT_H = @STDINT_H@
++STRIP = @STRIP@
++SYSEXITS_H = @SYSEXITS_H@
++SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
++TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
++UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
++UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
++UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
++UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
++UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
++USE_NLS = @USE_NLS@
++VERSION = @VERSION@
++WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
++WINT_T_SUFFIX = @WINT_T_SUFFIX@
++XGETTEXT = @XGETTEXT@
++XGETTEXT_015 = @XGETTEXT_015@
++XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
++YACC = @YACC@
++YFLAGS = @YFLAGS@
++abs_builddir = @abs_builddir@
++abs_srcdir = @abs_srcdir@
++abs_top_builddir = @abs_top_builddir@
++abs_top_srcdir = @abs_top_srcdir@
++ac_ct_CC = @ac_ct_CC@
++am__include = @am__include@
++am__leading_dot = @am__leading_dot@
++am__quote = @am__quote@
++am__tar = @am__tar@
++am__untar = @am__untar@
++bindir = @bindir@
++build = @build@
++build_alias = @build_alias@
++build_cpu = @build_cpu@
++build_os = @build_os@
++build_vendor = @build_vendor@
++builddir = @builddir@
++datadir = @datadir@
++datarootdir = @datarootdir@
++docdir = @docdir@
++dvidir = @dvidir@
++exec_prefix = @exec_prefix@
++gl_LIBOBJS = @gl_LIBOBJS@
++gl_LTLIBOBJS = @gl_LTLIBOBJS@
++gltests_LIBOBJS = @gltests_LIBOBJS@
++gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
++gltests_WITNESS = @gltests_WITNESS@
++host = @host@
++host_alias = @host_alias@
++host_cpu = @host_cpu@
++host_os = @host_os@
++host_vendor = @host_vendor@
++htmldir = @htmldir@
++includedir = @includedir@
++infodir = @infodir@
++install_sh = @install_sh@
++libdir = @libdir@
++libexecdir = @libexecdir@
++lispdir = @lispdir@
++localedir = @localedir@
++localstatedir = @localstatedir@
++mandir = @mandir@
++mkdir_p = @mkdir_p@
++oldincludedir = @oldincludedir@
++pdfdir = @pdfdir@
++prefix = @prefix@
++program_transform_name = @program_transform_name@
++psdir = @psdir@
++sbindir = @sbindir@
++sharedstatedir = @sharedstatedir@
++srcdir = @srcdir@
++sysconfdir = @sysconfdir@
++target_alias = @target_alias@
++top_build_prefix = @top_build_prefix@
++top_builddir = @top_builddir@
++top_srcdir = @top_srcdir@
++info_TEXINFOS = tar.texi
++tar_TEXINFOS = \
++ dumpdir.texi\
++ tar-snapshot-edit.texi\
++ fdl.texi\
++ freemanuals.texi\
++ genfile.texi\
++ header.texi\
++ intern.texi\
++ parse-datetime.texi\
++ rendition.texi\
++ snapshot.texi\
++ sparse.texi\
++ value.texi
++
++EXTRA_DIST = gendocs_template mastermenu.el texify.sed untabify.el
++
++# The rendering level is anyone of PUBLISH, DISTRIB or PROOF.
++# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
++RENDITION = DISTRIB
++MAKEINFOFLAGS = -D$(RENDITION)
++GENDOCS = gendocs.sh
++TEXI2DVI = texi2dvi -t '@set $(RENDITION)' -E
++all: all-am
++
++.SUFFIXES:
++.SUFFIXES: .dvi .html .info .pdf .ps .texi
++$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
++	@for dep in $?; do \
++	  case '$(am__configure_deps)' in \
++	    *$$dep*) \
++	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
++	        && { if test -f $@; then exit 0; else break; fi; }; \
++	      exit 1;; \
++	  esac; \
++	done; \
++	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
++	$(am__cd) $(top_srcdir) && \
++	  $(AUTOMAKE) --gnits doc/Makefile
++.PRECIOUS: Makefile
++Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
++	@case '$?' in \
++	  *config.status*) \
++	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
++	  *) \
++	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
++	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
++	esac;
++
++$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
++	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++
++$(top_srcdir)/configure:  $(am__configure_deps)
++	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
++	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
++$(am__aclocal_m4_deps):
++
++.texi.info:
++	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
++	am__cwd=`pwd` && $(am__cd) $(srcdir) && \
++	rm -rf $$backupdir && mkdir $$backupdir && \
++	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
++	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
++	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
++	  done; \
++	else :; fi && \
++	cd "$$am__cwd"; \
++	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
++	 -o $@ $<; \
++	then \
++	  rc=0; \
++	  $(am__cd) $(srcdir); \
++	else \
++	  rc=$$?; \
++	  $(am__cd) $(srcdir) && \
++	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
++	fi; \
++	rm -rf $$backupdir; exit $$rc
++
++.texi.dvi:
++	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
++	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
++	$(TEXI2DVI) $<
++
++.texi.pdf:
++	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
++	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
++	$(TEXI2PDF) $<
++
++.texi.html:
++	rm -rf $(@:.html=.htp)
++	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
++	 -o $(@:.html=.htp) $<; \
++	then \
++	  rm -rf $@; \
++	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
++	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
++	else \
++	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
++	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
++	  exit 1; \
++	fi
++$(srcdir)/tar.info: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
++tar.dvi: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
++tar.pdf: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
++tar.html: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
++$(srcdir)/version.texi:  $(srcdir)/stamp-vti
++$(srcdir)/stamp-vti: tar.texi $(top_srcdir)/configure
++	@(dir=.; test -f ./tar.texi || dir=$(srcdir); \
++	set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/tar.texi`; \
++	echo "@set UPDATED $$1 $$2 $$3"; \
++	echo "@set UPDATED-MONTH $$2 $$3"; \
++	echo "@set EDITION $(VERSION)"; \
++	echo "@set VERSION $(VERSION)") > vti.tmp
++	@cmp -s vti.tmp $(srcdir)/version.texi \
++	  || (echo "Updating $(srcdir)/version.texi"; \
++	      cp vti.tmp $(srcdir)/version.texi)
++	-@rm -f vti.tmp
++	@cp $(srcdir)/version.texi $@
++
++mostlyclean-vti:
++	-rm -f vti.tmp
++
++maintainer-clean-vti:
++	-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
++.dvi.ps:
++	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
++	$(DVIPS) -o $@ $<
++
++uninstall-dvi-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
++	for p in $$list; do \
++	  $(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
++	done
++
++uninstall-html-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
++	for p in $$list; do \
++	  $(am__strip_dir) \
++	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
++	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
++	done
++
++uninstall-info-am:
++	@$(PRE_UNINSTALL)
++	@if test -d '$(DESTDIR)$(infodir)' && \
++	    (install-info --version && \
++	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
++	  list='$(INFO_DEPS)'; \
++	  for file in $$list; do \
++	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
++	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
++	    if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
++	    then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
++	  done; \
++	else :; fi
++	@$(NORMAL_UNINSTALL)
++	@list='$(INFO_DEPS)'; \
++	for file in $$list; do \
++	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
++	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
++	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
++	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
++	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
++	   else :; fi); \
++	done
++
++uninstall-pdf-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
++	for p in $$list; do \
++	  $(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
++	done
++
++uninstall-ps-am:
++	@$(NORMAL_UNINSTALL)
++	@list='$(PSS)'; test -n "$(psdir)" || list=; \
++	for p in $$list; do \
++	  $(am__strip_dir) \
++	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
++	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
++	done
++
++dist-info: $(INFO_DEPS)
++	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
++	list='$(INFO_DEPS)'; \
++	for base in $$list; do \
++	  case $$base in \
++	    $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
++	  esac; \
++	  if test -f $$base; then d=.; else d=$(srcdir); fi; \
++	  base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
++	  for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
++	    if test -f $$file; then \
++	      relfile=`expr "$$file" : "$$d/\(.*\)"`; \
++	      test -f "$(distdir)/$$relfile" || \
++		cp -p $$file "$(distdir)/$$relfile"; \
++	    else :; fi; \
++	  done; \
++	done
++
++mostlyclean-aminfo:
++	-rm -rf tar.aux tar.cp tar.cps tar.fn tar.kw tar.ky tar.log tar.op tar.ops \
++	  tar.pg tar.tmp tar.toc tar.tp tar.tps tar.vr
++
++clean-aminfo:
++	-test -z "tar.dvi tar.pdf tar.ps tar.html" \
++	|| rm -rf tar.dvi tar.pdf tar.ps tar.html
++
++maintainer-clean-aminfo:
++	@list='$(INFO_DEPS)'; for i in $$list; do \
++	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
++	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
++	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
++	done
++tags: TAGS
++TAGS:
++
++ctags: CTAGS
++CTAGS:
++
++
++distdir: $(DISTFILES)
++	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
++	list='$(DISTFILES)'; \
++	  dist_files=`for file in $$list; do echo $$file; done | \
++	  sed -e "s|^$$srcdirstrip/||;t" \
++	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
++	case $$dist_files in \
++	  */*) $(MKDIR_P) `echo "$$dist_files" | \
++			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
++			   sort -u` ;; \
++	esac; \
++	for file in $$dist_files; do \
++	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
++	  if test -d $$d/$$file; then \
++	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
++	    if test -d "$(distdir)/$$file"; then \
++	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++	    fi; \
++	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
++	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
++	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
++	    fi; \
++	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
++	  else \
++	    test -f "$(distdir)/$$file" \
++	    || cp -p $$d/$$file "$(distdir)/$$file" \
++	    || exit 1; \
++	  fi; \
++	done
++	$(MAKE) $(AM_MAKEFLAGS) \
++	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
++	  dist-info
++check-am: all-am
++check: check-am
++all-am: Makefile $(INFO_DEPS)
++installdirs:
++	for dir in "$(DESTDIR)$(infodir)"; do \
++	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
++	done
++install: install-am
++install-exec: install-exec-am
++install-data: install-data-am
++uninstall: uninstall-am
++
++install-am: all-am
++	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++
++installcheck: installcheck-am
++install-strip:
++	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
++	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
++	  `test -z '$(STRIP)' || \
++	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
++	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
++
++maintainer-clean-generic:
++	@echo "This command is intended for maintainers to use"
++	@echo "it deletes files that may require special tools to rebuild."
++clean: clean-am
++
++clean-am: clean-aminfo clean-generic clean-local mostlyclean-am
++
++distclean: distclean-am
++	-rm -f Makefile
++distclean-am: clean-am distclean-generic
++
++dvi: dvi-am
++
++dvi-am: $(DVIS)
++
++html: html-am
++
++html-am: $(HTMLS)
++
++info: info-am
++
++info-am: $(INFO_DEPS)
++
++install-data-am: install-info-am
++
++install-dvi: install-dvi-am
++
++install-dvi-am: $(DVIS)
++	@$(NORMAL_INSTALL)
++	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
++	@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
++	for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  echo "$$d$$p"; \
++	done | $(am__base_list) | \
++	while read files; do \
++	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
++	  $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
++	done
++install-exec-am:
++
++install-html: install-html-am
++
++install-html-am: $(HTMLS)
++	@$(NORMAL_INSTALL)
++	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
++	@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
++	for p in $$list; do \
++	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  $(am__strip_dir) \
++	  if test -d "$$d$$p"; then \
++	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
++	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
++	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
++	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
++	  else \
++	    list2="$$list2 $$d$$p"; \
++	  fi; \
++	done; \
++	test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
++	while read files; do \
++	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
++	  $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
++	done; }
++install-info: install-info-am
++
++install-info-am: $(INFO_DEPS)
++	@$(NORMAL_INSTALL)
++	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
++	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
++	list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
++	for file in $$list; do \
++	  case $$file in \
++	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
++	  esac; \
++	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
++	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
++	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
++	               $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
++	    if test -f $$ifile; then \
++	      echo "$$ifile"; \
++	    else : ; fi; \
++	  done; \
++	done | $(am__base_list) | \
++	while read files; do \
++	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
++	  $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
++	@$(POST_INSTALL)
++	@if (install-info --version && \
++	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
++	  list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
++	  for file in $$list; do \
++	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
++	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
++	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
++	  done; \
++	else : ; fi
++install-man:
++
++install-pdf: install-pdf-am
++
++install-pdf-am: $(PDFS)
++	@$(NORMAL_INSTALL)
++	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
++	@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
++	for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  echo "$$d$$p"; \
++	done | $(am__base_list) | \
++	while read files; do \
++	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
++	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
++install-ps: install-ps-am
++
++install-ps-am: $(PSS)
++	@$(NORMAL_INSTALL)
++	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
++	@list='$(PSS)'; test -n "$(psdir)" || list=; \
++	for p in $$list; do \
++	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++	  echo "$$d$$p"; \
++	done | $(am__base_list) | \
++	while read files; do \
++	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
++	  $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
++installcheck-am:
++
++maintainer-clean: maintainer-clean-am
++	-rm -f Makefile
++maintainer-clean-am: distclean-am maintainer-clean-aminfo \
++	maintainer-clean-generic maintainer-clean-vti
++
++mostlyclean: mostlyclean-am
++
++mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
++
++pdf: pdf-am
++
++pdf-am: $(PDFS)
++
++ps: ps-am
++
++ps-am: $(PSS)
++
++uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
++	uninstall-pdf-am uninstall-ps-am
++
++.MAKE: install-am install-strip
++
++.PHONY: all all-am check check-am clean clean-aminfo clean-generic \
++	clean-local dist-info distclean distclean-generic distdir dvi \
++	dvi-am html html-am info info-am install install-am \
++	install-data install-data-am install-dvi install-dvi-am \
++	install-exec install-exec-am install-html install-html-am \
++	install-info install-info-am install-man install-pdf \
++	install-pdf-am install-ps install-ps-am install-strip \
++	installcheck installcheck-am installdirs maintainer-clean \
++	maintainer-clean-aminfo maintainer-clean-generic \
++	maintainer-clean-vti mostlyclean mostlyclean-aminfo \
++	mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
++	uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
++	uninstall-info-am uninstall-pdf-am uninstall-ps-am
++
++
++header.texi: $(top_srcdir)/src/tar.h
++	sed -f $(srcdir)/texify.sed $(top_srcdir)/src/tar.h \
++	  | expand >$@
++
++master-menu: $(tar_TEXINFOS)
++	emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS)
++
++untabify:
++	emacs -batch -l untabify.el $(info_TEXINFOS) $(tar_TEXINFOS)
++
++final: untabify master-menu
++
++# Checking
++check-format:
++	@if test -n "`cat $(info_TEXINFOS) $(tar_TEXINFOS) | tr -d -c '\t'`"; then \
++		echo "Sources contain tabs; run make untabify"; \
++		false; \
++	fi
++
++check-options:
++	@ARGP_HELP_FMT='usage-indent=0,short-opt-col=0,long-opt-col=0,doc-opt-col=0,opt-doc-col=0,header-col=0,rmargin=1' \
++	$(top_builddir)/src/tar --usage | \
++	sed -n 's/^\[--\([^]\=\[]*\).*/\1/p' | sort | uniq > opts.$$$$;\
++	$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -E - \
++            $(info_TEXINFOS) | \
++	sed -n '/^@macro/,/^@end macro/d;s/@opindex *\([^@,]*\).*/\1/p' \
++	     | sort | uniq > docs.$$$$;\
++	status=0;\
++	join -v1 opts.$$$$ docs.$$$$ > report.$$$$;\
++	if test -s report.$$$$; then \
++          echo 'Not documented options:'; \
++          cat report.$$$$; \
++          status=1; \
++        fi; \
++	join -v2 opts.$$$$ docs.$$$$ > report.$$$$;\
++	if test -s report.$$$$; then \
++	  echo 'Non-existing options:';\
++          cat report.$$$$; \
++          status=1; \
++        fi; \
++	rm opts.$$$$ docs.$$$$ report.$$$$;\
++	test $$status -ne 0 && exit $$status
++
++check-refs:
++	@for file in $(info_TEXINFOS) $(tar_TEXINFOS); \
++	do \
++	  sed -e = $$file | \
++           sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\).*/'$$file':\1: \2/gp}'; \
++	done > $@-t; \
++	if [ -s $@-t ]; then \
++	  echo "Unresolved cross-references:"; \
++	  cat $@-t;\
++	  rm $@-t; \
++	else \
++	  rm -f $@-t; \
++	fi
++
++check-fixmes:
++	@for file in $(info_TEXINFOS); \
++	do \
++	  sed -e = $$file | \
++           sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \
++	done > $@-t; \
++	if [ -s $@-t ]; then \
++	  echo "Unresolved FIXMEs:"; \
++	  cat $@-t; \
++	  rm $@-t; \
++	  false; \
++	else \
++          rm -f $@-t; \
++	fi
++
++check-unrevised:
++	@grep -Hn @UNREVISED $(info_TEXINFOS) > $@-t; \
++	if [ -s $@-t ]; then \
++	  echo "Unrevised nodes:"; \
++	  cat $@-t; \
++	  rm $@-t; \
++	  false;\
++	else \
++          rm $@-t; \
++	fi
++
++all-check-docs: check-format check-options check-refs check-fixmes check-unrevised
++
++check-docs:
++	$(MAKE) -k all-check-docs
++
++#
++
++clean-local:
++	rm -rf manual
++
++# Make sure you set TEXINPUTS
++# Usual value is:
++# /usr/share/texmf/pdftex/plain/misc:/usr/share/texmf/pdftex/config
++manual:
++	TEXINPUTS=$(srcdir):$(top_srcdir)/build-tex:$(TEXINPUTS) \
++	 MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
++	 TEXI2DVI="$(TEXI2DVI) -t @finalout" \
++	$(GENDOCS) --texi2html tar 'GNU tar manual'
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff -Naur tar-1.26.orig/doc/tar.1 tar-1.26/doc/tar.1
+--- tar-1.26.orig/doc/tar.1	1970-01-01 00:00:00.000000000 +0000
++++ tar-1.26/doc/tar.1	2011-05-18 17:55:36.872098438 +0000
+@@ -0,0 +1,366 @@
++.\" generated by script on Sat Jan  8 16:53:11 2011
++.Dd Jan  8, 2011
++.Dt TAR 1
++.Sh NAME
++.Nm tar
++.Nd The GNU version of the tar archiving utility
++.Sh SYNOPSIS
++.Nm tar
++.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
++.Op Ar options
++.Op Ar pathname ...
++.Sh DESCRIPTION
++.Nm Tar
++stores and extracts files from a tape or disk archive.
++.Pp
++The first argument to
++tar
++should be a function; either one of the letters
++.Cm Acdrtux ,
++or one of the long function names.
++A function letter need not be prefixed with ``\-'', and may be combined
++with other single-letter options.
++A long function name must be prefixed with
++.Cm \\-\\- .
++Some options take a parameter; with the single-letter form
++these must be given as separate arguments.
++With the long form, they may be given by appending
++.Cm = Ns Ar value
++to the option.
++.Sh FUNCTION LETTERS
++Main operation mode:
++.Bl -tag -width flag
++.It Fl A , Fl \-catenate , Fl \-concatenate
++append tar files to an archive
++.It Fl c , Fl \-create
++create a new archive
++.It Fl d , Fl \-diff , Fl \-compare
++find differences between archive and file system
++.It Fl \-delete
++delete from the archive (not on mag tapes!)
++.It Fl r , Fl \-append
++append files to the end of an archive
++.It Fl t , Fl \-list
++list the contents of an archive
++.It Fl \-test\-label
++test the archive volume label and exit
++.It Fl u , Fl \-update
++only append files newer than copy in archive
++.It Fl x , Fl \-extract , Fl \-get
++extract files from an archive
++.El
++.Sh OTHER OPTIONS
++Operation modifiers:
++.Bl -tag -width flag
++.It \-[0\-7][lmh]
++specify drive and density
++.It Fl a , Fl \-auto\-compress
++use archive suffix to determine the compression program
++.It Fl \-add\-file Ns \= Ns Ar FILE
++add given FILE to the archive (useful if its name starts with a dash)
++.It Fl \-anchored
++patterns match file name start
++.It Fl \-no\-anchored
++patterns match after any `/' (default for exclusion)
++.It Fl \-atime\-preserve
++preserve access times on dumped files, either by restoring the times
++.It Fl \-no\-auto\-compress
++do not use archive suffix to determine the compression program
++.It Fl b , Fl \-blocking\-factor Ar BLOCKS
++BLOCKS x 512 bytes per record
++.It Fl B , Fl \-read\-full\-records
++reblock as we read (for 4.2BSD pipes)
++.It Fl \-backup
++backup before removal, choose version CONTROL
++.It Fl C , Fl \-directory Ar DIR
++change to directory DIR
++.It Fl \-check\-device
++check device numbers when creating incremental archives (default)
++.It Fl \-no\-check\-device
++do not check device numbers when creating incremental archives
++.It Fl \-checkpoint
++display progress messages every NUMBERth record (default 10)
++.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
++execute ACTION on each checkpoint
++.It Fl \-delay\-directory\-restore
++delay setting modification times and permissions of extracted
++.It Fl \-no\-delay\-directory\-restore
++cancel the effect of --delay-directory-restore option
++.It Fl \-exclude Ns \= Ns Ar PATTERN
++exclude files, given as a PATTERN
++.It Fl \-exclude\-backups
++exclude backup and lock files
++.It Fl \-exclude\-caches
++exclude contents of directories containing CACHEDIR.TAG, 
++.It Fl \-exclude\-caches\-all
++exclude directories containing CACHEDIR.TAG
++.It Fl \-exclude\-caches\-under
++exclude everything under directories containing CACHEDIR.TAG
++.It Fl \-exclude\-tag Ns \= Ns Ar FILE
++exclude contents of directories containing FILE, except
++.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
++exclude directories containing FILE
++.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
++exclude everything under directories containing FILE
++.It Fl \-exclude\-vcs
++exclude version control system directories
++.It Fl f , Fl \-file Ar ARCHIVE
++use archive file or device ARCHIVE
++.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
++run script at end of each tape (implies -M)
++.It Fl \-force\-local
++archive file is local even if it has a colon
++.It Fl \-full\-time
++print file time to its full resolution
++.It Fl g , Fl \-listed\-incremental Ar FILE
++handle new GNU-format incremental backup
++.It Fl G , Fl \-incremental
++handle old GNU-format incremental backup
++.It Fl \-group Ns \= Ns Ar NAME
++force NAME as group for added files
++.It Fl h , Fl \-dereference
++follow symlinks; archive and dump the files they point to
++.It Fl H , Fl \-format Ar FORMAT
++create archive of the given formatFORMAT is one of the following:
++.Bl -tag -width flag
++.It Fl \-format=gnu
++GNU tar 1.13.x format
++.It Fl \-format=oldgnu
++GNU format as per tar <= 1.12
++.It Fl \-format=pax
++POSIX 1003.1-2001 (pax) format
++.It Fl \-format=posix
++same as pax
++.It Fl \-format=ustar
++POSIX 1003.1-1988 (ustar) format
++.It Fl \-format=v7
++old V7 tar format
++.El
++.It Fl \-hard\-dereference
++follow hard links; archive and dump the files they refer to
++.It Fl i , Fl \-ignore\-zeros
++ignore zeroed blocks in archive (means EOF)
++.It Fl I , Fl \-use\-compress\-program Ar PROG
++filter through PROG (must accept -d)
++.It Fl \-ignore\-case
++ignore case
++.It Fl \-no\-ignore\-case
++case sensitive matching (default)
++.It Fl \-ignore\-command\-error
++ignore exit codes of children
++.It Fl \-no\-ignore\-command\-error
++treat non-zero exit codes of children as error
++.It Fl \-ignore\-failed\-read
++do not exit with nonzero on unreadable files
++.It Fl \-index\-file Ns \= Ns Ar FILE
++send verbose output to FILE
++.It Fl j , Fl \-bzip2
++
++.It Fl J , Fl \-xz
++
++.It Fl k , Fl \-keep\-old\-files
++don't replace existing files when extracting
++.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
++begin at member MEMBER-NAME in the archive
++.It Fl \-keep\-newer\-files
++don't replace existing files that are newer than their archive copies
++.It Fl l , Fl \-check\-links
++print a message if not all links are dumped
++.It Fl L , Fl \-tape\-length Ar NUMBER
++change tape after writing NUMBER x 1024 bytes
++.It Fl \-level Ns \= Ns Ar NUMBER
++dump level for created listed-incremental archive
++.It Fl \-lzip
++
++.It Fl \-lzma
++
++.It Fl \-lzop
++
++.It Fl m , Fl \-touch
++don't extract file modified time
++.It Fl M , Fl \-multi\-volume
++create/list/extract multi-volume archive
++.It Fl \-mode Ns \= Ns Ar CHANGES
++force (symbolic) mode CHANGES for added files
++.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
++set mtime for added files from DATE-OR-FILE
++.It Fl n , Fl \-seek
++archive is seekable
++.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
++only store files newer than DATE-OR-FILE
++.It Fl \-newer\-mtime Ns \= Ns Ar DATE
++compare date and time when data changed only
++.It Fl \-null
++-T reads null-terminated names, disable -C
++.It Fl \-no\-null
++disable the effect of the previous --null option
++.It Fl \-numeric\-owner
++always use numbers for user/group names
++.It Fl O , Fl \-to\-stdout
++extract files to standard output
++.It Fl \-occurrence
++process only the NUMBERth occurrence of each file in the archive;
++.It Fl \-old\-archive , Fl \-portability
++same as --format=v7
++.It Fl \-one\-file\-system
++stay in local file system when creating archive
++.It Fl \-overwrite
++overwrite existing files when extracting
++.It Fl \-overwrite\-dir
++overwrite metadata of existing directories when extracting (default)
++.It Fl \-no\-overwrite\-dir
++preserve metadata of existing directories
++.It Fl \-owner Ns \= Ns Ar NAME
++force NAME as owner for added files
++.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
++extract information about file permissions (default for superuser)
++.It Fl P , Fl \-absolute\-names
++don't strip leading `/'s from file names
++.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
++control pax keywords
++.It Fl \-posix
++same as --format=posix
++.It Fl \-preserve
++same as both -p and -s
++.It Fl \-quote\-chars Ns \= Ns Ar STRING
++additionally quote characters from STRING
++.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
++disable quoting for characters from STRING
++.It Fl \-quoting\-style Ns \= Ns Ar STYLE
++set name quoting style; see below for valid STYLE values
++.It Fl R , Fl \-block\-number
++show block number within archive with each message
++.It Fl \-record\-size Ns \= Ns Ar NUMBER
++NUMBER of bytes per record, multiple of 512
++.It Fl \-recursion
++recurse into directories (default)
++.It Fl \-no\-recursion
++avoid descending automatically in directories
++.It Fl \-recursive\-unlink
++empty hierarchies prior to extracting directory
++.It Fl \-remove\-files
++remove files after adding them to the archive
++.It Fl \-restrict
++disable use of some potentially harmful options
++.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
++use given rmt COMMAND instead of rmt
++.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
++use remote COMMAND instead of rsh
++.It Fl s , Fl \-preserve\-order , Fl \-same\-order
++sort names to extract to match archive
++.It Fl S , Fl \-sparse
++handle sparse files efficiently
++.It Fl \-same\-owner
++try extracting files with the same ownership as exists in the archive (default for superuser)
++.It Fl \-no\-same\-owner
++extract files as yourself (default for ordinary users)
++.It Fl \-no\-same\-permissions
++apply the user's umask when extracting permissions from the archive (default for ordinary users)
++.It Fl \-no\-seek
++archive is not seekable
++.It Fl \-show\-defaults
++show tar defaults
++.It Fl \-show\-omitted\-dirs
++when listing or extracting, list each directory that does not match search criteria
++.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
++show file or archive names after transformation
++.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
++set version of the sparse format to use (implies --sparse)
++.It Fl \-strip\-components Ns \= Ns Ar NUMBER
++strip NUMBER leading components from file names on extraction
++.It Fl \-suffix Ns \= Ns Ar STRING
++backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
++.It Fl T , Fl \-files\-from Ar FILE
++get names to extract or create from FILE
++.It Fl \-to\-command Ns \= Ns Ar COMMAND
++pipe extracted files to another program
++.It Fl \-totals
++print total bytes after processing the archive; 
++.It Fl \-transform , Fl \-xform Ar EXPRESSION
++use sed replace EXPRESSION to transform file names
++.It Fl U , Fl \-unlink\-first
++remove each file prior to extracting over it
++.It Fl \-unquote
++unquote filenames read with -T (default)
++.It Fl \-no\-unquote
++do not unquote filenames read with -T
++.It Fl \-utc
++print file modification times in UTC
++.It Fl v , Fl \-verbose
++verbosely list files processed
++.It Fl V , Fl \-label Ar TEXT
++create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
++.It Fl \-volno\-file Ns \= Ns Ar FILE
++use/update the volume number in FILE
++.It Fl w , Fl \-interactive , Fl \-confirmation
++ask for confirmation for every action
++.It Fl W , Fl \-verify
++attempt to verify the archive after writing it
++.It Fl \-warning Ns \= Ns Ar KEYWORD
++warning control
++.It Fl \-wildcards
++use wildcards (default for exclusion)
++.It Fl \-wildcards\-match\-slash
++wildcards match `/' (default for exclusion)
++.It Fl \-no\-wildcards\-match\-slash
++wildcards do not match `/'
++.It Fl \-no\-wildcards
++verbatim string matching
++.It Fl X , Fl \-exclude\-from Ar FILE
++exclude patterns listed in FILE
++.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
++
++.It Fl Z , Fl \-compress , Fl \-uncompress
++
++.El
++.Sh ENVIRONMENT
++The behavior of tar is controlled by the following environment variables,
++among others:
++.Bl -tag -width Ds
++.It Ev SIMPLE_BACKUP_SUFFIX
++Backup prefix to use when extracting, if
++.Fl \-suffix
++is not specified.
++The backup suffix defaults to `~' if neither is specified.
++.It Ev TAR_OPTIONS
++Options to prepend to those specified on the command line, separated by
++whitespace.  Embedded backslashes may be used to escape whitespace or
++backslashes within an option.
++.It Ev TAPE
++Device or file to use for the archive if 
++.Fl \-file
++is not specified.
++If this environment variable is unset, use stdin or stdout instead.
++.El
++.Sh EXAMPLES
++Create archive.tar from files foo and bar.
++.Bd -literal -offset indent -compact
++tar \-cf archive.tar foo bar
++.Ed
++List all files in archive.tar verbosely.
++.Bd -literal -offset indent -compact
++tar \-tvf archive.tar
++.Ed
++Extract all files from archive.tar.
++.Bd -literal -offset indent -compact
++tar \-xf archive.tar
++.Ed
++.Sh SEE ALSO
++.\" libarchive
++.Xr tar 5 ,
++.\" man-pages
++.Xr symlink 7 ,
++.Xr rmt 8
++.Sh HISTORY
++The
++.Nm tar
++command appeared in
++.At v7 .
++.Sh BUGS
++The GNU folks, in general, abhor man pages, and create info documents instead.
++Unfortunately, the info document describing tar is licensed under the GFDL with
++invariant cover texts, which makes it impossible to include any text
++from that document in this man page.
++Most of the text in this document was automatically extracted from the usage
++text in the source.
++It may not completely describe all features of the program.
Index: patches/vim-7.3-branch_update-1.patch
===================================================================
--- patches/vim-7.3-branch_update-1.patch	(revision 7d97f36d6c68f7a3e42aeabc0732ea935a9c68d5)
+++ 	(revision )
@@ -1,7220 +1,0 @@
-Submitted By: Joe Ciccone <jciccone@gmail.com>
-Date: 01-08-2010
-Initial Package Version: 7.3
-Origin: Upstream
-Upstream Status: From Upstream
-Description: Contains all upstream patches between 7.3.001 and 7.3.099
-
-diff -Naur vim73.orig/runtime/doc/eval.txt vim73/runtime/doc/eval.txt
---- vim73.orig/runtime/doc/eval.txt	2010-08-15 08:23:20.000000000 -0400
-+++ vim73/runtime/doc/eval.txt	2011-01-08 21:01:18.986656145 -0500
-@@ -1657,6 +1657,15 @@
- 					*v:warningmsg* *warningmsg-variable*
- v:warningmsg	Last given warning message.  It's allowed to set this variable.
- 
-+					*v:windowid* *windowid-variable*
-+v:windowid	When any X11 based GUI is running or when running in a
-+		terminal and Vim connects to the X server (|-X|) this will be
-+		set to the window ID.
-+		When an MS-Windows GUI is running this will be set to the
-+		window handle.
-+		Otherwise the value is zero.
-+		Note: for windows inside Vim use |winnr()|.
-+
- ==============================================================================
- 4. Builtin Functions					*functions*
- 
-@@ -1822,7 +1831,7 @@
- log( {expr})			Float	natural logarithm (base e) of {expr}
- log10( {expr})			Float	logarithm of Float {expr} to base 10
- map( {expr}, {string})		List/Dict  change each item in {expr} to {expr}
--maparg( {name}[, {mode} [, {abbr}]])
-+maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
- 				String	rhs of mapping {name} in mode {mode}
- mapcheck( {name}[, {mode} [, {abbr}]])
- 				String	check for mappings matching {name}
-@@ -3966,23 +3975,51 @@
- 		further items in {expr} are processed.
- 
- 
--maparg({name}[, {mode} [, {abbr}]])			*maparg()*
--		Return the rhs of mapping {name} in mode {mode}.  When there
--		is no mapping for {name}, an empty String is returned.
-+maparg({name}[, {mode} [, {abbr} [, {dict}]]])			*maparg()*
-+		When {dict} is omitted or zero: Return the rhs of mapping
-+		{name} in mode {mode}.  The returned String has special
-+		characters translated like in the output of the ":map" command
-+		listing.
-+		
-+		When there is no mapping for {name}, an empty String is
-+		returned.
-+
-+		The {name} can have special key names, like in the ":map"
-+		command.
-+
- 		{mode} can be one of these strings:
- 			"n"	Normal
--			"v"	Visual
-+			"v"	Visual (including Select)
- 			"o"	Operator-pending
- 			"i"	Insert
- 			"c"	Cmd-line
-+			"s"	Select
-+			"x"	Visual
- 			"l"	langmap |language-mapping|
- 			""	Normal, Visual and Operator-pending
- 		When {mode} is omitted, the modes for "" are used.
-+
- 		When {abbr} is there and it is non-zero use abbreviations
- 		instead of mappings.
--		The {name} can have special key names, like in the ":map"
--		command.  The returned String has special characters
--		translated like in the output of the ":map" command listing.
-+
-+		When {dict} is there and it is non-zero return a dictionary
-+		containing all the information of the mapping with the
-+		following items:
-+		  "lhs"	     The {lhs} of the mapping.
-+		  "rhs"	     The {rhs} of the mapping as typed.
-+		  "silent"   1 for a |:map-silent| mapping, else 0.
-+		  "noremap"  1 if the {rhs} of the mapping is remappable.
-+		  "expr"     1 for an expression mapping (|:map-<expr>|).
-+		  "buffer"   1 for a buffer local mapping (|:map-local|).
-+		  "mode"     Modes for which the mapping is defined. In
-+			     addition to the modes mentioned above, these
-+			     characters will be used:
-+			     " "     Normal, Visual and Operator-pending
-+			     "!"     Insert and Commandline mode
-+				     (|mapmpde-ic|)
-+		  "sid"	     the Script local ID, used for <sid> mappings
-+			     (|<SID>|)
-+
- 		The mappings local to the current buffer are checked first,
- 		then the global mappings.
- 		This function can be used to map a key even when it's already
-diff -Naur vim73.orig/runtime/doc/netbeans.txt vim73/runtime/doc/netbeans.txt
---- vim73.orig/runtime/doc/netbeans.txt	2010-08-15 08:23:21.000000000 -0400
-+++ vim73/runtime/doc/netbeans.txt	2011-01-08 21:01:18.782656702 -0500
-@@ -1,4 +1,4 @@
--*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Jul 20
-+*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Aug 20
- 
- 
- 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
-@@ -118,7 +118,8 @@
- uncommenting a line with "--disable-netbeans" in the Makefile.
- 
- Currently the NetBeans interface is supported by Vim running in a terminal and
--by GVim when it is run with one of the following GUIs: GTK, GNOME, and Motif.
-+by GVim when it is run with one of the following GUIs: GTK, GNOME, Windows,
-+Athena and Motif.
- 
- If Motif support is required the user must supply XPM libraries.  See
- |workshop-xpm| for details on obtaining the latest version of XPM.
-diff -Naur vim73.orig/runtime/doc/options.txt vim73/runtime/doc/options.txt
---- vim73.orig/runtime/doc/options.txt	2010-08-15 08:23:21.000000000 -0400
-+++ vim73/runtime/doc/options.txt	2011-01-08 21:01:19.258656350 -0500
-@@ -1434,6 +1434,15 @@
- 			explicitly accessed using the "* notation.  Also see
- 			|gui-clipboard|.
- 
-+	unnamedplus	A variant of "unnamed" flag which uses the clipboard
-+			register '+' (|quoteplus|) instead of register '*' for
-+			all operations except yank.  Yank shall copy the text
-+			into register '+' and also into '*' when "unnamed" is
-+			included.
-+			Only available with the |+x11| feature.
-+			Availability can be checked with: >
-+				if has('unnamedplus')
-+<
- 	autoselect	Works like the 'a' flag in 'guioptions': If present,
- 			then whenever Visual mode is started, or the Visual
- 			area extended, Vim tries to become the owner of the
-@@ -7530,8 +7539,9 @@
- 	!	When included, save and restore global variables that start
- 		with an uppercase letter, and don't contain a lowercase
- 		letter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
--		and "_K_L_M" are not.  Only String and Number types are
--		stored.
-+		and "_K_L_M" are not.  Nested List and Dict items may not be
-+		read back correctly, you end up with a string representation
-+		instead.
- 	"	Maximum number of lines saved for each register.  Old name of
- 		the '<' item, with the disadvantage that you need to put a
- 		backslash before the ", otherwise it will be recognized as the
-@@ -7747,6 +7757,17 @@
- 	a pattern from the list.  This avoids problems when a future version
- 	uses another default.
- 
-+
-+			*'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
-+'wildignorecase' 'wic'	boolean	(default off)
-+			global
-+			{not in Vi}
-+	When set case is ignored when completing file names and directories.
-+	Has no effect on systems where file name case is generally ignored.
-+	Does not apply when the shell is used to expand wildcards, which
-+	happens when there are special characters.
-+
-+
- 				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
- 'wildmenu' 'wmnu'	boolean	(default off)
- 			global
-diff -Naur vim73.orig/src/GvimExt/Make_ming.mak vim73/src/GvimExt/Make_ming.mak
---- vim73.orig/src/GvimExt/Make_ming.mak	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/GvimExt/Make_ming.mak	2011-01-08 21:01:19.490656530 -0500
-@@ -17,6 +17,17 @@
- # check also the executables
- MINGWOLD = no
- 
-+# Link against the shared versions of libgcc/libstdc++ by default.  Set
-+# STATIC_STDCPLUS to "yes" to link against static versions instead.
-+STATIC_STDCPLUS=no
-+#STATIC_STDCPLUS=yes
-+
-+# Note: -static-libstdc++ is not available until gcc 4.5.x.
-+LDFLAGS += -shared
-+ifeq (yes, $(STATIC_STDCPLUS))
-+LDFLAGS += -static-libgcc -static-libstdc++
-+endif
-+
- ifeq ($(CROSS),yes)
- DEL = rm
- ifeq ($(MINGWOLD),yes)
-@@ -34,6 +45,8 @@
- endif
- CXX := $(CROSS_COMPILE)g++
- WINDRES := $(CROSS_COMPILE)windres
-+WINDRES_CXX = $(CXX)
-+WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
- LIBS :=  -luuid
- RES  := gvimext.res
- DEFFILE = gvimext_ming.def
-@@ -46,7 +59,7 @@
- all: all-before $(DLL) all-after
- 
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
--	$(CXX) -shared $(CXXFLAGS) -s -o $@ \
-+	$(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
- 		-Wl,--enable-auto-image-base \
- 		-Wl,--enable-auto-import \
- 		-Wl,--whole-archive \
-@@ -58,7 +71,7 @@
- 	$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
- 
- $(RES): gvimext_ming.rc
--	$(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
-+	$(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
- 
- clean: clean-custom
- 	-$(DEL)  $(OBJ) $(RES) $(DLL)
-diff -Naur vim73.orig/src/Make_cyg.mak vim73/src/Make_cyg.mak
---- vim73.orig/src/Make_cyg.mak	2010-08-02 15:09:22.000000000 -0400
-+++ vim73/src/Make_cyg.mak	2011-01-08 21:01:19.102656144 -0500
-@@ -1,6 +1,6 @@
- #
- # Makefile for VIM on Win32, using Cygnus gcc
--# Last updated by Dan Sharp.  Last Change: 2010 Feb 24
-+# Last updated by Dan Sharp.  Last Change: 2010 Nov 03
- #
- # Also read INSTALLpc.txt!
- #
-@@ -27,6 +27,7 @@
- #   MZSCHEME_VER      define to version of MzScheme being used (209_000)
- #   DYNAMIC_MZSCHEME  no or yes: use yes to load the MzScheme DLLs dynamically (yes)
- #   MZSCHEME_DLLS     path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
-+#   MZSCHEME_USE_RACKET  define to use "racket" instead of "mzsch".
- # LUA	define to path to Lua dir to get Lua support (not defined)
- #   LUA_VER	    define to version of Lua being used (51)
- #   DYNAMIC_LUA  no or yes: use yes to load the Lua DLL dynamically (yes)
-@@ -254,16 +255,22 @@
- MZSCHEME_GENERATE_BASE=no
- endif
- 
-+ifndef MZSCHEME_USE_RACKET
-+MZSCHEME_MAIN_LIB=mzsch
-+else
-+MZSCHEME_MAIN_LIB=racket
-+endif
-+
- ifeq (yes, $(DYNAMIC_MZSCHEME))
--DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
-+DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- else
- ifndef MZSCHEME_DLLS
- MZSCHEME_DLLS = $(MZSCHEME)
- endif
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
--MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
-+MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
- else
--MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
-+MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
- endif
-diff -Naur vim73.orig/src/Make_ming.mak vim73/src/Make_ming.mak
---- vim73.orig/src/Make_ming.mak	2010-08-02 15:09:43.000000000 -0400
-+++ vim73/src/Make_ming.mak	2011-01-08 21:01:19.490656530 -0500
-@@ -56,6 +56,12 @@
- NETBEANS=$(GUI)
- 
- 
-+# Link against the shared version of libstdc++ by default.  Set
-+# STATIC_STDCPLUS to "yes" to link against static version instead.
-+ifndef STATIC_STDCPLUS
-+STATIC_STDCPLUS=no
-+endif
-+
- # If the user doesn't want gettext, undefine it.
- ifeq (no, $(GETTEXT))
- GETTEXT=
-@@ -141,11 +147,17 @@
- MZSCHEME_GENERATE_BASE=no
- endif
- 
-+ifndef MZSCHEME_USE_RACKET
-+MZSCHEME_MAIN_LIB=mzsch
-+else
-+MZSCHEME_MAIN_LIB=racket
-+endif
-+
- ifeq (no,$(DYNAMIC_MZSCHEME))
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
--MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
-+MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
- else
--MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
-+MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- # the modern MinGW can dynamically link to dlls directly.
- # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
-@@ -304,11 +316,13 @@
- endif
- CC := $(CROSS_COMPILE)gcc
- WINDRES := $(CROSS_COMPILE)windres
-+WINDRES_CC = $(CC)
- 
- #>>>>> end of choices
- ###########################################################################
- 
- CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
-+WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
- 
- ifdef GETTEXT
- DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
-@@ -343,7 +357,7 @@
- ifdef MZSCHEME
- CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
- ifeq (yes, $(DYNAMIC_MZSCHEME))
--CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
-+CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- endif
- endif
- 
-@@ -571,8 +585,13 @@
- endif
- 
- ifeq (yes, $(OLE))
--LIB += -loleaut32 -lstdc++
-+LIB += -loleaut32
- OBJ += $(OUTDIR)/if_ole.o
-+ifeq (yes, $(STATIC_STDCPLUS))
-+LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
-+else
-+LIB += -lstdc++
-+endif
- endif
- 
- ifeq (yes, $(MBYTE))
-@@ -650,10 +669,10 @@
- 	$(CC) -c $(CFLAGS) $< -o $@
- 
- $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
--	$(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
-+	$(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
- 
- $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
--	$(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
-+	$(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
- 
- $(OUTDIR):
- 	$(MKDIR) $(OUTDIR)
-diff -Naur vim73.orig/src/Make_mvc.mak vim73/src/Make_mvc.mak
---- vim73.orig/src/Make_mvc.mak	2010-07-18 15:24:20.000000000 -0400
-+++ vim73/src/Make_mvc.mak	2011-01-08 21:01:19.314657721 -0500
-@@ -380,9 +380,6 @@
- !if "$(_NMAKE_VER)" == "10.00.30319.01"
- MSVCVER = 10.0
- !endif
--!if "$(_NMAKE_VER)" == "9.00.30729.01"
--MSVCVER = 9.0
--!endif
- !endif
- 
- # Abort bulding VIM if version of VC is unrecognised.
-@@ -705,12 +702,18 @@
- MZSCHEME_VER = 205_000
- !endif
- CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
--!if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
--# for MzScheme 4.x we need to include byte code for basic Scheme stuff
-+!if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
-+	|| EXIST("$(MZSCHEME)\collects\scheme\base.rkt") 
-+# for MzScheme >= 4 we need to include byte code for basic Scheme stuff
- MZSCHEME_EXTRA_DEP = mzscheme_base.c
- CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
- !endif
--!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
-+!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
-+MZSCHEME_MAIN_LIB=mzsch
-+!else
-+MZSCHEME_MAIN_LIB=racket
-+!endif
-+!if EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
- 	&& !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
- !message Building with Precise GC
- MZSCHEME_PRECISE_GC = yes
-@@ -722,7 +725,7 @@
- !endif
- !message MzScheme DLLs will be loaded dynamically
- CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
--		-DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
-+		-DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
- 		-DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- !else
- !if "$(MZSCHEME_DEBUG)" == "yes"
-@@ -730,10 +733,10 @@
- !endif
- !if "$(MZSCHEME_PRECISE_GC)" == "yes"
- # Precise GC does not use separate dll
--MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
-+MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
- !else
- MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
--		$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
-+		$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
- !endif
- !endif
- MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
-diff -Naur vim73.orig/src/Makefile vim73/src/Makefile
---- vim73.orig/src/Makefile	2010-08-15 08:56:15.000000000 -0400
-+++ vim73/src/Makefile	2011-01-08 21:01:19.114655467 -0500
-@@ -414,12 +414,16 @@
- # However, this may still cause problems, such as "import termios" failing.
- # Build two separate versions of Vim in that case.
- #CONF_OPT_PYTHON = --enable-pythoninterp
-+#CONF_OPT_PYTHON = --enable-pythoninterp=dynamic
- #CONF_OPT_PYTHON3 = --enable-python3interp
-+#CONF_OPT_PYTHON3 = --enable-python3interp=dynamic
- 
- # RUBY
- # Uncomment this when you want to include the Ruby interface.
-+# First one for static linking, second one for loading when used.
- # Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
- #CONF_OPT_RUBY = --enable-rubyinterp
-+#CONF_OPT_RUBY = --enable-rubyinterp=dynamic
- #CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
- 
- # TCL
-@@ -1047,8 +1051,9 @@
- INSTALL_DATA	= cp
- INSTALL_DATA_R	= cp -r
- 
--### Program to run on installed binary
-+### Program to run on installed binary.  Use the second one to disable strip.
- #STRIP = strip
-+#STRIP = /bin/true
- 
- ### Permissions for binaries  {{{1
- BINMOD = 755
-@@ -1321,7 +1326,7 @@
- .SUFFIXES: .c .o .pro
- 
- PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
--POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS)
-+POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
- 
- ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
- 
-@@ -1329,7 +1334,7 @@
- # with "-E".
- OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
- 
--LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
-+LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
- 
- LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
- 
-@@ -1695,7 +1700,8 @@
- 	$(CCC) version.c -o objects/version.o
- 	@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
- 		-o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
--		MAKE="$(MAKE)" sh $(srcdir)/link.sh
-+		MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
-+		sh $(srcdir)/link.sh
- 
- xxd/xxd$(EXEEXT): xxd/xxd.c
- 	cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
-@@ -2532,7 +2538,7 @@
- 	$(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
- 
- objects/if_ruby.o: if_ruby.c
--	$(CCC) -o $@ if_ruby.c
-+	$(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c
- 
- objects/if_sniff.o: if_sniff.c
- 	$(CCC) -o $@ if_sniff.c
-diff -Naur vim73.orig/src/auto/configure vim73/src/auto/configure
---- vim73.orig/src/auto/configure	2010-08-13 10:17:15.000000000 -0400
-+++ vim73/src/auto/configure	2011-01-08 21:01:19.190656939 -0500
-@@ -593,6 +593,7 @@
- 
- ac_subst_vars='LTLIBOBJS
- LIBOBJS
-+LINK_AS_NEEDED
- DEPEND_CFLAGS_FILTER
- MAKEMO
- MSGFMT
-@@ -1427,7 +1428,7 @@
-   --enable-pythoninterp=OPTS   Include Python interpreter. default=no OPTS=no/yes/dynamic
-   --enable-python3interp=OPTS   Include Python3 interpreter. default=no OPTS=no/yes/dynamic
-   --enable-tclinterp      Include Tcl interpreter.
--  --enable-rubyinterp     Include Ruby interpreter.
-+  --enable-rubyinterp=OPTS     Include Ruby interpreter.  default=no OPTS=no/yes/dynamic
-   --enable-cscope         Include cscope interface.
-   --enable-workshop       Include Sun Visual Workshop support.
-   --disable-netbeans      Disable NetBeans integration support.
-@@ -4862,16 +4863,36 @@
-       else
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
--	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
--$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
--	if test -f /usr/include/plt/scheme.h; then
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket" >&5
-+$as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket... " >&6; }
-+	if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
- 	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
--	  SCHEME_INC=/usr/include/plt
-+	  SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
- 	else
- 	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
--	  vi_cv_path_mzscheme_pfx=
-+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
-+$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
-+	  if test -f /usr/include/plt/scheme.h; then
-+	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+	    SCHEME_INC=/usr/include/plt
-+	  else
-+	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/racket/" >&5
-+$as_echo_n "checking if scheme.h can be found in /usr/include/racket/... " >&6; }
-+	    if test -f /usr/include/racket/scheme.h; then
-+	      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+	      SCHEME_INC=/usr/include/racket
-+	    else
-+	      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+	      vi_cv_path_mzscheme_pfx=
-+	    fi
-+	  fi
- 	fi
-       fi
-     fi
-@@ -4883,12 +4904,22 @@
-     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
-       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
-       MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
--    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
-+      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
-+      MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
-+      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
-       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-     else
-             if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
-         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- 	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
-+        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
-+	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
-+        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
-       else
-         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
-       fi
-@@ -4901,10 +4932,20 @@
-     fi
-     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
-       SCHEME_COLLECTS=lib/plt/
-+    else
-+      if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-+	SCHEME_COLLECTS=lib/racket/
-+      fi
-     fi
-     if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
--            MZSCHEME_EXTRA="mzscheme_base.c"
--      MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
-+      MZSCHEME_EXTRA="mzscheme_base.c"
-+    else
-+      if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
-+	MZSCHEME_EXTRA="mzscheme_base.c"
-+      fi
-+    fi
-+    if test "X$MZSCHEME_EXTRA" != "X" ; then
-+            MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
-       MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
-     fi
-     MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-@@ -5285,9 +5326,9 @@
- 
- 	PYTHON_LIBS="${vi_cv_path_python_plibs}"
- 	if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
--	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
-+	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- 	else
--	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
-+	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- 	fi
- 	PYTHON_SRC="if_python.c"
- 		if test "x$MACOSX" = "xyes"; then
-@@ -5298,7 +5339,7 @@
- 	if test "${vi_cv_var_python_version}" = "1.4"; then
- 	   PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- 	fi
--	PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-+    PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
- 
- 								{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
- $as_echo_n "checking if -pthread should be used... " >&6; }
-@@ -5560,9 +5601,9 @@
- 
-       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
-       if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
--        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
-+        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-       else
--        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
-+        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-       fi
-       PYTHON3_SRC="if_python3.c"
-             if test "x$MACOSX" = "xyes"; then
-@@ -5667,10 +5708,10 @@
- 
-   $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
- 
--  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
--$as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
-+$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
-   cflags_save=$CFLAGS
--  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
-+  CFLAGS="$CFLAGS $PYTHON_CFLAGS"
-   ldflags_save=$LDFLAGS
-   LDFLAGS="$LDFLAGS -ldl"
-   if test "$cross_compiling" = yes; then :
-@@ -5689,15 +5730,17 @@
-      * Only the first pyhton version used will be switched on.
-      */
- 
--    int no_rtl_global_needed_for(char *python_instsoname)
-+    int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
-     {
-       int needed = 0;
-       void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-       if (pylib != 0)
-       {
-+          void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
-           void (*init)(void) = dlsym(pylib, "Py_Initialize");
-           int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-           void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+          (*pfx)(prefix);
-           (*init)();
-           needed = (*simple)("import termios") == -1;
-           (*final)();
-@@ -5709,7 +5752,7 @@
-     int main(int argc, char** argv)
-     {
-       int not_needed = 0;
--      if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
-+      if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
-             not_needed = 1;
-       return !not_needed;
-     }
-@@ -5726,8 +5769,76 @@
-   conftest.$ac_objext conftest.beam conftest.$ac_ext
- fi
- 
-+
-   CFLAGS=$cflags_save
-   LDFLAGS=$ldflags_save
-+
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
-+$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
-+  cflags_save=$CFLAGS
-+  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
-+  ldflags_save=$LDFLAGS
-+  LDFLAGS="$LDFLAGS -ldl"
-+  if test "$cross_compiling" = yes; then :
-+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error "cannot run test program while cross compiling
-+See \`config.log' for more details." "$LINENO" 5; }
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+    #include <dlfcn.h>
-+    #include <wchar.h>
-+    /* If this program fails, then RTLD_GLOBAL is needed.
-+     * RTLD_GLOBAL will be used and then it is not possible to
-+     * have both python versions enabled in the same vim instance.
-+     * Only the first pyhton version used will be switched on.
-+     */
-+
-+    int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
-+    {
-+      int needed = 0;
-+      void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-+      if (pylib != 0)
-+      {
-+          void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
-+          void (*init)(void) = dlsym(pylib, "Py_Initialize");
-+          int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-+          void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+          (*pfx)(prefix);
-+          (*init)();
-+          needed = (*simple)("import termios") == -1;
-+          (*final)();
-+          dlclose(pylib);
-+      }
-+      return !needed;
-+    }
-+
-+    int main(int argc, char** argv)
-+    {
-+      int not_needed = 0;
-+      if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
-+            not_needed = 1;
-+      return !not_needed;
-+    }
-+_ACEOF
-+if ac_fn_c_try_run "$LINENO"; then :
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
-+
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+  conftest.$ac_objext conftest.beam conftest.$ac_ext
-+fi
-+
-+
-+  CFLAGS=$cflags_save
-+  LDFLAGS=$ldflags_save
-+
-   PYTHON_SRC="if_python.c"
-   PYTHON_OBJ="objects/if_python.o"
-   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
-@@ -6103,7 +6214,7 @@
- 
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
- $as_echo "$enable_rubyinterp" >&6; }
--if test "$enable_rubyinterp" = "yes"; then
-+if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
- $as_echo_n "checking --with-ruby-command argument... " >&6; }
- 
-@@ -6209,6 +6320,13 @@
- 	RUBY_PRO="if_ruby.pro"
- 	$as_echo "#define FEAT_RUBY 1" >>confdefs.h
- 
-+	if test "$enable_rubyinterp" = "dynamic"; then
-+	  libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG["RUBY_SO_NAME"], Config::CONFIG["DLEXT"]'`
-+	  $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
-+
-+	  RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-+	  RUBY_LIBS=
-+	fi
-       else
- 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
- $as_echo "not found; disabling Ruby" >&6; }
-@@ -12357,6 +12475,23 @@
- fi
- 
- 
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
-+$as_echo_n "checking linker --as-needed support... " >&6; }
-+LINK_AS_NEEDED=
-+# Check if linker supports --as-needed and --no-as-needed options
-+if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
-+  LDFLAGS="$LDFLAGS -Wl,--as-needed"
-+  LINK_AS_NEEDED=yes
-+fi
-+if test "$LINK_AS_NEEDED" = yes; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+$as_echo "yes" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
- ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
- 
- cat >confcache <<\_ACEOF
-diff -Naur vim73.orig/src/buffer.c vim73/src/buffer.c
---- vim73.orig/src/buffer.c	2010-08-13 05:14:35.000000000 -0400
-+++ vim73/src/buffer.c	2011-01-08 21:01:19.026657243 -0500
-@@ -639,6 +639,9 @@
-     {
- 	clear_wininfo(buf);		/* including window-local options */
- 	free_buf_options(buf, TRUE);
-+#ifdef FEAT_SPELL
-+	ga_clear(&buf->b_s.b_langp);
-+#endif
-     }
- #ifdef FEAT_EVAL
-     vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
-@@ -661,9 +664,6 @@
-     vim_free(buf->b_start_fenc);
-     buf->b_start_fenc = NULL;
- #endif
--#ifdef FEAT_SPELL
--    ga_clear(&buf->b_s.b_langp);
--#endif
- }
- 
- /*
-@@ -1288,9 +1288,12 @@
-     /* Go to the other buffer. */
-     set_curbuf(buf, action);
- 
--#if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
-+#if defined(FEAT_LISTCMDS) \
-+	&& (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
-     if (action == DOBUF_SPLIT)
--	curwin->w_p_scb = FALSE;	/* reset 'scrollbind' */
-+    {
-+	RESET_BINDING(curwin);	/* reset 'scrollbind' and 'cursorbind' */
-+    }
- #endif
- 
- #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
-@@ -1917,9 +1920,7 @@
- 		tabpage_new();
- 	    else if (win_split(0, 0) == FAIL)	/* Open in a new window */
- 		return FAIL;
--# ifdef FEAT_SCROLLBIND
--	    curwin->w_p_scb = FALSE;
--# endif
-+	    RESET_BINDING(curwin);
- 	}
-     }
- #endif
-diff -Naur vim73.orig/src/config.h.in vim73/src/config.h.in
---- vim73.orig/src/config.h.in	2010-08-13 09:45:27.000000000 -0400
-+++ vim73/src/config.h.in	2011-01-08 21:01:19.038657206 -0500
-@@ -349,6 +349,9 @@
- /* Define if you want to include the Ruby interpreter. */
- #undef FEAT_RUBY
- 
-+/* Define for linking via dlopen() or LoadLibrary() */
-+#undef DYNAMIC_RUBY
-+
- /* Define if you want to include the Tcl interpreter. */
- #undef FEAT_TCL
- 
-diff -Naur vim73.orig/src/config.mk.in vim73/src/config.mk.in
---- vim73.orig/src/config.mk.in	2010-07-17 11:28:51.000000000 -0400
-+++ vim73/src/config.mk.in	2011-01-08 21:01:19.118661627 -0500
-@@ -30,6 +30,7 @@
- CPP		= @CPP@
- CPP_MM		= @CPP_MM@
- DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
-+LINK_AS_NEEDED	= @LINK_AS_NEEDED@
- X_CFLAGS	= @X_CFLAGS@
- X_LIBS_DIR	= @X_LIBS@
- X_PRE_LIBS	= @X_PRE_LIBS@
-diff -Naur vim73.orig/src/configure.in vim73/src/configure.in
---- vim73.orig/src/configure.in	2010-08-13 10:15:17.000000000 -0400
-+++ vim73/src/configure.in	2011-01-08 21:01:19.186662333 -0500
-@@ -568,13 +568,27 @@
- 	SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
-       else
- 	AC_MSG_RESULT(no)
--	AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
--	if test -f /usr/include/plt/scheme.h; then
-+	AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket)
-+	if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
- 	  AC_MSG_RESULT(yes)
--	  SCHEME_INC=/usr/include/plt
-+	  SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
- 	else
- 	  AC_MSG_RESULT(no)
--	  vi_cv_path_mzscheme_pfx=
-+	  AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
-+	  if test -f /usr/include/plt/scheme.h; then
-+	    AC_MSG_RESULT(yes)
-+	    SCHEME_INC=/usr/include/plt
-+	  else
-+	    AC_MSG_RESULT(no)
-+	    AC_MSG_CHECKING(if scheme.h can be found in /usr/include/racket/)
-+	    if test -f /usr/include/racket/scheme.h; then
-+	      AC_MSG_RESULT(yes)
-+	      SCHEME_INC=/usr/include/racket
-+	    else
-+	      AC_MSG_RESULT(no)
-+	      vi_cv_path_mzscheme_pfx=
-+	    fi
-+	  fi
- 	fi
-       fi
-     fi
-@@ -586,13 +600,23 @@
-     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
-       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
-       MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
--    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
-+      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
-+      MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
-+      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-+    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
-       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-     else
-       dnl Using shared objects
-       if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
-         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- 	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
-+        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
-+	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
-+        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
-       else
-         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
-       fi
-@@ -607,10 +631,20 @@
-     fi
-     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
-       SCHEME_COLLECTS=lib/plt/
-+    else
-+      if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-+	SCHEME_COLLECTS=lib/racket/
-+      fi
-     fi
-     if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
--      dnl need to generate bytecode for MzScheme base
-       MZSCHEME_EXTRA="mzscheme_base.c"
-+    else
-+      if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
-+	MZSCHEME_EXTRA="mzscheme_base.c"
-+      fi
-+    fi
-+    if test "X$MZSCHEME_EXTRA" != "X" ; then
-+      dnl need to generate bytecode for MzScheme base
-       MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
-       MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
-     fi
-@@ -857,9 +891,9 @@
- 
- 	PYTHON_LIBS="${vi_cv_path_python_plibs}"
- 	if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
--	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
-+	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- 	else
--	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
-+	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- 	fi
- 	PYTHON_SRC="if_python.c"
- 	dnl For Mac OSX 10.2 config.o is included in the Python library.
-@@ -871,7 +905,7 @@
- 	if test "${vi_cv_var_python_version}" = "1.4"; then
- 	   PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- 	fi
--	PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-+    PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
- 
- 	dnl On FreeBSD linking with "-pthread" is required to use threads.
- 	dnl _THREAD_SAFE must be used for compiling then.
-@@ -1029,9 +1063,9 @@
- 
-       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
-       if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
--        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
-+        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-       else
--        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
-+        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
-       fi
-       PYTHON3_SRC="if_python3.c"
-       dnl For Mac OSX 10.2 config.o is included in the Python library.
-@@ -1109,9 +1143,9 @@
- if test "$python_ok" = yes && test "$python3_ok" = yes; then
-   AC_DEFINE(DYNAMIC_PYTHON)
-   AC_DEFINE(DYNAMIC_PYTHON3)
--  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
-+  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
-   cflags_save=$CFLAGS
--  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
-+  CFLAGS="$CFLAGS $PYTHON_CFLAGS"
-   ldflags_save=$LDFLAGS
-   LDFLAGS="$LDFLAGS -ldl"
-   AC_RUN_IFELSE([
-@@ -1122,15 +1156,17 @@
-      * Only the first pyhton version used will be switched on.
-      */
- 
--    int no_rtl_global_needed_for(char *python_instsoname)
-+    int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
-     {
-       int needed = 0;
-       void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-       if (pylib != 0)
-       {
-+          void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
-           void (*init)(void) = dlsym(pylib, "Py_Initialize");
-           int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-           void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+          (*pfx)(prefix);
-           (*init)();
-           needed = (*simple)("import termios") == -1;
-           (*final)();
-@@ -1142,13 +1178,60 @@
-     int main(int argc, char** argv)
-     {
-       int not_needed = 0;
--      if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
-+      if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
-             not_needed = 1;
-       return !not_needed;
-     }],
-     [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
-+
-+  CFLAGS=$cflags_save
-+  LDFLAGS=$ldflags_save
-+
-+  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
-+  cflags_save=$CFLAGS
-+  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
-+  ldflags_save=$LDFLAGS
-+  LDFLAGS="$LDFLAGS -ldl"
-+  AC_RUN_IFELSE([
-+    #include <dlfcn.h>
-+    #include <wchar.h>
-+    /* If this program fails, then RTLD_GLOBAL is needed.
-+     * RTLD_GLOBAL will be used and then it is not possible to
-+     * have both python versions enabled in the same vim instance.
-+     * Only the first pyhton version used will be switched on.
-+     */
-+
-+    int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
-+    {
-+      int needed = 0;
-+      void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-+      if (pylib != 0)
-+      {
-+          void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
-+          void (*init)(void) = dlsym(pylib, "Py_Initialize");
-+          int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-+          void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+          (*pfx)(prefix);
-+          (*init)();
-+          needed = (*simple)("import termios") == -1;
-+          (*final)();
-+          dlclose(pylib);
-+      }
-+      return !needed;
-+    }
-+
-+    int main(int argc, char** argv)
-+    {
-+      int not_needed = 0;
-+      if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
-+            not_needed = 1;
-+      return !not_needed;
-+    }],
-+    [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
-+
-   CFLAGS=$cflags_save
-   LDFLAGS=$ldflags_save
-+
-   PYTHON_SRC="if_python.c"
-   PYTHON_OBJ="objects/if_python.o"
-   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
-@@ -1299,10 +1382,10 @@
- 
- AC_MSG_CHECKING(--enable-rubyinterp argument)
- AC_ARG_ENABLE(rubyinterp,
--	[  --enable-rubyinterp     Include Ruby interpreter.], ,
-+	[  --enable-rubyinterp[=OPTS]     Include Ruby interpreter.  [default=no] [OPTS=no/yes/dynamic]], ,
- 	[enable_rubyinterp="no"])
- AC_MSG_RESULT($enable_rubyinterp)
--if test "$enable_rubyinterp" = "yes"; then
-+if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
-   AC_MSG_CHECKING(--with-ruby-command argument)
-   AC_ARG_WITH(ruby-command, [  --with-ruby-command=RUBY  name of the Ruby command (default: ruby)],
- 	RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
-@@ -1360,6 +1443,12 @@
- 	RUBY_OBJ="objects/if_ruby.o"
- 	RUBY_PRO="if_ruby.pro"
- 	AC_DEFINE(FEAT_RUBY)
-+	if test "$enable_rubyinterp" = "dynamic"; then
-+	  libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG[["RUBY_SO_NAME"]], Config::CONFIG[["DLEXT"]]'`
-+	  AC_DEFINE(DYNAMIC_RUBY)
-+	  RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-+	  RUBY_LIBS=
-+	fi
-       else
- 	AC_MSG_RESULT(not found; disabling Ruby)
-       fi
-@@ -3487,6 +3576,23 @@
- fi
- AC_SUBST(DEPEND_CFLAGS_FILTER)
- 
-+dnl link.sh tries to avoid overlinking in a hackish way.
-+dnl At least GNU ld supports --as-needed which provides the same functionality
-+dnl at linker level. Let's use it.
-+AC_MSG_CHECKING(linker --as-needed support)
-+LINK_AS_NEEDED=
-+# Check if linker supports --as-needed and --no-as-needed options
-+if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
-+  LDFLAGS="$LDFLAGS -Wl,--as-needed"
-+  LINK_AS_NEEDED=yes
-+fi
-+if test "$LINK_AS_NEEDED" = yes; then
-+  AC_MSG_RESULT(yes)
-+else
-+  AC_MSG_RESULT(no)
-+fi
-+AC_SUBST(LINK_AS_NEEDED)
-+
- dnl write output files
- AC_OUTPUT(auto/config.mk:config.mk.in)
- 
-diff -Naur vim73.orig/src/diff.c vim73/src/diff.c
---- vim73.orig/src/diff.c	2010-07-31 09:35:21.000000000 -0400
-+++ vim73/src/diff.c	2011-01-08 20:59:40.994788713 -0500
-@@ -1127,11 +1127,13 @@
- # endif
- 
-     wp->w_p_diff = TRUE;
-+    /* Use 'scrollbind' and 'cursorbind' when available */
-+#ifdef FEAT_SCROLLBIND
-+    wp->w_p_scb = TRUE;
-+#endif
- #ifdef FEAT_CURSORBIND
--    /* Use cursorbind if it's available */
-     wp->w_p_crb = TRUE;
- #endif
--    wp->w_p_scb = TRUE;
-     wp->w_p_wrap = FALSE;
- # ifdef FEAT_FOLDING
-     curwin = wp;
-@@ -1177,10 +1179,7 @@
- 	{
- 	    /* Set 'diff', 'scrollbind' off and 'wrap' on. */
- 	    wp->w_p_diff = FALSE;
--#ifdef FEAT_CURSORBIND
--	    wp->w_p_crb = FALSE;
--#endif
--	    wp->w_p_scb = FALSE;
-+	    RESET_BINDING(wp);
- 	    wp->w_p_wrap = TRUE;
- #ifdef FEAT_FOLDING
- 	    curwin = wp;
-diff -Naur vim73.orig/src/edit.c vim73/src/edit.c
---- vim73.orig/src/edit.c	2010-08-08 08:55:05.000000000 -0400
-+++ vim73/src/edit.c	2011-01-08 21:01:19.146656810 -0500
-@@ -58,6 +58,10 @@
- };
- 
- static char e_hitend[] = N_("Hit end of paragraph");
-+#ifdef FEAT_COMPL_FUNC
-+static char e_complwin[] = N_("E839: Completion function changed window");
-+static char e_compldel[] = N_("E840: Completion function deleted text");
-+#endif
- 
- /*
-  * Structure used to store one match for insert completion.
-@@ -2658,6 +2662,7 @@
-     if (stop_arrow() == FAIL)
- 	return;
- 
-+    compl_direction = FORWARD;
-     if (startcol > curwin->w_cursor.col)
- 	startcol = curwin->w_cursor.col;
-     compl_col = startcol;
-@@ -3833,6 +3838,8 @@
-     char_u	*args[2];
-     char_u	*funcname;
-     pos_T	pos;
-+    win_T	*curwin_save;
-+    buf_T	*curbuf_save;
- 
-     funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
-     if (*funcname == NUL)
-@@ -3843,13 +3850,27 @@
-     args[1] = base;
- 
-     pos = curwin->w_cursor;
-+    curwin_save = curwin;
-+    curbuf_save = curbuf;
-     matchlist = call_func_retlist(funcname, 2, args, FALSE);
-+    if (curwin_save != curwin || curbuf_save != curbuf)
-+    {
-+	EMSG(_(e_complwin));
-+	goto theend;
-+    }
-     curwin->w_cursor = pos;	/* restore the cursor position */
--    if (matchlist == NULL)
--	return;
-+    check_cursor();
-+    if (!equalpos(curwin->w_cursor, pos))
-+    {
-+	EMSG(_(e_compldel));
-+	goto theend;
-+    }
-+    if (matchlist != NULL)
-+	ins_compl_add_list(matchlist);
- 
--    ins_compl_add_list(matchlist);
--    list_unref(matchlist);
-+theend:
-+    if (matchlist != NULL)
-+	list_unref(matchlist);
- }
- #endif /* FEAT_COMPL_FUNC */
- 
-@@ -3889,6 +3910,7 @@
-     char_u	*word;
-     int		icase = FALSE;
-     int		adup = FALSE;
-+    int		aempty = FALSE;
-     char_u	*(cptext[CPT_COUNT]);
- 
-     if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
-@@ -3906,13 +3928,15 @@
- 	    icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
- 	if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
- 	    adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
-+	if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
-+	    aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
-     }
-     else
-     {
- 	word = get_tv_string_chk(tv);
- 	vim_memset(cptext, 0, sizeof(cptext));
-     }
--    if (word == NULL || *word == NUL)
-+    if (word == NULL || (!aempty && *word == NUL))
- 	return FAIL;
-     return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
- }
-@@ -4994,6 +5018,8 @@
- 	    int		col;
- 	    char_u	*funcname;
- 	    pos_T	pos;
-+	    win_T	*curwin_save;
-+	    buf_T	*curbuf_save;
- 
- 	    /* Call 'completefunc' or 'omnifunc' and get pattern length as a
- 	     * string */
-@@ -5009,8 +5035,21 @@
- 	    args[0] = (char_u *)"1";
- 	    args[1] = NULL;
- 	    pos = curwin->w_cursor;
-+	    curwin_save = curwin;
-+	    curbuf_save = curbuf;
- 	    col = call_func_retnr(funcname, 2, args, FALSE);
-+	    if (curwin_save != curwin || curbuf_save != curbuf)
-+	    {
-+		EMSG(_(e_complwin));
-+		return FAIL;
-+	    }
- 	    curwin->w_cursor = pos;	/* restore the cursor position */
-+	    check_cursor();
-+	    if (!equalpos(curwin->w_cursor, pos))
-+	    {
-+		EMSG(_(e_compldel));
-+		return FAIL;
-+	    }
- 
- 	    if (col < 0)
- 		col = curs_col;
-diff -Naur vim73.orig/src/eval.c vim73/src/eval.c
---- vim73.orig/src/eval.c	2010-08-09 16:12:14.000000000 -0400
-+++ vim73/src/eval.c	2011-01-08 21:01:19.506657797 -0500
-@@ -10,9 +10,6 @@
- /*
-  * eval.c: Expression evaluation.
-  */
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for mch_open(), must be before vim.h */
--#endif
- 
- #include "vim.h"
- 
-@@ -362,6 +359,7 @@
-     {VV_NAME("operator",	 VAR_STRING), VV_RO},
-     {VV_NAME("searchforward",	 VAR_NUMBER), 0},
-     {VV_NAME("oldfiles",	 VAR_LIST), 0},
-+    {VV_NAME("windowid",	 VAR_NUMBER), VV_RO},
- };
- 
- /* shorthand */
-@@ -433,9 +431,9 @@
- static void listitem_free __ARGS((listitem_T *item));
- static void listitem_remove __ARGS((list_T *l, listitem_T *item));
- static long list_len __ARGS((list_T *l));
--static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
--static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
--static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
-+static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
-+static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
-+static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
- static listitem_T *list_find __ARGS((list_T *l, long n));
- static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
- static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
-@@ -2325,7 +2323,7 @@
- 	    else if (endchars != NULL
- 			     && vim_strchr(endchars, *skipwhite(arg)) == NULL)
- 		EMSG(_(e_letunexp));
--	    else
-+	    else if (!check_secure())
- 	    {
- 		c1 = name[len];
- 		name[len] = NUL;
-@@ -3337,6 +3335,15 @@
-     int		failed = FALSE;
-     funcdict_T	fudi;
- 
-+    if (eap->skip)
-+    {
-+	/* trans_function_name() doesn't work well when skipping, use eval0()
-+	 * instead to skip to any following command, e.g. for:
-+	 *   :if 0 | call dict.foo().bar() | endif  */
-+	eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
-+	return;
-+    }
-+
-     tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
-     if (fudi.fd_newkey != NULL)
-     {
-@@ -4349,7 +4356,8 @@
- 		else
- 		{
- 		    /* Compare two Lists for being equal or unequal. */
--		    n1 = list_equal(rettv->vval.v_list, var2.vval.v_list, ic);
-+		    n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
-+								   ic, FALSE);
- 		    if (type == TYPE_NEQUAL)
- 			n1 = !n1;
- 		}
-@@ -4378,7 +4386,8 @@
- 		else
- 		{
- 		    /* Compare two Dictionaries for being equal or unequal. */
--		    n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict, ic);
-+		    n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
-+								   ic, FALSE);
- 		    if (type == TYPE_NEQUAL)
- 			n1 = !n1;
- 		}
-@@ -5913,10 +5922,11 @@
-  * Return TRUE when two lists have exactly the same values.
-  */
-     static int
--list_equal(l1, l2, ic)
-+list_equal(l1, l2, ic, recursive)
-     list_T	*l1;
-     list_T	*l2;
-     int		ic;	/* ignore case for strings */
-+    int		recursive;  /* TRUE when used recursively */
- {
-     listitem_T	*item1, *item2;
- 
-@@ -5930,7 +5940,7 @@
-     for (item1 = l1->lv_first, item2 = l2->lv_first;
- 	    item1 != NULL && item2 != NULL;
- 			       item1 = item1->li_next, item2 = item2->li_next)
--	if (!tv_equal(&item1->li_tv, &item2->li_tv, ic))
-+	if (!tv_equal(&item1->li_tv, &item2->li_tv, ic, recursive))
- 	    return FALSE;
-     return item1 == NULL && item2 == NULL;
- }
-@@ -5952,10 +5962,11 @@
-  * Return TRUE when two dictionaries have exactly the same key/values.
-  */
-     static int
--dict_equal(d1, d2, ic)
-+dict_equal(d1, d2, ic, recursive)
-     dict_T	*d1;
-     dict_T	*d2;
-     int		ic;	/* ignore case for strings */
-+    int		recursive; /* TRUE when used recursively */
- {
-     hashitem_T	*hi;
-     dictitem_T	*item2;
-@@ -5976,7 +5987,7 @@
- 	    item2 = dict_find(d2, hi->hi_key, -1);
- 	    if (item2 == NULL)
- 		return FALSE;
--	    if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic))
-+	    if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic, recursive))
- 		return FALSE;
- 	    --todo;
- 	}
-@@ -5984,41 +5995,54 @@
-     return TRUE;
- }
- 
-+static int tv_equal_recurse_limit;
-+
- /*
-  * Return TRUE if "tv1" and "tv2" have the same value.
-  * Compares the items just like "==" would compare them, but strings and
-  * numbers are different.  Floats and numbers are also different.
-  */
-     static int
--tv_equal(tv1, tv2, ic)
-+tv_equal(tv1, tv2, ic, recursive)
-     typval_T *tv1;
-     typval_T *tv2;
--    int	    ic;	    /* ignore case */
-+    int	     ic;	    /* ignore case */
-+    int	     recursive;	    /* TRUE when used recursively */
- {
-     char_u	buf1[NUMBUFLEN], buf2[NUMBUFLEN];
-     char_u	*s1, *s2;
--    static int  recursive = 0;	    /* cach recursive loops */
-+    static int  recursive_cnt = 0;	    /* catch recursive loops */
-     int		r;
- 
-     if (tv1->v_type != tv2->v_type)
- 	return FALSE;
-+
-     /* Catch lists and dicts that have an endless loop by limiting
--     * recursiveness to 1000.  We guess they are equal then. */
--    if (recursive >= 1000)
-+     * recursiveness to a limit.  We guess they are equal then.
-+     * A fixed limit has the problem of still taking an awful long time.
-+     * Reduce the limit every time running into it. That should work fine for
-+     * deeply linked structures that are not recursively linked and catch
-+     * recursiveness quickly. */
-+    if (!recursive)
-+	tv_equal_recurse_limit = 1000;
-+    if (recursive_cnt >= tv_equal_recurse_limit)
-+    {
-+	--tv_equal_recurse_limit;
- 	return TRUE;
-+    }
- 
-     switch (tv1->v_type)
-     {
- 	case VAR_LIST:
--	    ++recursive;
--	    r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
--	    --recursive;
-+	    ++recursive_cnt;
-+	    r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic, TRUE);
-+	    --recursive_cnt;
- 	    return r;
- 
- 	case VAR_DICT:
--	    ++recursive;
--	    r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
--	    --recursive;
-+	    ++recursive_cnt;
-+	    r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic, TRUE);
-+	    --recursive_cnt;
- 	    return r;
- 
- 	case VAR_FUNC:
-@@ -7075,7 +7099,7 @@
- }
- 
- /*
-- * Add a list  entry to dictionary "d".
-+ * Add a list entry to dictionary "d".
-  * Returns FAIL when out of memory and when key already exists.
-  */
-     int
-@@ -7097,6 +7121,7 @@
- 	dictitem_free(item);
- 	return FAIL;
-     }
-+    ++list->lv_refcount;
-     return OK;
- }
- 
-@@ -7802,7 +7827,7 @@
-     {"log10",		1, 1, f_log10},
- #endif
-     {"map",		2, 2, f_map},
--    {"maparg",		1, 3, f_maparg},
-+    {"maparg",		1, 4, f_maparg},
-     {"mapcheck",	1, 3, f_mapcheck},
-     {"match",		2, 4, f_match},
-     {"matchadd",	2, 4, f_matchadd},
-@@ -9389,7 +9414,7 @@
- 	    }
- 
- 	    for ( ; li != NULL; li = li->li_next)
--		if (tv_equal(&li->li_tv, &argvars[1], ic))
-+		if (tv_equal(&li->li_tv, &argvars[1], ic, FALSE))
- 		    ++n;
- 	}
-     }
-@@ -9416,7 +9441,7 @@
- 		if (!HASHITEM_EMPTY(hi))
- 		{
- 		    --todo;
--		    if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic))
-+		    if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic, FALSE))
- 			++n;
- 		}
- 	    }
-@@ -9857,7 +9882,7 @@
-     char_u	*s;
-     int		len;
-     char_u	*errormsg;
--    int		flags = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
-+    int		options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
-     expand_T	xpc;
-     int		error = FALSE;
- 
-@@ -9875,12 +9900,14 @@
- 	 * for 'wildignore' and don't put matches for 'suffixes' at the end. */
- 	if (argvars[1].v_type != VAR_UNKNOWN
- 				    && get_tv_number_chk(&argvars[1], &error))
--	    flags |= WILD_KEEP_ALL;
-+	    options |= WILD_KEEP_ALL;
- 	if (!error)
- 	{
- 	    ExpandInit(&xpc);
- 	    xpc.xp_context = EXPAND_FILES;
--	    rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
-+	    if (p_wic)
-+		options += WILD_ICASE;
-+	    rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
- 	}
- 	else
- 	    rettv->vval.v_string = NULL;
-@@ -11653,7 +11680,7 @@
-     typval_T	*argvars;
-     typval_T	*rettv;
- {
--    int		flags = WILD_SILENT|WILD_USE_NL;
-+    int		options = WILD_SILENT|WILD_USE_NL;
-     expand_T	xpc;
-     int		error = FALSE;
- 
-@@ -11661,14 +11688,16 @@
-     * for 'wildignore' and don't put matches for 'suffixes' at the end. */
-     if (argvars[1].v_type != VAR_UNKNOWN
- 				&& get_tv_number_chk(&argvars[1], &error))
--	flags |= WILD_KEEP_ALL;
-+	options |= WILD_KEEP_ALL;
-     rettv->v_type = VAR_STRING;
-     if (!error)
-     {
- 	ExpandInit(&xpc);
- 	xpc.xp_context = EXPAND_FILES;
-+	if (p_wic)
-+	    options += WILD_ICASE;
- 	rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
--						       NULL, flags, WILD_ALL);
-+						     NULL, options, WILD_ALL);
-     }
-     else
- 	rettv->vval.v_string = NULL;
-@@ -12116,6 +12145,9 @@
- #ifdef FEAT_TOOLBAR
- 	"toolbar",
- #endif
-+#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+	"unnamedplus",
-+#endif
- #ifdef FEAT_USR_CMDS
- 	"user-commands",    /* was accidentally included in 5.4 */
- 	"user_commands",
-@@ -12572,7 +12604,7 @@
- 	}
- 
- 	for ( ; item != NULL; item = item->li_next, ++idx)
--	    if (tv_equal(&item->li_tv, &argvars[1], ic))
-+	    if (tv_equal(&item->li_tv, &argvars[1], ic, FALSE))
- 	    {
- 		rettv->vval.v_number = idx;
- 		break;
-@@ -13290,8 +13322,10 @@
-     char_u	*keys_buf = NULL;
-     char_u	*rhs;
-     int		mode;
--    garray_T	ga;
-     int		abbr = FALSE;
-+    int         get_dict = FALSE;
-+    mapblock_T	*mp;
-+    int		buffer_local;
- 
-     /* return empty string for failure */
-     rettv->v_type = VAR_STRING;
-@@ -13305,7 +13339,11 @@
-     {
- 	which = get_tv_string_buf_chk(&argvars[1], buf);
- 	if (argvars[2].v_type != VAR_UNKNOWN)
-+	{
- 	    abbr = get_tv_number(&argvars[2]);
-+	    if (argvars[3].v_type != VAR_UNKNOWN)
-+		get_dict = get_tv_number(&argvars[3]);
-+	}
-     }
-     else
- 	which = (char_u *)"";
-@@ -13315,19 +13353,34 @@
-     mode = get_map_mode(&which, 0);
- 
-     keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
--    rhs = check_map(keys, mode, exact, FALSE, abbr);
-+    rhs = check_map(keys, mode, exact, FALSE, abbr, &mp, &buffer_local);
-     vim_free(keys_buf);
--    if (rhs != NULL)
--    {
--	ga_init(&ga);
--	ga.ga_itemsize = 1;
--	ga.ga_growsize = 40;
- 
--	while (*rhs != NUL)
--	    ga_concat(&ga, str2special(&rhs, FALSE));
-+    if (!get_dict)
-+    {
-+	/* Return a string. */
-+	if (rhs != NULL)
-+	    rettv->vval.v_string = str2special_save(rhs, FALSE);
-+
-+    }
-+    else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL)
-+    {
-+	/* Return a dictionary. */
-+	char_u	    *lhs = str2special_save(mp->m_keys, TRUE);
-+	char_u	    *mapmode = map_mode_to_chars(mp->m_mode);
-+	dict_T	    *dict = rettv->vval.v_dict;
-+
-+	dict_add_nr_str(dict, "lhs",	 0L, lhs);
-+	dict_add_nr_str(dict, "rhs",     0L, mp->m_orig_str);
-+	dict_add_nr_str(dict, "noremap", mp->m_noremap ? 1L : 0L , NULL);
-+	dict_add_nr_str(dict, "expr",    mp->m_expr    ? 1L : 0L, NULL);
-+	dict_add_nr_str(dict, "silent",  mp->m_silent  ? 1L : 0L, NULL);
-+	dict_add_nr_str(dict, "sid",     (long)mp->m_script_ID, NULL);
-+	dict_add_nr_str(dict, "buffer",  (long)buffer_local, NULL);
-+	dict_add_nr_str(dict, "mode",    0L, mapmode);
- 
--	ga_append(&ga, NUL);
--	rettv->vval.v_string = (char_u *)ga.ga_data;
-+	vim_free(lhs);
-+	vim_free(mapmode);
-     }
- }
- 
-@@ -22519,18 +22572,21 @@
- 	if (tab != NULL)
- 	{
- 	    *tab++ = '\0';	/* isolate the variable name */
--	    if (*tab == 'S')	/* string var */
--		type = VAR_STRING;
-+	    switch (*tab)
-+	    {
-+		case 'S': type = VAR_STRING; break;
- #ifdef FEAT_FLOAT
--	    else if (*tab == 'F')
--		type = VAR_FLOAT;
-+		case 'F': type = VAR_FLOAT; break;
- #endif
-+		case 'D': type = VAR_DICT; break;
-+		case 'L': type = VAR_LIST; break;
-+	    }
- 
- 	    tab = vim_strchr(tab, '\t');
- 	    if (tab != NULL)
- 	    {
- 		tv.v_type = type;
--		if (type == VAR_STRING)
-+		if (type == VAR_STRING || type == VAR_DICT || type == VAR_LIST)
- 		    tv.vval.v_string = viminfo_readstring(virp,
- 				       (int)(tab - virp->vir_line + 1), TRUE);
- #ifdef FEAT_FLOAT
-@@ -22539,9 +22595,27 @@
- #endif
- 		else
- 		    tv.vval.v_number = atol((char *)tab + 1);
-+		if (type == VAR_DICT || type == VAR_LIST)
-+		{
-+		    typval_T *etv = eval_expr(tv.vval.v_string, NULL);
-+
-+		    if (etv == NULL)
-+			/* Failed to parse back the dict or list, use it as a
-+			 * string. */
-+			tv.v_type = VAR_STRING;
-+		    else
-+		    {
-+			vim_free(tv.vval.v_string);
-+			tv = *etv;
-+		    }
-+		}
-+
- 		set_var(virp->vir_line + 1, &tv, FALSE);
--		if (type == VAR_STRING)
-+
-+		if (tv.v_type == VAR_STRING)
- 		    vim_free(tv.vval.v_string);
-+		else if (tv.v_type == VAR_DICT || tv.v_type == VAR_LIST)
-+		    clear_tv(&tv);
- 	    }
- 	}
-     }
-@@ -22583,8 +22657,10 @@
- 		    case VAR_STRING: s = "STR"; break;
- 		    case VAR_NUMBER: s = "NUM"; break;
- #ifdef FEAT_FLOAT
--		    case VAR_FLOAT: s = "FLO"; break;
-+		    case VAR_FLOAT:  s = "FLO"; break;
- #endif
-+		    case VAR_DICT:   s = "DIC"; break;
-+		    case VAR_LIST:   s = "LIS"; break;
- 		    default: continue;
- 		}
- 		fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
-diff -Naur vim73.orig/src/ex_cmds.c vim73/src/ex_cmds.c
---- vim73.orig/src/ex_cmds.c	2010-08-13 05:14:35.000000000 -0400
-+++ vim73/src/ex_cmds.c	2011-01-08 21:01:19.370657515 -0500
-@@ -11,10 +11,6 @@
-  * ex_cmds.c: some functions for command line commands
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for mch_open(), must be before vim.h */
--#endif
--
- #include "vim.h"
- #include "version.h"
- 
-@@ -323,7 +319,8 @@
-     /* When sorting numbers "start_col_nr" is the number, not the column
-      * number. */
-     if (sort_nr)
--	result = l1.start_col_nr - l2.start_col_nr;
-+	result = l1.start_col_nr == l2.start_col_nr ? 0
-+				 : l1.start_col_nr > l2.start_col_nr ? 1 : -1;
-     else
-     {
- 	/* We need to copy one line into "sortbuf1", because there is no
-@@ -482,7 +479,7 @@
- 	     * of the match, by temporarily terminating the string there */
- 	    s2 = s + end_col;
- 	    c = *s2;
--	    (*s2) = 0;
-+	    *s2 = NUL;
- 	    /* Sorting on number: Store the number itself. */
- 	    p = s + start_col;
- 	    if (sort_hex)
-@@ -491,9 +488,13 @@
- 		s = skiptodigit(p);
- 	    if (s > p && s[-1] == '-')
- 		--s;  /* include preceding negative sign */
--	    vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
--					&nrs[lnum - eap->line1].start_col_nr, NULL);
--	    (*s2) = c;
-+	    if (*s == NUL)
-+		/* empty line should sort before any number */
-+		nrs[lnum - eap->line1].start_col_nr = -MAXLNUM;
-+	    else
-+		vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
-+				  &nrs[lnum - eap->line1].start_col_nr, NULL);
-+	    *s2 = c;
- 	}
- 	else
- 	{
-@@ -2700,6 +2701,10 @@
- 									TRUE);
- 		do_modelines(0);
- 	    }
-+
-+	    /* Autocommands may have changed buffer names, esp. when
-+	     * 'autochdir' is set. */
-+	    fname = curbuf->b_sfname;
- #endif
- 	}
- 
-@@ -3498,9 +3503,7 @@
- 	curbuf->b_p_bin = FALSE;	/* reset 'bin' before reading file */
- 	curwin->w_p_nu = 0;		/* no line numbers */
- 	curwin->w_p_rnu = 0;		/* no relative line numbers */
--#ifdef FEAT_SCROLLBIND
--	curwin->w_p_scb = FALSE;	/* no scroll binding */
--#endif
-+	RESET_BINDING(curwin);		/* no scroll or cursor binding */
- #ifdef FEAT_ARABIC
- 	curwin->w_p_arab = FALSE;	/* no arabic mode */
- #endif
-@@ -5471,9 +5474,8 @@
- 		return FALSE;
- 	    curwin->w_p_pvw = TRUE;
- 	    curwin->w_p_wfh = TRUE;
--# ifdef FEAT_SCROLLBIND
--	    curwin->w_p_scb = FALSE;	    /* don't take over 'scrollbind' */
--# endif
-+	    RESET_BINDING(curwin);	    /* don't take over 'scrollbind'
-+					       and 'cursorbind' */
- # ifdef FEAT_DIFF
- 	    curwin->w_p_diff = FALSE;	    /* no 'diff' */
- # endif
-@@ -6559,8 +6561,7 @@
- struct sign
- {
-     sign_T	*sn_next;	/* next sign in list */
--    int		sn_typenr;	/* type number of sign (negative if not equal
--				   to name) */
-+    int		sn_typenr;	/* type number of sign */
-     char_u	*sn_name;	/* name of sign */
-     char_u	*sn_icon;	/* name of pixmap */
- #ifdef FEAT_SIGN_ICONS
-@@ -6572,7 +6573,7 @@
- };
- 
- static sign_T	*first_sign = NULL;
--static int	last_sign_typenr = MAX_TYPENR;	/* is decremented */
-+static int	next_sign_typenr = 1;
- 
- static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
- static void sign_list_defined __ARGS((sign_T *sp));
-@@ -6654,9 +6655,14 @@
- 	    EMSG(_("E156: Missing sign name"));
- 	else
- 	{
-+	    /* Isolate the sign name.  If it's a number skip leading zeroes,
-+	     * so that "099" and "99" are the same sign.  But keep "0". */
- 	    p = skiptowhite(arg);
- 	    if (*p != NUL)
- 		*p++ = NUL;
-+	    while (arg[0] == '0' && arg[1] != NUL)
-+		++arg;
-+
- 	    sp_prev = NULL;
- 	    for (sp = first_sign; sp != NULL; sp = sp->sn_next)
- 	    {
-@@ -6669,46 +6675,52 @@
- 		/* ":sign define {name} ...": define a sign */
- 		if (sp == NULL)
- 		{
-+		    sign_T	*lp;
-+		    int		start = next_sign_typenr;
-+
- 		    /* Allocate a new sign. */
- 		    sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
- 		    if (sp == NULL)
- 			return;
--		    if (sp_prev == NULL)
--			first_sign = sp;
--		    else
--			sp_prev->sn_next = sp;
--		    sp->sn_name = vim_strnsave(arg, (int)(p - arg));
- 
--		    /* If the name is a number use that for the typenr,
--		     * otherwise use a negative number. */
--		    if (VIM_ISDIGIT(*arg))
--			sp->sn_typenr = atoi((char *)arg);
--		    else
-+		    /* Check that next_sign_typenr is not already being used.
-+		     * This only happens after wrapping around.  Hopefully
-+		     * another one got deleted and we can use its number. */
-+		    for (lp = first_sign; lp != NULL; )
- 		    {
--			sign_T	*lp;
--			int	start = last_sign_typenr;
--
--			for (lp = first_sign; lp != NULL; lp = lp->sn_next)
-+			if (lp->sn_typenr == next_sign_typenr)
- 			{
--			    if (lp->sn_typenr == last_sign_typenr)
-+			    ++next_sign_typenr;
-+			    if (next_sign_typenr == MAX_TYPENR)
-+				next_sign_typenr = 1;
-+			    if (next_sign_typenr == start)
- 			    {
--				--last_sign_typenr;
--				if (last_sign_typenr == 0)
--				    last_sign_typenr = MAX_TYPENR;
--				if (last_sign_typenr == start)
--				{
--				    EMSG(_("E612: Too many signs defined"));
--				    return;
--				}
--				lp = first_sign;
--				continue;
-+				vim_free(sp);
-+				EMSG(_("E612: Too many signs defined"));
-+				return;
- 			    }
-+			    lp = first_sign;  /* start all over */
-+			    continue;
- 			}
-+			lp = lp->sn_next;
-+		    }
-+
-+		    sp->sn_typenr = next_sign_typenr;
-+		    if (++next_sign_typenr == MAX_TYPENR)
-+			next_sign_typenr = 1; /* wrap around */
- 
--			sp->sn_typenr = last_sign_typenr--;
--			if (last_sign_typenr == 0)
--			    last_sign_typenr = MAX_TYPENR; /* wrap around */
-+		    sp->sn_name = vim_strsave(arg);
-+		    if (sp->sn_name == NULL)  /* out of memory */
-+		    {
-+			vim_free(sp);
-+			return;
- 		    }
-+
-+		    /* add the new sign to the list of signs */
-+		    if (sp_prev == NULL)
-+			first_sign = sp;
-+		    else
-+			sp_prev->sn_next = sp;
- 		}
- 
- 		/* set values for a defined sign. */
-@@ -6886,6 +6898,8 @@
- 		arg = skiptowhite(arg);
- 		if (*arg != NUL)
- 		    *arg++ = NUL;
-+		while (sign_name[0] == '0' && sign_name[1] != NUL)
-+		    ++sign_name;
- 	    }
- 	    else if (STRNCMP(arg, "file=", 5) == 0)
- 	    {
-diff -Naur vim73.orig/src/ex_cmds2.c vim73/src/ex_cmds2.c
---- vim73.orig/src/ex_cmds2.c	2010-07-27 15:43:38.000000000 -0400
-+++ vim73/src/ex_cmds2.c	2011-01-08 21:01:19.374658068 -0500
-@@ -11,10 +11,6 @@
-  * ex_cmds2.c: some more functions for command line commands
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for mch_open(), must be before vim.h */
--#endif
--
- #include "vim.h"
- #include "version.h"
- 
-@@ -2165,9 +2161,7 @@
- 	{
- 	    if (win_split(0, 0) == FAIL)
- 		return;
--# ifdef FEAT_SCROLLBIND
--	    curwin->w_p_scb = FALSE;
--# endif
-+	    RESET_BINDING(curwin);
- 	}
- 	else
- #endif
-diff -Naur vim73.orig/src/ex_docmd.c vim73/src/ex_docmd.c
---- vim73.orig/src/ex_docmd.c	2010-08-07 10:59:47.000000000 -0400
-+++ vim73/src/ex_docmd.c	2011-01-08 21:01:19.234657608 -0500
-@@ -733,7 +733,7 @@
-  * do_cmdline(): execute one Ex command line
-  *
-  * 1. Execute "cmdline" when it is not NULL.
-- *    If "cmdline" is NULL, or more lines are needed, getline() is used.
-+ *    If "cmdline" is NULL, or more lines are needed, fgetline() is used.
-  * 2. Split up in parts separated with '|'.
-  *
-  * This function can be called recursively!
-@@ -741,7 +741,7 @@
-  * flags:
-  * DOCMD_VERBOSE  - The command will be included in the error message.
-  * DOCMD_NOWAIT   - Don't call wait_return() and friends.
-- * DOCMD_REPEAT   - Repeat execution until getline() returns NULL.
-+ * DOCMD_REPEAT   - Repeat execution until fgetline() returns NULL.
-  * DOCMD_KEYTYPED - Don't reset KeyTyped.
-  * DOCMD_EXCRESET - Reset the exception environment (used for debugging).
-  * DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
-@@ -749,15 +749,15 @@
-  * return FAIL if cmdline could not be executed, OK otherwise
-  */
-     int
--do_cmdline(cmdline, getline, cookie, flags)
-+do_cmdline(cmdline, fgetline, cookie, flags)
-     char_u	*cmdline;
--    char_u	*(*getline) __ARGS((int, void *, int));
--    void	*cookie;		/* argument for getline() */
-+    char_u	*(*fgetline) __ARGS((int, void *, int));
-+    void	*cookie;		/* argument for fgetline() */
-     int		flags;
- {
-     char_u	*next_cmdline;		/* next cmd to execute */
-     char_u	*cmdline_copy = NULL;	/* copy of cmd line */
--    int		used_getline = FALSE;	/* used "getline" to obtain command */
-+    int		used_getline = FALSE;	/* used "fgetline" to obtain command */
-     static int	recursive = 0;		/* recursive depth */
-     int		msg_didout_before_start = 0;
-     int		count = 0;		/* line number count */
-@@ -775,14 +775,14 @@
-     struct msglist	**saved_msg_list = NULL;
-     struct msglist	*private_msg_list;
- 
--    /* "getline" and "cookie" passed to do_one_cmd() */
-+    /* "fgetline" and "cookie" passed to do_one_cmd() */
-     char_u	*(*cmd_getline) __ARGS((int, void *, int));
-     void	*cmd_cookie;
-     struct loop_cookie cmd_loop_cookie;
-     void	*real_cookie;
-     int		getline_is_func;
- #else
--# define cmd_getline getline
-+# define cmd_getline fgetline
- # define cmd_cookie cookie
- #endif
-     static int	call_depth = 0;		/* recursiveness */
-@@ -822,10 +822,10 @@
-     cstack.cs_lflags = 0;
-     ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
- 
--    real_cookie = getline_cookie(getline, cookie);
-+    real_cookie = getline_cookie(fgetline, cookie);
- 
-     /* Inside a function use a higher nesting level. */
--    getline_is_func = getline_equal(getline, cookie, get_func_line);
-+    getline_is_func = getline_equal(fgetline, cookie, get_func_line);
-     if (getline_is_func && ex_nesting_level == func_level(real_cookie))
- 	++ex_nesting_level;
- 
-@@ -837,7 +837,7 @@
- 	breakpoint = func_breakpoint(real_cookie);
- 	dbg_tick = func_dbg_tick(real_cookie);
-     }
--    else if (getline_equal(getline, cookie, getsourceline))
-+    else if (getline_equal(fgetline, cookie, getsourceline))
-     {
- 	fname = sourcing_name;
- 	breakpoint = source_breakpoint(real_cookie);
-@@ -881,7 +881,8 @@
-      * KeyTyped is only set when calling vgetc().  Reset it here when not
-      * calling vgetc() (sourced command lines).
-      */
--    if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
-+    if (!(flags & DOCMD_KEYTYPED)
-+			       && !getline_equal(fgetline, cookie, getexline))
- 	KeyTyped = FALSE;
- 
-     /*
-@@ -894,7 +895,7 @@
-     do
-     {
- #ifdef FEAT_EVAL
--	getline_is_func = getline_equal(getline, cookie, get_func_line);
-+	getline_is_func = getline_equal(fgetline, cookie, get_func_line);
- #endif
- 
- 	/* stop skipping cmds for an error msg after all endif/while/for */
-@@ -909,7 +910,7 @@
- 
- 	/*
- 	 * 1. If repeating a line in a loop, get a line from lines_ga.
--	 * 2. If no line given: Get an allocated line with getline().
-+	 * 2. If no line given: Get an allocated line with fgetline().
- 	 * 3. If a line is given: Make a copy, so we can mess with it.
- 	 */
- 
-@@ -938,12 +939,12 @@
- 	    }
- #ifdef FEAT_PROFILE
- 	    else if (do_profiling == PROF_YES
--			     && getline_equal(getline, cookie, getsourceline))
-+			    && getline_equal(fgetline, cookie, getsourceline))
- 		script_line_end();
- #endif
- 
- 	    /* Check if a sourced file hit a ":finish" command. */
--	    if (source_finished(getline, cookie))
-+	    if (source_finished(fgetline, cookie))
- 	    {
- 		retval = FAIL;
- 		break;
-@@ -954,7 +955,7 @@
- 						   && *dbg_tick != debug_tick)
- 	    {
- 		*breakpoint = dbg_find_breakpoint(
--				getline_equal(getline, cookie, getsourceline),
-+				getline_equal(fgetline, cookie, getsourceline),
- 							fname, sourcing_lnum);
- 		*dbg_tick = debug_tick;
- 	    }
-@@ -969,7 +970,7 @@
- 		dbg_breakpoint(fname, sourcing_lnum);
- 		/* Find next breakpoint. */
- 		*breakpoint = dbg_find_breakpoint(
--				getline_equal(getline, cookie, getsourceline),
-+			       getline_equal(fgetline, cookie, getsourceline),
- 							fname, sourcing_lnum);
- 		*dbg_tick = debug_tick;
- 	    }
-@@ -978,7 +979,7 @@
- 	    {
- 		if (getline_is_func)
- 		    func_line_start(real_cookie);
--		else if (getline_equal(getline, cookie, getsourceline))
-+		else if (getline_equal(fgetline, cookie, getsourceline))
- 		    script_line_start();
- 	    }
- # endif
-@@ -987,7 +988,7 @@
- 	if (cstack.cs_looplevel > 0)
- 	{
- 	    /* Inside a while/for loop we need to store the lines and use them
--	     * again.  Pass a different "getline" function to do_one_cmd()
-+	     * again.  Pass a different "fgetline" function to do_one_cmd()
- 	     * below, so that it stores lines in or reads them from
- 	     * "lines_ga".  Makes it possible to define a function inside a
- 	     * while/for loop. */
-@@ -995,27 +996,27 @@
- 	    cmd_cookie = (void *)&cmd_loop_cookie;
- 	    cmd_loop_cookie.lines_gap = &lines_ga;
- 	    cmd_loop_cookie.current_line = current_line;
--	    cmd_loop_cookie.getline = getline;
-+	    cmd_loop_cookie.getline = fgetline;
- 	    cmd_loop_cookie.cookie = cookie;
- 	    cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
- 	}
- 	else
- 	{
--	    cmd_getline = getline;
-+	    cmd_getline = fgetline;
- 	    cmd_cookie = cookie;
- 	}
- #endif
- 
--	/* 2. If no line given, get an allocated line with getline(). */
-+	/* 2. If no line given, get an allocated line with fgetline(). */
- 	if (next_cmdline == NULL)
- 	{
- 	    /*
- 	     * Need to set msg_didout for the first line after an ":if",
- 	     * otherwise the ":if" will be overwritten.
- 	     */
--	    if (count == 1 && getline_equal(getline, cookie, getexline))
-+	    if (count == 1 && getline_equal(fgetline, cookie, getexline))
- 		msg_didout = TRUE;
--	    if (getline == NULL || (next_cmdline = getline(':', cookie,
-+	    if (fgetline == NULL || (next_cmdline = fgetline(':', cookie,
- #ifdef FEAT_EVAL
- 		    cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
- #else
-@@ -1142,7 +1143,7 @@
- 	     * If the command was typed, remember it for the ':' register.
- 	     * Do this AFTER executing the command to make :@: work.
- 	     */
--	    if (getline_equal(getline, cookie, getexline)
-+	    if (getline_equal(fgetline, cookie, getexline)
- 						  && new_last_cmdline != NULL)
- 	    {
- 		vim_free(last_cmdline);
-@@ -1163,7 +1164,7 @@
- #ifdef FEAT_EVAL
- 	/* reset did_emsg for a function that is not aborted by an error */
- 	if (did_emsg && !force_abort
--		&& getline_equal(getline, cookie, get_func_line)
-+		&& getline_equal(fgetline, cookie, get_func_line)
- 					      && !func_has_abort(real_cookie))
- 	    did_emsg = FALSE;
- 
-@@ -1202,7 +1203,7 @@
- 		    if (breakpoint != NULL)
- 		    {
- 			*breakpoint = dbg_find_breakpoint(
--				getline_equal(getline, cookie, getsourceline),
-+			       getline_equal(fgetline, cookie, getsourceline),
- 									fname,
- 			   ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
- 			*dbg_tick = debug_tick;
-@@ -1296,8 +1297,8 @@
- #endif
- 	    )
- 	    && !(did_emsg && used_getline
--			  && (getline_equal(getline, cookie, getexmodeline)
--				|| getline_equal(getline, cookie, getexline)))
-+			    && (getline_equal(fgetline, cookie, getexmodeline)
-+			       || getline_equal(fgetline, cookie, getexline)))
- 	    && (next_cmdline != NULL
- #ifdef FEAT_EVAL
- 			|| cstack.cs_idx >= 0
-@@ -1316,9 +1317,9 @@
- 	 * unclosed conditional.
- 	 */
- 	if (!got_int && !did_throw
--		&& ((getline_equal(getline, cookie, getsourceline)
--			&& !source_finished(getline, cookie))
--		    || (getline_equal(getline, cookie, get_func_line)
-+		&& ((getline_equal(fgetline, cookie, getsourceline)
-+			&& !source_finished(fgetline, cookie))
-+		    || (getline_equal(fgetline, cookie, get_func_line)
- 					    && !func_has_ended(real_cookie))))
- 	{
- 	    if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
-@@ -1354,7 +1355,7 @@
-     /* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
-      * lack was reported above and the error message is to be converted to an
-      * exception, do this now after rewinding the cstack. */
--    do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
-+    do_errthrow(&cstack, getline_equal(fgetline, cookie, get_func_line)
- 				  ? (char_u *)"endfunction" : (char_u *)NULL);
- 
-     if (trylevel == 0)
-@@ -1449,9 +1450,9 @@
-      */
-     if (did_throw)
- 	need_rethrow = TRUE;
--    if ((getline_equal(getline, cookie, getsourceline)
-+    if ((getline_equal(fgetline, cookie, getsourceline)
- 		&& ex_nesting_level > source_level(real_cookie))
--	    || (getline_equal(getline, cookie, get_func_line)
-+	    || (getline_equal(fgetline, cookie, get_func_line)
- 		&& ex_nesting_level > func_level(real_cookie) + 1))
-     {
- 	if (!did_throw)
-@@ -1460,16 +1461,16 @@
-     else
-     {
- 	/* When leaving a function, reduce nesting level. */
--	if (getline_equal(getline, cookie, get_func_line))
-+	if (getline_equal(fgetline, cookie, get_func_line))
- 	    --ex_nesting_level;
- 	/*
- 	 * Go to debug mode when returning from a function in which we are
- 	 * single-stepping.
- 	 */
--	if ((getline_equal(getline, cookie, getsourceline)
--		    || getline_equal(getline, cookie, get_func_line))
-+	if ((getline_equal(fgetline, cookie, getsourceline)
-+		    || getline_equal(fgetline, cookie, get_func_line))
- 		&& ex_nesting_level + 1 <= debug_break_level)
--	    do_debug(getline_equal(getline, cookie, getsourceline)
-+	    do_debug(getline_equal(fgetline, cookie, getsourceline)
- 		    ? (char_u *)_("End of sourced file")
- 		    : (char_u *)_("End of function"));
-     }
-@@ -2871,8 +2872,10 @@
- 	    }
- 
- #ifdef FEAT_USR_CMDS
--	/* Look for a user defined command as a last resort */
--	if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
-+	/* Look for a user defined command as a last resort.  Let ":Print" be
-+	 * overruled by a user defined command. */
-+	if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
-+		&& *eap->cmd >= 'A' && *eap->cmd <= 'Z')
- 	{
- 	    /* User defined commands may contain digits. */
- 	    while (ASCII_ISALNUM(*p))
-@@ -3465,7 +3468,8 @@
- 	case CMD_find:
- 	case CMD_sfind:
- 	case CMD_tabfind:
--	    xp->xp_context = EXPAND_FILES_IN_PATH;
-+	    if (xp->xp_context == EXPAND_FILES)
-+		xp->xp_context = EXPAND_FILES_IN_PATH;
- 	    break;
- 	case CMD_cd:
- 	case CMD_chdir:
-@@ -4520,12 +4524,14 @@
- 		else /* n == 2 */
- 		{
- 		    expand_T	xpc;
-+		    int		options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
- 
- 		    ExpandInit(&xpc);
- 		    xpc.xp_context = EXPAND_FILES;
-+		    if (p_wic)
-+			options += WILD_ICASE;
- 		    p = ExpandOne(&xpc, eap->arg, NULL,
--					    WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
--						   WILD_EXPAND_FREE);
-+						   options, WILD_EXPAND_FREE);
- 		    if (p == NULL)
- 			return FAIL;
- 		}
-@@ -5587,6 +5593,7 @@
-     int	    compl = EXPAND_NOTHING;
-     char_u  *compl_arg = NULL;
-     int	    has_attr = (eap->arg[0] == '-');
-+    int	    name_len;
- 
-     p = eap->arg;
- 
-@@ -5612,6 +5619,7 @@
- 	return;
-     }
-     end = p;
-+    name_len = (int)(end - name);
- 
-     /* If there is nothing after the name, and no attributes were specified,
-      * we are listing commands
-@@ -5626,6 +5634,13 @@
- 	EMSG(_("E183: User defined commands must start with an uppercase letter"));
- 	return;
-     }
-+    else if ((name_len == 1 && *name == 'X')
-+	  || (name_len <= 4
-+		  && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
-+    {
-+	EMSG(_("E841: Reserved name, cannot be used for user defined command"));
-+	return;
-+    }
-     else
- 	uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
- 								eap->forceit);
-@@ -6897,9 +6912,7 @@
- # ifdef FEAT_WINDOWS
- 	if (win_split(0, 0) == FAIL)
- 	    return;
--#  ifdef FEAT_SCROLLBIND
--	curwin->w_p_scb = FALSE;
--#  endif
-+	RESET_BINDING(curwin);
- 
- 	/* When splitting the window, create a new alist.  Otherwise the
- 	 * existing one is overwritten. */
-@@ -7299,7 +7312,9 @@
- 		|| cmdmod.browse
- #  endif
- 	   )
--	    curwin->w_p_scb = FALSE;
-+	{
-+	    RESET_BINDING(curwin);
-+	}
- 	else
- 	    do_check_scrollbind(FALSE);
- # endif
-@@ -9393,7 +9408,7 @@
- ex_ptag(eap)
-     exarg_T	*eap;
- {
--    g_do_tagpreview = p_pvh;
-+    g_do_tagpreview = p_pvh;  /* will be reset to 0 in ex_tag_cmd() */
-     ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
- }
- 
-@@ -9525,17 +9540,23 @@
- #define SPEC_CFILE  4
- 		    "<sfile>",		/* ":so" file name */
- #define SPEC_SFILE  5
-+		    "<slnum>",		/* ":so" file line number */
-+#define SPEC_SLNUM  6
- #ifdef FEAT_AUTOCMD
- 		    "<afile>",		/* autocommand file name */
--# define SPEC_AFILE 6
-+# define SPEC_AFILE 7
- 		    "<abuf>",		/* autocommand buffer number */
--# define SPEC_ABUF  7
-+# define SPEC_ABUF  8
- 		    "<amatch>",		/* autocommand match name */
--# define SPEC_AMATCH 8
-+# define SPEC_AMATCH 9
- #endif
- #ifdef FEAT_CLIENTSERVER
- 		    "<client>"
--# define SPEC_CLIENT 9
-+# ifdef FEAT_AUTOCMD
-+#  define SPEC_CLIENT 10
-+# else
-+#  define SPEC_CLIENT 7
-+# endif
- #endif
-     };
- 
-@@ -9560,6 +9581,7 @@
-  *	  '<cWORD>' to WORD under the cursor
-  *	  '<cfile>' to path name under the cursor
-  *	  '<sfile>' to sourced file name
-+ *	  '<slnum>' to sourced file line number
-  *	  '<afile>' to file name for autocommand
-  *	  '<abuf>'  to buffer number for autocommand
-  *	  '<amatch>' to matching name for autocommand
-@@ -9591,10 +9613,7 @@
- #ifdef FEAT_MODIFY_FNAME
-     int		skip_mod = FALSE;
- #endif
--
--#if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER)
-     char_u	strbuf[30];
--#endif
- 
-     *errormsg = NULL;
-     if (escaped != NULL)
-@@ -9783,6 +9802,15 @@
- 		    return NULL;
- 		}
- 		break;
-+	case SPEC_SLNUM:	/* line in file for ":so" command */
-+		if (sourcing_name == NULL || sourcing_lnum == 0)
-+		{
-+		    *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
-+		    return NULL;
-+		}
-+		sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
-+		result = strbuf;
-+		break;
- #if defined(FEAT_CLIENTSERVER)
- 	case SPEC_CLIENT:	/* Source of last submitted input */
- 		sprintf((char *)strbuf, PRINTF_HEX_LONG_U,
-@@ -10707,7 +10735,7 @@
-  * Write a file name to the session file.
-  * Takes care of the "slash" option in 'sessionoptions' and escapes special
-  * characters.
-- * Returns FAIL if writing fails.
-+ * Returns FAIL if writing fails or out of memory.
-  */
-     static int
- ses_put_fname(fd, name, flagp)
-@@ -10716,49 +10744,32 @@
-     unsigned	*flagp;
- {
-     char_u	*sname;
-+    char_u	*p;
-     int		retval = OK;
--    int		c;
- 
-     sname = home_replace_save(NULL, name);
--    if (sname != NULL)
--	name = sname;
--    while (*name != NUL)
--    {
--#ifdef FEAT_MBYTE
--	{
--	    int l;
-+    if (sname == NULL)
-+	return FAIL;
- 
--	    if (has_mbyte && (l = (*mb_ptr2len)(name)) > 1)
--	    {
--		/* copy a multibyte char */
--		while (--l >= 0)
--		{
--		    if (putc(*name, fd) != *name)
--			retval = FAIL;
--		    ++name;
--		}
--		continue;
--	    }
--	}
--#endif
--	c = *name++;
--	if (c == '\\' && (*flagp & SSOP_SLASH))
--	    /* change a backslash to a forward slash */
--	    c = '/';
--	else if ((vim_strchr(escape_chars, c) != NULL
--#ifdef BACKSLASH_IN_FILENAME
--		    && c != '\\'
--#endif
--		 ) || c == '#' || c == '%')
--	{
--	    /* escape a special character with a backslash */
--	    if (putc('\\', fd) != '\\')
--		retval = FAIL;
--	}
--	if (putc(c, fd) != c)
--	    retval = FAIL;
-+    if (*flagp & SSOP_SLASH)
-+    {
-+	/* change all backslashes to forward slashes */
-+	for (p = sname; *p != NUL; mb_ptr_adv(p))
-+	    if (*p == '\\')
-+		*p = '/';
-     }
-+
-+    /* escapse special characters */
-+    p = vim_strsave_fnameescape(sname, FALSE);
-     vim_free(sname);
-+    if (p == NULL)
-+	return FAIL;
-+
-+    /* write the result */
-+    if (fputs((char *)p, fd) < 0)
-+	retval = FAIL;
-+
-+    vim_free(p);
-     return retval;
- }
- 
-diff -Naur vim73.orig/src/ex_getln.c vim73/src/ex_getln.c
---- vim73.orig/src/ex_getln.c	2010-08-14 11:25:45.000000000 -0400
-+++ vim73/src/ex_getln.c	2011-01-08 21:01:19.238657508 -0500
-@@ -688,28 +688,35 @@
- 		    p = get_expr_line();
- 		    --textlock;
- 		    restore_cmdline(&save_ccline);
--		    len = (int)STRLEN(p);
- 
--		    if (p != NULL && realloc_cmdbuff(len + 1) == OK)
-+		    if (p != NULL)
- 		    {
--			ccline.cmdlen = len;
--			STRCPY(ccline.cmdbuff, p);
--			vim_free(p);
--
--			/* Restore the cursor or use the position set with
--			 * set_cmdline_pos(). */
--			if (new_cmdpos > ccline.cmdlen)
--			    ccline.cmdpos = ccline.cmdlen;
--			else
--			    ccline.cmdpos = new_cmdpos;
--
--			KeyTyped = FALSE;	/* Don't do p_wc completion. */
--			redrawcmd();
--			goto cmdline_changed;
-+			len = (int)STRLEN(p);
-+			if (realloc_cmdbuff(len + 1) == OK)
-+			{
-+			    ccline.cmdlen = len;
-+			    STRCPY(ccline.cmdbuff, p);
-+			    vim_free(p);
-+
-+			    /* Restore the cursor or use the position set with
-+			     * set_cmdline_pos(). */
-+			    if (new_cmdpos > ccline.cmdlen)
-+				ccline.cmdpos = ccline.cmdlen;
-+			    else
-+				ccline.cmdpos = new_cmdpos;
-+
-+			    KeyTyped = FALSE;	/* Don't do p_wc completion. */
-+			    redrawcmd();
-+			    goto cmdline_changed;
-+			}
- 		    }
- 		}
- 		beep_flush();
--		c = ESC;
-+		got_int = FALSE;	/* don't abandon the command line */
-+		did_emsg = FALSE;
-+		emsg_on_display = FALSE;
-+		redrawcmd();
-+		goto cmdline_not_changed;
- 	    }
- #endif
- 	    else
-@@ -2342,15 +2349,31 @@
- 	windgoto(msg_row, msg_col);
- 	pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
- 
--	/* we are done when a NL is entered, but not when it comes after a
--	 * backslash */
--	if (line_ga.ga_len > 0 && pend[-1] == '\n'
--		&& (line_ga.ga_len <= 1 || pend[-2] != '\\'))
--	{
--	    --line_ga.ga_len;
--	    --pend;
--	    *pend = NUL;
--	    break;
-+	/* We are done when a NL is entered, but not when it comes after an
-+	 * odd number of backslashes, that results in a NUL. */
-+	if (line_ga.ga_len > 0 && pend[-1] == '\n')
-+	{
-+	    int bcount = 0;
-+
-+	    while (line_ga.ga_len - 2 >= bcount && pend[-2 - bcount] == '\\')
-+		++bcount;
-+
-+	    if (bcount > 0)
-+	    {
-+		/* Halve the number of backslashes: "\NL" -> "NUL", "\\NL" ->
-+		 * "\NL", etc. */
-+		line_ga.ga_len -= (bcount + 1) / 2;
-+		pend -= (bcount + 1) / 2;
-+		pend[-1] = '\n';
-+	    }
-+
-+	    if ((bcount & 1) == 0)
-+	    {
-+		--line_ga.ga_len;
-+		--pend;
-+		*pend = NUL;
-+		break;
-+	    }
- 	}
-     }
- 
-@@ -3316,10 +3339,14 @@
- 	    p2 = NULL;
- 	else
- 	{
-+	    int use_options = options |
-+		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
-+
-+	    if (p_wic)
-+		use_options += WILD_ICASE;
- 	    p2 = ExpandOne(xp, p1,
- 			 vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
--		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
--							      |options, type);
-+							   use_options, type);
- 	    vim_free(p1);
- 	    /* longest match: make sure it is not shorter, happens with :help */
- 	    if (p2 != NULL && type == WILD_LONGEST)
-@@ -3405,6 +3432,7 @@
-  * options = WILD_KEEP_ALL:	    don't remove 'wildignore' entries
-  * options = WILD_SILENT:	    don't print warning messages
-  * options = WILD_ESCAPE:	    put backslash before special chars
-+ * options = WILD_ICASE:	    ignore case for files
-  *
-  * The variables xp->xp_context and xp->xp_backslash must have been set!
-  */
-@@ -4338,6 +4366,7 @@
-     char_u	***matches;	/* return: array of pointers to matches */
- {
-     char_u	*file_str = NULL;
-+    int		options = WILD_ADD_SLASH|WILD_SILENT;
- 
-     if (xp->xp_context == EXPAND_UNSUCCESSFUL)
-     {
-@@ -4356,9 +4385,11 @@
-     if (file_str == NULL)
- 	return EXPAND_UNSUCCESSFUL;
- 
-+    if (p_wic)
-+	options += WILD_ICASE;
-+
-     /* find all files that match the description */
--    if (ExpandFromContext(xp, file_str, matchcount, matches,
--					  WILD_ADD_SLASH|WILD_SILENT) == FAIL)
-+    if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
-     {
- 	*matchcount = 0;
- 	*matches = NULL;
-@@ -4410,7 +4441,7 @@
-     char_u	*pat;
-     int		*num_file;
-     char_u	***file;
--    int		options;
-+    int		options;  /* EW_ flags */
- {
- #ifdef FEAT_CMDL_COMPL
-     regmatch_T	regmatch;
-@@ -4464,6 +4495,9 @@
- 	    flags |= (EW_FILE | EW_PATH);
- 	else
- 	    flags = (flags | EW_DIR) & ~EW_FILE;
-+	if (options & WILD_ICASE)
-+	    flags |= EW_ICASE;
-+
- 	/* Expand wildcards, supporting %:h and the like. */
- 	ret = expand_wildcards_eval(&pat, num_file, file, flags);
- 	if (free_pat)
-@@ -4728,7 +4762,11 @@
- 			    || (pat[1] == '.' && vim_ispathsep(pat[2])))))
- 	path = (char_u *)".";
-     else
-+    {
- 	path = vim_getenv((char_u *)"PATH", &mustfree);
-+	if (path == NULL)
-+	    path = (char_u *)"";
-+    }
- 
-     /*
-      * Go over all directories in $PATH.  Expand matches in that directory and
-@@ -6147,9 +6185,7 @@
-     curwin->w_p_rl = cmdmsg_rl;
-     cmdmsg_rl = FALSE;
- # endif
--# ifdef FEAT_SCROLLBIND
--    curwin->w_p_scb = FALSE;
--# endif
-+    RESET_BINDING(curwin);
- 
- # ifdef FEAT_AUTOCMD
-     /* Do execute autocommands for setting the filetype (load syntax). */
-diff -Naur vim73.orig/src/fileio.c vim73/src/fileio.c
---- vim73.orig/src/fileio.c	2010-08-14 08:20:54.000000000 -0400
-+++ vim73/src/fileio.c	2011-01-08 21:01:19.374658068 -0500
-@@ -11,14 +11,6 @@
-  * fileio.c: read from and write to a file
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for lseek(), must be before vim.h */
--#endif
--
--#if defined __EMX__
--# include "vimio.h"	/* for mktemp(), CJW 1997-12-03 */
--#endif
--
- #include "vim.h"
- 
- #if defined(__TANDEM) || defined(__MINT__)
-@@ -918,7 +910,7 @@
- 	    {
- 		/* Read the first line (and a bit more).  Immediately rewind to
- 		 * the start of the file.  If the read() fails "len" is -1. */
--		len = vim_read(fd, firstline, 80);
-+		len = read_eintr(fd, firstline, 80);
- 		lseek(fd, (off_t)0L, SEEK_SET);
- 		for (p = firstline; p < firstline + len; ++p)
- 		    if (*p >= 0x80)
-@@ -1373,7 +1365,7 @@
- 		    /*
- 		     * Read bytes from the file.
- 		     */
--		    size = vim_read(fd, ptr, size);
-+		    size = read_eintr(fd, ptr, size);
- 		}
- 
- 		if (size <= 0)
-@@ -4000,7 +3992,7 @@
- #ifdef HAS_BW_FLAGS
- 			write_info.bw_flags = FIO_NOCONVERT;
- #endif
--			while ((write_info.bw_len = vim_read(fd, copybuf,
-+			while ((write_info.bw_len = read_eintr(fd, copybuf,
- 								BUFSIZE)) > 0)
- 			{
- 			    if (buf_write_bytes(&write_info) == FAIL)
-@@ -4813,7 +4805,7 @@
- #ifdef HAS_BW_FLAGS
- 			write_info.bw_flags = FIO_NOCONVERT;
- #endif
--			while ((write_info.bw_len = vim_read(fd, smallbuf,
-+			while ((write_info.bw_len = read_eintr(fd, smallbuf,
- 						      SMBUFSIZE)) > 0)
- 			    if (buf_write_bytes(&write_info) == FAIL)
- 				break;
-@@ -5330,7 +5322,7 @@
- 
- /*
-  * Call write() to write a number of bytes to the file.
-- * Also handles encryption and 'encoding' conversion.
-+ * Handles encryption and 'encoding' conversion.
-  *
-  * Return FAIL for failure, OK otherwise.
-  */
-@@ -5702,16 +5694,8 @@
- 	crypt_encode(buf, len, buf);
- #endif
- 
--    /* Repeat the write(), it may be interrupted by a signal. */
--    while (len > 0)
--    {
--	wlen = vim_write(ip->bw_fd, buf, len);
--	if (wlen <= 0)		    /* error! */
--	    return FAIL;
--	len -= wlen;
--	buf += wlen;
--    }
--    return OK;
-+    wlen = write_eintr(ip->bw_fd, buf, len);
-+    return (wlen < len) ? FAIL : OK;
- }
- 
- #ifdef FEAT_MBYTE
-@@ -6662,8 +6646,8 @@
- 	return -1;
-     }
- 
--    while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
--	if (vim_write(fd_out, buffer, n) != n)
-+    while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
-+	if (write_eintr(fd_out, buffer, n) != n)
- 	{
- 	    errmsg = _("E208: Error writing to \"%s\"");
- 	    break;
-@@ -10304,3 +10288,55 @@
-     }
-     return reg_pat;
- }
-+
-+#if defined(EINTR) || defined(PROTO)
-+/*
-+ * Version of read() that retries when interrupted by EINTR (possibly
-+ * by a SIGWINCH).
-+ */
-+    long
-+read_eintr(fd, buf, bufsize)
-+    int	    fd;
-+    void    *buf;
-+    size_t  bufsize;
-+{
-+    long ret;
-+
-+    for (;;)
-+    {
-+	ret = vim_read(fd, buf, bufsize);
-+	if (ret >= 0 || errno != EINTR)
-+	    break;
-+    }
-+    return ret;
-+}
-+
-+/*
-+ * Version of write() that retries when interrupted by EINTR (possibly
-+ * by a SIGWINCH).
-+ */
-+    long
-+write_eintr(fd, buf, bufsize)
-+    int	    fd;
-+    void    *buf;
-+    size_t  bufsize;
-+{
-+    long    ret = 0;
-+    long    wlen;
-+
-+    /* Repeat the write() so long it didn't fail, other than being interrupted
-+     * by a signal. */
-+    while (ret < (long)bufsize)
-+    {
-+	wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
-+	if (wlen < 0)
-+	{
-+	    if (errno != EINTR)
-+		break;
-+	}
-+	else
-+	    ret += wlen;
-+    }
-+    return ret;
-+}
-+#endif
-diff -Naur vim73.orig/src/getchar.c vim73/src/getchar.c
---- vim73.orig/src/getchar.c	2010-08-08 09:00:33.000000000 -0400
-+++ vim73/src/getchar.c	2011-01-08 21:01:19.462656564 -0500
-@@ -1506,9 +1506,6 @@
-     }
- }
- 
--#define KL_PART_KEY -1		/* keylen value for incomplete key-code */
--#define KL_PART_MAP -2		/* keylen value for incomplete mapping */
--
- /*
-  * Get the next input character.
-  * Can return a special key or a multi-byte character.
-@@ -2171,7 +2168,7 @@
- 					if (!timedout)
- 					{
- 					    /* break at a partly match */
--					    keylen = KL_PART_MAP;
-+					    keylen = KEYLEN_PART_MAP;
- 					    break;
- 					}
- 				    }
-@@ -2192,7 +2189,7 @@
- 
- 			/* If no partly match found, use the longest full
- 			 * match. */
--			if (keylen != KL_PART_MAP)
-+			if (keylen != KEYLEN_PART_MAP)
- 			{
- 			    mp = mp_match;
- 			    keylen = mp_match_len;
-@@ -2230,7 +2227,7 @@
- 			}
- 			/* Need more chars for partly match. */
- 			if (mlen == typebuf.tb_len)
--			    keylen = KL_PART_KEY;
-+			    keylen = KEYLEN_PART_KEY;
- 			else if (max_mlen < mlen)
- 			    /* no match, may have to check for termcode at
- 			     * next character */
-@@ -2238,7 +2235,7 @@
- 		    }
- 
- 		    if ((mp == NULL || max_mlen >= mp_match_len)
--						     && keylen != KL_PART_MAP)
-+						 && keylen != KEYLEN_PART_MAP)
- 		    {
- 			int	save_keylen = keylen;
- 
-@@ -2264,8 +2261,8 @@
- 			    /* If no termcode matched but 'pastetoggle'
- 			     * matched partially it's like an incomplete key
- 			     * sequence. */
--			    if (keylen == 0 && save_keylen == KL_PART_KEY)
--				keylen = KL_PART_KEY;
-+			    if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
-+				keylen = KEYLEN_PART_KEY;
- 
- 			    /*
- 			     * When getting a partial match, but the last
-@@ -2302,7 +2299,7 @@
- 				    continue;
- 				}
- 				if (*s == NUL)	    /* need more characters */
--				    keylen = KL_PART_KEY;
-+				    keylen = KEYLEN_PART_KEY;
- 			    }
- 			    if (keylen >= 0)
- #endif
-@@ -2339,7 +2336,8 @@
- 			if (keylen > 0)	    /* full matching terminal code */
- 			{
- #if defined(FEAT_GUI) && defined(FEAT_MENU)
--			    if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
-+			    if (typebuf.tb_len >= 2
-+				&& typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
- 					 && typebuf.tb_buf[typebuf.tb_off + 1]
- 								   == KS_MENU)
- 			    {
-@@ -2381,7 +2379,7 @@
- 			/* Partial match: get some more characters.  When a
- 			 * matching mapping was found use that one. */
- 			if (mp == NULL || keylen < 0)
--			    keylen = KL_PART_KEY;
-+			    keylen = KEYLEN_PART_KEY;
- 			else
- 			    keylen = mp_match_len;
- 		    }
-@@ -2553,7 +2551,8 @@
- #endif
- 			&& typebuf.tb_maplen == 0
- 			&& (State & INSERT)
--			&& (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
-+			&& (p_timeout
-+			    || (keylen == KEYLEN_PART_KEY && p_ttimeout))
- 			&& (c = inchar(typebuf.tb_buf + typebuf.tb_off
- 						     + typebuf.tb_len, 3, 25L,
- 						 typebuf.tb_change_cnt)) == 0)
-@@ -2783,9 +2782,9 @@
- 			    ? 0
- 			    : ((typebuf.tb_len == 0
- 				    || !(p_timeout || (p_ttimeout
--						   && keylen == KL_PART_KEY)))
-+					       && keylen == KEYLEN_PART_KEY)))
- 				    ? -1L
--				    : ((keylen == KL_PART_KEY && p_ttm >= 0)
-+				    : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
- 					    ? p_ttm
- 					    : p_tm)), typebuf.tb_change_cnt);
- 
-@@ -3168,6 +3167,7 @@
-     int		expr = FALSE;
- #endif
-     int		noremap;
-+    char_u      *orig_rhs;
- 
-     keys = arg;
-     map_table = maphash;
-@@ -3266,6 +3266,7 @@
-     }
-     if (*p != NUL)
- 	*p++ = NUL;
-+
-     p = skipwhite(p);
-     rhs = p;
-     hasarg = (*rhs != NUL);
-@@ -3288,6 +3289,7 @@
-      */
-     if (haskey)
- 	keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
-+    orig_rhs = rhs;
-     if (hasarg)
-     {
- 	if (STRICMP(rhs, "<nop>") == 0)	    /* "<Nop>" means nothing */
-@@ -3298,7 +3300,7 @@
- 
- #ifdef FEAT_FKMAP
-     /*
--     * when in right-to-left mode and alternate keymap option set,
-+     * When in right-to-left mode and alternate keymap option set,
-      * reverse the character flow in the rhs in Farsi.
-      */
-     if (p_altkeymap && curwin->w_p_rl)
-@@ -3556,6 +3558,8 @@
- 				}
- 				vim_free(mp->m_str);
- 				mp->m_str = newstr;
-+				vim_free(mp->m_orig_str);
-+				mp->m_orig_str = vim_strsave(orig_rhs);
- 				mp->m_noremap = noremap;
- 				mp->m_silent = silent;
- 				mp->m_mode = mode;
-@@ -3633,10 +3637,12 @@
- 
-     mp->m_keys = vim_strsave(keys);
-     mp->m_str = vim_strsave(rhs);
-+    mp->m_orig_str = vim_strsave(orig_rhs);
-     if (mp->m_keys == NULL || mp->m_str == NULL)
-     {
- 	vim_free(mp->m_keys);
- 	vim_free(mp->m_str);
-+	vim_free(mp->m_orig_str);
- 	vim_free(mp);
- 	retval = 4;	/* no mem */
- 	goto theend;
-@@ -3682,6 +3688,7 @@
-     mp = *mpp;
-     vim_free(mp->m_keys);
-     vim_free(mp->m_str);
-+    vim_free(mp->m_orig_str);
-     *mpp = mp->m_next;
-     vim_free(mp);
- }
-@@ -3851,12 +3858,57 @@
-     }
- }
- 
-+/*
-+ * Return characters to represent the map mode in an allocated string.
-+ * Returns NULL when out of memory.
-+ */
-+    char_u *
-+map_mode_to_chars(mode)
-+    int mode;
-+{
-+    garray_T    mapmode;
-+
-+    ga_init2(&mapmode, 1, 7);
-+
-+    if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
-+	ga_append(&mapmode, '!');			/* :map! */
-+    else if (mode & INSERT)
-+	ga_append(&mapmode, 'i');			/* :imap */
-+    else if (mode & LANGMAP)
-+	ga_append(&mapmode, 'l');			/* :lmap */
-+    else if (mode & CMDLINE)
-+	ga_append(&mapmode, 'c');			/* :cmap */
-+    else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
-+				 == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
-+	ga_append(&mapmode, ' ');			/* :map */
-+    else
-+    {
-+	if (mode & NORMAL)
-+	    ga_append(&mapmode, 'n');			/* :nmap */
-+	if (mode & OP_PENDING)
-+	    ga_append(&mapmode, 'o');			/* :omap */
-+	if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
-+	    ga_append(&mapmode, 'v');			/* :vmap */
-+	else
-+	{
-+	    if (mode & VISUAL)
-+		ga_append(&mapmode, 'x');		/* :xmap */
-+	    if (mode & SELECTMODE)
-+		ga_append(&mapmode, 's');		/* :smap */
-+	}
-+    }
-+
-+    ga_append(&mapmode, NUL);
-+    return (char_u *)mapmode.ga_data;
-+}
-+
-     static void
- showmap(mp, local)
-     mapblock_T	*mp;
-     int		local;	    /* TRUE for buffer-local map */
- {
--    int len = 1;
-+    int		len = 1;
-+    char_u	*mapchars;
- 
-     if (msg_didout || msg_silent != 0)
-     {
-@@ -3864,49 +3916,15 @@
- 	if (got_int)	    /* 'q' typed at MORE prompt */
- 	    return;
-     }
--    if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
--	msg_putchar('!');			/* :map! */
--    else if (mp->m_mode & INSERT)
--	msg_putchar('i');			/* :imap */
--    else if (mp->m_mode & LANGMAP)
--	msg_putchar('l');			/* :lmap */
--    else if (mp->m_mode & CMDLINE)
--	msg_putchar('c');			/* :cmap */
--    else if ((mp->m_mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
--				 == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
--	msg_putchar(' ');			/* :map */
--    else
-+
-+    mapchars = map_mode_to_chars(mp->m_mode);
-+    if (mapchars != NULL)
-     {
--	len = 0;
--	if (mp->m_mode & NORMAL)
--	{
--	    msg_putchar('n');		/* :nmap */
--	    ++len;
--	}
--	if (mp->m_mode & OP_PENDING)
--	{
--	    msg_putchar('o');		/* :omap */
--	    ++len;
--	}
--	if ((mp->m_mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
--	{
--	    msg_putchar('v');		/* :vmap */
--	    ++len;
--	}
--	else
--	{
--	    if (mp->m_mode & VISUAL)
--	    {
--		msg_putchar('x');		/* :xmap */
--		++len;
--	    }
--	    if (mp->m_mode & SELECTMODE)
--	    {
--		msg_putchar('s');		/* :smap */
--		++len;
--	    }
--	}
-+	msg_puts(mapchars);
-+	len = (int)STRLEN(mapchars);
-+	vim_free(mapchars);
-     }
-+
-     while (++len <= 3)
- 	msg_putchar(' ');
- 
-@@ -3931,8 +3949,7 @@
- 	msg_putchar(' ');
- 
-     /* Use FALSE below if we only want things like <Up> to show up as such on
--     * the rhs, and not M-x etc, TRUE gets both -- webb
--     */
-+     * the rhs, and not M-x etc, TRUE gets both -- webb */
-     if (*mp->m_str == NUL)
- 	msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
-     else
-@@ -4995,19 +5012,21 @@
-     sourcing_name = save_name;
- }
- 
--#ifdef FEAT_EVAL
-+#if defined(FEAT_EVAL) || defined(PROTO)
- /*
-- * Check the string "keys" against the lhs of all mappings
-- * Return pointer to rhs of mapping (mapblock->m_str)
-- * NULL otherwise
-+ * Check the string "keys" against the lhs of all mappings.
-+ * Return pointer to rhs of mapping (mapblock->m_str).
-+ * NULL when no mapping found.
-  */
-     char_u *
--check_map(keys, mode, exact, ign_mod, abbr)
-+check_map(keys, mode, exact, ign_mod, abbr, mp_ptr, local_ptr)
-     char_u	*keys;
-     int		mode;
-     int		exact;		/* require exact match */
-     int		ign_mod;	/* ignore preceding modifier */
-     int		abbr;		/* do abbreviations */
-+    mapblock_T	**mp_ptr;	/* return: pointer to mapblock or NULL */
-+    int		*local_ptr;	/* return: buffer-local mapping or NULL */
- {
-     int		hash;
-     int		len, minlen;
-@@ -5062,7 +5081,17 @@
- 			    minlen = mp->m_keylen - 3;
- 		    }
- 		    if (STRNCMP(s, keys, minlen) == 0)
-+		    {
-+			if (mp_ptr != NULL)
-+			    *mp_ptr = mp;
-+			if (local_ptr != NULL)
-+#ifdef FEAT_LOCALMAP
-+			    *local_ptr = local;
-+#else
-+			    *local_ptr = 0;
-+#endif
- 			return mp->m_str;
-+		    }
- 		}
- 	    }
- 	}
-diff -Naur vim73.orig/src/globals.h vim73/src/globals.h
---- vim73.orig/src/globals.h	2010-07-23 15:20:45.000000000 -0400
-+++ vim73/src/globals.h	2011-01-08 21:01:19.278656842 -0500
-@@ -510,8 +510,13 @@
- EXTERN VimClipboard clip_plus;	/* CLIPBOARD selection in X11 */
- # else
- #  define clip_plus clip_star	/* there is only one clipboard */
-+#  define ONE_CLIPBOARD
- # endif
--EXTERN int	clip_unnamed INIT(= FALSE);
-+
-+#define CLIP_UNNAMED      1
-+#define CLIP_UNNAMED_PLUS 2
-+EXTERN int	clip_unnamed INIT(= 0); /* above two values or'ed */
-+
- EXTERN int	clip_autoselect INIT(= FALSE);
- EXTERN int	clip_autoselectml INIT(= FALSE);
- EXTERN int	clip_html INIT(= FALSE);
-diff -Naur vim73.orig/src/gui.c vim73/src/gui.c
---- vim73.orig/src/gui.c	2010-08-08 09:01:18.000000000 -0400
-+++ vim73/src/gui.c	2011-01-08 21:01:18.886656411 -0500
-@@ -105,8 +105,18 @@
- 
- #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
-     if (gui.in_use)
-+    {
-+# ifdef FEAT_EVAL
-+	Window	x11_window;
-+	Display	*x11_display;
-+
-+	if (gui_get_x11_windis(&x11_window, &x11_display) == OK)
-+	    set_vim_var_nr(VV_WINDOWID, (long)x11_window);
-+# endif
-+
- 	/* Display error messages in a dialog now. */
- 	display_errors();
-+    }
- #endif
- 
- #if defined(MAY_FORK) && !defined(__QNXNTO__)
-@@ -2352,7 +2362,7 @@
-     if (draw_sign)
- 	/* Draw the sign on top of the spaces. */
- 	gui_mch_drawsign(gui.row, col, gui.highlight_mask);
--# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_MOTIF) \
-+# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
- 	|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
-     if (multi_sign)
- 	netbeans_draw_multisign_indicator(gui.row);
-diff -Naur vim73.orig/src/gui_gtk.c vim73/src/gui_gtk.c
---- vim73.orig/src/gui_gtk.c	2010-07-20 07:15:22.000000000 -0400
-+++ vim73/src/gui_gtk.c	2011-01-08 21:01:19.298658878 -0500
-@@ -1287,6 +1287,9 @@
- 	entry = gtk_entry_new();
- 	gtk_widget_show(entry);
- 
-+	/* Make Enter work like pressing OK. */
-+        gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
-+
- 	text = CONVERT_TO_UTF8(textfield);
- 	gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
- 	CONVERT_TO_UTF8_FREE(text);
-@@ -1795,7 +1798,6 @@
-     char_u		*repl_text;
-     gboolean		direction_down;
-     SharedFindReplace	*sfr;
--    int			rc;
- 
-     flags = (int)(long)data;	    /* avoid a lint warning here */
- 
-@@ -1821,7 +1823,7 @@
- 
-     repl_text = CONVERT_FROM_UTF8(repl_text);
-     find_text = CONVERT_FROM_UTF8(find_text);
--    rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
-+    gui_do_findrepl(flags, find_text, repl_text, direction_down);
-     CONVERT_FROM_UTF8_FREE(repl_text);
-     CONVERT_FROM_UTF8_FREE(find_text);
- }
-diff -Naur vim73.orig/src/gui_mac.c vim73/src/gui_mac.c
---- vim73.orig/src/gui_mac.c	2010-08-14 15:39:54.000000000 -0400
-+++ vim73/src/gui_mac.c	2011-01-08 21:01:18.766656221 -0500
-@@ -1480,7 +1480,7 @@
-  *
-  *  Returns the index inside the menu wher
-  */
--    short /* Shoulde we return MenuItemIndex? */
-+    short /* Should we return MenuItemIndex? */
- gui_mac_get_menu_item_index(vimmenu_T *pMenu)
- {
-     short	index;
-@@ -1823,7 +1823,7 @@
- 	p.h += gui.scrollbar_width;
-     if (gui.which_scrollbars[SBAR_RIGHT])
- 	p.h += gui.scrollbar_width;
--    /* ideal height is as heigh as we can get */
-+    /* ideal height is as high as we can get */
-     p.v = 15 * 1024;
- 
-     thePart = IsWindowInStandardState(whichWindow, &p, &r)
-@@ -4481,7 +4481,7 @@
- 	 * event arrives.  No need to check for input_buf_full because we are
- 	 * returning as soon as it contains a single char.
- 	 */
--	/* TODO: reduce wtime accordinly???  */
-+	/* TODO: reduce wtime accordingly???  */
- 	if (wtime > -1)
- 	    sleeppyTick = 60 * wtime / 1000;
- 	else
-@@ -5723,13 +5723,13 @@
-     iconDITL = GetResource('DITL', 131);
-     switch (type)
-     {
--	case VIM_GENERIC:  useIcon = kNoteIcon;
--	case VIM_ERROR:    useIcon = kStopIcon;
--	case VIM_WARNING:  useIcon = kCautionIcon;
--	case VIM_INFO:     useIcon = kNoteIcon;
--	case VIM_QUESTION: useIcon = kNoteIcon;
--	default:      useIcon = kStopIcon;
--    };
-+	case VIM_GENERIC:
-+	case VIM_INFO:
-+	case VIM_QUESTION: useIcon = kNoteIcon; break;
-+	case VIM_WARNING:  useIcon = kCautionIcon; break;
-+	case VIM_ERROR:    useIcon = kStopIcon; break;
-+	default:           useIcon = kStopIcon;
-+    }
-     AppendDITL(theDialog, iconDITL, overlayDITL);
-     ReleaseResource(iconDITL);
-     GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
-@@ -5892,7 +5892,7 @@
- 
-     return itemHit;
- /*
-- * Usefull thing which could be used
-+ * Useful thing which could be used
-  * SetDialogTimeout(): Auto click a button after timeout
-  * SetDialogTracksCursor() : Get the I-beam cursor over input box
-  * MoveDialogItem():	    Probably better than SetDialogItem
-@@ -6100,7 +6100,7 @@
- #endif
- 
- /*
-- * Transfered from os_mac.c for MacOS X using os_unix.c prep work
-+ * Transferred from os_mac.c for MacOS X using os_unix.c prep work
-  */
- 
-     int
-@@ -6543,7 +6543,7 @@
- static ControlRef dataBrowser = NULL;
- 
- // when the tabline is hidden, vim doesn't call update_tabline(). When
--// the tabline is shown again, show_tabline() is called before upate_tabline(),
-+// the tabline is shown again, show_tabline() is called before update_tabline(),
- // and because of this, the tab labels and vims internal tabs are out of sync
- // for a very short time. to prevent inconsistent state, we store the labels
- // of the tabs, not pointers to the tabs (which are invalid for a short time).
-diff -Naur vim73.orig/src/gui_w32.c vim73/src/gui_w32.c
---- vim73.orig/src/gui_w32.c	2010-08-08 09:05:26.000000000 -0400
-+++ vim73/src/gui_w32.c	2011-01-08 21:01:18.990656516 -0500
-@@ -289,13 +289,13 @@
- 
- #ifdef FEAT_MENU
- static UINT	s_menu_id = 100;
-+#endif
- 
- /*
-  * Use the system font for dialogs and tear-off menus.  Remove this line to
-  * use DLG_FONT_NAME.
-  */
--# define USE_SYSMENU_FONT
--#endif
-+#define USE_SYSMENU_FONT
- 
- #define VIM_NAME	"vim"
- #define VIM_CLASS	"Vim"
-@@ -1260,7 +1260,7 @@
- 
-     /* try and load the user32.dll library and get the entry points for
-      * multi-monitor-support. */
--    if ((user32_lib = LoadLibrary("User32.dll")) != NULL)
-+    if ((user32_lib = vimLoadLib("User32.dll")) != NULL)
-     {
- 	pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
- 							 "MonitorFromWindow");
-@@ -1573,6 +1573,11 @@
- # endif
- #endif
- 
-+#ifdef FEAT_EVAL
-+    /* set the v:windowid variable */
-+    set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
-+#endif
-+
- theend:
-     /* Display any pending error messages */
-     display_errors();
-@@ -4188,7 +4193,7 @@
-     static void
- dyn_imm_load(void)
- {
--    hLibImm = LoadLibrary("imm32.dll");
-+    hLibImm = vimLoadLib("imm32.dll");
-     if (hLibImm == NULL)
- 	return;
- 
-diff -Naur vim73.orig/src/gui_w48.c vim73/src/gui_w48.c
---- vim73.orig/src/gui_w48.c	2010-07-27 15:46:04.000000000 -0400
-+++ vim73/src/gui_w48.c	2011-01-08 21:01:18.918658776 -0500
-@@ -1810,7 +1810,8 @@
- 		 * mapped we want to use the mapping instead. */
- 		if (vk == VK_F10
- 			&& gui.menu_is_active
--			&& check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
-+			&& check_map(k10, State, FALSE, TRUE, FALSE,
-+							  NULL, NULL) == NULL)
- 		    break;
- #endif
- 		if (GetKeyState(VK_SHIFT) & 0x8000)
-@@ -1924,7 +1925,8 @@
-     /* Check for <F10>: Default effect is to select the menu.  When <F10> is
-      * mapped we need to stop it here to avoid strange effects (e.g., for the
-      * key-up event) */
--    if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
-+    if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
-+							  NULL, NULL) == NULL)
- #endif
- 	DispatchMessage(&msg);
- }
-diff -Naur vim73.orig/src/gui_x11.c vim73/src/gui_x11.c
---- vim73.orig/src/gui_x11.c	2010-08-08 09:05:45.000000000 -0400
-+++ vim73/src/gui_x11.c	2011-01-08 21:01:19.178657868 -0500
-@@ -2895,6 +2895,11 @@
- 	    focus = gui.in_focus;
- 	}
- 
-+#if defined(FEAT_NETBEANS_INTG)
-+	/* Process any queued netbeans messages. */
-+	netbeans_parse_messages();
-+#endif
-+
- 	/*
- 	 * Don't use gui_mch_update() because then we will spin-lock until a
- 	 * char arrives, instead we use XtAppProcessEvent() to hang until an
-diff -Naur vim73.orig/src/if_cscope.c vim73/src/if_cscope.c
---- vim73.orig/src/if_cscope.c	2010-07-25 10:32:31.000000000 -0400
-+++ vim73/src/if_cscope.c	2011-01-08 21:01:19.458660505 -0500
-@@ -13,16 +13,11 @@
- 
- #if defined(FEAT_CSCOPE) || defined(PROTO)
- 
--#include <string.h>
--#include <errno.h>
- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #if defined(UNIX)
- # include <sys/wait.h>
--#else
--    /* not UNIX, must be WIN32 */
--# include "vimio.h"
- #endif
- #include "if_cscope.h"
- 
-@@ -1274,9 +1269,7 @@
- 		{
- 		    win_split(postponed_split > 0 ? postponed_split : 0,
- 						       postponed_split_flags);
--#  ifdef FEAT_SCROLLBIND
--		    curwin->w_p_scb = FALSE;
--#  endif
-+		    RESET_BINDING(curwin);
- 		    postponed_split = 0;
- 		}
- # endif
-@@ -1353,7 +1346,7 @@
- 		       "       g: Find this definition\n"
- 		       "       i: Find files #including this file\n"
- 		       "       s: Find this C symbol\n"
--		       "       t: Find assignments to\n"));
-+		       "       t: Find this text string\n"));
- 
- 	cmdp++;
-     }
-@@ -1664,7 +1657,7 @@
- /*
-  * PRIVATE: cs_make_vim_style_matches
-  *
-- * convert the cscope output into into a ctags style entry (as might be found
-+ * convert the cscope output into a ctags style entry (as might be found
-  * in a ctags tags file).  there's one catch though: cscope doesn't tell you
-  * the type of the tag you are looking for.  for example, in Darren Hiebert's
-  * ctags (the one that comes with vim), #define's use a line number to find the
-diff -Naur vim73.orig/src/if_lua.c vim73/src/if_lua.c
---- vim73.orig/src/if_lua.c	2010-08-12 16:12:04.000000000 -0400
-+++ vim73/src/if_lua.c	2011-01-08 21:01:18.922656581 -0500
-@@ -49,7 +49,7 @@
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
--# define load_dll LoadLibrary
-+# define load_dll vimLoadLib
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
- #endif
-diff -Naur vim73.orig/src/if_mzsch.c vim73/src/if_mzsch.c
---- vim73.orig/src/if_mzsch.c	2010-06-25 23:56:17.000000000 -0400
-+++ vim73/src/if_mzsch.c	2011-01-08 21:01:19.114655467 -0500
-@@ -556,8 +556,8 @@
- 
-     if (hMzGC && hMzSch)
- 	return OK;
--    hMzSch = LoadLibrary(sch_dll);
--    hMzGC = LoadLibrary(gc_dll);
-+    hMzSch = vimLoadLib(sch_dll);
-+    hMzGC = vimLoadLib(gc_dll);
- 
-     if (!hMzSch)
-     {
-@@ -794,9 +794,16 @@
- #endif
- }
- 
-+#if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
-+static __declspec(thread) void *tls_space;
-+#endif
-+
-     void
- mzscheme_main(void)
- {
-+#if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
-+    scheme_register_tls_space(&tls_space, 0);
-+#endif
- #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
-     /* use trampoline for precise GC in MzScheme >= 4.x */
-     scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
-diff -Naur vim73.orig/src/if_perl.xs vim73/src/if_perl.xs
---- vim73.orig/src/if_perl.xs	2010-07-22 05:33:37.000000000 -0400
-+++ vim73/src/if_perl.xs	2011-01-08 21:01:18.926655661 -0500
-@@ -106,7 +106,7 @@
- #define close_dll dlclose
- #else
- #define PERL_PROC FARPROC
--#define load_dll LoadLibrary
-+#define load_dll vimLoadLib
- #define symbol_from_dll GetProcAddress
- #define close_dll FreeLibrary
- #endif
-diff -Naur vim73.orig/src/if_py_both.h vim73/src/if_py_both.h
---- vim73.orig/src/if_py_both.h	2010-08-08 07:06:29.000000000 -0400
-+++ vim73/src/if_py_both.h	2011-01-08 21:01:18.982656784 -0500
-@@ -34,6 +34,7 @@
- static PyObject *OutputWrite(PyObject *, PyObject *);
- static PyObject *OutputWritelines(PyObject *, PyObject *);
- 
-+/* Function to write a line, points to either msg() or emsg(). */
- typedef void (*writefn)(char_u *);
- static void writer(writefn fn, char_u *str, PyInt n);
- 
-@@ -122,52 +123,19 @@
-     return Py_None;
- }
- 
--static char_u *buffer = NULL;
--static PyInt buffer_len = 0;
--static PyInt buffer_size = 0;
--
-+/* Buffer IO, we write one whole line at a time. */
-+static garray_T io_ga = {0, 0, 1, 80, NULL};
- static writefn old_fn = NULL;
- 
-     static void
--buffer_ensure(PyInt n)
--{
--    PyInt new_size;
--    char_u *new_buffer;
--
--    if (n < buffer_size)
--	return;
--
--    new_size = buffer_size;
--    while (new_size < n)
--	new_size += 80;
--
--    if (new_size != buffer_size)
--    {
--	new_buffer = alloc((unsigned)new_size);
--	if (new_buffer == NULL)
--	    return;
--
--	if (buffer)
--	{
--	    memcpy(new_buffer, buffer, buffer_len);
--	    vim_free(buffer);
--	}
--
--	buffer = new_buffer;
--	buffer_size = new_size;
--    }
--}
--
--    static void
- PythonIO_Flush(void)
- {
--    if (old_fn && buffer_len)
-+    if (old_fn != NULL && io_ga.ga_len > 0)
-     {
--	buffer[buffer_len] = 0;
--	old_fn(buffer);
-+	((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL;
-+	old_fn((char_u *)io_ga.ga_data);
-     }
--
--    buffer_len = 0;
-+    io_ga.ga_len = 0;
- }
- 
-     static void
-@@ -175,30 +143,34 @@
- {
-     char_u *ptr;
- 
--    if (fn != old_fn && old_fn != NULL)
-+    /* Flush when switching output function. */
-+    if (fn != old_fn)
- 	PythonIO_Flush();
--
-     old_fn = fn;
- 
-+    /* Write each NL separated line.  Text after the last NL is kept for
-+     * writing later. */
-     while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
-     {
- 	PyInt len = ptr - str;
- 
--	buffer_ensure(buffer_len + len + 1);
-+	if (ga_grow(&io_ga, (int)(len + 1)) == FAIL)
-+	    break;
- 
--	memcpy(buffer + buffer_len, str, len);
--	buffer_len += len;
--	buffer[buffer_len] = 0;
--	fn(buffer);
-+	mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
-+	((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
-+	fn((char_u *)io_ga.ga_data);
- 	str = ptr + 1;
- 	n -= len + 1;
--	buffer_len = 0;
-+	io_ga.ga_len = 0;
-     }
- 
--    /* Put the remaining text into the buffer for later printing */
--    buffer_ensure(buffer_len + n + 1);
--    memcpy(buffer + buffer_len, str, n);
--    buffer_len += n;
-+    /* Put the remaining text into io_ga for later printing. */
-+    if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK)
-+    {
-+	mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
-+	io_ga.ga_len += (int)n;
-+    }
- }
- 
- /***************/
-diff -Naur vim73.orig/src/if_python.c vim73/src/if_python.c
---- vim73.orig/src/if_python.c	2010-08-13 09:59:41.000000000 -0400
-+++ vim73/src/if_python.c	2011-01-08 21:01:19.190656939 -0500
-@@ -102,7 +102,7 @@
- #  include <dlfcn.h>
- #  define FARPROC void*
- #  define HINSTANCE void*
--#  ifdef PY_NO_RTLD_GLOBAL
-+#  if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
- #   define load_dll(n) dlopen((n), RTLD_LAZY)
- #  else
- #   define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-@@ -110,7 +110,7 @@
- #  define close_dll dlclose
- #  define symbol_from_dll dlsym
- # else
--#  define load_dll LoadLibrary
-+#  define load_dll vimLoadLib
- #  define close_dll FreeLibrary
- #  define symbol_from_dll GetProcAddress
- # endif
-@@ -168,6 +168,7 @@
- # define Py_BuildValue dll_Py_BuildValue
- # define Py_FindMethod dll_Py_FindMethod
- # define Py_InitModule4 dll_Py_InitModule4
-+# define Py_SetPythonHome dll_Py_SetPythonHome
- # define Py_Initialize dll_Py_Initialize
- # define Py_Finalize dll_Py_Finalize
- # define Py_IsInitialized dll_Py_IsInitialized
-@@ -226,6 +227,7 @@
- static PyObject*(*dll_Py_BuildValue)(char *, ...);
- static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
- static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
-+static void(*dll_Py_SetPythonHome)(char *home);
- static void(*dll_Py_Initialize)(void);
- static void(*dll_Py_Finalize)(void);
- static int(*dll_Py_IsInitialized)(void);
-@@ -310,6 +312,7 @@
- # else
-     {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
- # endif
-+    {"Py_SetPythonHome", (PYTHON_PROC*)&dll_Py_SetPythonHome},
-     {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
-     {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
-     {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
-@@ -349,7 +352,7 @@
- {
-     int i;
- 
--#if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON3)
-+#if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
-     /* Can't have Python and Python3 loaded at the same time.
-      * It cause a crash, because RTLD_GLOBAL is needed for
-      * standard C extension libraries of one or both python versions. */
-@@ -543,6 +546,10 @@
- 	}
- #endif
- 
-+#ifdef PYTHON_HOME
-+	Py_SetPythonHome(PYTHON_HOME);
-+#endif
-+
- 	init_structs();
- 
- #if !defined(MACOS) || defined(MACOS_X_UNIX)
-diff -Naur vim73.orig/src/if_python3.c vim73/src/if_python3.c
---- vim73.orig/src/if_python3.c	2010-08-13 09:59:40.000000000 -0400
-+++ vim73/src/if_python3.c	2011-01-08 21:01:19.190656939 -0500
-@@ -80,7 +80,7 @@
- #  include <dlfcn.h>
- #  define FARPROC void*
- #  define HINSTANCE void*
--#  ifdef PY_NO_RTLD_GLOBAL
-+#  if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
- #   define load_dll(n) dlopen((n), RTLD_LAZY)
- #  else
- #   define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-@@ -88,7 +88,7 @@
- #  define close_dll dlclose
- #  define symbol_from_dll dlsym
- # else
--#  define load_dll LoadLibrary
-+#  define load_dll vimLoadLib
- #  define close_dll FreeLibrary
- #  define symbol_from_dll GetProcAddress
- # endif
-@@ -132,6 +132,7 @@
- # define PyType_Ready py3_PyType_Ready
- #undef Py_BuildValue
- # define Py_BuildValue py3_Py_BuildValue
-+# define Py_SetPythonHome py3_Py_SetPythonHome
- # define Py_Initialize py3_Py_Initialize
- # define Py_Finalize py3_Py_Finalize
- # define Py_IsInitialized py3_Py_IsInitialized
-@@ -170,6 +171,7 @@
-  * Pointers for dynamic link
-  */
- static int (*py3_PySys_SetArgv)(int, wchar_t **);
-+static void (*py3_Py_SetPythonHome)(wchar_t *home);
- static void (*py3_Py_Initialize)(void);
- static PyObject* (*py3_PyList_New)(Py_ssize_t size);
- static PyGILState_STATE (*py3_PyGILState_Ensure)(void);
-@@ -254,6 +256,7 @@
- } py3_funcname_table[] =
- {
-     {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
-+    {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
-     {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
-     {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
-     {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
-@@ -336,7 +339,7 @@
-     int i;
-     void *ucs_from_string, *ucs_from_string_and_size;
- 
--# if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON)
-+# if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
-     /* Can't have Python and Python3 loaded at the same time.
-      * It cause a crash, because RTLD_GLOBAL is needed for
-      * standard C extension libraries of one or both python versions. */
-@@ -539,6 +542,11 @@
- 
- 	init_structs();
- 
-+
-+#ifdef PYTHON3_HOME
-+	Py_SetPythonHome(PYTHON3_HOME);
-+#endif
-+
- 	/* initialise threads */
- 	PyEval_InitThreads();
- 
-diff -Naur vim73.orig/src/if_ruby.c vim73/src/if_ruby.c
---- vim73.orig/src/if_ruby.c	2010-06-30 15:33:12.000000000 -0400
-+++ vim73/src/if_ruby.c	2011-01-08 21:01:19.442657935 -0500
-@@ -4,6 +4,7 @@
-  *
-  * Ruby interface by Shugo Maeda
-  *   with improvements by SegPhault (Ryan Paul)
-+ *   with improvements by Jon Maken
-  *
-  * Do ":help uganda"  in Vim to read copying and usage conditions.
-  * Do ":help credits" in Vim to see a list of people who contributed.
-@@ -13,6 +14,10 @@
- #include <stdio.h>
- #include <string.h>
- 
-+#ifdef HAVE_CONFIG_H
-+# include "auto/config.h"
-+#endif
-+
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
- #   define NT
-@@ -26,12 +31,12 @@
- # define RUBYEXTERN extern
- #endif
- 
-+#ifdef DYNAMIC_RUBY
- /*
-  * This is tricky.  In ruby.h there is (inline) function rb_class_of()
-  * definition.  This function use these variables.  But we want function to
-  * use dll_* variables.
-  */
--#ifdef DYNAMIC_RUBY
- # define rb_cFalseClass		(*dll_rb_cFalseClass)
- # define rb_cFixnum		(*dll_rb_cFixnum)
- # define rb_cNilClass		(*dll_rb_cNilClass)
-@@ -46,8 +51,23 @@
-  */
- #  define RUBY_EXPORT
- # endif
-+
-+#if !(defined(WIN32) || defined(_WIN64))
-+# include <dlfcn.h>
-+# define HINSTANCE void*
-+# define RUBY_PROC void*
-+# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-+# define symbol_from_dll dlsym
-+# define close_dll dlclose
-+#else
-+# define RUBY_PROC FARPROC
-+# define load_dll vimLoadLib
-+# define symbol_from_dll GetProcAddress
-+# define close_dll FreeLibrary
- #endif
- 
-+#endif  /* ifdef DYNAMIC_RUBY */
-+
- /* suggested by Ariya Mizutani */
- #if (_MSC_VER == 1200)
- # undef _WIN32_WINNT
-@@ -70,6 +90,7 @@
- # include <ruby/encoding.h>
- #endif
- 
-+#undef off_t	/* ruby defines off_t as _int64, Mingw uses long */
- #undef EXTERN
- #undef _
- 
-@@ -160,28 +181,35 @@
- #define rb_lastline_get			dll_rb_lastline_get
- #define rb_lastline_set			dll_rb_lastline_set
- #define rb_load_protect			dll_rb_load_protect
-+#ifndef RUBY19_OR_LATER
- #define rb_num2long			dll_rb_num2long
-+#endif
- #define rb_num2ulong			dll_rb_num2ulong
- #define rb_obj_alloc			dll_rb_obj_alloc
- #define rb_obj_as_string		dll_rb_obj_as_string
- #define rb_obj_id			dll_rb_obj_id
- #define rb_raise			dll_rb_raise
--#define rb_str2cstr			dll_rb_str2cstr
- #define rb_str_cat			dll_rb_str_cat
- #define rb_str_concat			dll_rb_str_concat
- #define rb_str_new			dll_rb_str_new
- #ifdef rb_str_new2
- /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */
- # define need_rb_str_new_cstr 1
-+/* Ruby's headers #define rb_str_new_cstr to make use of GCC's
-+ * __builtin_constant_p extension. */
-+# undef rb_str_new_cstr
- # define rb_str_new_cstr		dll_rb_str_new_cstr
- #else
- # define rb_str_new2			dll_rb_str_new2
- #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+# define rb_string_value		dll_rb_string_value
- # define rb_string_value_ptr		dll_rb_string_value_ptr
- # define rb_float_new			dll_rb_float_new
- # define rb_ary_new			dll_rb_ary_new
- # define rb_ary_push			dll_rb_ary_push
-+#else
-+# define rb_str2cstr			dll_rb_str2cstr
- #endif
- #ifdef RUBY19_OR_LATER
- # define rb_errinfo			dll_rb_errinfo
-@@ -190,9 +218,11 @@
- #endif
- #define ruby_init			dll_ruby_init
- #define ruby_init_loadpath		dll_ruby_init_loadpath
--#define NtInitialize			dll_NtInitialize
--#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
--# define rb_w32_snprintf		dll_rb_w32_snprintf
-+#ifdef WIN3264
-+# define NtInitialize			dll_NtInitialize
-+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+#  define rb_w32_snprintf		dll_rb_w32_snprintf
-+# endif
- #endif
- 
- #ifdef RUBY19_OR_LATER
-@@ -201,7 +231,9 @@
- # define rb_enc_find			dll_rb_enc_find
- # define rb_enc_str_new			dll_rb_enc_str_new
- # define rb_sprintf			dll_rb_sprintf
-+# define rb_require			dll_rb_require
- # define ruby_init_stack		dll_ruby_init_stack
-+# define ruby_process_options		dll_ruby_process_options
- #endif
- 
- /*
-@@ -246,7 +278,11 @@
- static VALUE (*dll_rb_obj_as_string) (VALUE);
- static VALUE (*dll_rb_obj_id) (VALUE);
- static void (*dll_rb_raise) (VALUE, const char*, ...);
-+#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+static VALUE (*dll_rb_string_value) (volatile VALUE*);
-+#else
- static char *(*dll_rb_str2cstr) (VALUE,int*);
-+#endif
- static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
- static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
- static VALUE (*dll_rb_str_new) (const char*, long);
-@@ -263,7 +299,12 @@
- #endif
- static void (*dll_ruby_init) (void);
- static void (*dll_ruby_init_loadpath) (void);
-+#ifdef WIN3264
- static void (*dll_NtInitialize) (int*, char***);
-+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
-+# endif
-+#endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
- static VALUE (*dll_rb_float_new) (double);
-@@ -273,9 +314,6 @@
- #ifdef RUBY19_OR_LATER
- static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
- #endif
--#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
--static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
--#endif
- 
- #ifdef RUBY19_OR_LATER
- static void (*dll_ruby_script) (const char*);
-@@ -283,7 +321,9 @@
- static rb_encoding* (*dll_rb_enc_find) (const char*);
- static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
- static VALUE (*dll_rb_sprintf) (const char*, ...);
-+static VALUE (*dll_rb_require) (const char*);
- static void (*ruby_init_stack)(VALUE*);
-+static void* (*ruby_process_options)(int, char**);
- #endif
- 
- #ifdef RUBY19_OR_LATER
-@@ -297,12 +337,11 @@
- }
- #endif
- 
--static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
-+static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
- 
- /*
-  * Table of name to function pointer of ruby.
-  */
--#define RUBY_PROC FARPROC
- static struct
- {
-     char *name;
-@@ -347,7 +386,11 @@
-     {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
-     {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
-     {"rb_raise", (RUBY_PROC*)&dll_rb_raise},
-+#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+    {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
-+#else
-     {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
-+#endif
-     {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
-     {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
-     {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
-@@ -363,15 +406,17 @@
- #endif
-     {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
-     {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
-+#ifdef WIN3264
-     {
--#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
-+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
-     "NtInitialize",
--#else
-+# else
-     "ruby_sysinit",
--#endif
-+# endif
- 			(RUBY_PROC*)&dll_NtInitialize},
--#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-     {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
-+# endif
- #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-     {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
-@@ -386,7 +431,9 @@
-     {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
-     {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
-     {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
-+    {"rb_require", (RUBY_PROC*)&dll_rb_require},
-     {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
-+    {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
- #endif
-     {"", NULL},
- };
-@@ -399,8 +446,8 @@
- {
-     if (hinstRuby)
-     {
--	FreeLibrary(hinstRuby);
--	hinstRuby = 0;
-+	close_dll(hinstRuby);
-+	hinstRuby = NULL;
-     }
- }
- 
-@@ -416,7 +463,7 @@
- 
-     if (hinstRuby)
- 	return OK;
--    hinstRuby = LoadLibrary(libname);
-+    hinstRuby = load_dll(libname);
-     if (!hinstRuby)
-     {
- 	if (verbose)
-@@ -426,11 +473,11 @@
- 
-     for (i = 0; ruby_funcname_table[i].ptr; ++i)
-     {
--	if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
-+	if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
- 			ruby_funcname_table[i].name)))
- 	{
--	    FreeLibrary(hinstRuby);
--	    hinstRuby = 0;
-+	    close_dll(hinstRuby);
-+	    hinstRuby = NULL;
- 	    if (verbose)
- 		EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
- 	    return FAIL;
-@@ -539,9 +586,9 @@
- 	if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
- 	    return;
- 	for (i = eap->line1; i <= eap->line2; i++) {
--	    VALUE line, oldline;
-+	    VALUE line;
- 
--	    line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
-+	    line = vim_str2rb_enc_str((char *)ml_get(i));
- 	    rb_lastline_set(line);
- 	    eval_enc_string_protect((char *) eap->arg, &state);
- 	    if (state) {
-@@ -616,13 +663,16 @@
- 		ruby_init();
- 	    }
- #ifdef RUBY19_OR_LATER
-+	    {
-+		int dummy_argc = 2;
-+		char *dummy_argv[] = {"vim-ruby", "-e0"};
-+		ruby_process_options(dummy_argc, dummy_argv);
-+	    }
- 	    ruby_script("vim-ruby");
--#endif
-+#else
- 	    ruby_init_loadpath();
--	    ruby_io_init();
--#ifdef RUBY19_OR_LATER
--	    rb_enc_find_index("encdb");
- #endif
-+	    ruby_io_init();
- 	    ruby_vim_init();
- 	    ruby_initialized = 1;
- #ifdef DYNAMIC_RUBY
-@@ -906,15 +956,9 @@
- 
- static VALUE get_buffer_line(buf_T *buf, linenr_T n)
- {
--    if (n > 0 && n <= buf->b_ml.ml_line_count)
--    {
--	char *line = (char *)ml_get_buf(buf, n, FALSE);
--	return line ? vim_str2rb_enc_str(line) : Qnil;
--    }
--    rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
--#ifndef __GNUC__
--    return Qnil; /* For stop warning */
--#endif
-+    if (n <= 0 || n > buf->b_ml.ml_line_count)
-+	rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
-+    return vim_str2rb_enc_str((char *)ml_get_buf(buf, n, FALSE));
- }
- 
- static VALUE buffer_aref(VALUE self, VALUE num)
-@@ -953,9 +997,6 @@
-     else
-     {
- 	rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
--#ifndef __GNUC__
--	return Qnil; /* For stop warning */
--#endif
-     }
-     return str;
- }
-@@ -1010,7 +1051,8 @@
-     long	n = NUM2LONG(num);
-     aco_save_T	aco;
- 
--    if (line == NULL) {
-+    if (line == NULL)
-+    {
- 	rb_raise(rb_eIndexError, "NULL line");
-     }
-     else if (n >= 0 && n <= buf->b_ml.ml_line_count)
-@@ -1034,7 +1076,8 @@
- 
- 	update_curbuf(NOT_VALID);
-     }
--    else {
-+    else
-+    {
- 	rb_raise(rb_eIndexError, "line number %ld out of range", n);
-     }
-     return str;
-diff -Naur vim73.orig/src/if_sniff.c vim73/src/if_sniff.c
---- vim73.orig/src/if_sniff.c	2010-05-15 07:04:06.000000000 -0400
-+++ vim73/src/if_sniff.c	2011-01-08 21:01:19.378657342 -0500
-@@ -9,7 +9,6 @@
- 
- #ifdef WIN32
- # include <stdio.h>
--# include "vimio.h"
- # include <process.h>
- # include <string.h>
- # include <assert.h>
-diff -Naur vim73.orig/src/if_tcl.c vim73/src/if_tcl.c
---- vim73.orig/src/if_tcl.c	2010-08-08 09:07:25.000000000 -0400
-+++ vim73/src/if_tcl.c	2011-01-08 21:01:19.434656677 -0500
-@@ -74,7 +74,6 @@
- #endif
- 
- #include <tcl.h>
--#include <errno.h>
- #include <string.h>
- 
- typedef struct
-diff -Naur vim73.orig/src/integration.c vim73/src/integration.c
---- vim73.orig/src/integration.c	2010-08-08 09:09:21.000000000 -0400
-+++ vim73/src/integration.c	2011-01-08 21:01:19.434656677 -0500
-@@ -33,7 +33,6 @@
- #include <sys/un.h>
- #endif
- 
--#include <errno.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/param.h>
-diff -Naur vim73.orig/src/link.sh vim73/src/link.sh
---- vim73.orig/src/link.sh	2010-07-21 15:43:29.000000000 -0400
-+++ vim73/src/link.sh	2011-01-08 21:01:19.122658259 -0500
-@@ -5,7 +5,7 @@
- # libraries when they exist, but this doesn't mean they are needed for Vim.
- #
- #      Author: Bram Moolenaar
--# Last change: 2006 Sep 26
-+# Last change: 2010 Nov 03
- #     License: Public domain
- #
- # Warning: This fails miserably if the linker doesn't return an error code!
-@@ -16,11 +16,23 @@
- echo "$LINK " >link.cmd
- exit_value=0
- 
-+if test "$LINK_AS_NEEDED" = yes; then
-+  echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
-+  cat link.cmd
-+  if sh link.cmd; then
-+    exit_value=0
-+    echo "link.sh: Linked fine"
-+  else
-+    exit_value=$?
-+    echo "link.sh: Linking failed"
-+  fi
-+else
-+  if test -f auto/link.sed; then
-+
- #
- # If auto/link.sed already exists, use it.  We assume a previous run of
- # link.sh has found the correct set of libraries.
- #
--if test -f auto/link.sed; then
-   echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
-   echo "link.sh: If linking fails, try deleting the auto/link.sed file."
-   echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
-@@ -124,6 +136,8 @@
-   fi
- fi
- 
-+fi
-+
- #
- # cleanup
- #
-diff -Naur vim73.orig/src/macros.h vim73/src/macros.h
---- vim73.orig/src/macros.h	2010-07-17 15:41:21.000000000 -0400
-+++ vim73/src/macros.h	2011-01-08 20:59:41.002656834 -0500
-@@ -285,3 +285,17 @@
- #else
- # define DO_AUTOCHDIR
- #endif
-+
-+#if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
-+# define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
-+#else
-+# if defined(FEAT_SCROLLBIND)
-+#  define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE
-+# else
-+#  if defined(FEAT_CURSORBIND)
-+#   define RESET_BINDING(wp)  (wp)->w_p_crb = FALSE
-+#  else
-+#   define RESET_BINDING(wp)
-+#  endif
-+# endif
-+#endif
-diff -Naur vim73.orig/src/main.c vim73/src/main.c
---- vim73.orig/src/main.c	2010-08-08 09:09:55.000000000 -0400
-+++ vim73/src/main.c	2011-01-08 21:01:19.378657342 -0500
-@@ -7,10 +7,6 @@
-  * See README.txt for an overview of the Vim source code.
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"		/* for close() and dup() */
--#endif
--
- #define EXTERN
- #include "vim.h"
- 
-@@ -940,7 +936,7 @@
-     if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
-     {
- # ifdef FEAT_GUI
--#  if !defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK)  \
-+#  if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)  \
- 		&& !defined(FEAT_GUI_W32)
- 	if (gui.in_use)
- 	{
-@@ -3817,6 +3813,8 @@
-     /* Check if we have at least one argument. */
-     if (filec <= 0)
- 	mainerr_arg_missing((char_u *)filev[-1]);
-+
-+    /* Temporarily cd to the current directory to handle relative file names. */
-     if (mch_dirname(cwd, MAXPATHL) != OK)
- 	return NULL;
-     if ((p = vim_strsave_escaped_ext(cwd,
-@@ -3858,13 +3856,20 @@
- 	ga_concat(&ga, p);
- 	vim_free(p);
-     }
-+    ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
-+
-     /* The :drop commands goes to Insert mode when 'insertmode' is set, use
-      * CTRL-\ CTRL-N again. */
--    ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
--    ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd -");
-+    ga_concat(&ga, (char_u *)"<C-\\><C-N>");
-+
-+    /* Switch back to the correct current directory (prior to temporary path
-+     * switch) unless 'autochdir' is set, in which case it will already be
-+     * correct after the :drop command. */
-+    ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif<CR>");
-+
-     if (sendReply)
--	ga_concat(&ga, (char_u *)"<CR>:call SetupRemoteReplies()");
--    ga_concat(&ga, (char_u *)"<CR>:");
-+	ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>");
-+    ga_concat(&ga, (char_u *)":");
-     if (inicmd != NULL)
-     {
- 	/* Can't use <CR> after "inicmd", because an "startinsert" would cause
-diff -Naur vim73.orig/src/mbyte.c vim73/src/mbyte.c
---- vim73.orig/src/mbyte.c	2010-07-18 09:05:44.000000000 -0400
-+++ vim73/src/mbyte.c	2011-01-08 21:01:19.006657043 -0500
-@@ -3124,6 +3124,9 @@
- 		/* If one of the two characters is incomplete return -1. */
- 		if (incomplete || i + utf_byte2len(s2[i]) > n)
- 		    return -1;
-+		/* Don't case-fold illegal bytes or truncated characters. */
-+		if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
-+		    return -1;
- 		cdiff = utf_fold(utf_ptr2char(s1 + i))
- 					     - utf_fold(utf_ptr2char(s2 + i));
- 		if (cdiff != 0)
-@@ -4159,11 +4162,11 @@
- {
-     if (hIconvDLL != 0 && hMsvcrtDLL != 0)
- 	return TRUE;
--    hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL);
-+    hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL);
-     if (hIconvDLL == 0)		/* sometimes it's called libiconv.dll */
--	hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL_ALT);
-+	hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT);
-     if (hIconvDLL != 0)
--	hMsvcrtDLL = LoadLibrary(DYNAMIC_MSVCRT_DLL);
-+	hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL);
-     if (hIconvDLL == 0 || hMsvcrtDLL == 0)
-     {
- 	/* Only give the message when 'verbose' is set, otherwise it might be
-@@ -5167,16 +5170,16 @@
-     void
- xim_set_preedit()
- {
--    if (xic == NULL)
--	return;
--
--    xim_set_focus(TRUE);
--
-     XVaNestedList attr_list;
-     XRectangle spot_area;
-     XPoint over_spot;
-     int line_space;
- 
-+    if (xic == NULL)
-+	return;
-+
-+    xim_set_focus(TRUE);
-+
-     if (!xim_has_focus)
-     {
- 	/* hide XIM cursor */
-@@ -5554,12 +5557,12 @@
-     void
- xim_set_status_area()
- {
--    if (xic == NULL)
--	return;
--
-     XVaNestedList preedit_list = 0, status_list = 0, list = 0;
-     XRectangle pre_area, status_area;
- 
-+    if (xic == NULL)
-+	return;
-+
-     if (input_style & XIMStatusArea)
-     {
- 	if (input_style & XIMPreeditArea)
-diff -Naur vim73.orig/src/memfile.c vim73/src/memfile.c
---- vim73.orig/src/memfile.c	2010-06-20 22:59:57.000000000 -0400
-+++ vim73/src/memfile.c	2011-01-08 21:01:19.378657342 -0500
-@@ -32,10 +32,6 @@
-  * file is opened.
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for lseek(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- /*
-@@ -1049,7 +1045,7 @@
- 	PERROR(_("E294: Seek error in swap file read"));
- 	return FAIL;
-     }
--    if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size)
-+    if ((unsigned)read_eintr(mfp->mf_fd, hp->bh_data, size) != size)
-     {
- 	PERROR(_("E295: Read error in swap file"));
- 	return FAIL;
-@@ -1168,7 +1164,7 @@
-     }
- #endif
- 
--    if ((unsigned)vim_write(mfp->mf_fd, data, size) != size)
-+    if ((unsigned)write_eintr(mfp->mf_fd, data, size) != size)
- 	result = FAIL;
- 
- #ifdef FEAT_CRYPT
-diff -Naur vim73.orig/src/memline.c vim73/src/memline.c
---- vim73.orig/src/memline.c	2010-08-08 09:11:46.000000000 -0400
-+++ vim73/src/memline.c	2011-01-08 21:01:19.434656677 -0500
-@@ -42,10 +42,6 @@
-  *  mf_get().
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for mch_open(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- #ifndef UNIX		/* it's in os_unix.h for Unix */
-@@ -56,10 +52,6 @@
- # include <proto/dos.h>	    /* for Open() and Close() */
- #endif
- 
--#ifdef HAVE_ERRNO_H
--# include <errno.h>
--#endif
--
- typedef struct block0		ZERO_BL;    /* contents of the first block */
- typedef struct pointer_block	PTR_BL;	    /* contents of a pointer block */
- typedef struct data_block	DATA_BL;    /* contents of a data block */
-@@ -582,6 +574,9 @@
- 	    idx = ip->ip_index + 1;	    /* go to next index */
- 	    page_count = 1;
- 	}
-+
-+	if (error > 0)
-+	    EMSG(_("E843: Error while updating swap file crypt"));
-     }
- 
-     mfp->mf_old_key = NULL;
-@@ -2059,7 +2054,7 @@
-     fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
-     if (fd >= 0)
-     {
--	if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
-+	if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
- 	{
- 	    if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
- 	    {
-@@ -2384,7 +2379,7 @@
-  * Make a copy of the line if necessary.
-  */
- /*
-- * get a pointer to a (read-only copy of a) line
-+ * Return a pointer to a (read-only copy of a) line.
-  *
-  * On failure an error message is given and IObuff is returned (to avoid
-  * having to check for error everywhere).
-@@ -2397,7 +2392,7 @@
- }
- 
- /*
-- * ml_get_pos: get pointer to position 'pos'
-+ * Return pointer to position "pos".
-  */
-     char_u *
- ml_get_pos(pos)
-@@ -2407,7 +2402,7 @@
- }
- 
- /*
-- * ml_get_curline: get pointer to cursor line.
-+ * Return pointer to cursor line.
-  */
-     char_u *
- ml_get_curline()
-@@ -2416,7 +2411,7 @@
- }
- 
- /*
-- * ml_get_cursor: get pointer to cursor position
-+ * Return pointer to cursor position.
-  */
-     char_u *
- ml_get_cursor()
-@@ -2426,7 +2421,7 @@
- }
- 
- /*
-- * get a pointer to a line in a specific buffer
-+ * Return a pointer to a line in a specific buffer
-  *
-  * "will_change": if TRUE mark the buffer dirty (chars in the line will be
-  * changed)
-@@ -4389,7 +4384,7 @@
- 		fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
- 		if (fd >= 0)
- 		{
--		    if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
-+		    if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
- 		    {
- 			/*
- 			 * If the swapfile has the same directory as the
-diff -Naur vim73.orig/src/menu.c vim73/src/menu.c
---- vim73.orig/src/menu.c	2010-07-14 10:49:01.000000000 -0400
-+++ vim73/src/menu.c	2011-01-08 21:01:19.494656637 -0500
-@@ -1512,8 +1512,8 @@
- {
- #ifdef FEAT_MULTI_LANG
-     if (menu->en_name != NULL
--	    && (menu_namecmp(name,menu->en_name)
--		|| menu_namecmp(name,menu->en_dname)))
-+	    && (menu_namecmp(name, menu->en_name)
-+		|| menu_namecmp(name, menu->en_dname)))
- 	return TRUE;
- #endif
-     return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
-@@ -2342,7 +2342,7 @@
- 
- 	while (menu != NULL)
- 	{
--	    if (STRCMP(name, menu->name) == 0 || STRCMP(name, menu->dname) == 0)
-+	    if (menu_name_equal(name, menu))
- 	    {
- 		if (menu->children == NULL)
- 		{
-diff -Naur vim73.orig/src/message.c vim73/src/message.c
---- vim73.orig/src/message.c	2010-08-04 14:10:02.000000000 -0400
-+++ vim73/src/message.c	2011-01-08 21:01:19.510657932 -0500
-@@ -569,6 +569,10 @@
-     int		severe;
- #endif
- 
-+    /* Skip this if not giving error messages at the moment. */
-+    if (emsg_not_now())
-+	return TRUE;
-+
-     called_emsg = TRUE;
-     ex_exitval = 1;
- 
-@@ -581,10 +585,6 @@
-     emsg_severe = FALSE;
- #endif
- 
--    /* Skip this if not giving error messages at the moment. */
--    if (emsg_not_now())
--	return TRUE;
--
-     if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
-     {
- #ifdef FEAT_EVAL
-@@ -1477,6 +1477,27 @@
-     return retval;
- }
- 
-+#if defined(FEAT_EVAL) || defined(PROTO)
-+/*
-+ * Return the lhs or rhs of a mapping, with the key codes turned into printable
-+ * strings, in an allocated string.
-+ */
-+    char_u *
-+str2special_save(str, is_lhs)
-+    char_u  *str;
-+    int	    is_lhs;  /* TRUE for lhs, FALSE for rhs */
-+{
-+    garray_T	ga;
-+    char_u	*p = str;
-+
-+    ga_init2(&ga, 1, 40);
-+    while (*p != NUL)
-+	ga_concat(&ga, str2special(&p, is_lhs));
-+    ga_append(&ga, NUL);
-+    return (char_u *)ga.ga_data;
-+}
-+#endif
-+
- /*
-  * Return the printable string for the key codes at "*sp".
-  * Used for translating the lhs or rhs of a mapping to printable chars.
-diff -Naur vim73.orig/src/misc1.c vim73/src/misc1.c
---- vim73.orig/src/misc1.c	2010-08-15 07:24:05.000000000 -0400
-+++ vim73/src/misc1.c	2011-01-08 21:01:19.466658112 -0500
-@@ -3114,10 +3114,11 @@
- 	       && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
- 	    continue;
- 
--	/* found a termcode: adjust length */
--	if (n > 0)
-+	if (n == KEYLEN_REMOVED)  /* key code removed */
-+	    continue;
-+	if (n > 0)		/* found a termcode: adjust length */
- 	    len = n;
--	if (len == 0)	    /* nothing typed yet */
-+	if (len == 0)		/* nothing typed yet */
- 	    continue;
- 
- 	/* Handle modifier and/or special key code. */
-@@ -9161,7 +9162,10 @@
- #ifdef CASE_INSENSITIVE_FILENAME
-     regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
- #else
--    regmatch.rm_ic = FALSE;		/* Don't ever ignore case */
-+    if (flags & EW_ICASE)
-+	regmatch.rm_ic = TRUE;		/* 'wildignorecase' set */
-+    else
-+	regmatch.rm_ic = FALSE;		/* Don't ignore case */
- #endif
-     regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
-     vim_free(pat);
-@@ -9317,7 +9321,8 @@
- 	    continue;  /* it's different when it's shorter */
- 
- 	rival = other_paths[j] + other_path_len - candidate_len;
--	if (fnamecmp(maybe_unique, rival) == 0)
-+	if (fnamecmp(maybe_unique, rival) == 0
-+		&& (rival == other_paths[j] || vim_ispathsep(*(rival - 1))))
- 	    return FALSE;  /* match */
-     }
- 
-@@ -9642,7 +9647,7 @@
-     if (paths == NULL)
- 	return 0;
- 
--    files = globpath(paths, pattern, 0);
-+    files = globpath(paths, pattern, (flags & EW_ICASE) ? WILD_ICASE : 0);
-     vim_free(paths);
-     if (files == NULL)
- 	return 0;
-diff -Naur vim73.orig/src/misc2.c vim73/src/misc2.c
---- vim73.orig/src/misc2.c	2010-08-13 05:14:35.000000000 -0400
-+++ vim73/src/misc2.c	2011-01-08 21:01:19.302660568 -0500
-@@ -200,7 +200,6 @@
- 	}
- #endif
- 
--	idx = -1;
- 	ptr = line;
- 	while (col <= wcol && *ptr != NUL)
- 	{
-@@ -1223,7 +1222,7 @@
- #endif
- 
- /*
-- * copy a string into newly allocated memory
-+ * Copy "string" into newly allocated memory.
-  */
-     char_u *
- vim_strsave(string)
-@@ -1239,6 +1238,12 @@
-     return p;
- }
- 
-+/*
-+ * Copy up to "len" bytes of "string" into newly allocated memory and
-+ * terminate with a NUL.
-+ * The allocated memory always has size "len + 1", also when "string" is
-+ * shorter.
-+ */
-     char_u *
- vim_strnsave(string, len)
-     char_u	*string;
-diff -Naur vim73.orig/src/netbeans.c vim73/src/netbeans.c
---- vim73.orig/src/netbeans.c	2010-08-09 16:48:09.000000000 -0400
-+++ vim73/src/netbeans.c	2011-01-08 21:01:19.498658408 -0500
-@@ -16,10 +16,6 @@
-  * See ":help netbeans-protocol" for explanation.
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for mch_open(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
-@@ -87,7 +83,7 @@
- static void nb_init_graphics __ARGS((void));
- static void coloncmd __ARGS((char *cmd, ...));
- static void nb_set_curbuf __ARGS((buf_T *buf));
--#ifdef FEAT_GUI_MOTIF
-+#ifdef FEAT_GUI_X11
- static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
- #endif
- #ifdef FEAT_GUI_GTK
-@@ -112,7 +108,7 @@
- static NBSOCK nbsock = -1;		/* socket fd for Netbeans connection */
- #define NETBEANS_OPEN (nbsock != -1)
- 
--#ifdef FEAT_GUI_MOTIF
-+#ifdef FEAT_GUI_X11
- static XtInputId inputHandler = (XtInputId)NULL;  /* Cookie for input */
- #endif
- #ifdef FEAT_GUI_GTK
-@@ -135,15 +131,13 @@
- static int needupdate = 0;
- static int inAtomic = 0;
- 
-+/*
-+ * Close the socket and remove the input handlers.
-+ */
-     static void
--netbeans_close(void)
-+nb_close_socket(void)
- {
--    if (!NETBEANS_OPEN)
--	return;
--
--    netbeans_send_disconnect();
--
--#ifdef FEAT_GUI_MOTIF
-+#ifdef FEAT_GUI_X11
-     if (inputHandler != (XtInputId)NULL)
-     {
- 	XtRemoveInput(inputHandler);
-@@ -167,13 +161,27 @@
- # endif
- #endif
- 
-+    sock_close(nbsock);
-+    nbsock = -1;
-+}
-+
-+/*
-+ * Close the connection and cleanup.
-+ * May be called when nb_close_socket() was called earlier.
-+ */
-+    static void
-+netbeans_close(void)
-+{
-+    if (NETBEANS_OPEN)
-+    {
-+	netbeans_send_disconnect();
-+	nb_close_socket();
-+    }
-+
- #ifdef FEAT_BEVAL
-     bevalServers &= ~BEVAL_NETBEANS;
- #endif
- 
--    sock_close(nbsock);
--    nbsock = -1;
--
-     needupdate = 0;
-     inAtomic = 0;
-     nb_free();
-@@ -311,14 +319,9 @@
-     server.sin_port = htons(port);
-     if ((host = gethostbyname(hostname)) == NULL)
-     {
--	if (mch_access(hostname, R_OK) >= 0)
--	{
--	    /* DEBUG: input file */
--	    sd = mch_open(hostname, O_RDONLY, 0);
--	    goto theend;
--	}
- 	nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
- 	PERROR("gethostbyname() in netbeans_connect()");
-+	sock_close(sd);
- 	goto theend;
-     }
-     memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
-@@ -368,15 +371,12 @@
- 							 || (errno == EINTR)))
- 		{
- 		    nbdebug(("retrying...\n"));
--		    sleep(5);
--		    if (!doabort)
-+		    mch_delay(3000L, TRUE);
-+		    ui_breakcheck();
-+		    if (got_int)
- 		    {
--			ui_breakcheck();
--			if (got_int)
--			{
--			    errno = EINTR;
--			    break;
--			}
-+			errno = EINTR;
-+			break;
- 		    }
- 		    if (connect(sd, (struct sockaddr *)&server,
- 							 sizeof(server)) == 0)
-@@ -391,6 +391,7 @@
- 		    /* Get here when the server can't be found. */
- 		    nbdebug(("Cannot connect to Netbeans #2\n"));
- 		    PERROR(_("Cannot connect to Netbeans #2"));
-+		    sock_close(sd);
- 		    if (doabort)
- 			getout(1);
- 		    goto theend;
-@@ -401,6 +402,7 @@
- 	{
- 	    nbdebug(("Cannot connect to Netbeans\n"));
- 	    PERROR(_("Cannot connect to Netbeans"));
-+	    sock_close(sd);
- 	    if (doabort)
- 		getout(1);
- 	    goto theend;
-@@ -631,9 +633,7 @@
- {
-     char_u	*p;
-     queue_T	*node;
--
--    if (!NETBEANS_OPEN)
--	return;
-+    int		own_node;
- 
-     while (head.next != NULL && head.next != &head)
-     {
-@@ -672,20 +672,25 @@
- 	    *p++ = NUL;
- 	    if (*p == NUL)
- 	    {
-+		own_node = TRUE;
- 		head.next = node->next;
- 		node->next->prev = node->prev;
- 	    }
-+	    else
-+		own_node = FALSE;
- 
- 	    /* now, parse and execute the commands */
- 	    nb_parse_cmd(node->buffer);
- 
--	    if (*p == NUL)
-+	    if (own_node)
- 	    {
- 		/* buffer finished, dispose of the node and buffer */
- 		vim_free(node->buffer);
- 		vim_free(node);
- 	    }
--	    else
-+	    /* Check that "head" wasn't changed under our fingers, e.g. when a
-+	     * DETACH command was handled. */
-+	    else if (head.next == node)
- 	    {
- 		/* more follows, move to the start */
- 		STRMOVE(node->buffer, p);
-@@ -700,7 +705,7 @@
- /*
-  * Read a command from netbeans.
-  */
--#ifdef FEAT_GUI_MOTIF
-+#ifdef FEAT_GUI_X11
-     static void
- messageFromNetbeans(XtPointer clientData UNUSED,
- 		    int *unused1 UNUSED,
-@@ -720,15 +725,14 @@
- }
- #endif
- 
-+#define DETACH_MSG "DETACH\n"
-+
-     void
- netbeans_read()
- {
-     static char_u	*buf = NULL;
-     int			len = 0;
-     int			readlen = 0;
--#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
--    static int		level = 0;
--#endif
- #ifdef HAVE_SELECT
-     struct timeval	tval;
-     fd_set		rfds;
-@@ -744,13 +748,6 @@
- 	return;
-     }
- 
--#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
--    /* recursion guard; this will be called from the X event loop at unknown
--     * moments */
--    if (NB_HAS_GUI)
--	++level;
--#endif
--
-     /* Allocate a buffer to read into. */
-     if (buf == NULL)
-     {
-@@ -790,34 +787,32 @@
- 	    break;	/* did read everything that's available */
-     }
- 
-+    /* Reading a socket disconnection (readlen == 0), or a socket error. */
-     if (readlen <= 0)
-     {
--	/* read error or didn't read anything */
--	netbeans_close();
--	nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
-+	/* Queue a "DETACH" netbeans message in the command queue in order to
-+	 * terminate the netbeans session later. Do not end the session here
-+	 * directly as we may be running in the context of a call to
-+	 * netbeans_parse_messages():
-+	 *	netbeans_parse_messages
-+	 *	    -> autocmd triggered while processing the netbeans cmd
-+	 *		-> ui_breakcheck
-+	 *		    -> gui event loop or select loop
-+	 *			-> netbeans_read()
-+	 */
-+	save((char_u *)DETACH_MSG, (int)strlen(DETACH_MSG));
-+	nb_close_socket();
-+
- 	if (len < 0)
- 	{
- 	    nbdebug(("read from Netbeans socket\n"));
- 	    PERROR(_("read from Netbeans socket"));
- 	}
--	return; /* don't try to parse it */
-     }
- 
--#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_W32)
--    /* Let the main loop handle messages. */
--    if (NB_HAS_GUI)
--    {
--# ifdef FEAT_GUI_GTK
--	if (gtk_main_level() > 0)
--	    gtk_main_quit();
--# else
--	/* Parse the messages now, but avoid recursion. */
--	if (level == 1)
--	    netbeans_parse_messages();
--
--	--level;
--# endif
--    }
-+#if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
-+    if (NB_HAS_GUI && gtk_main_level() > 0)
-+	gtk_main_quit();
- #endif
- }
- 
-@@ -955,7 +950,6 @@
-     keyQ_T *key_node = keyHead.next;
-     queue_T *cmd_node = head.next;
-     nbbuf_T buf;
--    buf_T *bufp;
-     int i;
- 
-     /* free the netbeans buffer list */
-@@ -964,7 +958,7 @@
- 	buf = buf_list[i];
- 	vim_free(buf.displayname);
- 	vim_free(buf.signmap);
--	if ((bufp=buf.bufp) != NULL)
-+	if (buf.bufp != NULL)
- 	{
- 	    buf.bufp->b_netbeans_file = FALSE;
- 	    buf.bufp->b_was_netbeans_file = FALSE;
-@@ -1186,6 +1180,10 @@
- 
-     nbdebug(("REP %d: <none>\n", cmdno));
- 
-+    /* Avoid printing an annoying error message. */
-+    if (!NETBEANS_OPEN)
-+	return;
-+
-     sprintf(reply, "%d\n", cmdno);
-     nb_send(reply, "nb_reply_nil");
- }
-@@ -2773,6 +2771,16 @@
- ex_nbstart(eap)
-     exarg_T	*eap;
- {
-+#ifdef FEAT_GUI
-+# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)  \
-+		&& !defined(FEAT_GUI_W32)
-+    if (gui.in_use)
-+    {
-+	EMSG(_("E838: netbeans is not supported with this GUI"));
-+	return;
-+    }
-+# endif
-+#endif
-     netbeans_open((char *)eap->arg, FALSE);
- }
- 
-@@ -2937,7 +2945,7 @@
-     if (!NB_HAS_GUI || !NETBEANS_OPEN)
- 	return;
- 
--# ifdef FEAT_GUI_MOTIF
-+# ifdef FEAT_GUI_X11
-     /* tell notifier we are interested in being called
-      * when there is input on the editor connection socket
-      */
-@@ -3027,7 +3035,7 @@
-     }
- }
- 
--#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
-+#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
- /*
-  * Tell netbeans that the window was moved or resized.
-  */
-@@ -3458,7 +3466,7 @@
-     return FALSE;
- }
- 
--#if defined(FEAT_GUI_MOTIF) || defined(PROTO)
-+#if defined(FEAT_GUI_X11) || defined(PROTO)
- /*
-  * We have multiple signs to draw at the same location. Draw the
-  * multi-sign indicator instead. This is the Motif version.
-@@ -3487,7 +3495,7 @@
-     XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
-     XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
- }
--#endif /* FEAT_GUI_MOTIF */
-+#endif /* FEAT_GUI_X11 */
- 
- #if defined(FEAT_GUI_GTK) && !defined(PROTO)
- /*
-diff -Naur vim73.orig/src/normal.c vim73/src/normal.c
---- vim73.orig/src/normal.c	2010-07-31 09:25:19.000000000 -0400
-+++ vim73/src/normal.c	2011-01-08 21:01:19.390656741 -0500
-@@ -25,6 +25,9 @@
- static int	restart_VIsual_select = 0;
- #endif
- 
-+#ifdef FEAT_EVAL
-+static void	set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
-+#endif
- static int
- # ifdef __BORLANDC__
- _RTLENTRYF
-@@ -648,6 +651,14 @@
-     dont_scroll = FALSE;	/* allow scrolling here */
- #endif
- 
-+#ifdef FEAT_EVAL
-+    /* Set v:count here, when called from main() and not a stuffed
-+     * command, so that v:count can be used in an expression mapping
-+     * when there is no count. */
-+    if (toplevel && stuff_empty())
-+	set_vcount_ca(&ca, &set_prevcount);
-+#endif
-+
-     /*
-      * Get the command character from the user.
-      */
-@@ -725,15 +736,7 @@
- 	     * command, so that v:count can be used in an expression mapping
- 	     * right after the count. */
- 	    if (toplevel && stuff_empty())
--	    {
--		long count = ca.count0;
--
--		/* multiply with ca.opcount the same way as below */
--		if (ca.opcount != 0)
--		    count = ca.opcount * (count == 0 ? 1 : count);
--		set_vcount(count, count == 0 ? 1 : count, set_prevcount);
--		set_prevcount = FALSE;  /* only set v:prevcount once */
--	    }
-+		set_vcount_ca(&ca, &set_prevcount);
- #endif
- 	    if (ctrl_w)
- 	    {
-@@ -1386,6 +1389,26 @@
-     opcount = ca.opcount;
- }
- 
-+#ifdef FEAT_EVAL
-+/*
-+ * Set v:count and v:count1 according to "cap".
-+ * Set v:prevcount only when "set_prevcount" is TRUE.
-+ */
-+    static void
-+set_vcount_ca(cap, set_prevcount)
-+    cmdarg_T	*cap;
-+    int		*set_prevcount;
-+{
-+    long count = cap->count0;
-+
-+    /* multiply with cap->opcount the same way as above */
-+    if (cap->opcount != 0)
-+	count = cap->opcount * (count == 0 ? 1 : count);
-+    set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
-+    *set_prevcount = FALSE;  /* only set v:prevcount once */
-+}
-+#endif
-+
- /*
-  * Handle an operator after visual mode or when the movement is finished
-  */
-@@ -5666,8 +5689,13 @@
- 	else if (cmdchar == '#')
- 	    aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
- 	else if (tag_cmd)
--	    /* Don't escape spaces and Tabs in a tag with a backslash */
--	    aux_ptr = (char_u *)"\\|\"\n[";
-+	{
-+	    if (curbuf->b_help)
-+		/* ":help" handles unescaped argument */
-+		aux_ptr = (char_u *)"";
-+	    else
-+		aux_ptr = (char_u *)"\\|\"\n[";
-+	}
- 	else
- 	    aux_ptr = (char_u *)"\\|\"\n*?[";
- 
-@@ -8524,7 +8552,7 @@
-     else
- 	curwin->w_curswant = 0;
-     /* keep curswant at the column where we wanted to go, not where
--       we ended; differs if line is too short */
-+     * we ended; differs if line is too short */
-     curwin->w_set_curswant = FALSE;
- }
- 
-diff -Naur vim73.orig/src/ops.c vim73/src/ops.c
---- vim73.orig/src/ops.c	2010-08-01 08:16:08.000000000 -0400
-+++ vim73/src/ops.c	2011-01-08 21:01:19.314657721 -0500
-@@ -1584,9 +1584,11 @@
- adjust_clip_reg(rp)
-     int		*rp;
- {
--    /* If no reg. specified, and "unnamed" is in 'clipboard', use '*' reg. */
--    if (*rp == 0 && clip_unnamed)
--	*rp = '*';
-+    /* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
-+     * use '*' or '+' reg, respectively. "unnamedplus" prevails. */
-+    if (*rp == 0 && clip_unnamed != 0)
-+	*rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
-+								  ? '+' : '*';
-     if (!clip_star.available && *rp == '*')
- 	*rp = 0;
-     if (!clip_plus.available && *rp == '+')
-@@ -2842,6 +2844,9 @@
-     char_u		*p;
-     char_u		*pnew;
-     struct block_def	bd;
-+#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+    int			did_star = FALSE;
-+#endif
- 
- 				    /* check for read-only register */
-     if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
-@@ -3115,7 +3120,8 @@
-      */
-     if (clip_star.available
- 	    && (curr == &(y_regs[STAR_REGISTER])
--		|| (!deleting && oap->regname == 0 && clip_unnamed)))
-+		|| (!deleting && oap->regname == 0
-+					   && (clip_unnamed & CLIP_UNNAMED))))
-     {
- 	if (curr != &(y_regs[STAR_REGISTER]))
- 	    /* Copy the text from register 0 to the clipboard register. */
-@@ -3123,6 +3129,9 @@
- 
- 	clip_own_selection(&clip_star);
- 	clip_gen_set_selection(&clip_star);
-+# ifdef FEAT_X11
-+	did_star = TRUE;
-+# endif
-     }
- 
- # ifdef FEAT_X11
-@@ -3130,12 +3139,19 @@
-      * If we were yanking to the '+' register, send result to selection.
-      * Also copy to the '*' register, in case auto-select is off.
-      */
--    else if (clip_plus.available && curr == &(y_regs[PLUS_REGISTER]))
-+    if (clip_plus.available
-+	    && (curr == &(y_regs[PLUS_REGISTER])
-+		|| (!deleting && oap->regname == 0
-+				      && (clip_unnamed & CLIP_UNNAMED_PLUS))))
-     {
-+	if (curr != &(y_regs[PLUS_REGISTER]))
-+	    /* Copy the text from register 0 to the clipboard register. */
-+	    copy_yank_reg(&(y_regs[PLUS_REGISTER]));
-+
- 	/* No need to copy to * register upon 'unnamed' now - see below */
- 	clip_own_selection(&clip_plus);
- 	clip_gen_set_selection(&clip_plus);
--	if (!clip_isautosel())
-+	if (!clip_isautosel() && !did_star)
- 	{
- 	    copy_yank_reg(&(y_regs[STAR_REGISTER]));
- 	    clip_own_selection(&clip_star);
-@@ -3979,7 +3995,12 @@
-     for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
-     {
- 	name = get_register_name(i);
--	if (arg != NULL && vim_strchr(arg, name) == NULL)
-+	if (arg != NULL && vim_strchr(arg, name) == NULL
-+#ifdef ONE_CLIPBOARD
-+	    /* Star register and plus register contain the same thing. */
-+		&& (name != '*' || vim_strchr(arg, '+') == NULL)
-+#endif
-+		)
- 	    continue;	    /* did not ask for this register */
- 
- #ifdef FEAT_CLIPBOARD
-@@ -4153,9 +4174,10 @@
-     int	    save_undo;
- {
-     char_u	*curr = NULL;
-+    char_u      *curr_start = NULL;
-     char_u	*cend;
-     char_u	*newp;
--    char_u	*spaces;	/* number of spaces inserte before a line */
-+    char_u	*spaces;	/* number of spaces inserted before a line */
-     int		endcurr1 = NUL;
-     int		endcurr2 = NUL;
-     int		currsize = 0;	/* size of the current line */
-@@ -4181,7 +4203,7 @@
-      */
-     for (t = 0; t < count; ++t)
-     {
--	curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
-+	curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
- 	if (insert_space && t > 0)
- 	{
- 	    curr = skipwhite(curr);
-@@ -4265,10 +4287,10 @@
- 	    copy_spaces(cend, (size_t)(spaces[t]));
- 	}
- 	mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
--				 (long)(cend - newp + spaces[t]));
-+			 (long)(cend - newp + spaces[t] - (curr - curr_start)));
- 	if (t == 0)
- 	    break;
--	curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
-+	curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
- 	if (insert_space && t > 1)
- 	    curr = skipwhite(curr);
- 	currsize = (int)STRLEN(curr);
-diff -Naur vim73.orig/src/option.c vim73/src/option.c
---- vim73.orig/src/option.c	2010-08-04 14:49:18.000000000 -0400
-+++ vim73/src/option.c	2011-01-08 21:01:19.282656400 -0500
-@@ -2740,7 +2740,7 @@
- 			    (char_u *)&p_wc, PV_NONE,
- 			    {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
- 			    SCRIPTID_INIT},
--    {"wildcharm",   "wcm",   P_NUM|P_VI_DEF,
-+    {"wildcharm",   "wcm",  P_NUM|P_VI_DEF,
- 			    (char_u *)&p_wcm, PV_NONE,
- 			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
-     {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-@@ -2750,6 +2750,9 @@
- 			    (char_u *)NULL, PV_NONE,
- #endif
- 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-+    {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
-+			    (char_u *)&p_wic, PV_NONE,
-+			    {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
-     {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
- #ifdef FEAT_WILDMENU
- 			    (char_u *)&p_wmnu, PV_NONE,
-@@ -7304,7 +7307,7 @@
-     static char_u *
- check_clipboard_option()
- {
--    int		new_unnamed = FALSE;
-+    int		new_unnamed = 0;
-     int		new_autoselect = FALSE;
-     int		new_autoselectml = FALSE;
-     int		new_html = FALSE;
-@@ -7316,9 +7319,15 @@
-     {
- 	if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
- 	{
--	    new_unnamed = TRUE;
-+	    new_unnamed |= CLIP_UNNAMED;
- 	    p += 7;
- 	}
-+        else if (STRNCMP(p, "unnamedplus", 11) == 0
-+					    && (p[11] == ',' || p[11] == NUL))
-+	{
-+	    new_unnamed |= CLIP_UNNAMED_PLUS;
-+	    p += 11;
-+	}
- 	else if (STRNCMP(p, "autoselect", 10) == 0
- 					&& (p[10] == ',' || p[10] == NUL))
- 	{
-@@ -9756,6 +9765,9 @@
- #ifdef FEAT_SCROLLBIND
-     to->wo_scb = from->wo_scb;
- #endif
-+#ifdef FEAT_CURSORBIND
-+    to->wo_crb = from->wo_crb;
-+#endif
- #ifdef FEAT_SPELL
-     to->wo_spell = from->wo_spell;
- #endif
-@@ -10011,7 +10023,7 @@
- 	    buf->b_p_smc = p_smc;
- #endif
- #ifdef FEAT_SPELL
--	    buf->b_s.b_p_spc = vim_strsave(p_spf);
-+	    buf->b_s.b_p_spc = vim_strsave(p_spc);
- 	    (void)compile_cap_prog(&buf->b_s);
- 	    buf->b_s.b_p_spf = vim_strsave(p_spf);
- 	    buf->b_s.b_p_spl = vim_strsave(p_spl);
-diff -Naur vim73.orig/src/option.h vim73/src/option.h
---- vim73.orig/src/option.h	2010-07-25 10:15:02.000000000 -0400
-+++ vim73/src/option.h	2011-01-08 21:01:19.246657477 -0500
-@@ -872,6 +872,7 @@
- EXTERN char_u	*p_ww;		/* 'whichwrap' */
- EXTERN long	p_wc;		/* 'wildchar' */
- EXTERN long	p_wcm;		/* 'wildcharm' */
-+EXTERN long	p_wic;		/* 'wildignorecase' */
- EXTERN char_u	*p_wim;		/* 'wildmode' */
- #ifdef FEAT_WILDMENU
- EXTERN int	p_wmnu;		/* 'wildmenu' */
-diff -Naur vim73.orig/src/os_macosx.m vim73/src/os_macosx.m
---- vim73.orig/src/os_macosx.m	2010-08-15 06:56:50.000000000 -0400
-+++ vim73/src/os_macosx.m	2011-01-08 21:01:18.806655841 -0500
-@@ -15,6 +15,10 @@
-     Error: MACOS 9 is no longer supported in Vim 7
- #endif
- 
-+/* Avoid a conflict for the definition of Boolean between Mac header files and
-+ * X11 header files. */
-+#define NO_X11_INCLUDES
-+
- #include "vim.h"
- #import <Cocoa/Cocoa.h>
- 
-diff -Naur vim73.orig/src/os_msdos.c vim73/src/os_msdos.c
---- vim73.orig/src/os_msdos.c	2010-05-15 07:04:07.000000000 -0400
-+++ vim73/src/os_msdos.c	2011-01-08 21:01:19.382657751 -0500
-@@ -21,7 +21,6 @@
-  * Some functions are also used for Win16 (MS-Windows 3.1).
-  */
- 
--#include "vimio.h"
- #include "vim.h"
- 
- #include <conio.h>
-diff -Naur vim73.orig/src/os_mswin.c vim73/src/os_mswin.c
---- vim73.orig/src/os_mswin.c	2010-07-27 15:39:05.000000000 -0400
-+++ vim73/src/os_mswin.c	2011-01-08 21:01:19.434656677 -0500
-@@ -22,7 +22,6 @@
- # endif
- #endif
- 
--#include "vimio.h"
- #include "vim.h"
- 
- #ifdef WIN16
-@@ -31,7 +30,6 @@
- # include <string.h>
- #endif
- #include <sys/types.h>
--#include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
-@@ -817,7 +815,11 @@
-     BOOL fRunTimeLinkSuccess = FALSE;
- 
-     // Get a handle to the DLL module.
-+# ifdef WIN16
-     hinstLib = LoadLibrary(libname);
-+# else
-+    hinstLib = vimLoadLib(libname);
-+# endif
- 
-     // If the handle is valid, try to get the function address.
-     if (hinstLib != NULL)
-diff -Naur vim73.orig/src/os_unix.c vim73/src/os_unix.c
---- vim73.orig/src/os_unix.c	2010-08-08 09:14:04.000000000 -0400
-+++ vim73/src/os_unix.c	2011-01-08 21:01:19.358658475 -0500
-@@ -1123,6 +1123,30 @@
- }
- #endif
- 
-+# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+static void loose_clipboard __ARGS((void));
-+
-+/*
-+ * Called when Vim is going to sleep or execute a shell command.
-+ * We can't respond to requests for the X selections.  Lose them, otherwise
-+ * other applications will hang.  But first copy the text to cut buffer 0.
-+ */
-+    static void
-+loose_clipboard()
-+{
-+    if (clip_star.owned || clip_plus.owned)
-+    {
-+	x11_export_final_selection();
-+	if (clip_star.owned)
-+	    clip_lose_selection(&clip_star);
-+	if (clip_plus.owned)
-+	    clip_lose_selection(&clip_plus);
-+	if (x11_display != NULL)
-+	    XFlush(x11_display);
-+    }
-+}
-+#endif
-+
- /*
-  * If the machine has job control, use it to suspend the program,
-  * otherwise fake it by starting a new shell.
-@@ -1137,19 +1161,7 @@
-     out_flush();	    /* needed to disable mouse on some systems */
- 
- # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
--    /* Since we are going to sleep, we can't respond to requests for the X
--     * selections.  Lose them, otherwise other applications will hang.  But
--     * first copy the text to cut buffer 0. */
--    if (clip_star.owned || clip_plus.owned)
--    {
--	x11_export_final_selection();
--	if (clip_star.owned)
--	    clip_lose_selection(&clip_star);
--	if (clip_plus.owned)
--	    clip_lose_selection(&clip_plus);
--	if (x11_display != NULL)
--	    XFlush(x11_display);
--    }
-+    loose_clipboard();
- # endif
- 
- # if defined(_REENTRANT) && defined(SIGCONT)
-@@ -1726,6 +1738,11 @@
-     }
-     if (x11_window == 0 || x11_display == NULL)
- 	return (result = FAIL);
-+
-+# ifdef FEAT_EVAL
-+    set_vim_var_nr(VV_WINDOWID, (long)x11_window);
-+# endif
-+
-     return (result = OK);
- }
- 
-@@ -3706,6 +3723,10 @@
-     if (options & SHELL_COOKED)
- 	settmode(TMODE_COOK);	    /* set to normal mode */
- 
-+# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+    loose_clipboard();
-+# endif
-+
- # ifdef __EMX__
-     if (cmd == NULL)
- 	x = system("");	/* this starts an interactive shell in emx */
-@@ -3814,13 +3835,17 @@
- # endif
-     int		did_settmode = FALSE;	/* settmode(TMODE_RAW) called */
- 
-+    newcmd = vim_strsave(p_sh);
-+    if (newcmd == NULL)		/* out of memory */
-+	goto error;
-+
-     out_flush();
-     if (options & SHELL_COOKED)
- 	settmode(TMODE_COOK);		/* set to normal mode */
- 
--    newcmd = vim_strsave(p_sh);
--    if (newcmd == NULL)		/* out of memory */
--	goto error;
-+# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+    loose_clipboard();
-+# endif
- 
-     /*
-      * Do this loop twice:
-@@ -4148,7 +4173,6 @@
- # ifdef FEAT_GUI
- 		if (pty_master_fd >= 0)
- 		{
--		    close(pty_slave_fd);	/* close slave side of pty */
- 		    fromshell_fd = pty_master_fd;
- 		    toshell_fd = dup(pty_master_fd);
- 		}
-@@ -4430,7 +4454,7 @@
- 		    ++noread_cnt;
- 		    while (RealWaitForChar(fromshell_fd, 10L, NULL))
- 		    {
--			len = read(fromshell_fd, (char *)buffer
-+			len = read_eintr(fromshell_fd, buffer
- # ifdef FEAT_MBYTE
- 				+ buffer_off, (size_t)(BUFLEN - buffer_off)
- # else
-@@ -4617,6 +4641,14 @@
- 		    break;
- 	    }
- 
-+# ifdef FEAT_GUI
-+	    /* Close slave side of pty.  Only do this after the child has
-+	     * exited, otherwise the child may hang when it tries to write on
-+	     * the pty. */
-+	    if (pty_master_fd >= 0)
-+		close(pty_slave_fd);
-+# endif
-+
- 	    /* Make sure the child that writes to the external program is
- 	     * dead. */
- 	    if (wpid > 0)
-diff -Naur vim73.orig/src/os_win16.c vim73/src/os_win16.c
---- vim73.orig/src/os_win16.c	2010-06-26 00:03:31.000000000 -0400
-+++ vim73/src/os_win16.c	2011-01-08 21:01:19.434656677 -0500
-@@ -20,13 +20,11 @@
- # pragma warn -obs
- #endif
- 
--#include "vimio.h"
- #include "vim.h"
- 
- #include <dos.h>
- #include <string.h>
- #include <sys/types.h>
--#include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
-diff -Naur vim73.orig/src/os_win32.c vim73/src/os_win32.c
---- vim73.orig/src/os_win32.c	2010-07-14 10:49:36.000000000 -0400
-+++ vim73/src/os_win32.c	2011-01-08 21:01:19.438656953 -0500
-@@ -20,7 +20,6 @@
-  * Roger Knobbe <rogerk@wonderware.com> did the initial port of Vim 3.0.
-  */
- 
--#include "vimio.h"
- #include "vim.h"
- 
- #ifdef FEAT_MZSCHEME
-@@ -28,7 +27,6 @@
- #endif
- 
- #include <sys/types.h>
--#include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
-@@ -206,42 +204,73 @@
- static int suppress_winsize = 1;	/* don't fiddle with console */
- #endif
- 
-+static char_u *exe_path = NULL;
-+
-     static void
- get_exe_name(void)
- {
--    char	temp[256];
--    static int	did_set_PATH = FALSE;
-+    /* Maximum length of $PATH is more than MAXPATHL.  8191 is often mentioned
-+     * as the maximum length that works (plus a NUL byte). */
-+#define MAX_ENV_PATH_LEN 8192
-+    char	temp[MAX_ENV_PATH_LEN];
-+    char_u	*p;
- 
-     if (exe_name == NULL)
-     {
- 	/* store the name of the executable, may be used for $VIM */
--	GetModuleFileName(NULL, temp, 255);
-+	GetModuleFileName(NULL, temp, MAX_ENV_PATH_LEN - 1);
- 	if (*temp != NUL)
- 	    exe_name = FullName_save((char_u *)temp, FALSE);
-     }
- 
--    if (!did_set_PATH && exe_name != NULL)
-+    if (exe_path == NULL && exe_name != NULL)
-     {
--	char_u	    *p;
--	char_u	    *newpath;
--
--	/* Append our starting directory to $PATH, so that when doing "!xxd"
--	 * it's found in our starting directory.  Needed because SearchPath()
--	 * also looks there. */
--	p = mch_getenv("PATH");
--	newpath = alloc((unsigned)(STRLEN(p) + STRLEN(exe_name) + 2));
--	if (newpath != NULL)
--	{
--	    STRCPY(newpath, p);
--	    STRCAT(newpath, ";");
--	    vim_strncpy(newpath + STRLEN(newpath), exe_name,
--					    gettail_sep(exe_name) - exe_name);
--	    vim_setenv((char_u *)"PATH", newpath);
--	    vim_free(newpath);
-+	exe_path = vim_strnsave(exe_name,
-+				     (int)(gettail_sep(exe_name) - exe_name));
-+	if (exe_path != NULL)
-+	{
-+	    /* Append our starting directory to $PATH, so that when doing
-+	     * "!xxd" it's found in our starting directory.  Needed because
-+	     * SearchPath() also looks there. */
-+	    p = mch_getenv("PATH");
-+	    if (p == NULL
-+		       || STRLEN(p) + STRLEN(exe_path) + 2 < MAX_ENV_PATH_LEN)
-+	    {
-+		if (p == NULL || *p == NUL)
-+		    temp[0] = NUL;
-+		else
-+		{
-+		    STRCPY(temp, p);
-+		    STRCAT(temp, ";");
-+		}
-+		STRCAT(temp, exe_path);
-+		vim_setenv((char_u *)"PATH", temp);
-+	    }
- 	}
-+    }
-+}
-+
-+/*
-+ * Load library "name".
-+ */
-+    HINSTANCE
-+vimLoadLib(char *name)
-+{
-+    HINSTANCE dll = NULL;
-+    char old_dir[MAXPATHL];
- 
--	did_set_PATH = TRUE;
-+    if (exe_path == NULL)
-+	get_exe_name();
-+    if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK)
-+    {
-+	/* Change directory to where the executable is, both to make sure we
-+	 * find a .dll there and to avoid looking for a .dll in the current
-+	 * directory. */
-+	mch_chdir(exe_path);
-+	dll = LoadLibrary(name);
-+	mch_chdir(old_dir);
-     }
-+    return dll;
- }
- 
- #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
-@@ -254,7 +283,7 @@
- static char *null_libintl_bindtextdomain(const char *, const char *);
- static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
- 
--static HINSTANCE hLibintlDLL = 0;
-+static HINSTANCE hLibintlDLL = NULL;
- char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
- char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
- char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
-@@ -282,26 +311,16 @@
-     if (hLibintlDLL)
- 	return 1;
-     /* Load gettext library (libintl.dll) */
--    hLibintlDLL = LoadLibrary(libname != NULL ? libname : GETTEXT_DLL);
-+    hLibintlDLL = vimLoadLib(libname != NULL ? libname : GETTEXT_DLL);
-     if (!hLibintlDLL)
-     {
--	char_u	    dirname[_MAX_PATH];
--
--	/* Try using the path from gvim.exe to find the .dll there. */
--	get_exe_name();
--	STRCPY(dirname, exe_name);
--	STRCPY(gettail(dirname), GETTEXT_DLL);
--	hLibintlDLL = LoadLibrary((char *)dirname);
--	if (!hLibintlDLL)
-+	if (p_verbose > 0)
- 	{
--	    if (p_verbose > 0)
--	    {
--		verbose_enter();
--		EMSG2(_(e_loadlib), GETTEXT_DLL);
--		verbose_leave();
--	    }
--	    return 0;
-+	    verbose_enter();
-+	    EMSG2(_(e_loadlib), GETTEXT_DLL);
-+	    verbose_leave();
- 	}
-+	return 0;
-     }
-     for (i = 0; libintl_entry[i].name != NULL
- 					 && libintl_entry[i].ptr != NULL; ++i)
-@@ -430,7 +449,7 @@
- 	     * Seems like a lot of overhead to load/unload ADVAPI32.DLL each
- 	     * time we verify security...
- 	     */
--	    advapi_lib = LoadLibrary("ADVAPI32.DLL");
-+	    advapi_lib = vimLoadLib("ADVAPI32.DLL");
- 	    if (advapi_lib != NULL)
- 	    {
- 		pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
-@@ -1615,6 +1634,35 @@
-     return TRUE;
- }
- 
-+#if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
-+        __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
-+/*
-+ * Bad parameter handler.
-+ *
-+ * Certain MS CRT functions will intentionally crash when passed invalid
-+ * parameters to highlight possible security holes.  Setting this function as
-+ * the bad parameter handler will prevent the crash.
-+ *
-+ * In debug builds the parameters contain CRT information that might help track
-+ * down the source of a problem, but in non-debug builds the arguments are all
-+ * NULL/0.  Debug builds will also produce assert dialogs from the CRT, it is
-+ * worth allowing these to make debugging of issues easier.
-+ */
-+    static void
-+bad_param_handler(const wchar_t *expression,
-+    const wchar_t *function,
-+    const wchar_t *file,
-+    unsigned int line,
-+    uintptr_t pReserved)
-+{
-+}
-+
-+# define SET_INVALID_PARAM_HANDLER \
-+	((void)_set_invalid_parameter_handler(bad_param_handler))
-+#else
-+# define SET_INVALID_PARAM_HANDLER
-+#endif
-+
- #ifdef FEAT_GUI_W32
- 
- /*
-@@ -1627,6 +1675,9 @@
-     extern int _fmode;
- #endif
- 
-+    /* Silently handle invalid parameters to CRT functions */
-+    SET_INVALID_PARAM_HANDLER;
-+
-     /* Let critical errors result in a failure, not in a dialog box.  Required
-      * for the timestamp test to work on removed floppies. */
-     SetErrorMode(SEM_FAILCRITICALERRORS);
-@@ -2103,6 +2154,9 @@
-     extern int _fmode;
- #endif
- 
-+    /* Silently handle invalid parameters to CRT functions */
-+    SET_INVALID_PARAM_HANDLER;
-+
-     /* Let critical errors result in a failure, not in a dialog box.  Required
-      * for the timestamp test to work on removed floppies. */
-     SetErrorMode(SEM_FAILCRITICALERRORS);
-@@ -2273,12 +2327,14 @@
-     int		len)
- {
-     char		szTrueName[_MAX_PATH + 2];
-+    char		szTrueNameTemp[_MAX_PATH + 2];
-     char		*ptrue, *ptruePrev;
-     char		*porig, *porigPrev;
-     int			flen;
-     WIN32_FIND_DATA	fb;
-     HANDLE		hFind;
-     int			c;
-+    int			slen;
- 
-     flen = (int)STRLEN(name);
-     if (flen == 0 || flen > _MAX_PATH)
-@@ -2323,12 +2379,19 @@
- 	}
- 	*ptrue = NUL;
- 
-+	/* To avoid a slow failure append "\*" when searching a directory,
-+	 * server or network share. */
-+	STRCPY(szTrueNameTemp, szTrueName);
-+	slen = (int)strlen(szTrueNameTemp);
-+	if (*porig == psepc && slen + 2 < _MAX_PATH)
-+	    STRCPY(szTrueNameTemp + slen, "\\*");
-+
- 	/* Skip "", "." and "..". */
- 	if (ptrue > ptruePrev
- 		&& (ptruePrev[0] != '.'
- 		    || (ptruePrev[1] != NUL
- 			&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
--		&& (hFind = FindFirstFile(szTrueName, &fb))
-+		&& (hFind = FindFirstFile(szTrueNameTemp, &fb))
- 						      != INVALID_HANDLE_VALUE)
- 	{
- 	    c = *porig;
-@@ -3120,9 +3183,10 @@
-      * It's nicer to run a filter command in a minimized window, but in
-      * Windows 95 this makes the command MUCH slower.  We can't do it under
-      * Win32s either as it stops the synchronous spawn workaround working.
-+     * Don't activate the window to keep focus on Vim.
-      */
-     if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
--	si.wShowWindow = SW_SHOWMINIMIZED;
-+	si.wShowWindow = SW_SHOWMINNOACTIVE;
-     else
- 	si.wShowWindow = SW_SHOWNORMAL;
-     si.cbReserved2 = 0;
-diff -Naur vim73.orig/src/popupmnu.c vim73/src/popupmnu.c
---- vim73.orig/src/popupmnu.c	2010-08-08 09:14:58.000000000 -0400
-+++ vim73/src/popupmnu.c	2011-01-08 21:01:19.046656594 -0500
-@@ -558,8 +558,11 @@
- 	    win_T	*curwin_save = curwin;
- 	    int		res = OK;
- 
--	    /* Open a preview window.  3 lines by default. */
-+	    /* Open a preview window.  3 lines by default.  Prefer
-+	     * 'previewheight' if set and smaller. */
- 	    g_do_tagpreview = 3;
-+	    if (p_pvh > 0 && p_pvh < g_do_tagpreview)
-+		g_do_tagpreview = p_pvh;
- 	    resized = prepare_tagpreview(FALSE);
- 	    g_do_tagpreview = 0;
- 
-diff -Naur vim73.orig/src/proto/fileio.pro vim73/src/proto/fileio.pro
---- vim73.orig/src/proto/fileio.pro	2010-08-15 08:30:28.000000000 -0400
-+++ vim73/src/proto/fileio.pro	2011-01-08 21:01:19.354659886 -0500
-@@ -54,4 +54,6 @@
- int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
- int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
- char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
-+long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
-+long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
- /* vim: set ft=c : */
-diff -Naur vim73.orig/src/proto/getchar.pro vim73/src/proto/getchar.pro
---- vim73.orig/src/proto/getchar.pro	2010-08-15 08:30:29.000000000 -0400
-+++ vim73/src/proto/getchar.pro	2011-01-08 21:01:18.918658776 -0500
-@@ -51,6 +51,7 @@
- int get_map_mode __ARGS((char_u **cmdp, int forceit));
- void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
- void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
-+char_u *map_mode_to_chars __ARGS((int mode));
- int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
- int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
- char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
-@@ -61,7 +62,7 @@
- int makemap __ARGS((FILE *fd, buf_T *buf));
- int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
- void check_map_keycodes __ARGS((void));
--char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
-+char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr));
- void init_mappings __ARGS((void));
- void add_map __ARGS((char_u *map, int mode));
- /* vim: set ft=c : */
-diff -Naur vim73.orig/src/proto/message.pro vim73/src/proto/message.pro
---- vim73.orig/src/proto/message.pro	2010-08-15 08:30:41.000000000 -0400
-+++ vim73/src/proto/message.pro	2011-01-08 21:01:18.918658776 -0500
-@@ -33,6 +33,7 @@
- int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
- void msg_make __ARGS((char_u *arg));
- int msg_outtrans_special __ARGS((char_u *strstart, int from));
-+char_u *str2special_save __ARGS((char_u *str, int is_lhs));
- char_u *str2special __ARGS((char_u **sp, int from));
- void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
- void msg_prt_line __ARGS((char_u *s, int list));
-diff -Naur vim73.orig/src/proto/os_win32.pro vim73/src/proto/os_win32.pro
---- vim73.orig/src/proto/os_win32.pro	2010-08-15 08:31:14.000000000 -0400
-+++ vim73/src/proto/os_win32.pro	2011-01-08 21:01:18.926655661 -0500
-@@ -1,4 +1,5 @@
- /* os_win32.c */
-+HINSTANCE vimLoadLib __ARGS((char *name));
- int dyn_libintl_init __ARGS((char *libname));
- void dyn_libintl_end __ARGS((void));
- void PlatformId __ARGS((void));
-diff -Naur vim73.orig/src/quickfix.c vim73/src/quickfix.c
---- vim73.orig/src/quickfix.c	2010-08-09 16:12:14.000000000 -0400
-+++ vim73/src/quickfix.c	2011-01-08 21:01:19.226656888 -0500
-@@ -1656,9 +1656,7 @@
- 	    opened_window = TRUE;	/* close it when fail */
- 	    p_swb = empty_option;	/* don't split again */
- 	    swb_flags = 0;
--# ifdef FEAT_SCROLLBIND
--	    curwin->w_p_scb = FALSE;
--# endif
-+	    RESET_BINDING(curwin);
- 	    if (ll_ref != NULL)
- 	    {
- 		/* The new window should use the location list from the
-@@ -2125,6 +2123,7 @@
- 	--qi->qf_lists[idx].qf_count;
-     }
-     vim_free(qi->qf_lists[idx].qf_title);
-+    qi->qf_lists[idx].qf_title = NULL;
- }
- 
- /*
-@@ -2333,9 +2332,7 @@
- 	    win_goto(lastwin);
- 	if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
- 	    return;		/* not enough room for window */
--#ifdef FEAT_SCROLLBIND
--	curwin->w_p_scb = FALSE;
--#endif
-+	RESET_BINDING(curwin);
- 
- 	if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
- 	{
-@@ -2362,6 +2359,7 @@
- 	    set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
- 								   OPT_LOCAL);
- 	    set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
-+	    RESET_BINDING(curwin);
- #ifdef FEAT_DIFF
- 	    curwin->w_p_diff = FALSE;
- #endif
-@@ -3435,6 +3433,7 @@
-     char_u	*fname;
- {
-     buf_T	*newbuf;
-+    buf_T	*newbuf_to_wipe = NULL;
-     int		failed = TRUE;
-     aco_save_T	aco;
- 
-@@ -3471,15 +3470,19 @@
- 	    failed = FALSE;
- 	    if (curbuf != newbuf)
- 	    {
--		/* Bloody autocommands changed the buffer! */
--		if (buf_valid(newbuf))
--		    wipe_buffer(newbuf, FALSE);
-+		/* Bloody autocommands changed the buffer!  Can happen when
-+		 * using netrw and editing a remote file.  Use the current
-+		 * buffer instead, delete the dummy one after restoring the
-+		 * window stuff. */
-+		newbuf_to_wipe = newbuf;
- 		newbuf = curbuf;
- 	    }
- 	}
- 
- 	/* restore curwin/curbuf and a few other things */
- 	aucmd_restbuf(&aco);
-+	if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
-+	    wipe_buffer(newbuf_to_wipe, FALSE);
-     }
- 
-     if (!buf_valid(newbuf))
-diff -Naur vim73.orig/src/regexp.c vim73/src/regexp.c
---- vim73.orig/src/regexp.c	2010-07-12 16:41:48.000000000 -0400
-+++ vim73/src/regexp.c	2011-01-08 20:59:37.790766680 -0500
-@@ -3538,6 +3538,7 @@
- 
-     regline = line;
-     reglnum = 0;
-+    reg_toolong = FALSE;
- 
-     /* Simplest case: Anchored match need be tried only once. */
-     if (prog->reganch)
-diff -Naur vim73.orig/src/screen.c vim73/src/screen.c
---- vim73.orig/src/screen.c	2010-08-13 09:21:27.000000000 -0400
-+++ vim73/src/screen.c	2011-01-08 21:01:19.494656637 -0500
-@@ -2317,7 +2317,7 @@
- 		num = (long)lnum;
- 	    else
- 		/* 'relativenumber', don't use negative numbers */
--		num = (long)abs((int)get_cursor_rel_lnum(wp, lnum));
-+		num = labs((long)get_cursor_rel_lnum(wp, lnum));
- 
- 	    sprintf((char *)buf, "%*ld ", w, num);
- #ifdef FEAT_RIGHTLEFT
-@@ -3405,9 +3405,9 @@
- # endif
- 		   )
- 		{
--		    int_u	text_sign;
-+		    int	text_sign;
- # ifdef FEAT_SIGN_ICONS
--		    int_u	icon_sign;
-+		    int	icon_sign;
- # endif
- 
- 		    /* Draw two cells with the sign value or blank. */
-@@ -3475,8 +3475,7 @@
- 			    num = (long)lnum;
- 			else
- 			    /* 'relativenumber', don't use negative numbers */
--			    num = (long)abs((int)get_cursor_rel_lnum(wp,
--								    lnum));
-+			    num = labs((long)get_cursor_rel_lnum(wp, lnum));
- 
- 			sprintf((char *)extra, "%*ld ",
- 						number_width(wp), num);
-@@ -6522,8 +6521,17 @@
- 				stl, use_sandbox,
- 				fillchar, maxwidth, hltab, tabtab);
-     vim_free(stl);
--    len = (int)STRLEN(buf);
- 
-+    /* Make all characters printable. */
-+    p = transstr(buf);
-+    if (p != NULL)
-+    {
-+	vim_strncpy(buf, p, sizeof(buf) - 1);
-+	vim_free(p);
-+    }
-+
-+    /* fill up with "fillchar" */
-+    len = (int)STRLEN(buf);
-     while (width < maxwidth && len < (int)sizeof(buf) - 1)
-     {
- #ifdef FEAT_MBYTE
-diff -Naur vim73.orig/src/search.c vim73/src/search.c
---- vim73.orig/src/search.c	2010-07-14 10:49:41.000000000 -0400
-+++ vim73/src/search.c	2011-01-08 20:59:41.002656834 -0500
-@@ -5075,9 +5075,7 @@
- 			if (win_split(0, 0) == FAIL)
- #endif
- 			    break;
--#ifdef FEAT_SCROLLBIND
--			curwin->w_p_scb = FALSE;
--#endif
-+			RESET_BINDING(curwin);
- 		    }
- 		    if (depth == -1)
- 		    {
-diff -Naur vim73.orig/src/spell.c vim73/src/spell.c
---- vim73.orig/src/spell.c	2010-08-01 09:43:01.000000000 -0400
-+++ vim73/src/spell.c	2011-01-08 21:01:19.386656778 -0500
-@@ -303,10 +303,6 @@
-  *			    few bytes as possible, see offset2bytes())
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for lseek(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- #if defined(FEAT_SPELL) || defined(PROTO)
-@@ -327,6 +323,16 @@
- typedef long idx_T;
- #endif
- 
-+#ifdef VMS
-+# define SPL_FNAME_TMPL  "%s_%s.spl"
-+# define SPL_FNAME_ADD   "_add."
-+# define SPL_FNAME_ASCII "_ascii."
-+#else
-+# define SPL_FNAME_TMPL  "%s.%s.spl"
-+# define SPL_FNAME_ADD   ".add."
-+# define SPL_FNAME_ASCII ".ascii."
-+#endif
-+
- /* Flags used for a word.  Only the lowest byte can be used, the region byte
-  * comes above it. */
- #define WF_REGION   0x01	/* region byte follows */
-@@ -2471,14 +2477,24 @@
- 	 * Find the first spell file for "lang" in 'runtimepath' and load it.
- 	 */
- 	vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
--					"spell/%s.%s.spl", lang, spell_enc());
-+#ifdef VMS
-+					"spell/%s_%s.spl",
-+#else
-+					"spell/%s.%s.spl",
-+#endif
-+							   lang, spell_enc());
- 	r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
- 
- 	if (r == FAIL && *sl.sl_lang != NUL)
- 	{
- 	    /* Try loading the ASCII version. */
- 	    vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
--						  "spell/%s.ascii.spl", lang);
-+#ifdef VMS
-+						  "spell/%s_ascii.spl",
-+#else
-+						  "spell/%s.ascii.spl",
-+#endif
-+									lang);
- 	    r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
- 
- #ifdef FEAT_AUTOCMD
-@@ -2496,7 +2512,12 @@
- 
-     if (r == FAIL)
-     {
--	smsg((char_u *)_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
-+	smsg((char_u *)
-+#ifdef VMS
-+	_("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
-+#else
-+	_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
-+#endif
- 						     lang, spell_enc(), lang);
-     }
-     else if (sl.sl_slang != NULL)
-@@ -2530,7 +2551,7 @@
- int_wordlist_spl(fname)
-     char_u	    *fname;
- {
--    vim_snprintf((char *)fname, MAXPATHL, "%s.%s.spl",
-+    vim_snprintf((char *)fname, MAXPATHL, SPL_FNAME_TMPL,
- 						  int_wordlist, spell_enc());
- }
- 
-@@ -2785,8 +2806,8 @@
- 	if (lp->sl_fname == NULL)
- 	    goto endFAIL;
- 
--	/* Check for .add.spl. */
--	lp->sl_add = strstr((char *)gettail(fname), ".add.") != NULL;
-+	/* Check for .add.spl (_add.spl for VMS). */
-+	lp->sl_add = strstr((char *)gettail(fname), SPL_FNAME_ADD) != NULL;
-     }
-     else
- 	lp = old_lp;
-@@ -4679,7 +4700,7 @@
-     buf_T	*buf;
-     char_u	fname[MAXPATHL];
- 
--    /* Go through all buffers and handle 'spelllang'. */ //<VN>
-+    /* Go through all buffers and handle 'spelllang'. <VN> */
-     for (buf = firstbuf; buf != NULL; buf = buf->b_next)
- 	ga_clear(&buf->b_s.b_langp);
- 
-@@ -4951,7 +4972,7 @@
-     char_u	*si_info;	/* info text chars or NULL  */
-     int		si_region_count; /* number of regions supported (1 when there
- 				    are no regions) */
--    char_u	si_region_name[16]; /* region names; used only if
-+    char_u	si_region_name[17]; /* region names; used only if
- 				     * si_region_count > 1) */
- 
-     garray_T	si_rep;		/* list of fromto_T entries from REP lines */
-@@ -9109,8 +9130,8 @@
- 	    /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
- 	    innames = &fnames[0];
- 	    incount = 1;
--	    vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
--			     spin.si_ascii ? (char_u *)"ascii" : spell_enc());
-+	    vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
-+		  fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
- 	}
- 	else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
- 	{
-@@ -9119,15 +9140,15 @@
- 	}
- 	else
- 	    /* Name should be language, make the file name from it. */
--	    vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
--			     spin.si_ascii ? (char_u *)"ascii" : spell_enc());
-+	    vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
-+		  fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
- 
- 	/* Check for .ascii.spl. */
--	if (strstr((char *)gettail(wfname), ".ascii.") != NULL)
-+	if (strstr((char *)gettail(wfname), SPL_FNAME_ASCII) != NULL)
- 	    spin.si_ascii = TRUE;
- 
- 	/* Check for .add.spl. */
--	if (strstr((char *)gettail(wfname), ".add.") != NULL)
-+	if (strstr((char *)gettail(wfname), SPL_FNAME_ADD) != NULL)
- 	    spin.si_add = TRUE;
-     }
- 
-@@ -9530,7 +9551,8 @@
- 	    if (aspath)
- 		/* Use directory of an entry with path, e.g., for
- 		 * "/dir/lg.utf-8.spl" use "/dir". */
--		vim_strncpy(buf, curbuf->b_s.b_p_spl, lstart - curbuf->b_s.b_p_spl - 1);
-+		vim_strncpy(buf, curbuf->b_s.b_p_spl,
-+					    lstart - curbuf->b_s.b_p_spl - 1);
- 	    else
- 		/* Copy the path from 'runtimepath' to buf[]. */
- 		copy_option_part(&rtp, buf, MAXPATHL, ",");
-@@ -9539,13 +9561,14 @@
- 		/* Use the first language name from 'spelllang' and the
- 		 * encoding used in the first loaded .spl file. */
- 		if (aspath)
--		    vim_strncpy(buf, curbuf->b_s.b_p_spl, lend - curbuf->b_s.b_p_spl);
-+		    vim_strncpy(buf, curbuf->b_s.b_p_spl,
-+						  lend - curbuf->b_s.b_p_spl);
- 		else
- 		{
- 		    /* Create the "spell" directory if it doesn't exist yet. */
- 		    l = (int)STRLEN(buf);
- 		    vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
--		    if (!filewritable(buf) != 2)
-+		    if (filewritable(buf) != 2)
- 			vim_mkdir(buf, 0755);
- 
- 		    l = (int)STRLEN(buf);
-@@ -9837,10 +9860,7 @@
- 	{
- 	    /* be quick for ASCII */
- 	    if (wp->w_s->b_spell_ismw[*p])
--	    {
- 		s = p + 1;		/* skip a mid-word character */
--		l = MB_BYTE2LEN(*s);
--	    }
- 	}
- 	else
- 	{
-@@ -9848,10 +9868,7 @@
- 	    if (c < 256 ? wp->w_s->b_spell_ismw[c]
- 		    : (wp->w_s->b_spell_ismw_mb != NULL
- 			   && vim_strchr(wp->w_s->b_spell_ismw_mb, c) != NULL))
--	    {
- 		s = p + l;
--		l = MB_BYTE2LEN(*s);
--	    }
- 	}
- 
- 	c = mb_ptr2char(s);
-@@ -13811,11 +13828,8 @@
- 		    su->su_sfmaxscore = cleanup_suggestions(gap,
- 				      su->su_sfmaxscore, SUG_CLEAN_COUNT(su));
- 		else
--		{
--		    i = su->su_maxscore;
- 		    su->su_maxscore = cleanup_suggestions(gap,
- 					su->su_maxscore, SUG_CLEAN_COUNT(su));
--		}
- 	    }
- 	}
-     }
-diff -Naur vim73.orig/src/structs.h vim73/src/structs.h
---- vim73.orig/src/structs.h	2010-08-07 10:59:27.000000000 -0400
-+++ vim73/src/structs.h	2011-01-08 21:01:18.918658776 -0500
-@@ -979,9 +979,10 @@
- struct mapblock
- {
-     mapblock_T	*m_next;	/* next mapblock in list */
--    char_u	*m_keys;	/* mapped from */
-+    char_u	*m_keys;	/* mapped from, lhs */
-     int		m_keylen;	/* strlen(m_keys) */
--    char_u	*m_str;		/* mapped to */
-+    char_u	*m_str;		/* mapped to, rhs */
-+    char_u	*m_orig_str;	/* rhs as entered by the user */
-     int		m_mode;		/* valid mode */
-     int		m_noremap;	/* if non-zero no re-mapping for m_str */
-     char	m_silent;	/* <silent> used, don't echo commands */
-diff -Naur vim73.orig/src/syntax.c vim73/src/syntax.c
---- vim73.orig/src/syntax.c	2010-08-08 09:17:03.000000000 -0400
-+++ vim73/src/syntax.c	2011-01-08 21:01:18.790655926 -0500
-@@ -7600,10 +7600,10 @@
- 		/*
- 		 * Copy characters from arg[] to buf[], translating <> codes.
- 		 */
--		for (p = arg, off = 0; off < 100 && *p; )
-+		for (p = arg, off = 0; off < 100 - 6 && *p; )
- 		{
- 		    len = trans_special(&p, buf + off, FALSE);
--		    if (len)		    /* recognized special char */
-+		    if (len > 0)	    /* recognized special char */
- 			off += len;
- 		    else		    /* copy as normal char */
- 			buf[off++] = *p++;
-diff -Naur vim73.orig/src/tag.c vim73/src/tag.c
---- vim73.orig/src/tag.c	2010-08-10 03:25:22.000000000 -0400
-+++ vim73/src/tag.c	2011-01-08 21:01:19.386656778 -0500
-@@ -11,10 +11,6 @@
-  * Code to handle tags and the tag stack
-  */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for lseek(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- /*
-@@ -3143,9 +3139,7 @@
-     {
- 	win_split(postponed_split > 0 ? postponed_split : 0,
- 						       postponed_split_flags);
--# ifdef FEAT_SCROLLBIND
--	curwin->w_p_scb = FALSE;
--# endif
-+	RESET_BINDING(curwin);
-     }
- #endif
- 
-diff -Naur vim73.orig/src/term.c vim73/src/term.c
---- vim73.orig/src/term.c	2010-07-25 09:30:31.000000000 -0400
-+++ vim73/src/term.c	2011-01-08 21:01:19.486656758 -0500
-@@ -3053,10 +3053,13 @@
-     int		old_Rows = Rows;
-     int		old_Columns = Columns;
- 
--    (void)ui_get_shellsize();
--    check_shellsize();
--    if (old_Rows != Rows || old_Columns != Columns)
--	shell_resized();
-+    if (!exiting)
-+    {
-+	(void)ui_get_shellsize();
-+	check_shellsize();
-+	if (old_Rows != Rows || old_Columns != Columns)
-+	    shell_resized();
-+    }
- }
- 
- /*
-@@ -3828,6 +3831,7 @@
-  * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
-  * + max_offset].
-  * Return 0 for no match, -1 for partial match, > 0 for full match.
-+ * Return KEYLEN_REMOVED when a key code was deleted.
-  * With a match, the match is removed, the replacement code is inserted in
-  * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
-  * returned.
-@@ -3845,6 +3849,7 @@
-     int		slen = 0;	/* init for GCC */
-     int		modslen;
-     int		len;
-+    int		retval = 0;
-     int		offset;
-     char_u	key_name[2];
-     int		modifiers;
-@@ -4940,6 +4945,13 @@
- #endif
- 		string[new_slen++] = key_name[1];
- 	}
-+	else if (new_slen == 0 && key_name[0] == KS_EXTRA
-+						  && key_name[1] == KE_IGNORE)
-+	{
-+	    /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
-+	     * to indicate what happened. */
-+	    retval = KEYLEN_REMOVED;
-+	}
- 	else
- 	{
- 	    string[new_slen++] = K_SPECIAL;
-@@ -4976,7 +4988,7 @@
- 						   (size_t)(buflen - offset));
- 	    mch_memmove(buf + offset, string, (size_t)new_slen);
- 	}
--	return (len + extra + offset);
-+	return retval == 0 ? (len + extra + offset) : retval;
-     }
- 
-     return 0;			    /* no match found */
-diff -Naur vim73.orig/src/testdir/Make_amiga.mak vim73/src/testdir/Make_amiga.mak
---- vim73.orig/src/testdir/Make_amiga.mak	2010-08-04 10:34:34.000000000 -0400
-+++ vim73/src/testdir/Make_amiga.mak	2011-01-08 21:01:19.138657005 -0500
-@@ -27,7 +27,8 @@
- 		test56.out test57.out test58.out test59.out test60.out \
- 		test61.out test62.out test63.out test64.out test65.out \
- 		test66.out test67.out test68.out test69.out test70.out \
--		test71.out test72.out test73.out
-+		test71.out test72.out test73.out test74.out test75.out \
-+		test76.out
- 
- .SUFFIXES: .in .out
- 
-@@ -120,3 +121,6 @@
- test71.out: test71.in
- test72.out: test72.in
- test73.out: test73.in
-+test74.out: test74.in
-+test75.out: test75.in
-+test76.out: test76.in
-diff -Naur vim73.orig/src/testdir/Make_dos.mak vim73/src/testdir/Make_dos.mak
---- vim73.orig/src/testdir/Make_dos.mak	2010-08-13 12:27:19.000000000 -0400
-+++ vim73/src/testdir/Make_dos.mak	2011-01-08 21:01:19.138657005 -0500
-@@ -27,7 +27,8 @@
- 		test30.out test31.out test32.out test33.out test34.out \
- 		test37.out test38.out test39.out test40.out test41.out \
- 		test42.out test52.out test65.out test66.out test67.out \
--		test68.out test69.out test71.out test72.out test73.out
-+		test68.out test69.out test71.out test72.out test73.out \
-+		test74.out test75.out test76.out
- 
- SCRIPTS32 =	test50.out test70.out
- 
-diff -Naur vim73.orig/src/testdir/Make_ming.mak vim73/src/testdir/Make_ming.mak
---- vim73.orig/src/testdir/Make_ming.mak	2010-08-04 10:34:47.000000000 -0400
-+++ vim73/src/testdir/Make_ming.mak	2011-01-08 21:01:19.138657005 -0500
-@@ -47,7 +47,8 @@
- 		test30.out test31.out test32.out test33.out test34.out \
- 		test37.out test38.out test39.out test40.out test41.out \
- 		test42.out test52.out test65.out test66.out test67.out \
--		test68.out test69.out test71.out test72.out test72.out
-+		test68.out test69.out test71.out test72.out test73.out \
-+		test74.out test75.out test76.out
- 
- SCRIPTS32 =	test50.out test70.out
- 
-diff -Naur vim73.orig/src/testdir/Make_os2.mak vim73/src/testdir/Make_os2.mak
---- vim73.orig/src/testdir/Make_os2.mak	2010-08-04 10:34:55.000000000 -0400
-+++ vim73/src/testdir/Make_os2.mak	2011-01-08 21:01:19.138657005 -0500
-@@ -27,7 +27,8 @@
- 		test56.out test57.out test58.out test59.out test60.out \
- 		test61.out test62.out test63.out test64.out test65.out \
- 		test66.out test67.out test68.out test69.out test70.out \
--		test71.out test72.out test73.out
-+		test71.out test72.out test73.out test74.out test75.out \
-+		test76.out
- 
- .SUFFIXES: .in .out
- 
-diff -Naur vim73.orig/src/testdir/Make_vms.mms vim73/src/testdir/Make_vms.mms
---- vim73.orig/src/testdir/Make_vms.mms	2010-08-04 10:35:46.000000000 -0400
-+++ vim73/src/testdir/Make_vms.mms	2011-01-08 21:01:19.138657005 -0500
-@@ -4,7 +4,7 @@
- # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
- #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
- #
--# Last change:  2010 Aug 04
-+# Last change:  2010 Nov 10
- #
- # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
- # Edit the lines in the Configuration section below to select.
-@@ -74,7 +74,7 @@
- 	 test56.out test57.out test60.out \
- 	 test61.out test62.out test63.out test64.out test65.out \
- 	 test66.out test67.out test68.out test69.out \
--	 test71.out test72.out
-+	 test71.out test72.out test74.out test75.out test76.out
- 
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-diff -Naur vim73.orig/src/testdir/Makefile vim73/src/testdir/Makefile
---- vim73.orig/src/testdir/Makefile	2010-08-15 08:56:30.000000000 -0400
-+++ vim73/src/testdir/Makefile	2011-01-08 21:01:19.138657005 -0500
-@@ -10,6 +10,7 @@
- #   This will make testing about 10 times as slow.
- # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
- 
-+
- SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- 		test7.out test8.out test9.out test10.out test11.out \
- 		test12.out  test13.out test14.out test15.out test17.out \
-@@ -23,7 +24,8 @@
- 		test54.out test55.out test56.out test57.out test58.out \
- 		test59.out test60.out test61.out test62.out test63.out \
- 		test64.out test65.out test66.out test67.out test68.out \
--		test69.out test70.out test71.out test72.out test73.out
-+		test69.out test70.out test71.out test72.out test73.out \
-+		test74.out test75.out test76.out
- 
- SCRIPTS_GUI = test16.out
- 
-@@ -44,7 +46,7 @@
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
- 
- clean:
--	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
-+	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
- 
- test1.out: test1.in
- 	-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
-diff -Naur vim73.orig/src/testdir/main.aap vim73/src/testdir/main.aap
---- vim73.orig/src/testdir/main.aap	2010-07-30 16:03:23.000000000 -0400
-+++ vim73/src/testdir/main.aap	2011-01-08 21:01:18.878656504 -0500
-@@ -13,7 +13,7 @@
- 		test33.out test34.out test35.out test36.out test37.out
- 		test38.out test39.out test40.out test41.out test42.out
- 		test43.out test44.out test45.out test46.out test47.out
--		test48.out test49.out
-+		test48.out test49.out test74.out
- 
- ScriptsGUI = test16.out
- 
-diff -Naur vim73.orig/src/testdir/test49.vim vim73/src/testdir/test49.vim
---- vim73.orig/src/testdir/test49.vim	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test49.vim	2011-01-08 21:01:18.782656702 -0500
-@@ -1,6 +1,6 @@
- " Vim script language tests
- " Author:	Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
--" Last Change:	2006 Apr 28
-+" Last Change:	2010 Sep 29
- 
- "-------------------------------------------------------------------------------
- " Test environment							    {{{1
-@@ -8711,7 +8711,7 @@
- 		endif
- 	    else
- 		if cmd == "let"
--		    let match = MATCH(0, thrmsg, 'E106', "Unknown variable")
-+		    let match = MATCH(0, thrmsg, 'E121', "Undefined variable")
- 		elseif cmd == "unlet"
- 		    let match = MATCH(0, thrmsg, 'E108', "No such variable")
- 		endif
-diff -Naur vim73.orig/src/testdir/test55.in vim73/src/testdir/test55.in
---- vim73.orig/src/testdir/test55.in	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test55.in	2011-01-08 21:01:19.158657647 -0500
-@@ -342,7 +342,18 @@
- :$put =(d == d)
- :$put =(l != deepcopy(l))
- :$put =(d != deepcopy(d))
-+:"
-+:" compare complex recursively linked list and dict
-+:let l = []
-+:call add(l, l)
-+:let dict4 = {"l": l}
-+:call add(dict4.l, dict4)
-+:let lcopy = deepcopy(l)
-+:let dict4copy = deepcopy(dict4)
-+:$put =(l == lcopy)
-+:$put =(dict4 == dict4copy)
- :endfun
-+:"
- :call Test(1, 2, [3, 4], {5: 6})  " This may take a while
- :"
- :delfunc Test
-diff -Naur vim73.orig/src/testdir/test55.ok vim73/src/testdir/test55.ok
---- vim73.orig/src/testdir/test55.ok	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test55.ok	2011-01-08 21:01:19.158657647 -0500
-@@ -109,3 +109,5 @@
- 1
- 0
- 0
-+1
-+1
-diff -Naur vim73.orig/src/testdir/test57.in vim73/src/testdir/test57.in
---- vim73.orig/src/testdir/test57.in	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test57.in	2011-01-08 21:01:18.866656341 -0500
-@@ -53,15 +53,19 @@
- t02: numeric
- abc
- ab
--a
- a321
- a123
- a122
-+a
-+x-22
- b321
- b123
-+
- c123d
-+-24
-  123b
- c321d
-+0
- b322b
- b321
- b321b
-diff -Naur vim73.orig/src/testdir/test57.ok vim73/src/testdir/test57.ok
---- vim73.orig/src/testdir/test57.ok	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test57.ok	2011-01-08 21:01:18.866656341 -0500
-@@ -21,6 +21,10 @@
- a
- 
- 
-+
-+-24
-+x-22
-+0
- a122
- a123
- b123
-diff -Naur vim73.orig/src/testdir/test61.in vim73/src/testdir/test61.in
---- vim73.orig/src/testdir/test61.in	2010-06-26 23:07:58.000000000 -0400
-+++ vim73/src/testdir/test61.in	2011-01-08 20:59:38.610657137 -0500
-@@ -4,6 +4,10 @@
- Also tests :earlier and :later.
- 
- STARTTEST
-+:echo undotree().entries
-+ENDTEST
-+
-+STARTTEST
- :" Delete three characters and undo
- Gx:set ul=100
- x:set ul=100
-diff -Naur vim73.orig/src/testdir/test68.in vim73/src/testdir/test68.in
---- vim73.orig/src/testdir/test68.in	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test68.in	2011-01-08 21:01:18.806655841 -0500
-@@ -51,6 +51,17 @@
- }
- 
- STARTTEST
-+/^{/+2
-+:set tw& fo=a
-+I^^
-+ENDTEST
-+
-+{
-+   1aa
-+   2bb
-+}
-+
-+STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/^Results/,$wq! test.out
- ENDTEST
-diff -Naur vim73.orig/src/testdir/test68.ok vim73/src/testdir/test68.ok
---- vim73.orig/src/testdir/test68.ok	2010-05-15 07:04:10.000000000 -0400
-+++ vim73/src/testdir/test68.ok	2011-01-08 21:01:18.806655841 -0500
-@@ -33,3 +33,6 @@
- #a b
- }
- 
-+
-+{ 1aa ^^2bb }
-+
-diff -Naur vim73.orig/src/testdir/test74.in vim73/src/testdir/test74.in
---- vim73.orig/src/testdir/test74.in	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test74.in	2011-01-08 21:01:18.878656504 -0500
-@@ -0,0 +1,36 @@
-+" Tests for storing global variables in the .viminfo file vim: set ft=vim:
-+
-+STARTTEST
-+:so small.vim
-+:" Do all test in a separate window to avoid E211 when we recursively
-+:" delete the Xfind directory during cleanup
-+:"
-+:" This will cause a few errors, do it silently.
-+:set visualbell
-+:set nocp viminfo+=!,nviminfo
-+:let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}
-+:" store a really long list, so line wrapping will occur in viminfo file
-+:let MY_GLOBAL_LIST=range(1,100)
-+:wv! Xviminfo
-+:unlet MY_GLOBAL_DICT
-+:unlet MY_GLOBAL_LIST
-+:rv! Xviminfo
-+:call delete('Xviminfo')
-+:if exists("MY_GLOBAL_DICT")
-+:redir >> test.out
-+:echo MY_GLOBAL_DICT
-+:redir end
-+:endif
-+:if exists("MY_GLOBAL_LIST")
-+:redir >> test.out
-+:echo MY_GLOBAL_LIST
-+:redir end
-+:endif
-+:redir >> test.out
-+:echo "foobar"
-+:redir end
-+:endif
-+:qa!
-+ENDTEST
-+
-+eof
-diff -Naur vim73.orig/src/testdir/test74.ok vim73/src/testdir/test74.ok
---- vim73.orig/src/testdir/test74.ok	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test74.ok	2011-01-08 21:01:18.878656504 -0500
-@@ -0,0 +1,5 @@
-+
-+{'foo': 1, 'longvarible': 1000, 'bar': 0}
-+[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
-+
-+foobar
-diff -Naur vim73.orig/src/testdir/test75.in vim73/src/testdir/test75.in
---- vim73.orig/src/testdir/test75.in	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test75.in	2011-01-08 21:01:18.918658776 -0500
-@@ -0,0 +1,16 @@
-+" Tests for functions.
-+
-+STARTTEST
-+:so small.vim
-+:" Test maparg() with a string result
-+:map foo<C-V> is<F4>foo
-+:vnoremap <script> <buffer> <expr> <silent> bar isbar
-+:call append('$', maparg('foo<C-V>'))
-+:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
-+:call append('$', string(maparg('bar', '', 0, 1)))
-+:"
-+:/^eof/+1,$w! test.out
-+:qa!
-+ENDTEST
-+
-+eof
-diff -Naur vim73.orig/src/testdir/test75.ok vim73/src/testdir/test75.ok
---- vim73.orig/src/testdir/test75.ok	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test75.ok	2011-01-08 21:01:18.918658776 -0500
-@@ -0,0 +1,3 @@
-+is<F4>foo
-+{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
-+{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
-diff -Naur vim73.orig/src/testdir/test76.in vim73/src/testdir/test76.in
---- vim73.orig/src/testdir/test76.in	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test76.in	2011-01-08 21:01:19.138657005 -0500
-@@ -0,0 +1,46 @@
-+Tests for completefunc/omnifunc. vim: set ft=vim :
-+
-+STARTTEST
-+:"Test that nothing happens if the 'completefunc' opens
-+:"a new window (no completion, no crash)
-+:so small.vim
-+:function! DummyCompleteOne(findstart, base)
-+:  if a:findstart
-+:    return 0
-+:  else
-+:    wincmd n
-+:    return ['onedef', 'oneDEF']
-+:  endif
-+:endfunction
-+:setlocal completefunc=DummyCompleteOne
-+/^one
-+A:q!
-+:function! DummyCompleteTwo(findstart, base)
-+:  if a:findstart
-+:    wincmd n
-+:    return 0
-+:  else
-+:    return ['twodef', 'twoDEF']
-+:  endif
-+:endfunction
-+:setlocal completefunc=DummyCompleteTwo
-+/^two
-+A:q!
-+:"Test that 'completefunc' works when it's OK.
-+:function! DummyCompleteThree(findstart, base)
-+:  if a:findstart
-+:    return 0
-+:  else
-+:    return ['threedef', 'threeDEF']
-+:  endif
-+:endfunction
-+:setlocal completefunc=DummyCompleteThree
-+/^three
-+A:/^+++/,/^three/w! test.out
-+:qa!
-+ENDTEST
-+
-++++
-+one
-+two
-+three
-diff -Naur vim73.orig/src/testdir/test76.ok vim73/src/testdir/test76.ok
---- vim73.orig/src/testdir/test76.ok	1969-12-31 19:00:00.000000000 -0500
-+++ vim73/src/testdir/test76.ok	2011-01-08 21:01:19.142655736 -0500
-@@ -0,0 +1,4 @@
-++++
-+
-+two
-+threeDEF
-diff -Naur vim73.orig/src/ui.c vim73/src/ui.c
---- vim73.orig/src/ui.c	2010-08-08 09:17:30.000000000 -0400
-+++ vim73/src/ui.c	2011-01-08 21:01:18.766656221 -0500
-@@ -469,7 +469,7 @@
-      */
- #ifdef FEAT_X11
-     /* Always own the selection, we might have lost it without being
--     * notified. */
-+     * notified, e.g. during a ":sh" command. */
-     if (cbd->available)
-     {
- 	int was_owned = cbd->owned;
-@@ -1944,10 +1944,9 @@
-  */
- 
- static Boolean	clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
--
- static void  clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
--
- static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
-+static void  clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
- 
- /*
-  * Property callback to get a timestamp for XtOwnSelection.
-@@ -1985,8 +1984,17 @@
- 	return;
- 
-     /* Get the selection, using the event timestamp. */
--    XtOwnSelection(w, xproperty->atom, xproperty->time,
--	    clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb, NULL);
-+    if (XtOwnSelection(w, xproperty->atom, xproperty->time,
-+	    clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
-+	    NULL) == OK)
-+    {
-+	/* Set the "owned" flag now, there may have been a call to
-+	 * lose_ownership_cb in between. */
-+	if (xproperty->atom == clip_plus.sel_atom)
-+	    clip_plus.owned = TRUE;
-+	else
-+	    clip_star.owned = TRUE;
-+    }
- }
- 
-     void
-@@ -1997,8 +2005,6 @@
- 	    /*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
- }
- 
--static void  clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
--
-     static void
- clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
- 			      format)
-@@ -2336,7 +2342,7 @@
- 
-     void
- clip_x11_lose_selection(myShell, cbd)
--    Widget	myShell;
-+    Widget		myShell;
-     VimClipboard	*cbd;
- {
-     XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
-@@ -2344,14 +2350,29 @@
- 
-     int
- clip_x11_own_selection(myShell, cbd)
--    Widget	myShell;
-+    Widget		myShell;
-     VimClipboard	*cbd;
- {
--    /* Get the time by a zero-length append, clip_x11_timestamp_cb will be
--     * called with the current timestamp.  */
--    if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell), cbd->sel_atom,
--	    timestamp_atom, 32, PropModeAppend, NULL, 0))
-+    /* When using the GUI we have proper timestamps, use the one of the last
-+     * event.  When in the console we don't get events (the terminal gets
-+     * them), Get the time by a zero-length append, clip_x11_timestamp_cb will
-+     * be called with the current timestamp.  */
-+#ifdef FEAT_GUI
-+    if (gui.in_use)
-+    {
-+	if (XtOwnSelection(myShell, cbd->sel_atom,
-+	       XtLastTimestampProcessed(XtDisplay(myShell)),
-+	       clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
-+	       NULL) == False)
- 	return FAIL;
-+    }
-+    else
-+#endif
-+    {
-+	if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
-+		  cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
-+	return FAIL;
-+    }
-     /* Flush is required in a terminal as nothing else is doing it. */
-     XFlush(XtDisplay(myShell));
-     return OK;
-diff -Naur vim73.orig/src/undo.c vim73/src/undo.c
---- vim73.orig/src/undo.c	2010-08-07 06:48:15.000000000 -0400
-+++ vim73/src/undo.c	2011-01-08 21:01:19.386656778 -0500
-@@ -81,10 +81,6 @@
- #define UH_MAGIC 0x18dade	/* value for uh_magic when in use */
- #define UE_MAGIC 0xabc123	/* value for ue_magic when in use */
- 
--#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
--# include "vimio.h"	/* for vim_read(), must be before vim.h */
--#endif
--
- #include "vim.h"
- 
- static void u_unch_branch __ARGS((u_header_T *uhp));
-@@ -1386,7 +1382,7 @@
- 		char_u	mbuf[UF_START_MAGIC_LEN];
- 		int	len;
- 
--		len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
-+		len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
- 		close(fd);
- 		if (len < UF_START_MAGIC_LEN
- 		      || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
-@@ -1861,6 +1857,7 @@
-     curbuf->b_u_seq_cur = seq_cur;
-     curbuf->b_u_time_cur = seq_time;
-     curbuf->b_u_save_nr_last = last_save_nr;
-+    curbuf->b_u_save_nr_cur = last_save_nr;
- 
-     curbuf->b_u_synced = TRUE;
-     vim_free(uhp_table);
-@@ -2794,7 +2791,7 @@
- 								uhp->uh_time);
- 	    if (uhp->uh_save_nr > 0)
- 	    {
--		while (STRLEN(IObuff) < 32)
-+		while (STRLEN(IObuff) < 33)
- 		    STRCAT(IObuff, " ");
- 		vim_snprintf_add((char *)IObuff, IOSIZE,
- 						   "  %3ld", uhp->uh_save_nr);
-@@ -2849,7 +2846,7 @@
- 	sort_strings((char_u **)ga.ga_data, ga.ga_len);
- 
- 	msg_start();
--	msg_puts_attr((char_u *)_("number changes  time            saved"),
-+	msg_puts_attr((char_u *)_("number changes  when               saved"),
- 							      hl_attr(HLF_T));
- 	for (i = 0; i < ga.ga_len && !got_int; ++i)
- 	{
-@@ -2879,7 +2876,15 @@
-     if (time(NULL) - tt >= 100)
-     {
- 	curtime = localtime(&tt);
--	(void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
-+	if (time(NULL) - tt < (60L * 60L * 12L))
-+	    /* within 12 hours */
-+	    (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
-+	else if (time(NULL) - tt < (60L * 60L * 24L * 180L))
-+	    /* within 6 months */
-+	    (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
-+	else
-+	    /* long ago */
-+	    (void)strftime((char *)buf, buflen, "%y/%m/%d %H:%M:%S", curtime);
-     }
-     else
- #endif
-diff -Naur vim73.orig/src/version.c vim73/src/version.c
---- vim73.orig/src/version.c	2010-08-01 09:45:48.000000000 -0400
-+++ vim73/src/version.c	2011-01-08 21:01:19.514657428 -0500
-@@ -715,6 +715,204 @@
- static int included_patches[] =
- {   /* Add new patch number below this line */
- /**/
-+    99,
-+/**/
-+    98,
-+/**/
-+    97,
-+/**/
-+    96,
-+/**/
-+    95,
-+/**/
-+    94,
-+/**/
-+    93,
-+/**/
-+    92,
-+/**/
-+    91,
-+/**/
-+    90,
-+/**/
-+    89,
-+/**/
-+    88,
-+/**/
-+    87,
-+/**/
-+    86,
-+/**/
-+    85,
-+/**/
-+    84,
-+/**/
-+    83,
-+/**/
-+    82,
-+/**/
-+    81,
-+/**/
-+    80,
-+/**/
-+    79,
-+/**/
-+    78,
-+/**/
-+    77,
-+/**/
-+    76,
-+/**/
-+    75,
-+/**/
-+    74,
-+/**/
-+    73,
-+/**/
-+    72,
-+/**/
-+    71,
-+/**/
-+    70,
-+/**/
-+    69,
-+/**/
-+    68,
-+/**/
-+    67,
-+/**/
-+    66,
-+/**/
-+    65,
-+/**/
-+    64,
-+/**/
-+    63,
-+/**/
-+    62,
-+/**/
-+    61,
-+/**/
-+    60,
-+/**/
-+    59,
-+/**/
-+    58,
-+/**/
-+    57,
-+/**/
-+    56,
-+/**/
-+    55,
-+/**/
-+    54,
-+/**/
-+    53,
-+/**/
-+    52,
-+/**/
-+    51,
-+/**/
-+    50,
-+/**/
-+    49,
-+/**/
-+    48,
-+/**/
-+    47,
-+/**/
-+    46,
-+/**/
-+    45,
-+/**/
-+    44,
-+/**/
-+    43,
-+/**/
-+    42,
-+/**/
-+    41,
-+/**/
-+    40,
-+/**/
-+    39,
-+/**/
-+    38,
-+/**/
-+    37,
-+/**/
-+    36,
-+/**/
-+    35,
-+/**/
-+    34,
-+/**/
-+    33,
-+/**/
-+    32,
-+/**/
-+    31,
-+/**/
-+    30,
-+/**/
-+    29,
-+/**/
-+    28,
-+/**/
-+    27,
-+/**/
-+    26,
-+/**/
-+    25,
-+/**/
-+    24,
-+/**/
-+    23,
-+/**/
-+    22,
-+/**/
-+    21,
-+/**/
-+    20,
-+/**/
-+    19,
-+/**/
-+    18,
-+/**/
-+    17,
-+/**/
-+    16,
-+/**/
-+    15,
-+/**/
-+    14,
-+/**/
-+    13,
-+/**/
-+    12,
-+/**/
-+    11,
-+/**/
-+    10,
-+/**/
-+    9,
-+/**/
-+    8,
-+/**/
-+    7,
-+/**/
-+    6,
-+/**/
-+    5,
-+/**/
-+    4,
-+/**/
-+    3,
-+/**/
-+    2,
-+/**/
-+    1,
-+/**/
-     0
- };
- 
-@@ -1262,9 +1460,9 @@
- 	if (highest_patch())
- 	{
- 	    /* Check for 9.9x or 9.9xx, alpha/beta version */
--	    if (isalpha((int)mediumVersion[3]))
-+	    if (isalpha((int)vers[3]))
- 	    {
--		if (isalpha((int)mediumVersion[4]))
-+		if (isalpha((int)vers[4]))
- 		    sprintf((char *)vers + 5, ".%d%s", highest_patch(),
- 							   mediumVersion + 5);
- 		else
-diff -Naur vim73.orig/src/vim.h vim73/src/vim.h
---- vim73.orig/src/vim.h	2010-07-29 14:46:39.000000000 -0400
-+++ vim73/src/vim.h	2011-01-08 21:01:19.466658112 -0500
-@@ -27,6 +27,11 @@
- # endif
- #endif
- 
-+#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64) \
-+	|| defined(__EMX__)
-+# include "vimio.h"
-+#endif
-+
- /* ============ the header file puzzle (ca. 50-100 pieces) ========= */
- 
- #ifdef HAVE_CONFIG_H	/* GNU autoconf (or something else) was here */
-@@ -192,8 +197,8 @@
- #endif
- 
- #ifdef NO_X11_INCLUDES
--    /* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
--     * Disable all X11 related things to avoid conflicts. */
-+    /* In os_mac_conv.c and os_macosx.m NO_X11_INCLUDES is defined to avoid
-+     * X11 headers.  Disable all X11 related things to avoid conflicts. */
- # ifdef FEAT_X11
- #  undef FEAT_X11
- # endif
-@@ -475,6 +480,11 @@
- # include <sys/stat.h>
- #endif
- 
-+#if defined(HAVE_ERRNO_H) || defined(DJGPP) || defined(WIN16) \
-+	|| defined(WIN32) || defined(_WIN64) || defined(__EMX__)
-+# include <errno.h>
-+#endif
-+
- /*
-  * Allow other (non-unix) systems to configure themselves now
-  * These are also in os_unix.h, because osdef.sh needs them there.
-@@ -798,6 +808,7 @@
- #define WILD_KEEP_ALL		32
- #define WILD_SILENT		64
- #define WILD_ESCAPE		128
-+#define WILD_ICASE		256
- 
- /* Flags for expand_wildcards() */
- #define EW_DIR		0x01	/* include directory names */
-@@ -808,6 +819,7 @@
- #define EW_SILENT	0x20	/* don't print "1 returned" from shell */
- #define EW_EXEC		0x40	/* executable files */
- #define EW_PATH		0x80	/* search in 'path' too */
-+#define EW_ICASE	0x100	/* ignore case */
- /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
-  * is used when executing commands and EW_SILENT for interactive expanding. */
- 
-@@ -1640,6 +1652,11 @@
- # define USE_INPUT_BUF
- #endif
- 
-+#ifndef EINTR
-+# define read_eintr(fd, buf, count) vim_read((fd), (buf), (count))
-+# define write_eintr(fd, buf, count) vim_write((fd), (buf), (count))
-+#endif
-+
- #ifdef MSWIN
- /* On MS-Windows the third argument isn't size_t.  This matters for Win64,
-  * where sizeof(size_t)==8, not 4 */
-@@ -1842,7 +1859,8 @@
- #define VV_OP		52
- #define VV_SEARCHFORWARD 53
- #define VV_OLDFILES	54
--#define VV_LEN		55	/* number of v: vars */
-+#define VV_WINDOWID	55
-+#define VV_LEN		56	/* number of v: vars */
- 
- #ifdef FEAT_CLIPBOARD
- 
-@@ -2193,4 +2211,8 @@
- #define MSCR_LEFT	-1
- #define MSCR_RIGHT	-2
- 
-+#define KEYLEN_PART_KEY -1	/* keylen value for incomplete key-code */
-+#define KEYLEN_PART_MAP -2	/* keylen value for incomplete mapping */
-+#define KEYLEN_REMOVED  9999	/* keylen value for removed sequence */
-+
- #endif /* VIM__H */
-diff -Naur vim73.orig/src/window.c vim73/src/window.c
---- vim73.orig/src/window.c	2010-07-20 16:23:49.000000000 -0400
-+++ vim73/src/window.c	2011-01-08 21:01:19.514657428 -0500
-@@ -70,7 +70,8 @@
- #endif /* FEAT_WINDOWS */
- 
- static win_T *win_alloc __ARGS((win_T *after, int hidden));
--static void win_new_height __ARGS((win_T *, int));
-+static void set_fraction __ARGS((win_T *wp));
-+static void win_new_height __ARGS((win_T *wp, int height));
- 
- #define URL_SLASH	1		/* path_is_url() has found "://" */
- #define URL_BACKSLASH	2		/* path_is_url() has found ":\\" */
-@@ -525,9 +526,7 @@
- 		    setpcmark();
- 		    if (win_split(0, 0) == OK)
- 		    {
--# ifdef FEAT_SCROLLBIND
--			curwin->w_p_scb = FALSE;
--# endif
-+			RESET_BINDING(curwin);
- 			(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
- 							   ECMD_HIDE, NULL);
- 			if (nchar == 'F' && lnum >= 0)
-@@ -985,10 +984,17 @@
-     else
- 	frame_append(curfrp, frp);
- 
-+    /* Set w_fraction now so that the cursor keeps the same relative
-+     * vertical position. */
-+    if (oldwin->w_height > 0)
-+	set_fraction(oldwin);
-+    wp->w_fraction = oldwin->w_fraction;
-+
- #ifdef FEAT_VERTSPLIT
-     if (flags & WSP_VERT)
-     {
- 	wp->w_p_scr = curwin->w_p_scr;
-+
- 	if (need_status)
- 	{
- 	    win_new_height(oldwin, oldwin->w_height - 1);
-@@ -3277,9 +3283,7 @@
-     if (aucmd_win != NULL)
-     {
- 	win_init_some(aucmd_win, curwin);
--# ifdef FEAT_SCROLLBIND
--	aucmd_win->w_p_scb = FALSE;
--# endif
-+	RESET_BINDING(aucmd_win);
- 	new_frame(aucmd_win);
-     }
- }
-@@ -3320,10 +3324,8 @@
- 	/* First window in new tab page, initialize it from "oldwin". */
- 	win_init(curwin, oldwin, 0);
- 
--# ifdef FEAT_SCROLLBIND
--	/* We don't want scroll-binding in the first window. */
--	curwin->w_p_scb = FALSE;
--# endif
-+	/* We don't want cursor- and scroll-binding in the first window. */
-+	RESET_BINDING(curwin);
-     }
- #endif
- 
-@@ -5459,6 +5461,19 @@
- 
- #endif /* FEAT_WINDOWS */
- 
-+#define FRACTION_MULT	16384L
-+
-+/*
-+ * Set wp->w_fraction for the current w_wrow and w_height.
-+ */
-+    static void
-+set_fraction(wp)
-+    win_T	*wp;
-+{
-+    wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
-+				    + FRACTION_MULT / 2) / (long)wp->w_height;
-+}
-+
- /*
-  * Set the height of a window.
-  * This takes care of the things inside the window, not what happens to the
-@@ -5471,7 +5486,6 @@
- {
-     linenr_T	lnum;
-     int		sline, line_size;
--#define FRACTION_MULT	16384L
- 
-     /* Don't want a negative height.  Happens when splitting a tiny window.
-      * Will equalize heights soon to fix it. */
-@@ -5481,8 +5495,7 @@
- 	return;	    /* nothing to do */
- 
-     if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
--	wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
--				    + FRACTION_MULT / 2) / (long)wp->w_height;
-+	set_fraction(wp);
- 
-     wp->w_height = height;
-     wp->w_skipcol = 0;
-diff -Naur vim73.orig/src/workshop.c vim73/src/workshop.c
---- vim73.orig/src/workshop.c	2010-08-08 09:18:24.000000000 -0400
-+++ vim73/src/workshop.c	2011-01-08 21:01:19.438656953 -0500
-@@ -16,7 +16,6 @@
- #include <sys/types.h>
- #include <netdb.h>
- #include <netinet/in.h>
--#include <errno.h>
- #include <sys/socket.h>
- #ifdef HAVE_LIBGEN_H
- # include <libgen.h>
Index: patches/vim-7.3-branch_update-2.patch
===================================================================
--- patches/vim-7.3-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
+++ patches/vim-7.3-branch_update-2.patch	(revision b369f3c02d21589fa802400bc7984a8ca6d2ad6d)
@@ -0,0 +1,19772 @@
+Submitted By: Jim Gifford (jim at cross-lfs dot org)
+Date: 05-17-2011
+Initial Package Version: 7.3
+Origin: Upstream
+Upstream Status: Applied
+Description: Contains all upstream patches up to 7.3.189
+
+diff -Naur vim73.orig/Filelist vim73/Filelist
+--- vim73.orig/Filelist	2010-08-07 11:04:57.000000000 +0000
++++ vim73/Filelist	2011-05-17 09:39:33.887666519 +0000
+@@ -39,6 +39,7 @@
+ 		src/mark.c \
+ 		src/mbyte.c \
+ 		src/memfile.c \
++		src/memfile_test.c \
+ 		src/memline.c \
+ 		src/menu.c \
+ 		src/message.c \
+@@ -427,8 +428,6 @@
+ 		README_os390.txt \
+ 		src/Make_mint.mak \
+ 		src/Make_ro.mak \
+-		src/gui_riscos.c \
+-		src/gui_riscos.h \
+ 		src/if_sniff.c \
+ 		src/infplist.xml \
+ 		src/link.390 \
+@@ -436,10 +435,6 @@
+ 		src/os_beos.h \
+ 		src/os_beos.rsrc \
+ 		src/os_mint.h \
+-		src/os_riscos.c \
+-		src/os_riscos.h \
+-		src/proto/gui_riscos.pro \
+-		src/proto/os_riscos.pro \
+ 		src/os_vms_fix.com \
+ 		src/toolbar.phi \
+ 
+@@ -686,6 +681,8 @@
+ 		runtime/tutor/tutor.utf-8 \
+ 		runtime/tutor/tutor.?? \
+ 		runtime/tutor/tutor.??.* \
++		runtime/tutor/tutor.bar \
++		runtime/tutor/tutor.bar.* \
+ 		runtime/spell/README.txt \
+ 		runtime/spell/??/*.diff \
+ 		runtime/spell/??/main.aap \
+diff -Naur vim73.orig/Makefile vim73/Makefile
+--- vim73.orig/Makefile	2010-08-15 12:23:34.000000000 +0000
++++ vim73/Makefile	2011-05-17 09:36:59.428809420 +0000
+@@ -23,6 +23,9 @@
+ # has run can result in compiling with $(CC) empty.
+ 
+ first:
++	@if test ! -f src/auto/config.mk; then \
++		cp src/config.mk.dist src/auto/config.mk; \
++	fi
+ 	@echo "Starting make in the src directory."
+ 	@echo "If there are problems, cd to the src directory and run make there"
+ 	cd src && $(MAKE) $@
+@@ -30,6 +33,9 @@
+ # Some make programs use the last target for the $@ default; put the other
+ # targets separately to always let $@ expand to "first" by default.
+ all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
++	@if test ! -f src/auto/config.mk; then \
++		cp src/config.mk.dist src/auto/config.mk; \
++	fi
+ 	@echo "Starting make in the src directory."
+ 	@echo "If there are problems, cd to the src directory and run make there"
+ 	cd src && $(MAKE) $@
+diff -Naur vim73.orig/runtime/doc/change.txt vim73/runtime/doc/change.txt
+--- vim73.orig/runtime/doc/change.txt	2010-08-15 12:23:19.000000000 +0000
++++ vim73/runtime/doc/change.txt	2011-05-17 09:38:53.176184912 +0000
+@@ -916,8 +916,10 @@
+ {Visual}["x]Y		Yank the highlighted lines [into register x] (for
+ 			{Visual} see |Visual-mode|).  {not in Vi}
+ 
+-							*:y* *:yank*
+-:[range]y[ank] [x]	Yank [range] lines [into register x].
++							*:y* *:yank* *E850*
++:[range]y[ank] [x]	Yank [range] lines [into register x]. Yanking to the
++			"* or "+ registers is possible only in GUI versions or
++			when the |+xterm_clipboard| feature is included.
+ 
+ :[range]y[ank] [x] {count}
+ 			Yank {count} lines, starting with last line number
+diff -Naur vim73.orig/runtime/doc/eval.txt vim73/runtime/doc/eval.txt
+--- vim73.orig/runtime/doc/eval.txt	2010-08-15 12:23:20.000000000 +0000
++++ vim73/runtime/doc/eval.txt	2011-05-17 09:33:49.093934743 +0000
+@@ -1657,6 +1657,15 @@
+ 					*v:warningmsg* *warningmsg-variable*
+ v:warningmsg	Last given warning message.  It's allowed to set this variable.
+ 
++					*v:windowid* *windowid-variable*
++v:windowid	When any X11 based GUI is running or when running in a
++		terminal and Vim connects to the X server (|-X|) this will be
++		set to the window ID.
++		When an MS-Windows GUI is running this will be set to the
++		window handle.
++		Otherwise the value is zero.
++		Note: for windows inside Vim use |winnr()|.
++
+ ==============================================================================
+ 4. Builtin Functions					*functions*
+ 
+@@ -1822,7 +1831,7 @@
+ log( {expr})			Float	natural logarithm (base e) of {expr}
+ log10( {expr})			Float	logarithm of Float {expr} to base 10
+ map( {expr}, {string})		List/Dict  change each item in {expr} to {expr}
+-maparg( {name}[, {mode} [, {abbr}]])
++maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
+ 				String	rhs of mapping {name} in mode {mode}
+ mapcheck( {name}[, {mode} [, {abbr}]])
+ 				String	check for mappings matching {name}
+@@ -3966,23 +3975,51 @@
+ 		further items in {expr} are processed.
+ 
+ 
+-maparg({name}[, {mode} [, {abbr}]])			*maparg()*
+-		Return the rhs of mapping {name} in mode {mode}.  When there
+-		is no mapping for {name}, an empty String is returned.
++maparg({name}[, {mode} [, {abbr} [, {dict}]]])			*maparg()*
++		When {dict} is omitted or zero: Return the rhs of mapping
++		{name} in mode {mode}.  The returned String has special
++		characters translated like in the output of the ":map" command
++		listing.
++		
++		When there is no mapping for {name}, an empty String is
++		returned.
++
++		The {name} can have special key names, like in the ":map"
++		command.
++
+ 		{mode} can be one of these strings:
+ 			"n"	Normal
+-			"v"	Visual
++			"v"	Visual (including Select)
+ 			"o"	Operator-pending
+ 			"i"	Insert
+ 			"c"	Cmd-line
++			"s"	Select
++			"x"	Visual
+ 			"l"	langmap |language-mapping|
+ 			""	Normal, Visual and Operator-pending
+ 		When {mode} is omitted, the modes for "" are used.
++
+ 		When {abbr} is there and it is non-zero use abbreviations
+ 		instead of mappings.
+-		The {name} can have special key names, like in the ":map"
+-		command.  The returned String has special characters
+-		translated like in the output of the ":map" command listing.
++
++		When {dict} is there and it is non-zero return a dictionary
++		containing all the information of the mapping with the
++		following items:
++		  "lhs"	     The {lhs} of the mapping.
++		  "rhs"	     The {rhs} of the mapping as typed.
++		  "silent"   1 for a |:map-silent| mapping, else 0.
++		  "noremap"  1 if the {rhs} of the mapping is remappable.
++		  "expr"     1 for an expression mapping (|:map-<expr>|).
++		  "buffer"   1 for a buffer local mapping (|:map-local|).
++		  "mode"     Modes for which the mapping is defined. In
++			     addition to the modes mentioned above, these
++			     characters will be used:
++			     " "     Normal, Visual and Operator-pending
++			     "!"     Insert and Commandline mode
++				     (|mapmpde-ic|)
++		  "sid"	     the Script local ID, used for <sid> mappings
++			     (|<SID>|)
++
+ 		The mappings local to the current buffer are checked first,
+ 		then the global mappings.
+ 		This function can be used to map a key even when it's already
+diff -Naur vim73.orig/runtime/doc/netbeans.txt vim73/runtime/doc/netbeans.txt
+--- vim73.orig/runtime/doc/netbeans.txt	2010-08-15 12:23:21.000000000 +0000
++++ vim73/runtime/doc/netbeans.txt	2011-05-17 09:32:59.459443811 +0000
+@@ -1,4 +1,4 @@
+-*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Jul 20
++*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Aug 20
+ 
+ 
+ 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
+@@ -118,7 +118,8 @@
+ uncommenting a line with "--disable-netbeans" in the Makefile.
+ 
+ Currently the NetBeans interface is supported by Vim running in a terminal and
+-by GVim when it is run with one of the following GUIs: GTK, GNOME, and Motif.
++by GVim when it is run with one of the following GUIs: GTK, GNOME, Windows,
++Athena and Motif.
+ 
+ If Motif support is required the user must supply XPM libraries.  See
+ |workshop-xpm| for details on obtaining the latest version of XPM.
+diff -Naur vim73.orig/runtime/doc/options.txt vim73/runtime/doc/options.txt
+--- vim73.orig/runtime/doc/options.txt	2010-08-15 12:23:21.000000000 +0000
++++ vim73/runtime/doc/options.txt	2011-05-17 09:37:43.251945581 +0000
+@@ -150,6 +150,18 @@
+ (the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
+ The advantage over a mapping is that it works in all situations.
+ 
++You can define any key codes, e.g.: >
++	:set t_xy=^[foo;
++There is no warning for using a name that isn't recognized.  You can map these
++codes as you like: >
++	:map <t_xy> something
++<								*E846*
++When a key code is not set, it's like it does not exist.  Trying to get its
++value will result in an error: >
++	:set t_kb=
++	:set t_kb
++	E846: Key code not set: t_kb
++
+ The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+ 
+@@ -1434,6 +1446,15 @@
+ 			explicitly accessed using the "* notation.  Also see
+ 			|gui-clipboard|.
+ 
++	unnamedplus	A variant of "unnamed" flag which uses the clipboard
++			register '+' (|quoteplus|) instead of register '*' for
++			all operations except yank.  Yank shall copy the text
++			into register '+' and also into '*' when "unnamed" is
++			included.
++			Only available with the |+x11| feature.
++			Availability can be checked with: >
++				if has('unnamedplus')
++<
+ 	autoselect	Works like the 'a' flag in 'guioptions': If present,
+ 			then whenever Visual mode is started, or the Visual
+ 			area extended, Vim tries to become the owner of the
+@@ -7530,8 +7551,9 @@
+ 	!	When included, save and restore global variables that start
+ 		with an uppercase letter, and don't contain a lowercase
+ 		letter.  Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
+-		and "_K_L_M" are not.  Only String and Number types are
+-		stored.
++		and "_K_L_M" are not.  Nested List and Dict items may not be
++		read back correctly, you end up with a string representation
++		instead.
+ 	"	Maximum number of lines saved for each register.  Old name of
+ 		the '<' item, with the disadvantage that you need to put a
+ 		backslash before the ", otherwise it will be recognized as the
+@@ -7747,6 +7769,17 @@
+ 	a pattern from the list.  This avoids problems when a future version
+ 	uses another default.
+ 
++
++			*'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
++'wildignorecase' 'wic'	boolean	(default off)
++			global
++			{not in Vi}
++	When set case is ignored when completing file names and directories.
++	Has no effect on systems where file name case is generally ignored.
++	Does not apply when the shell is used to expand wildcards, which
++	happens when there are special characters.
++
++
+ 				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
+ 'wildmenu' 'wmnu'	boolean	(default off)
+ 			global
+diff -Naur vim73.orig/runtime/doc/os_risc.txt vim73/runtime/doc/os_risc.txt
+--- vim73.orig/runtime/doc/os_risc.txt	2010-08-15 12:23:21.000000000 +0000
++++ vim73/runtime/doc/os_risc.txt	2011-05-17 09:39:31.635916429 +0000
+@@ -1,322 +1,12 @@
+-*os_risc.txt*   For Vim version 7.3.  Last change: 2010 Aug 07
++*os_risc.txt*   For Vim version 7.3.  Last change: 2011 May 10
+ 
+ 
+ 		  VIM REFERENCE MANUAL    by Thomas Leonard
+ 
+ 
+ 						*riscos* *RISCOS* *RISC-OS*
+-This file contains the particularities for the RISC OS version of Vim.
++The RISC OS support has been removed from Vim with patch 7.3.187.
++If you would like to use Vim on RISC OS get the files from before that patch.
+ 
+-The RISC OS port is a completely new port and is not based on the old "archi"
+-port.
+ 
+-1.  File locations		|riscos-locations|
+-2.  Filename munging		|riscos-munging|
+-3.  Command-line use		|riscos-commandline|
+-4.  Desktop (GUI) use		|riscos-gui|
+-5.  Remote use (telnet)		|riscos-remote|
+-6.  Temporary files		|riscos-temp-files|
+-7.  Interrupting		|riscos-interrupt|
+-8.  Memory usage		|riscos-memory|
+-9.  Filetypes			|riscos-filetypes|
+-10. The shell			|riscos-shell|
+-11. Porting new releases	|riscos-porting|
+-
+-If I've missed anything, email me and I'll try to fix it.  In fact, even if I
+-haven't missed anything then email me anyway to give me some confidence that it
+-actually works!
+-
+-Thomas Leonard <tal197@ecs.soton.ac.uk>
+-
+-	[these URLs no longer work...]
+- Port homepage:	http://www.ecs.soton.ac.uk/~tal197/
+-	or try:	http://www.soton.ac.uk/~tal197/
+-
+-==============================================================================
+-							*riscos-locations*
+-1. File locations
+-
+-The Vim executable and shared resource files are all stored inside the !Vim
+-application directory.
+-
+-When !Vim is first seen by the filer, it aliases the *vi and *ex commands to
+-run the command-line versions of Vim (see |riscos-commandline|).
+-
+-!Vim.Resources and !Vim.Resources2 contain the files from the standard Vim
+-distribution, but modified slightly to work within the limits of ADFS, plus
+-some extra files such as the window templates.
+-
+-User choices are read from "Choices:*" and are saved to "<Choices$Write>.*".
+-If you have the new !Boot structure then these should be set up already.  If
+-not, set Choices$Path to a list of directories to search when looking for
+-user configuration files.  Set Choices$Write to the directory you want files
+-to be saved into (so your search patterns and marks can be remembered between
+-sessions).
+-
+-==============================================================================
+-							*riscos-munging*
+-2. Filename munging
+-
+-All pathname munging is disabled by default, so Vim should behave like a
+-normal RISC OS application now.  So, if you want to edit "doc/html" then you
+-actually type "*vi doc/html".
+-
+-The only times munging is done is when:
+-
+-- Searching included files from C programs, since these are always munged.
+-  See |[I|.
+-  Note: make sure you are in the right directory when you use this
+-	command (i.e. the one with subdirectories "c" and "h").
+-
+-- Sourcing files using |:so|.
+-  Paths starting "$VIM/" are munged like this:
+-
+-  $VIM/syntax/help.vim  ->  Vim:syntax.help
+-
+-  Also, files ending in ".vim" have their extensions removed, and slashes
+-  replaced with dots.
+-
+-Some tag files and script files may have to be edited to work under this port.
+-
+-==============================================================================
+-							*riscos-commandline*
+-3. Command-line use
+-
+-To use Vim from the command-line use the "*vi" command (or "*ex" for
+-|Ex-mode|).
+-
+-Type "*vi -h" for a list of options.
+-
+-Running the command-line version of Vim in a large high-color mode may cause
+-the scrolling to be very slow.  Either change to a mode with fewer colors or
+-use the GUI version.
+-
+-Also, holding down Ctrl will slow it down even more, and Ctrl-Shift will
+-freeze it, as usual for text programs.
+-
+-==============================================================================
+-							*riscos-gui*
+-4. Desktop use
+-
+-Limitations:
+-
+-- Left scrollbars don't work properly (right and bottom are fine).
+-- Doesn't increase scroll speed if it gets behind.
+-
+-You can resize the window by dragging the lower-right corner, even though
+-there is no icon shown there.
+-
+-You can use the --rows and --columns arguments to specify the initial size of
+-the Vim window, like this: >
+-
+-  *Vi -g --rows 20 --columns 80
+-
+-The global clipboard is supported, so you can select some text and then
+-paste it directly into another application (provided it supports the
+-clipboard too).
+-
+-Clicking Menu now opens a menu like a normal RISC OS program.  Hold down Shift
+-when clicking Menu to paste (from the global clipboard).
+-
+-Dragging a file to the window replaces the CURRENT buffer (the one with the
+-cursor, NOT the one you dragged to) with the file.
+-
+-Dragging with Ctrl held down causes a new Vim window to be opened for the
+-file (see |:sp|).
+-
+-Dragging a file in with Shift held down in insert mode inserts the pathname of
+-the file.
+-
+-:browse :w opens a standard RISC OS save box.
+-:browse :e opens a directory viewer.
+-
+-For fonts, you have the choice of the system font, an outline font, the system
+-font via ZapRedraw and any of the Zap fonts via ZapRedraw: >
+-
+-  :set guifont=
+-<			To use the system font via the VDU drivers.  Supports
+-			bold and underline.
+->
+-  :set guifont=Corpus.Medium
+-<			Use the named outline font.  You can use any font, but
+-			only monospaced ones like Corpus look right.
+->
+-  :set guifont=Corpus.Medium:w8:h12:b:i
+-<			As before, but with size of 8 point by 12 point, and
+-			in bold italic.
+-			If only one of width and height is given then that
+-			value is used for both.  If neither is given then 10
+-			point is used.
+-
+-Thanks to John Kortink, Vim can use the ZapRedraw module.  Start the font name
+-with "!" (or "!!" for double height), like this: >
+-
+-  :set guifont=!!
+-<			Use the system font, but via ZapRedraw.  This gives a
+-			faster redraw on StrongARM processors, but you can't
+-			get bold or italic text.  Double height.
+->
+-  :set guifont=!script
+-<			Uses the named Zap font (a directory in VimFont$Path).
+-			The redraw is the same speed as for "!!", but you get
+-			a nicer looking font.
+-			Only the "man+" and "script" fonts are supplied
+-			currently, but you can use any of the Zap fonts if
+-			they are in VimFont$Path.
+-			Vim will try to load font files "0", "B", "I" and "IB"
+-			from the named directory.  Only "0" (normal style) MUST
+-			be present.  Link files are not currently supported.
+-
+-Note that when using ZapRedraw the edit bar is drawn in front of the character
+-you are on rather than behind it.  Also redraw is incorrect for screen modes
+-with eigen values of 0.  If the font includes control characters then you can
+-get Vim to display them by changing the 'isprint' option.
+-
+-If you find the scrolling is too slow on your machine, try experimenting
+-with the 'scrolljump' and 'ttyscroll' options.
+-
+-In particular, StrongARM users may find that: >
+-
+-  :set ttyscroll=0
+-
+-makes scrolling faster in high-color modes.
+-
+-=============================================================================
+-							*riscos-remote*
+-5. Remote use (telnet)
+-
+-I have included a built-in termcap entry, but you can edit the termcap file to
+-allow other codes to be used if you want to use Vim from a remote terminal.
+-
+-Although I do not have an internet connection to my Acorn, I have managed to
+-run Vim in a FreeTerm window using the loopback connection.
+-
+-It seems to work pretty well now, using "*vi -T ansi".
+-
+-==============================================================================
+-							*riscos-temp-files*
+-6. Temporary files
+-
+-If Vim crashes then the swap and backup files (if any) will be in the
+-directories set with the 'directory' and 'bdir' options.  By default the swap
+-files are in <Wimp$ScrapDir> (i.e. inside !Scrap) and backups are in the
+-directory you were saving to.  Vim will allow you to try and recover the file
+-when you next try to edit it.
+-
+-To see a list of swap files, press <F12> and type "*vi -r".
+-
+-Vim no longer brings up ATTENTION warnings if you try to edit two files with
+-the same name in different directories.
+-
+-However, it also no longer warns if you try to edit the same file twice (with
+-two copies of Vim), though you will still be warned when you save that the
+-datestamp has changed.
+-
+-==============================================================================
+-							*riscos-interrupt*
+-7. Interrupting
+-
+-To break out of a looping macro, or similar, hold down Escape in the
+-command-line version, or press CTRL-C in the GUI version.
+-
+-==============================================================================
+-							*riscos-memory*
+-8. Memory usage
+-
+-Vim will use dynamic areas on RISC OS 3.5 or later.  If you can use them on
+-older machines then edit the !RunTxt and GVim files.  I don't know what UnixLib
+-does by default on these machines so I'm playing safe.
+-
+-It doesn't work at all well without dynamic areas, since it can't change its
+-memory allocation once running.  Hence you should edit "!Vim.GVim" and
+-"!Vim.!RunTxt" to choose the best size for you.  You probably need at least
+-about 1400K.
+-
+-==============================================================================
+-							*riscos-filetypes*
+-9. Filetypes
+-
+-You can now specify that autocommands are only executed for files of certain
+-types.  The filetype is given in the form &xxx, when xxx is the filetype.
+-
+-Filetypes must be specified by number (e.g. &fff for Text).
+-
+-The system has changed from version 5.3.  The new sequence of events is:
+-
+-- A file is loaded. |'osfiletype'| is set to the RISC OS filetype.
+-- Based on the filetype and pathname, Vim will try to set |'filetype'| to the
+-  Vim-type of the file.
+-- Setting this option may load syntax files and perform other actions.
+-- Saving the file will give it a filetype of |'osfiletype'|.
+-
+-Some examples may make this clearer:
+-
+-  Kind of file loaded	osfiletype	filetype ~
+-  C code "c.hellow"	Text (&fff)	C
+-  LaTeX document	LaTeX (&2a8)	TeX
+-  Draw document		DrawFile (&aff)	(not changed)
+-
+-==============================================================================
+-							*riscos-shell*
+-10. The shell
+-
+-- Bangs (!s) are only replaced if they are followed by a space or end-of-line,
+-  since many pathnames contain them.
+-
+-- You can prefix the command with "~", which stops any output from being
+-  displayed.  This also means that you don't have to press <Enter> afterwards,
+-  and stops the screen from being redrawn. {only in the GUI version}
+-
+-==============================================================================
+-							*riscos-porting*
+-11. Porting new releases to RISC OS
+-
+-Downloading everything you need:
+-
+-- Get the latest source distribution (see www.vim.org)
+-- Get the runtime environment files (e.g. these help files)
+-- Get the RISC OS binary distribution (if possible)
+-
+-
+-Unarchiving:
+-
+-- Create a raFS disk and put the archives on it
+-- Un-gzip them
+-- Un-tar them   (*tar xELf 50 archive/tar)
+-
+-
+-Recompiling the sources:
+-
+-- Create c, s, and h directories.
+-- Put all the header files in "h".	     \
+-- Put all the C files in "c".		     | And lose the extensions
+-- Put the assembler file ("swis/s") in "s".  /
+-- Rename all the files in "proto" to "h", like this:
+-    raFS::VimSrc.source.proto.file/pro
+-	  becomes
+-    raFS::VimSrc.source.h.file_pro
+-- In the files "h.proto" and "c.termlib", search and replace
+-    .pro"
+-       with
+-    _pro.h"
+-- Create a simple Makefile if desired and do "*make -k".
+-  Use "CC = gcc -DRISCOS -DUSE_GUI -O2 -x c" in the Makefile.
+-- Save the binary as !Vim.Vim in the binary distribution.
+-
+-
+-Updating the run-time environment:
+-
+-- Replace old or missing files inside !Vim.Resources with the
+-  new files.
+-- Remove files in "doc" not ending in "/txt", except for "tags".
+-- Lose the extensions from the files in "doc".
+-- Edit the "doc.tags" file.  Remove extensions from the second column: >
+-	:%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
+-- Remove extensions from the syntax files.  Split them into two directories
+-  to avoid the 77 entry limit on old ADFS filesystems.
+-- Edit "Vim:FileType" to match "*.c.*" as well as "*/c" and so on.
+-  Add filetype checking too.
+-- Edit "Vim:Menu" and remove all the keys from the menus: >
+-	:%s/<Tab>[^ \t]*//
+-<
+  vim:tw=78:ts=8:ft=help:norl:
+diff -Naur vim73.orig/src/GvimExt/Make_ming.mak vim73/src/GvimExt/Make_ming.mak
+--- vim73.orig/src/GvimExt/Make_ming.mak	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/GvimExt/Make_ming.mak	2011-05-17 09:35:53.956076175 +0000
+@@ -17,6 +17,17 @@
+ # check also the executables
+ MINGWOLD = no
+ 
++# Link against the shared versions of libgcc/libstdc++ by default.  Set
++# STATIC_STDCPLUS to "yes" to link against static versions instead.
++STATIC_STDCPLUS=no
++#STATIC_STDCPLUS=yes
++
++# Note: -static-libstdc++ is not available until gcc 4.5.x.
++LDFLAGS += -shared
++ifeq (yes, $(STATIC_STDCPLUS))
++LDFLAGS += -static-libgcc -static-libstdc++
++endif
++
+ ifeq ($(CROSS),yes)
+ DEL = rm
+ ifeq ($(MINGWOLD),yes)
+@@ -34,6 +45,8 @@
+ endif
+ CXX := $(CROSS_COMPILE)g++
+ WINDRES := $(CROSS_COMPILE)windres
++WINDRES_CXX = $(CXX)
++WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
+ LIBS :=  -luuid
+ RES  := gvimext.res
+ DEFFILE = gvimext_ming.def
+@@ -46,7 +59,7 @@
+ all: all-before $(DLL) all-after
+ 
+ $(DLL): $(OBJ) $(RES) $(DEFFILE)
+-	$(CXX) -shared $(CXXFLAGS) -s -o $@ \
++	$(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
+ 		-Wl,--enable-auto-image-base \
+ 		-Wl,--enable-auto-import \
+ 		-Wl,--whole-archive \
+@@ -58,7 +71,7 @@
+ 	$(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
+ 
+ $(RES): gvimext_ming.rc
+-	$(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
++	$(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
+ 
+ clean: clean-custom
+ 	-$(DEL)  $(OBJ) $(RES) $(DLL)
+diff -Naur vim73.orig/src/Make_cyg.mak vim73/src/Make_cyg.mak
+--- vim73.orig/src/Make_cyg.mak	2010-08-02 19:09:22.000000000 +0000
++++ vim73/src/Make_cyg.mak	2011-05-17 09:34:14.927067473 +0000
+@@ -1,6 +1,6 @@
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+-# Last updated by Dan Sharp.  Last Change: 2010 Feb 24
++# Last updated by Dan Sharp.  Last Change: 2010 Nov 03
+ #
+ # Also read INSTALLpc.txt!
+ #
+@@ -27,6 +27,7 @@
+ #   MZSCHEME_VER      define to version of MzScheme being used (209_000)
+ #   DYNAMIC_MZSCHEME  no or yes: use yes to load the MzScheme DLLs dynamically (yes)
+ #   MZSCHEME_DLLS     path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
++#   MZSCHEME_USE_RACKET  define to use "racket" instead of "mzsch".
+ # LUA	define to path to Lua dir to get Lua support (not defined)
+ #   LUA_VER	    define to version of Lua being used (51)
+ #   DYNAMIC_LUA  no or yes: use yes to load the Lua DLL dynamically (yes)
+@@ -254,16 +255,22 @@
+ MZSCHEME_GENERATE_BASE=no
+ endif
+ 
++ifndef MZSCHEME_USE_RACKET
++MZSCHEME_MAIN_LIB=mzsch
++else
++MZSCHEME_MAIN_LIB=racket
++endif
++
+ ifeq (yes, $(DYNAMIC_MZSCHEME))
+-DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
++DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+ else
+ ifndef MZSCHEME_DLLS
+ MZSCHEME_DLLS = $(MZSCHEME)
+ endif
+ ifeq (yes,$(MZSCHEME_PRECISE_GC))
+-MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
++MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
+ else
+-MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
++MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+ endif
+ EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
+ endif
+diff -Naur vim73.orig/src/Make_ming.mak vim73/src/Make_ming.mak
+--- vim73.orig/src/Make_ming.mak	2010-08-02 19:09:43.000000000 +0000
++++ vim73/src/Make_ming.mak	2011-05-17 09:35:53.956076175 +0000
+@@ -56,6 +56,12 @@
+ NETBEANS=$(GUI)
+ 
+ 
++# Link against the shared version of libstdc++ by default.  Set
++# STATIC_STDCPLUS to "yes" to link against static version instead.
++ifndef STATIC_STDCPLUS
++STATIC_STDCPLUS=no
++endif
++
+ # If the user doesn't want gettext, undefine it.
+ ifeq (no, $(GETTEXT))
+ GETTEXT=
+@@ -141,11 +147,17 @@
+ MZSCHEME_GENERATE_BASE=no
+ endif
+ 
++ifndef MZSCHEME_USE_RACKET
++MZSCHEME_MAIN_LIB=mzsch
++else
++MZSCHEME_MAIN_LIB=racket
++endif
++
+ ifeq (no,$(DYNAMIC_MZSCHEME))
+ ifeq (yes,$(MZSCHEME_PRECISE_GC))
+-MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
++MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
+ else
+-MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
++MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
+ endif
+ # the modern MinGW can dynamically link to dlls directly.
+ # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
+@@ -304,11 +316,13 @@
+ endif
+ CC := $(CROSS_COMPILE)gcc
+ WINDRES := $(CROSS_COMPILE)windres
++WINDRES_CC = $(CC)
+ 
+ #>>>>> end of choices
+ ###########################################################################
+ 
+ CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
++WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
+ 
+ ifdef GETTEXT
+ DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
+@@ -343,7 +357,7 @@
+ ifdef MZSCHEME
+ CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
+ ifeq (yes, $(DYNAMIC_MZSCHEME))
+-CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
++CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+ endif
+ endif
+ 
+@@ -571,8 +585,13 @@
+ endif
+ 
+ ifeq (yes, $(OLE))
+-LIB += -loleaut32 -lstdc++
++LIB += -loleaut32
+ OBJ += $(OUTDIR)/if_ole.o
++ifeq (yes, $(STATIC_STDCPLUS))
++LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
++else
++LIB += -lstdc++
++endif
+ endif
+ 
+ ifeq (yes, $(MBYTE))
+@@ -650,10 +669,10 @@
+ 	$(CC) -c $(CFLAGS) $< -o $@
+ 
+ $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
+-	$(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
++	$(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
+ 
+ $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
+-	$(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
++	$(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
+ 
+ $(OUTDIR):
+ 	$(MKDIR) $(OUTDIR)
+diff -Naur vim73.orig/src/Make_mvc.mak vim73/src/Make_mvc.mak
+--- vim73.orig/src/Make_mvc.mak	2010-07-18 19:24:20.000000000 +0000
++++ vim73/src/Make_mvc.mak	2011-05-17 09:37:06.132065436 +0000
+@@ -380,9 +380,6 @@
+ !if "$(_NMAKE_VER)" == "10.00.30319.01"
+ MSVCVER = 10.0
+ !endif
+-!if "$(_NMAKE_VER)" == "9.00.30729.01"
+-MSVCVER = 9.0
+-!endif
+ !endif
+ 
+ # Abort bulding VIM if version of VC is unrecognised.
+@@ -705,12 +702,18 @@
+ MZSCHEME_VER = 205_000
+ !endif
+ CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
+-!if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
+-# for MzScheme 4.x we need to include byte code for basic Scheme stuff
++!if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
++	|| EXIST("$(MZSCHEME)\collects\scheme\base.rkt") 
++# for MzScheme >= 4 we need to include byte code for basic Scheme stuff
+ MZSCHEME_EXTRA_DEP = mzscheme_base.c
+ CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
+ !endif
+-!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
++!if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
++MZSCHEME_MAIN_LIB=mzsch
++!else
++MZSCHEME_MAIN_LIB=racket
++!endif
++!if EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
+ 	&& !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
+ !message Building with Precise GC
+ MZSCHEME_PRECISE_GC = yes
+@@ -722,7 +725,7 @@
+ !endif
+ !message MzScheme DLLs will be loaded dynamically
+ CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
+-		-DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
++		-DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
+ 		-DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
+ !else
+ !if "$(MZSCHEME_DEBUG)" == "yes"
+@@ -730,10 +733,10 @@
+ !endif
+ !if "$(MZSCHEME_PRECISE_GC)" == "yes"
+ # Precise GC does not use separate dll
+-MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
++MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
+ !else
+ MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
+-		$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
++		$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
+ !endif
+ !endif
+ MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
+@@ -1156,6 +1159,10 @@
+ E0_CFLAGS = $(CFLAGS:\=\\)
+ E_CFLAGS = $(E0_CFLAGS:"=\")
+ # ") stop the string
++# $LINKARGS2 may contain backslashes and double quotes, escape them both.
++E0_LINKARGS2 = $(LINKARGS2:\=\\)
++E_LINKARGS2 = $(E0_LINKARGS2:"=\")
++# ") stop the string
+ 
+ $(PATHDEF_SRC): auto
+ 	@echo creating $(PATHDEF_SRC)
+@@ -1164,7 +1171,7 @@
+ 	@echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
+ 	@echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
+ 	@echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
+-	@echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
++	@echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
+ 	@echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
+ 	@echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
+ 
+diff -Naur vim73.orig/src/Makefile vim73/src/Makefile
+--- vim73.orig/src/Makefile	2010-08-15 12:56:15.000000000 +0000
++++ vim73/src/Makefile	2011-05-17 09:37:56.858435432 +0000
+@@ -283,12 +283,13 @@
+ 
+ ######################## auto/config.mk ######################## {{{1
+ # At this position auto/config.mk is included. When starting from the
+-# distribution it is almost empty. After running auto/configure it contains
+-# settings that have been discovered for your system. Settings below this
+-# include override settings in auto/config.mk!
+-
+-# Note: if auto/config.mk is lost somehow (e.g., because configure was
+-# interrupted), create an empty auto/config.mk file and do "make config".
++# toplevel Makefile it is almost empty. After running auto/configure it
++# contains settings that have been discovered for your system. Settings below
++# this include override settings in auto/config.mk!
++
++# Note: If make fails because auto/config.mk does not exist (it is not
++# included in the repository), do:
++#    cp config.mk.dist auto/config.mk
+ 
+ # (X) How to include auto/config.mk depends on the version of "make" you have,
+ #     if the current choice doesn't work, try the other one.
+@@ -414,12 +415,16 @@
+ # However, this may still cause problems, such as "import termios" failing.
+ # Build two separate versions of Vim in that case.
+ #CONF_OPT_PYTHON = --enable-pythoninterp
++#CONF_OPT_PYTHON = --enable-pythoninterp=dynamic
+ #CONF_OPT_PYTHON3 = --enable-python3interp
++#CONF_OPT_PYTHON3 = --enable-python3interp=dynamic
+ 
+ # RUBY
+ # Uncomment this when you want to include the Ruby interface.
++# First one for static linking, second one for loading when used.
+ # Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
+ #CONF_OPT_RUBY = --enable-rubyinterp
++#CONF_OPT_RUBY = --enable-rubyinterp=dynamic
+ #CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
+ 
+ # TCL
+@@ -556,7 +561,7 @@
+ #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+ 
+ # Use this with GCC to check for mistakes, unused arguments, etc.
+-#CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1 -DU_DEBUG
++#CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
+ #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
+ #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+ #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+@@ -589,8 +594,9 @@
+ 
+ # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
+ # Might not work with GUI or Perl.
+-# For unknown reasons adding "-lc" fixes a linking problem with GCC.  That's
+-# probably a bug in the "-pg" implementation.
++# For unknown reasons adding "-lc" fixes a linking problem with some versions
++# of GCC.  That's probably a bug in the "-pg" implementation.
++# After running Vim see the profile result with: gmon vim gmon.out | vim -
+ # Need to recompile everything after changing this: "make clean" "make".
+ #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
+ #PROFILE_LIBS = -pg
+@@ -601,8 +607,8 @@
+ # Configuration is in the .ccmalloc or ~/.ccmalloc file.
+ # Doesn't work very well, since memory linked to from global variables
+ # (in libraries) is also marked as leaked memory.
+-#PROFILE_CFLAGS = -DEXITFREE
+-#PROFILE_LIBS = -lccmalloc
++#LEAK_CFLAGS = -DEXITFREE
++#LEAK_LIBS = -lccmalloc
+ 
+ #####################################################
+ ###  Specific systems, check if yours is listed!  ### {{{
+@@ -1047,8 +1053,9 @@
+ INSTALL_DATA	= cp
+ INSTALL_DATA_R	= cp -r
+ 
+-### Program to run on installed binary
++### Program to run on installed binary.  Use the second one to disable strip.
+ #STRIP = strip
++#STRIP = /bin/true
+ 
+ ### Permissions for binaries  {{{1
+ BINMOD = 755
+@@ -1321,15 +1328,15 @@
+ .SUFFIXES: .c .o .pro
+ 
+ PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
+-POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS)
++POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
+ 
+-ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
++ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS)
+ 
+ # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
+ # with "-E".
+ OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
+ 
+-LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
++LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
+ 
+ LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
+ 
+@@ -1352,7 +1359,8 @@
+ 	   $(PYTHON3_LIBS) \
+ 	   $(TCL_LIBS) \
+ 	   $(RUBY_LIBS) \
+-	   $(PROFILE_LIBS)
++	   $(PROFILE_LIBS) \
++	   $(LEAK_LIBS)
+ 
+ # abbreviations
+ DEST_BIN = $(DESTDIR)$(BINDIR)
+@@ -1474,8 +1482,15 @@
+ 	    if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
+ 	    gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
+ 
++# Unittest files
++MEMFILE_TEST_SRC = memfile_test.c
++MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
++
++UNITTEST_SRC = $(MEMFILE_TEST_SRC)
++UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
++
+ # All sources, also the ones that are not configured
+-ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC)
++ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
+ 
+ # Which files to check with lint.  Select one of these three lines.  ALL_SRC
+ # checks more, but may not work well for checking a GUI that wasn't configured.
+@@ -1486,7 +1501,7 @@
+ #LINT_SRC = $(ALL_SRC)
+ #LINT_SRC = $(BASIC_SRC)
+ 
+-OBJ = \
++OBJ_COMMON = \
+ 	objects/buffer.o \
+ 	objects/blowfish.o \
+ 	objects/charset.o \
+@@ -1507,10 +1522,8 @@
+ 	$(HANGULIN_OBJ) \
+ 	objects/if_cscope.o \
+ 	objects/if_xcmdsrv.o \
+-	objects/main.o \
+ 	objects/mark.o \
+-	objects/memfile.o \
+-	objects/memline.o \
++        objects/memline.o \
+ 	objects/menu.o \
+ 	objects/message.o \
+ 	objects/misc1.o \
+@@ -1535,6 +1548,7 @@
+ 	objects/term.o \
+ 	objects/ui.o \
+ 	objects/undo.o \
++	objects/version.o \
+ 	objects/window.o \
+ 	$(GUI_OBJ) \
+ 	$(LUA_OBJ) \
+@@ -1549,6 +1563,13 @@
+ 	$(NETBEANS_OBJ) \
+ 	$(WSDEBUG_OBJ)
+ 
++OBJ = $(OBJ_COMMON) \
++	objects/main.o \
++	objects/memfile.o
++
++MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
++        objects/memfile_test.o
++
+ PRO_AUTO = \
+ 	blowfish.pro \
+ 	buffer.pro \
+@@ -1694,8 +1715,9 @@
+ $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
+ 	$(CCC) version.c -o objects/version.o
+ 	@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
+-		-o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
+-		MAKE="$(MAKE)" sh $(srcdir)/link.sh
++		-o $(VIMTARGET) $(OBJ) $(ALL_LIBS)" \
++		MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
++		sh $(srcdir)/link.sh
+ 
+ xxd/xxd$(EXEEXT): xxd/xxd.c
+ 	cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
+@@ -1818,6 +1840,15 @@
+ 		ln -s $(VIMTARGET) vim; \
+ 	fi
+ 	cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
++	$(MAKE) -f Makefile unittest
++
++unittesttargets:
++	$(MAKE) -f Makefile $(UNITTEST_TARGETS)
++
++unittest unittests: $(UNITTEST_TARGETS)
++	@for t in $(UNITTEST_TARGETS); do \
++		./$$t || exit 1; echo $$t passed; \
++	done
+ 
+ testclean:
+ 	cd testdir; $(MAKE) -f Makefile clean
+@@ -1825,6 +1856,17 @@
+ 		cd $(PODIR); $(MAKE) checkclean; \
+ 	fi
+ 
++# Unittests
++# It's build just like Vim to satisfy all dependencies.
++$(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
++	$(CCC) version.c -o objects/version.o
++	@LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
++		-o $(MEMFILE_TEST_TARGET) $(MEMFILE_TEST_OBJ) $(ALL_LIBS)" \
++		MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
++		sh $(srcdir)/link.sh
++
++# install targets
++
+ install: $(GUI_INSTALL)
+ 
+ install_normal: installvim installtools $(INSTALL_LANGS) install-icons
+@@ -2258,6 +2300,7 @@
+ 	-rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
+ 	-rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
+ 	-rm -f conftest* *~ auto/link.sed
++	-rm -f $(UNITTEST_TARGETS)
+ 	-rm -f runtime pixmaps
+ 	-rm -rf $(APPDIR)
+ 	-rm -rf mzscheme_base.c
+@@ -2532,7 +2575,7 @@
+ 	$(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
+ 
+ objects/if_ruby.o: if_ruby.c
+-	$(CCC) -o $@ if_ruby.c
++	$(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c
+ 
+ objects/if_sniff.o: if_sniff.c
+ 	$(CCC) -o $@ if_sniff.c
+@@ -2552,6 +2595,9 @@
+ objects/memfile.o: memfile.c
+ 	$(CCC) -o $@ memfile.c
+ 
++objects/memfile_test.o: memfile_test.c
++	$(CCC) -o $@ memfile_test.c
++
+ objects/memline.o: memline.c
+ 	$(CCC) -o $@ memline.c
+ 
+@@ -2870,7 +2916,7 @@
+ objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+- arabic.h if_mzsch.h os_unixx.h
++ arabic.h os_unixx.h
+ objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
+  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+@@ -3009,6 +3055,10 @@
+ objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
+  keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
+  proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
++objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
++ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
++ structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
++ proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
+ objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
+  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+@@ -3020,7 +3070,7 @@
+ objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
+  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+- globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
++ globals.h farsi.h arabic.h if_mzsch.h
+ objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
+  auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
+  regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
+@@ -3041,7 +3091,7 @@
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h
+-objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
++objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
+  ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
+  gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
+  arabic.h version.h
+diff -Naur vim73.orig/src/ascii.h vim73/src/ascii.h
+--- vim73.orig/src/ascii.h	2010-05-15 11:04:07.000000000 +0000
++++ vim73/src/ascii.h	2011-05-17 09:39:31.591921313 +0000
+@@ -183,11 +183,6 @@
+ # define PATHSEP	psepc
+ # define PATHSEPSTR	pseps
+ #else
+-# ifdef RISCOS
+-#  define PATHSEP	'.'
+-#  define PATHSEPSTR	"."
+-# else
+-#  define PATHSEP	'/'
+-#  define PATHSEPSTR	"/"
+-# endif
++# define PATHSEP	'/'
++# define PATHSEPSTR	"/"
+ #endif
+diff -Naur vim73.orig/src/auto/config.mk vim73/src/auto/config.mk
+--- vim73.orig/src/auto/config.mk	2010-08-15 13:02:25.000000000 +0000
++++ vim73/src/auto/config.mk	1970-01-01 00:00:00.000000000 +0000
+@@ -1,5 +0,0 @@
+-the first targets to make vim are: scratch config myself
+-srcdir = .
+-VIMNAME = vim
+-EXNAME = ex
+-VIEWNAME = view
+diff -Naur vim73.orig/src/auto/configure vim73/src/auto/configure
+--- vim73.orig/src/auto/configure	2010-08-13 14:17:15.000000000 +0000
++++ vim73/src/auto/configure	2011-05-17 09:39:20.581143348 +0000
+@@ -593,6 +593,7 @@
+ 
+ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
++LINK_AS_NEEDED
+ DEPEND_CFLAGS_FILTER
+ MAKEMO
+ MSGFMT
+@@ -1427,7 +1428,7 @@
+   --enable-pythoninterp=OPTS   Include Python interpreter. default=no OPTS=no/yes/dynamic
+   --enable-python3interp=OPTS   Include Python3 interpreter. default=no OPTS=no/yes/dynamic
+   --enable-tclinterp      Include Tcl interpreter.
+-  --enable-rubyinterp     Include Ruby interpreter.
++  --enable-rubyinterp=OPTS     Include Ruby interpreter.  default=no OPTS=no/yes/dynamic
+   --enable-cscope         Include cscope interface.
+   --enable-workshop       Include Sun Visual Workshop support.
+   --disable-netbeans      Disable NetBeans integration support.
+@@ -4862,16 +4863,36 @@
+       else
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
+-$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
+-	if test -f /usr/include/plt/scheme.h; then
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket" >&5
++$as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket... " >&6; }
++	if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
+ 	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+-	  SCHEME_INC=/usr/include/plt
++	  SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
+ 	else
+ 	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+-	  vi_cv_path_mzscheme_pfx=
++	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
++$as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
++	  if test -f /usr/include/plt/scheme.h; then
++	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++	    SCHEME_INC=/usr/include/plt
++	  else
++	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/racket/" >&5
++$as_echo_n "checking if scheme.h can be found in /usr/include/racket/... " >&6; }
++	    if test -f /usr/include/racket/scheme.h; then
++	      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++	      SCHEME_INC=/usr/include/racket
++	    else
++	      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++	      vi_cv_path_mzscheme_pfx=
++	    fi
++	  fi
+ 	fi
+       fi
+     fi
+@@ -4883,12 +4904,22 @@
+     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
+       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
+       MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+-    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
++      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
++      MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
++      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
+       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
+     else
+             if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
+         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
+ 	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
++        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
++	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
++        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
+       else
+         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
+       fi
+@@ -4901,10 +4932,20 @@
+     fi
+     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
+       SCHEME_COLLECTS=lib/plt/
++    else
++      if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
++	SCHEME_COLLECTS=lib/racket/
++      fi
+     fi
+     if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
+-            MZSCHEME_EXTRA="mzscheme_base.c"
+-      MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
++      MZSCHEME_EXTRA="mzscheme_base.c"
++    else
++      if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
++	MZSCHEME_EXTRA="mzscheme_base.c"
++      fi
++    fi
++    if test "X$MZSCHEME_EXTRA" != "X" ; then
++            MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
+       MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
+     fi
+     MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
+@@ -5285,9 +5326,9 @@
+ 
+ 	PYTHON_LIBS="${vi_cv_path_python_plibs}"
+ 	if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
+-	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
++	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ 	else
+-	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
++	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ 	fi
+ 	PYTHON_SRC="if_python.c"
+ 		if test "x$MACOSX" = "xyes"; then
+@@ -5298,7 +5339,7 @@
+ 	if test "${vi_cv_var_python_version}" = "1.4"; then
+ 	   PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ 	fi
+-	PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
++    PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
+ 
+ 								{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
+ $as_echo_n "checking if -pthread should be used... " >&6; }
+@@ -5560,9 +5601,9 @@
+ 
+       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+       if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+-        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
++        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+       else
+-        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
++        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+       fi
+       PYTHON3_SRC="if_python3.c"
+             if test "x$MACOSX" = "xyes"; then
+@@ -5667,10 +5708,10 @@
+ 
+   $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
+ 
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
+-$as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
++$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
+   cflags_save=$CFLAGS
+-  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
++  CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+   ldflags_save=$LDFLAGS
+   LDFLAGS="$LDFLAGS -ldl"
+   if test "$cross_compiling" = yes; then :
+@@ -5689,15 +5730,17 @@
+      * Only the first pyhton version used will be switched on.
+      */
+ 
+-    int no_rtl_global_needed_for(char *python_instsoname)
++    int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
+     {
+       int needed = 0;
+       void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+       if (pylib != 0)
+       {
++          void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
+           void (*init)(void) = dlsym(pylib, "Py_Initialize");
+           int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
+           void (*final)(void) = dlsym(pylib, "Py_Finalize");
++          (*pfx)(prefix);
+           (*init)();
+           needed = (*simple)("import termios") == -1;
+           (*final)();
+@@ -5709,7 +5752,7 @@
+     int main(int argc, char** argv)
+     {
+       int not_needed = 0;
+-      if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
++      if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
+             not_needed = 1;
+       return !not_needed;
+     }
+@@ -5726,8 +5769,76 @@
+   conftest.$ac_objext conftest.beam conftest.$ac_ext
+ fi
+ 
++
++  CFLAGS=$cflags_save
++  LDFLAGS=$ldflags_save
++
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
++$as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
++  cflags_save=$CFLAGS
++  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
++  ldflags_save=$LDFLAGS
++  LDFLAGS="$LDFLAGS -ldl"
++  if test "$cross_compiling" = yes; then :
++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error "cannot run test program while cross compiling
++See \`config.log' for more details." "$LINENO" 5; }
++else
++  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++    #include <dlfcn.h>
++    #include <wchar.h>
++    /* If this program fails, then RTLD_GLOBAL is needed.
++     * RTLD_GLOBAL will be used and then it is not possible to
++     * have both python versions enabled in the same vim instance.
++     * Only the first pyhton version used will be switched on.
++     */
++
++    int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
++    {
++      int needed = 0;
++      void* pylib = dlopen(python_instsoname, RTLD_LAZY);
++      if (pylib != 0)
++      {
++          void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
++          void (*init)(void) = dlsym(pylib, "Py_Initialize");
++          int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
++          void (*final)(void) = dlsym(pylib, "Py_Finalize");
++          (*pfx)(prefix);
++          (*init)();
++          needed = (*simple)("import termios") == -1;
++          (*final)();
++          dlclose(pylib);
++      }
++      return !needed;
++    }
++
++    int main(int argc, char** argv)
++    {
++      int not_needed = 0;
++      if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
++            not_needed = 1;
++      return !not_needed;
++    }
++_ACEOF
++if ac_fn_c_try_run "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
++
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
++  conftest.$ac_objext conftest.beam conftest.$ac_ext
++fi
++
++
+   CFLAGS=$cflags_save
+   LDFLAGS=$ldflags_save
++
+   PYTHON_SRC="if_python.c"
+   PYTHON_OBJ="objects/if_python.o"
+   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
+@@ -6103,20 +6214,20 @@
+ 
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
+ $as_echo "$enable_rubyinterp" >&6; }
+-if test "$enable_rubyinterp" = "yes"; then
++if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
+ $as_echo_n "checking --with-ruby-command argument... " >&6; }
+ 
++
+ # Check whether --with-ruby-command was given.
+ if test "${with_ruby_command+set}" = set; then :
+-  withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
++  withval=$with_ruby_command; RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
+ $as_echo "$RUBY_CMD" >&6; }
+ else
+   RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
+ $as_echo "defaulting to $RUBY_CMD" >&6; }
+ fi
+ 
+-
+   # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+ set dummy $RUBY_CMD; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+@@ -6181,17 +6292,14 @@
+ 	  RUBY_LIBS="$rubylibs"
+ 	fi
+ 	librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
+-	if test -f "$rubyhdrdir/$librubyarg"; then
+-	  librubyarg="$rubyhdrdir/$librubyarg"
+-	else
+-	  rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
+-	  if test -f "$rubylibdir/$librubyarg"; then
+-	    librubyarg="$rubylibdir/$librubyarg"
+-	  elif test "$librubyarg" = "libruby.a"; then
+-	    	    librubyarg="-lruby"
+-	  else
+-	    librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+-	  fi
++	librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBY_A"])'`
++  rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
++	if test -f "$rubylibdir/$librubya"; then
++	  librubyarg="$librubyarg"
++    RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
++  elif test "$librubyarg" = "libruby.a"; then
++        librubyarg="-lruby"
++    RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+ 	fi
+ 
+ 	if test "X$librubyarg" != "X"; then
+@@ -6209,6 +6317,13 @@
+ 	RUBY_PRO="if_ruby.pro"
+ 	$as_echo "#define FEAT_RUBY 1" >>confdefs.h
+ 
++	if test "$enable_rubyinterp" = "dynamic"; then
++	  libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG["RUBY_SO_NAME"], Config::CONFIG["DLEXT"]'`
++	  $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
++
++	  RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
++	  RUBY_LIBS=
++	fi
+       else
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
+ $as_echo "not found; disabling Ruby" >&6; }
+@@ -9768,9 +9883,9 @@
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
+ $as_echo "empty: automatic terminal library selection" >&6; }
+-              case "`uname -s 2>/dev/null`" in
+-	OSF1|SCO_SV)	tlibs="ncurses curses termlib termcap";;
+-	*)	tlibs="ncurses termlib termcap curses";;
++                case "`uname -s 2>/dev/null`" in
++	OSF1|SCO_SV)	tlibs="tinfo ncurses curses termlib termcap";;
++	*)	tlibs="tinfo ncurses termlib termcap curses";;
+   esac
+   for libname in $tlibs; do
+     as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
+@@ -11915,6 +12030,10 @@
+ test -f tags && mv tags tags.save
+ if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+   TAGPRG="ctags -I INIT+ --fields=+S"
++elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++  TAGPRG="exctags -I INIT+ --fields=+S"
++elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++  TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+ else
+   TAGPRG="ctags"
+   (eval etags	   /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
+@@ -12357,6 +12476,23 @@
+ fi
+ 
+ 
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
++$as_echo_n "checking linker --as-needed support... " >&6; }
++LINK_AS_NEEDED=
++# Check if linker supports --as-needed and --no-as-needed options
++if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
++  LDFLAGS="$LDFLAGS -Wl,--as-needed"
++  LINK_AS_NEEDED=yes
++fi
++if test "$LINK_AS_NEEDED" = yes; then
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
+ ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
+ 
+ cat >confcache <<\_ACEOF
+diff -Naur vim73.orig/src/blowfish.c vim73/src/blowfish.c
+--- vim73.orig/src/blowfish.c	2010-07-14 14:45:39.000000000 +0000
++++ vim73/src/blowfish.c	2011-05-17 09:37:08.595791992 +0000
+@@ -413,6 +413,7 @@
+     int    salt_len;
+ {
+     int      i, j, keypos = 0;
++    unsigned u;
+     UINT32_T val, data_l, data_r;
+     char_u   *key;
+     int      keylen;
+@@ -432,8 +433,8 @@
+     }
+     for (i = 0; i < keylen; i++)
+     {
+-	sscanf((char *)&key[i * 2], "%2x", &j);
+-	key[i] = j;
++	sscanf((char *)&key[i * 2], "%2x", &u);
++	key[i] = u;
+     }
+ 
+     mch_memmove(sbx, sbi, 4 * 4 * 256);
+diff -Naur vim73.orig/src/buffer.c vim73/src/buffer.c
+--- vim73.orig/src/buffer.c	2010-08-13 09:14:35.000000000 +0000
++++ vim73/src/buffer.c	2011-05-17 09:39:01.967209231 +0000
+@@ -639,6 +639,9 @@
+     {
+ 	clear_wininfo(buf);		/* including window-local options */
+ 	free_buf_options(buf, TRUE);
++#ifdef FEAT_SPELL
++	ga_clear(&buf->b_s.b_langp);
++#endif
+     }
+ #ifdef FEAT_EVAL
+     vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
+@@ -661,9 +664,6 @@
+     vim_free(buf->b_start_fenc);
+     buf->b_start_fenc = NULL;
+ #endif
+-#ifdef FEAT_SPELL
+-    ga_clear(&buf->b_s.b_langp);
+-#endif
+ }
+ 
+ /*
+@@ -1288,9 +1288,12 @@
+     /* Go to the other buffer. */
+     set_curbuf(buf, action);
+ 
+-#if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
++#if defined(FEAT_LISTCMDS) \
++	&& (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
+     if (action == DOBUF_SPLIT)
+-	curwin->w_p_scb = FALSE;	/* reset 'scrollbind' */
++    {
++	RESET_BINDING(curwin);	/* reset 'scrollbind' and 'cursorbind' */
++    }
+ #endif
+ 
+ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
+@@ -1917,9 +1920,7 @@
+ 		tabpage_new();
+ 	    else if (win_split(0, 0) == FAIL)	/* Open in a new window */
+ 		return FAIL;
+-# ifdef FEAT_SCROLLBIND
+-	    curwin->w_p_scb = FALSE;
+-# endif
++	    RESET_BINDING(curwin);
+ 	}
+     }
+ #endif
+@@ -2526,6 +2527,9 @@
+     if (p_fdls >= 0)
+ 	curwin->w_p_fdl = p_fdls;
+ #endif
++#ifdef FEAT_SYN_HL
++    check_colorcolumn(curwin);
++#endif
+ }
+ 
+ /*
+@@ -3175,7 +3179,7 @@
+ 	    /* format: "fname + (path) (1 of 2) - VIM" */
+ 
+ 	    if (curbuf->b_fname == NULL)
+-		STRCPY(buf, _("[No Name]"));
++		vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
+ 	    else
+ 	    {
+ 		p = transstr(gettail(curbuf->b_fname));
+@@ -3231,7 +3235,7 @@
+ 	    if (serverName != NULL)
+ 	    {
+ 		STRCAT(buf, " - ");
+-		STRCAT(buf, serverName);
++		vim_strcat(buf, serverName, IOSIZE);
+ 	    }
+ 	    else
+ #endif
+@@ -3363,7 +3367,8 @@
+  * or truncated if too long, fillchar is used for all whitespace.
+  */
+     int
+-build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab)
++build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
++						      maxwidth, hltab, tabtab)
+     win_T	*wp;
+     char_u	*out;		/* buffer to write into != NameBuff */
+     size_t	outlen;		/* length of out[] */
+@@ -3458,6 +3463,18 @@
+     prevchar_isitem = FALSE;
+     for (s = usefmt; *s; )
+     {
++	if (curitem == STL_MAX_ITEM)
++	{
++	    /* There are too many items.  Add the error code to the statusline
++	     * to give the user a hint about what went wrong. */
++	    if (p + 6 < out + outlen)
++	    {
++		mch_memmove(p, " E541", (size_t)5);
++		p += 5;
++	    }
++	    break;
++	}
++
+ 	if (*s != NUL && *s != '%')
+ 	    prevchar_isflag = prevchar_isitem = FALSE;
+ 
+@@ -3473,6 +3490,8 @@
+ 	 * Handle one '%' item.
+ 	 */
+ 	s++;
++	if (*s == NUL)  /* ignore trailing % */
++	    break;
+ 	if (*s == '%')
+ 	{
+ 	    if (p + 1 >= out + outlen)
+diff -Naur vim73.orig/src/config.h.in vim73/src/config.h.in
+--- vim73.orig/src/config.h.in	2010-08-13 13:45:27.000000000 +0000
++++ vim73/src/config.h.in	2011-05-17 09:34:00.400679782 +0000
+@@ -349,6 +349,9 @@
+ /* Define if you want to include the Ruby interpreter. */
+ #undef FEAT_RUBY
+ 
++/* Define for linking via dlopen() or LoadLibrary() */
++#undef DYNAMIC_RUBY
++
+ /* Define if you want to include the Tcl interpreter. */
+ #undef FEAT_TCL
+ 
+diff -Naur vim73.orig/src/config.mk.in vim73/src/config.mk.in
+--- vim73.orig/src/config.mk.in	2010-07-17 15:28:51.000000000 +0000
++++ vim73/src/config.mk.in	2011-05-17 09:34:17.106825537 +0000
+@@ -30,6 +30,7 @@
+ CPP		= @CPP@
+ CPP_MM		= @CPP_MM@
+ DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
++LINK_AS_NEEDED	= @LINK_AS_NEEDED@
+ X_CFLAGS	= @X_CFLAGS@
+ X_LIBS_DIR	= @X_LIBS@
+ X_PRE_LIBS	= @X_PRE_LIBS@
+diff -Naur vim73.orig/src/configure.in vim73/src/configure.in
+--- vim73.orig/src/configure.in	2010-08-13 14:15:17.000000000 +0000
++++ vim73/src/configure.in	2011-05-17 09:39:20.577143792 +0000
+@@ -568,13 +568,27 @@
+ 	SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
+       else
+ 	AC_MSG_RESULT(no)
+-	AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
+-	if test -f /usr/include/plt/scheme.h; then
++	AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket)
++	if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
+ 	  AC_MSG_RESULT(yes)
+-	  SCHEME_INC=/usr/include/plt
++	  SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
+ 	else
+ 	  AC_MSG_RESULT(no)
+-	  vi_cv_path_mzscheme_pfx=
++	  AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
++	  if test -f /usr/include/plt/scheme.h; then
++	    AC_MSG_RESULT(yes)
++	    SCHEME_INC=/usr/include/plt
++	  else
++	    AC_MSG_RESULT(no)
++	    AC_MSG_CHECKING(if scheme.h can be found in /usr/include/racket/)
++	    if test -f /usr/include/racket/scheme.h; then
++	      AC_MSG_RESULT(yes)
++	      SCHEME_INC=/usr/include/racket
++	    else
++	      AC_MSG_RESULT(no)
++	      vi_cv_path_mzscheme_pfx=
++	    fi
++	  fi
+ 	fi
+       fi
+     fi
+@@ -586,13 +600,23 @@
+     elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
+       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
+       MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
+-    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
++      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
++      MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
++      MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
++    elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
+       MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
+     else
+       dnl Using shared objects
+       if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
+         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
+ 	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
++        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
++	MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
++      elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
++        MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
+       else
+         MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
+       fi
+@@ -607,10 +631,20 @@
+     fi
+     if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
+       SCHEME_COLLECTS=lib/plt/
++    else
++      if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
++	SCHEME_COLLECTS=lib/racket/
++      fi
+     fi
+     if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
+-      dnl need to generate bytecode for MzScheme base
+       MZSCHEME_EXTRA="mzscheme_base.c"
++    else
++      if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
++	MZSCHEME_EXTRA="mzscheme_base.c"
++      fi
++    fi
++    if test "X$MZSCHEME_EXTRA" != "X" ; then
++      dnl need to generate bytecode for MzScheme base
+       MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
+       MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
+     fi
+@@ -857,9 +891,9 @@
+ 
+ 	PYTHON_LIBS="${vi_cv_path_python_plibs}"
+ 	if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
+-	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
++	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ 	else
+-	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
++	  PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ 	fi
+ 	PYTHON_SRC="if_python.c"
+ 	dnl For Mac OSX 10.2 config.o is included in the Python library.
+@@ -871,7 +905,7 @@
+ 	if test "${vi_cv_var_python_version}" = "1.4"; then
+ 	   PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ 	fi
+-	PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
++    PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
+ 
+ 	dnl On FreeBSD linking with "-pthread" is required to use threads.
+ 	dnl _THREAD_SAFE must be used for compiling then.
+@@ -1029,9 +1063,9 @@
+ 
+       PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+       if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+-        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}"
++        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+       else
+-        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}"
++        PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+       fi
+       PYTHON3_SRC="if_python3.c"
+       dnl For Mac OSX 10.2 config.o is included in the Python library.
+@@ -1109,9 +1143,9 @@
+ if test "$python_ok" = yes && test "$python3_ok" = yes; then
+   AC_DEFINE(DYNAMIC_PYTHON)
+   AC_DEFINE(DYNAMIC_PYTHON3)
+-  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
++  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
+   cflags_save=$CFLAGS
+-  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
++  CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+   ldflags_save=$LDFLAGS
+   LDFLAGS="$LDFLAGS -ldl"
+   AC_RUN_IFELSE([
+@@ -1122,15 +1156,17 @@
+      * Only the first pyhton version used will be switched on.
+      */
+ 
+-    int no_rtl_global_needed_for(char *python_instsoname)
++    int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
+     {
+       int needed = 0;
+       void* pylib = dlopen(python_instsoname, RTLD_LAZY);
+       if (pylib != 0)
+       {
++          void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
+           void (*init)(void) = dlsym(pylib, "Py_Initialize");
+           int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
+           void (*final)(void) = dlsym(pylib, "Py_Finalize");
++          (*pfx)(prefix);
+           (*init)();
+           needed = (*simple)("import termios") == -1;
+           (*final)();
+@@ -1142,13 +1178,60 @@
+     int main(int argc, char** argv)
+     {
+       int not_needed = 0;
+-      if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
++      if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
+             not_needed = 1;
+       return !not_needed;
+     }],
+     [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
++
+   CFLAGS=$cflags_save
+   LDFLAGS=$ldflags_save
++
++  AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
++  cflags_save=$CFLAGS
++  CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
++  ldflags_save=$LDFLAGS
++  LDFLAGS="$LDFLAGS -ldl"
++  AC_RUN_IFELSE([
++    #include <dlfcn.h>
++    #include <wchar.h>
++    /* If this program fails, then RTLD_GLOBAL is needed.
++     * RTLD_GLOBAL will be used and then it is not possible to
++     * have both python versions enabled in the same vim instance.
++     * Only the first pyhton version used will be switched on.
++     */
++
++    int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
++    {
++      int needed = 0;
++      void* pylib = dlopen(python_instsoname, RTLD_LAZY);
++      if (pylib != 0)
++      {
++          void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
++          void (*init)(void) = dlsym(pylib, "Py_Initialize");
++          int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
++          void (*final)(void) = dlsym(pylib, "Py_Finalize");
++          (*pfx)(prefix);
++          (*init)();
++          needed = (*simple)("import termios") == -1;
++          (*final)();
++          dlclose(pylib);
++      }
++      return !needed;
++    }
++
++    int main(int argc, char** argv)
++    {
++      int not_needed = 0;
++      if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
++            not_needed = 1;
++      return !not_needed;
++    }],
++    [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
++
++  CFLAGS=$cflags_save
++  LDFLAGS=$ldflags_save
++
+   PYTHON_SRC="if_python.c"
+   PYTHON_OBJ="objects/if_python.o"
+   PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
+@@ -1299,15 +1382,15 @@
+ 
+ AC_MSG_CHECKING(--enable-rubyinterp argument)
+ AC_ARG_ENABLE(rubyinterp,
+-	[  --enable-rubyinterp     Include Ruby interpreter.], ,
++	[  --enable-rubyinterp[=OPTS]     Include Ruby interpreter.  [default=no] [OPTS=no/yes/dynamic]], ,
+ 	[enable_rubyinterp="no"])
+ AC_MSG_RESULT($enable_rubyinterp)
+-if test "$enable_rubyinterp" = "yes"; then
++if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+   AC_MSG_CHECKING(--with-ruby-command argument)
++  AC_SUBST(vi_cv_path_ruby)
+   AC_ARG_WITH(ruby-command, [  --with-ruby-command=RUBY  name of the Ruby command (default: ruby)],
+-	RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
++	RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; AC_MSG_RESULT($RUBY_CMD),
+ 	RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+-  AC_SUBST(vi_cv_path_ruby)
+   AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+   if test "X$vi_cv_path_ruby" != "X"; then
+     AC_MSG_CHECKING(Ruby version)
+@@ -1329,18 +1412,15 @@
+ 	  RUBY_LIBS="$rubylibs"
+ 	fi
+ 	librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
+-	if test -f "$rubyhdrdir/$librubyarg"; then
+-	  librubyarg="$rubyhdrdir/$librubyarg"
+-	else
+-	  rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
+-	  if test -f "$rubylibdir/$librubyarg"; then
+-	    librubyarg="$rubylibdir/$librubyarg"
+-	  elif test "$librubyarg" = "libruby.a"; then
+-	    dnl required on Mac OS 10.3 where libruby.a doesn't exist
+-	    librubyarg="-lruby"
+-	  else
+-	    librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+-	  fi
++	librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBY_A"]])'`
++  rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
++	if test -f "$rubylibdir/$librubya"; then
++	  librubyarg="$librubyarg"
++    RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
++  elif test "$librubyarg" = "libruby.a"; then
++    dnl required on Mac OS 10.3 where libruby.a doesn't exist
++    librubyarg="-lruby"
++    RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+ 	fi
+ 
+ 	if test "X$librubyarg" != "X"; then
+@@ -1360,6 +1440,12 @@
+ 	RUBY_OBJ="objects/if_ruby.o"
+ 	RUBY_PRO="if_ruby.pro"
+ 	AC_DEFINE(FEAT_RUBY)
++	if test "$enable_rubyinterp" = "dynamic"; then
++	  libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG[["RUBY_SO_NAME"]], Config::CONFIG[["DLEXT"]]'`
++	  AC_DEFINE(DYNAMIC_RUBY)
++	  RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
++	  RUBY_LIBS=
++	fi
+       else
+ 	AC_MSG_RESULT(not found; disabling Ruby)
+       fi
+@@ -2529,13 +2615,14 @@
+   AC_MSG_RESULT([empty: automatic terminal library selection])
+   dnl  On HP-UX 10.10 termcap or termlib should be used instead of
+   dnl  curses, because curses is much slower.
+-  dnl  Newer versions of ncurses are preferred over anything.
++  dnl  Newer versions of ncurses are preferred over anything, except
++  dnl  when tinfo has been split off, it contains all we need.
+   dnl  Older versions of ncurses have bugs, get a new one!
+   dnl  Digital Unix (OSF1) should use curses (Ronald Schild).
+   dnl  On SCO Openserver should prefer termlib (Roger Cornelius).
+   case "`uname -s 2>/dev/null`" in
+-	OSF1|SCO_SV)	tlibs="ncurses curses termlib termcap";;
+-	*)	tlibs="ncurses termlib termcap curses";;
++	OSF1|SCO_SV)	tlibs="tinfo ncurses curses termlib termcap";;
++	*)	tlibs="tinfo ncurses termlib termcap curses";;
+   esac
+   for libname in $tlibs; do
+     AC_CHECK_LIB(${libname}, tgetent,,)
+@@ -3280,7 +3367,7 @@
+ AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
+ 
+ dnl Check how we can run ctags.  Default to "ctags" when nothing works.
+-dnl --version for Exuberant ctags (preferred)
++dnl Use --version to detect Exuberant ctags (preferred)
+ dnl       Add --fields=+S to get function signatures for omni completion.
+ dnl -t for typedefs (many ctags have this)
+ dnl -s for static functions (Elvis ctags only?)
+@@ -3290,6 +3377,10 @@
+ test -f tags && mv tags tags.save
+ if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+   TAGPRG="ctags -I INIT+ --fields=+S"
++elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++  TAGPRG="exctags -I INIT+ --fields=+S"
++elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++  TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+ else
+   TAGPRG="ctags"
+   (eval etags	   /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
+@@ -3487,6 +3578,23 @@
+ fi
+ AC_SUBST(DEPEND_CFLAGS_FILTER)
+ 
++dnl link.sh tries to avoid overlinking in a hackish way.
++dnl At least GNU ld supports --as-needed which provides the same functionality
++dnl at linker level. Let's use it.
++AC_MSG_CHECKING(linker --as-needed support)
++LINK_AS_NEEDED=
++# Check if linker supports --as-needed and --no-as-needed options
++if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
++  LDFLAGS="$LDFLAGS -Wl,--as-needed"
++  LINK_AS_NEEDED=yes
++fi
++if test "$LINK_AS_NEEDED" = yes; then
++  AC_MSG_RESULT(yes)
++else
++  AC_MSG_RESULT(no)
++fi
++AC_SUBST(LINK_AS_NEEDED)
++
+ dnl write output files
+ AC_OUTPUT(auto/config.mk:config.mk.in)
+ 
+diff -Naur vim73.orig/src/diff.c vim73/src/diff.c
+--- vim73.orig/src/diff.c	2010-07-31 13:35:21.000000000 +0000
++++ vim73/src/diff.c	2011-05-17 09:32:40.821512501 +0000
+@@ -1127,11 +1127,13 @@
+ # endif
+ 
+     wp->w_p_diff = TRUE;
++    /* Use 'scrollbind' and 'cursorbind' when available */
++#ifdef FEAT_SCROLLBIND
++    wp->w_p_scb = TRUE;
++#endif
+ #ifdef FEAT_CURSORBIND
+-    /* Use cursorbind if it's available */
+     wp->w_p_crb = TRUE;
+ #endif
+-    wp->w_p_scb = TRUE;
+     wp->w_p_wrap = FALSE;
+ # ifdef FEAT_FOLDING
+     curwin = wp;
+@@ -1177,10 +1179,7 @@
+ 	{
+ 	    /* Set 'diff', 'scrollbind' off and 'wrap' on. */
+ 	    wp->w_p_diff = FALSE;
+-#ifdef FEAT_CURSORBIND
+-	    wp->w_p_crb = FALSE;
+-#endif
+-	    wp->w_p_scb = FALSE;
++	    RESET_BINDING(wp);
+ 	    wp->w_p_wrap = TRUE;
+ #ifdef FEAT_FOLDING
+ 	    curwin = wp;
+diff -Naur vim73.orig/src/edit.c vim73/src/edit.c
+--- vim73.orig/src/edit.c	2010-08-08 12:55:05.000000000 +0000
++++ vim73/src/edit.c	2011-05-17 09:39:15.913661372 +0000
+@@ -58,6 +58,10 @@
+ };
+ 
+ static char e_hitend[] = N_("Hit end of paragraph");
++#ifdef FEAT_COMPL_FUNC
++static char e_complwin[] = N_("E839: Completion function changed window");
++static char e_compldel[] = N_("E840: Completion function deleted text");
++#endif
+ 
+ /*
+  * Structure used to store one match for insert completion.
+@@ -1549,12 +1553,16 @@
+ ins_ctrl_v()
+ {
+     int		c;
++    int		did_putchar = FALSE;
+ 
+     /* may need to redraw when no more chars available now */
+     ins_redraw(FALSE);
+ 
+     if (redrawing() && !char_avail())
++    {
+ 	edit_putchar('^', TRUE);
++	did_putchar = TRUE;
++    }
+     AppendToRedobuff((char_u *)CTRL_V_STR);	/* CTRL-V */
+ 
+ #ifdef FEAT_CMDL_INFO
+@@ -1562,8 +1570,10 @@
+ #endif
+ 
+     c = get_literal();
+-    edit_unputchar();  /* when line fits in 'columns' the '^' is at the start
+-			  of the next line and will not be redrawn */
++    if (did_putchar)
++	/* when the line fits in 'columns' the '^' is at the start of the next
++	 * line and will not removed by the redraw */
++	edit_unputchar();
+ #ifdef FEAT_CMDL_INFO
+     clear_showcmd();
+ #endif
+@@ -2658,6 +2668,7 @@
+     if (stop_arrow() == FAIL)
+ 	return;
+ 
++    compl_direction = FORWARD;
+     if (startcol > curwin->w_cursor.col)
+ 	startcol = curwin->w_cursor.col;
+     compl_col = startcol;
+@@ -3833,6 +3844,8 @@
+     char_u	*args[2];
+     char_u	*funcname;
+     pos_T	pos;
++    win_T	*curwin_save;
++    buf_T	*curbuf_save;
+ 
+     funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+     if (*funcname == NUL)
+@@ -3843,13 +3856,27 @@
+     args[1] = base;
+ 
+     pos = curwin->w_cursor;
++    curwin_save = curwin;
++    curbuf_save = curbuf;
+     matchlist = call_func_retlist(funcname, 2, args, FALSE);
++    if (curwin_save != curwin || curbuf_save != curbuf)
++    {
++	EMSG(_(e_complwin));
++	goto theend;
++    }
+     curwin->w_cursor = pos;	/* restore the cursor position */
+-    if (matchlist == NULL)
+-	return;
++    check_cursor();
++    if (!equalpos(curwin->w_cursor, pos))
++    {
++	EMSG(_(e_compldel));
++	goto theend;
++    }
++    if (matchlist != NULL)
++	ins_compl_add_list(matchlist);
+ 
+-    ins_compl_add_list(matchlist);
+-    list_unref(matchlist);
++theend:
++    if (matchlist != NULL)
++	list_unref(matchlist);
+ }
+ #endif /* FEAT_COMPL_FUNC */
+ 
+@@ -3889,6 +3916,7 @@
+     char_u	*word;
+     int		icase = FALSE;
+     int		adup = FALSE;
++    int		aempty = FALSE;
+     char_u	*(cptext[CPT_COUNT]);
+ 
+     if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
+@@ -3906,13 +3934,15 @@
+ 	    icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
+ 	if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
+ 	    adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
++	if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
++	    aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
+     }
+     else
+     {
+ 	word = get_tv_string_chk(tv);
+ 	vim_memset(cptext, 0, sizeof(cptext));
+     }
+-    if (word == NULL || *word == NUL)
++    if (word == NULL || (!aempty && *word == NUL))
+ 	return FAIL;
+     return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
+ }
+@@ -4994,6 +5024,8 @@
+ 	    int		col;
+ 	    char_u	*funcname;
+ 	    pos_T	pos;
++	    win_T	*curwin_save;
++	    buf_T	*curbuf_save;
+ 
+ 	    /* Call 'completefunc' or 'omnifunc' and get pattern length as a
+ 	     * string */
+@@ -5009,8 +5041,21 @@
+ 	    args[0] = (char_u *)"1";
+ 	    args[1] = NULL;
+ 	    pos = curwin->w_cursor;
++	    curwin_save = curwin;
++	    curbuf_save = curbuf;
+ 	    col = call_func_retnr(funcname, 2, args, FALSE);
++	    if (curwin_save != curwin || curbuf_save != curbuf)
++	    {
++		EMSG(_(e_complwin));
++		return FAIL;
++	    }
+ 	    curwin->w_cursor = pos;	/* restore the cursor position */
++	    check_cursor();
++	    if (!equalpos(curwin->w_cursor, pos))
++	    {
++		EMSG(_(e_compldel));
++		return FAIL;
++	    }
+ 
+ 	    if (col < 0)
+ 		col = curs_col;
+@@ -9598,6 +9643,7 @@
+ {
+     int	    c;
+     int	    cc;
++    int	    did_putchar = FALSE;
+ 
+     pc_status = PC_STATUS_UNSET;
+     if (redrawing() && !char_avail())
+@@ -9606,6 +9652,7 @@
+ 	ins_redraw(FALSE);
+ 
+ 	edit_putchar('?', TRUE);
++	did_putchar = TRUE;
+ #ifdef FEAT_CMDL_INFO
+ 	add_to_showcmd_c(Ctrl_K);
+ #endif
+@@ -9622,8 +9669,10 @@
+     c = plain_vgetc();
+     --no_mapping;
+     --allow_keys;
+-    edit_unputchar();  /* when line fits in 'columns' the '?' is at the start
+-			  of the next line and will not be redrawn */
++    if (did_putchar)
++	/* when the line fits in 'columns' the '?' is at the start of the next
++	 * line and will not be removed by the redraw */
++	edit_unputchar();
+ 
+     if (IS_SPECIAL(c) || mod_mask)	    /* special key */
+     {
+@@ -9635,6 +9684,7 @@
+     }
+     if (c != ESC)
+     {
++	did_putchar = FALSE;
+ 	if (redrawing() && !char_avail())
+ 	{
+ 	    /* may need to redraw when no more chars available now */
+@@ -9642,11 +9692,9 @@
+ 
+ 	    if (char2cells(c) == 1)
+ 	    {
+-		/* first remove the '?', otherwise it's restored when typing
+-		 * an ESC next */
+-		edit_unputchar();
+ 		ins_redraw(FALSE);
+ 		edit_putchar(c, TRUE);
++		did_putchar = TRUE;
+ 	    }
+ #ifdef FEAT_CMDL_INFO
+ 	    add_to_showcmd_c(c);
+@@ -9657,8 +9705,10 @@
+ 	cc = plain_vgetc();
+ 	--no_mapping;
+ 	--allow_keys;
+-	edit_unputchar();  /* when line fits in 'columns' the '?' is at the
+-			      start of the next line and will not be redrawn */
++	if (did_putchar)
++	    /* when the line fits in 'columns' the '?' is at the start of the
++	     * next line and will not be removed by a redraw */
++	    edit_unputchar();
+ 	if (cc != ESC)
+ 	{
+ 	    AppendToRedobuff((char_u *)CTRL_V_STR);
+diff -Naur vim73.orig/src/eval.c vim73/src/eval.c
+--- vim73.orig/src/eval.c	2010-08-09 20:12:14.000000000 +0000
++++ vim73/src/eval.c	2011-05-17 09:39:31.595920869 +0000
+@@ -10,9 +10,6 @@
+ /*
+  * eval.c: Expression evaluation.
+  */
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for mch_open(), must be before vim.h */
+-#endif
+ 
+ #include "vim.h"
+ 
+@@ -362,6 +359,7 @@
+     {VV_NAME("operator",	 VAR_STRING), VV_RO},
+     {VV_NAME("searchforward",	 VAR_NUMBER), 0},
+     {VV_NAME("oldfiles",	 VAR_LIST), 0},
++    {VV_NAME("windowid",	 VAR_NUMBER), VV_RO},
+ };
+ 
+ /* shorthand */
+@@ -433,9 +431,9 @@
+ static void listitem_free __ARGS((listitem_T *item));
+ static void listitem_remove __ARGS((list_T *l, listitem_T *item));
+ static long list_len __ARGS((list_T *l));
+-static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
+-static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
+-static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
++static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
++static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
++static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
+ static listitem_T *list_find __ARGS((list_T *l, long n));
+ static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
+ static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
+@@ -791,6 +789,8 @@
+ static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
+ static int var_check_ro __ARGS((int flags, char_u *name));
+ static int var_check_fixed __ARGS((int flags, char_u *name));
++static int var_check_func_name __ARGS((char_u *name, int new_var));
++static int valid_varname __ARGS((char_u *varname));
+ static int tv_check_lock __ARGS((int lock, char_u *name));
+ static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
+ static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
+@@ -853,6 +853,7 @@
+ 
+     init_var_dict(&globvardict, &globvars_var);
+     init_var_dict(&vimvardict, &vimvars_var);
++    vimvardict.dv_lock = VAR_FIXED;
+     hash_init(&compat_hashtab);
+     hash_init(&func_hashtab);
+ 
+@@ -2325,7 +2326,7 @@
+ 	    else if (endchars != NULL
+ 			     && vim_strchr(endchars, *skipwhite(arg)) == NULL)
+ 		EMSG(_(e_letunexp));
+-	    else
++	    else if (!check_secure())
+ 	    {
+ 		c1 = name[len];
+ 		name[len] = NUL;
+@@ -2718,8 +2719,27 @@
+ 	    lp->ll_list = NULL;
+ 	    lp->ll_dict = lp->ll_tv->vval.v_dict;
+ 	    lp->ll_di = dict_find(lp->ll_dict, key, len);
++
++	    /* When assigning to g: check that a function and variable name is
++	     * valid. */
++	    if (rettv != NULL && lp->ll_dict == &globvardict)
++	    {
++		if (rettv->v_type == VAR_FUNC
++			       && var_check_func_name(key, lp->ll_di == NULL))
++		    return NULL;
++		if (!valid_varname(key))
++		    return NULL;
++	    }
++
+ 	    if (lp->ll_di == NULL)
+ 	    {
++		/* Can't add "v:" variable. */
++		if (lp->ll_dict == &vimvardict)
++		{
++		    EMSG2(_(e_illvar), name);
++		    return NULL;
++		}
++
+ 		/* Key does not exist in dict: may need to add it. */
+ 		if (*p == '[' || *p == '.' || unlet)
+ 		{
+@@ -2739,6 +2759,10 @@
+ 		    p = NULL;
+ 		break;
+ 	    }
++	    /* existing variable, need to check if it can be changed */
++	    else if (var_check_ro(lp->ll_di->di_flags, name))
++		return NULL;
++
+ 	    if (len == -1)
+ 		clear_tv(&var1);
+ 	    lp->ll_tv = &lp->ll_di->di_tv;
+@@ -2770,6 +2794,8 @@
+ 	    {
+ 		if (lp->ll_range && !lp->ll_empty2)
+ 		    clear_tv(&var2);
++		if (!quiet)
++		    EMSGN(_(e_listidx), lp->ll_n1);
+ 		return NULL;
+ 	    }
+ 
+@@ -2787,7 +2813,11 @@
+ 		{
+ 		    ni = list_find(lp->ll_list, lp->ll_n2);
+ 		    if (ni == NULL)
++		    {
++			if (!quiet)
++			    EMSGN(_(e_listidx), lp->ll_n2);
+ 			return NULL;
++		    }
+ 		    lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
+ 		}
+ 
+@@ -2795,7 +2825,11 @@
+ 		if (lp->ll_n1 < 0)
+ 		    lp->ll_n1 = list_idx_of_item(lp->ll_list, lp->ll_li);
+ 		if (lp->ll_n2 < lp->ll_n1)
++		{
++		    if (!quiet)
++			EMSGN(_(e_listidx), lp->ll_n2);
+ 		    return NULL;
++		}
+ 	    }
+ 
+ 	    lp->ll_tv = &lp->ll_li->li_tv;
+@@ -3337,6 +3371,15 @@
+     int		failed = FALSE;
+     funcdict_T	fudi;
+ 
++    if (eap->skip)
++    {
++	/* trans_function_name() doesn't work well when skipping, use eval0()
++	 * instead to skip to any following command, e.g. for:
++	 *   :if 0 | call dict.foo().bar() | endif  */
++	eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
++	return;
++    }
++
+     tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
+     if (fudi.fd_newkey != NULL)
+     {
+@@ -4349,7 +4392,8 @@
+ 		else
+ 		{
+ 		    /* Compare two Lists for being equal or unequal. */
+-		    n1 = list_equal(rettv->vval.v_list, var2.vval.v_list, ic);
++		    n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
++								   ic, FALSE);
+ 		    if (type == TYPE_NEQUAL)
+ 			n1 = !n1;
+ 		}
+@@ -4378,7 +4422,8 @@
+ 		else
+ 		{
+ 		    /* Compare two Dictionaries for being equal or unequal. */
+-		    n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict, ic);
++		    n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
++								   ic, FALSE);
+ 		    if (type == TYPE_NEQUAL)
+ 			n1 = !n1;
+ 		}
+@@ -5097,9 +5142,7 @@
+ 	    else
+ 		ret = OK;
+ 	}
+-
+-	if (alias != NULL)
+-	    vim_free(alias);
++	vim_free(alias);
+     }
+ 
+     *arg = skipwhite(*arg);
+@@ -5913,10 +5956,11 @@
+  * Return TRUE when two lists have exactly the same values.
+  */
+     static int
+-list_equal(l1, l2, ic)
++list_equal(l1, l2, ic, recursive)
+     list_T	*l1;
+     list_T	*l2;
+     int		ic;	/* ignore case for strings */
++    int		recursive;  /* TRUE when used recursively */
+ {
+     listitem_T	*item1, *item2;
+ 
+@@ -5930,7 +5974,7 @@
+     for (item1 = l1->lv_first, item2 = l2->lv_first;
+ 	    item1 != NULL && item2 != NULL;
+ 			       item1 = item1->li_next, item2 = item2->li_next)
+-	if (!tv_equal(&item1->li_tv, &item2->li_tv, ic))
++	if (!tv_equal(&item1->li_tv, &item2->li_tv, ic, recursive))
+ 	    return FALSE;
+     return item1 == NULL && item2 == NULL;
+ }
+@@ -5952,10 +5996,11 @@
+  * Return TRUE when two dictionaries have exactly the same key/values.
+  */
+     static int
+-dict_equal(d1, d2, ic)
++dict_equal(d1, d2, ic, recursive)
+     dict_T	*d1;
+     dict_T	*d2;
+     int		ic;	/* ignore case for strings */
++    int		recursive; /* TRUE when used recursively */
+ {
+     hashitem_T	*hi;
+     dictitem_T	*item2;
+@@ -5976,7 +6021,7 @@
+ 	    item2 = dict_find(d2, hi->hi_key, -1);
+ 	    if (item2 == NULL)
+ 		return FALSE;
+-	    if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic))
++	    if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic, recursive))
+ 		return FALSE;
+ 	    --todo;
+ 	}
+@@ -5984,41 +6029,54 @@
+     return TRUE;
+ }
+ 
++static int tv_equal_recurse_limit;
++
+ /*
+  * Return TRUE if "tv1" and "tv2" have the same value.
+  * Compares the items just like "==" would compare them, but strings and
+  * numbers are different.  Floats and numbers are also different.
+  */
+     static int
+-tv_equal(tv1, tv2, ic)
++tv_equal(tv1, tv2, ic, recursive)
+     typval_T *tv1;
+     typval_T *tv2;
+-    int	    ic;	    /* ignore case */
++    int	     ic;	    /* ignore case */
++    int	     recursive;	    /* TRUE when used recursively */
+ {
+     char_u	buf1[NUMBUFLEN], buf2[NUMBUFLEN];
+     char_u	*s1, *s2;
+-    static int  recursive = 0;	    /* cach recursive loops */
++    static int  recursive_cnt = 0;	    /* catch recursive loops */
+     int		r;
+ 
+     if (tv1->v_type != tv2->v_type)
+ 	return FALSE;
++
+     /* Catch lists and dicts that have an endless loop by limiting
+-     * recursiveness to 1000.  We guess they are equal then. */
+-    if (recursive >= 1000)
++     * recursiveness to a limit.  We guess they are equal then.
++     * A fixed limit has the problem of still taking an awful long time.
++     * Reduce the limit every time running into it. That should work fine for
++     * deeply linked structures that are not recursively linked and catch
++     * recursiveness quickly. */
++    if (!recursive)
++	tv_equal_recurse_limit = 1000;
++    if (recursive_cnt >= tv_equal_recurse_limit)
++    {
++	--tv_equal_recurse_limit;
+ 	return TRUE;
++    }
+ 
+     switch (tv1->v_type)
+     {
+ 	case VAR_LIST:
+-	    ++recursive;
+-	    r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
+-	    --recursive;
++	    ++recursive_cnt;
++	    r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic, TRUE);
++	    --recursive_cnt;
+ 	    return r;
+ 
+ 	case VAR_DICT:
+-	    ++recursive;
+-	    r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
+-	    --recursive;
++	    ++recursive_cnt;
++	    r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic, TRUE);
++	    --recursive_cnt;
+ 	    return r;
+ 
+ 	case VAR_FUNC:
+@@ -7075,7 +7133,7 @@
+ }
+ 
+ /*
+- * Add a list  entry to dictionary "d".
++ * Add a list entry to dictionary "d".
+  * Returns FAIL when out of memory and when key already exists.
+  */
+     int
+@@ -7097,6 +7155,7 @@
+ 	dictitem_free(item);
+ 	return FAIL;
+     }
++    ++list->lv_refcount;
+     return OK;
+ }
+ 
+@@ -7802,7 +7861,7 @@
+     {"log10",		1, 1, f_log10},
+ #endif
+     {"map",		2, 2, f_map},
+-    {"maparg",		1, 3, f_maparg},
++    {"maparg",		1, 4, f_maparg},
+     {"mapcheck",	1, 3, f_mapcheck},
+     {"match",		2, 4, f_match},
+     {"matchadd",	2, 4, f_matchadd},
+@@ -8497,7 +8556,7 @@
+     if (argvars[0].v_type == VAR_LIST)
+     {
+ 	if ((l = argvars[0].vval.v_list) != NULL
+-		&& !tv_check_lock(l->lv_lock, (char_u *)"add()")
++		&& !tv_check_lock(l->lv_lock, (char_u *)_("add() argument"))
+ 		&& list_append_tv(l, &argvars[1]) == OK)
+ 	    copy_tv(&argvars[0], rettv);
+     }
+@@ -9298,7 +9357,7 @@
+ 
+     if (!error)
+ 	rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
+-								   def, NULL);
++							    def, NULL, FALSE);
+ #endif
+ }
+ 
+@@ -9389,7 +9448,7 @@
+ 	    }
+ 
+ 	    for ( ; li != NULL; li = li->li_next)
+-		if (tv_equal(&li->li_tv, &argvars[1], ic))
++		if (tv_equal(&li->li_tv, &argvars[1], ic, FALSE))
+ 		    ++n;
+ 	}
+     }
+@@ -9416,7 +9475,7 @@
+ 		if (!HASHITEM_EMPTY(hi))
+ 		{
+ 		    --todo;
+-		    if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic))
++		    if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic, FALSE))
+ 			++n;
+ 		}
+ 	    }
+@@ -9857,7 +9916,7 @@
+     char_u	*s;
+     int		len;
+     char_u	*errormsg;
+-    int		flags = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
++    int		options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+     expand_T	xpc;
+     int		error = FALSE;
+ 
+@@ -9875,12 +9934,14 @@
+ 	 * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+ 	if (argvars[1].v_type != VAR_UNKNOWN
+ 				    && get_tv_number_chk(&argvars[1], &error))
+-	    flags |= WILD_KEEP_ALL;
++	    options |= WILD_KEEP_ALL;
+ 	if (!error)
+ 	{
+ 	    ExpandInit(&xpc);
+ 	    xpc.xp_context = EXPAND_FILES;
+-	    rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
++	    if (p_wic)
++		options += WILD_ICASE;
++	    rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
+ 	}
+ 	else
+ 	    rettv->vval.v_string = NULL;
+@@ -9896,6 +9957,8 @@
+     typval_T	*argvars;
+     typval_T	*rettv;
+ {
++    char      *arg_errmsg = N_("extend() argument");
++
+     if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)
+     {
+ 	list_T		*l1, *l2;
+@@ -9905,7 +9968,7 @@
+ 
+ 	l1 = argvars[0].vval.v_list;
+ 	l2 = argvars[1].vval.v_list;
+-	if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)"extend()")
++	if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)_(arg_errmsg))
+ 		&& l2 != NULL)
+ 	{
+ 	    if (argvars[2].v_type != VAR_UNKNOWN)
+@@ -9944,7 +10007,7 @@
+ 
+ 	d1 = argvars[0].vval.v_dict;
+ 	d2 = argvars[1].vval.v_dict;
+-	if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)"extend()")
++	if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)_(arg_errmsg))
+ 		&& d2 != NULL)
+ 	{
+ 	    /* Check the third argument. */
+@@ -10186,20 +10249,22 @@
+     typval_T	save_key;
+     int		rem;
+     int		todo;
+-    char_u	*ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
++    char_u	*ermsg = (char_u *)(map ? "map()" : "filter()");
++    char	*arg_errmsg = (map ? N_("map() argument")
++				   : N_("filter() argument"));
+     int		save_did_emsg;
+     int		idx = 0;
+ 
+     if (argvars[0].v_type == VAR_LIST)
+     {
+ 	if ((l = argvars[0].vval.v_list) == NULL
+-		|| (map && tv_check_lock(l->lv_lock, ermsg)))
++		|| tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+ 	    return;
+     }
+     else if (argvars[0].v_type == VAR_DICT)
+     {
+ 	if ((d = argvars[0].vval.v_dict) == NULL
+-		|| (map && tv_check_lock(d->dv_lock, ermsg)))
++		|| tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+ 	    return;
+     }
+     else
+@@ -10236,7 +10301,8 @@
+ 		{
+ 		    --todo;
+ 		    di = HI2DI(hi);
+-		    if (tv_check_lock(di->di_tv.v_lock, ermsg))
++		    if (tv_check_lock(di->di_tv.v_lock,
++						     (char_u *)_(arg_errmsg)))
+ 			break;
+ 		    vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+ 		    if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+@@ -10255,7 +10321,7 @@
+ 
+ 	    for (li = l->lv_first; li != NULL; li = nli)
+ 	    {
+-		if (tv_check_lock(li->li_tv.v_lock, ermsg))
++		if (tv_check_lock(li->li_tv.v_lock, (char_u *)_(arg_errmsg)))
+ 		    break;
+ 		nli = li->li_next;
+ 		vimvars[VV_KEY].vv_nr = idx;
+@@ -10839,6 +10905,11 @@
+ 
+ 	if (*varname == '&')	/* buffer-local-option */
+ 	    get_option_tv(&varname, rettv, TRUE);
++	else if (STRCMP(varname, "changedtick") == 0)
++	{
++	    rettv->v_type = VAR_NUMBER;
++	    rettv->vval.v_number = curbuf->b_changedtick;
++	}
+ 	else
+ 	{
+ 	    if (*varname == NUL)
+@@ -11039,18 +11110,22 @@
+     typval_T	*argvars UNUSED;
+     typval_T	*rettv;
+ {
+-    char_u	cwd[MAXPATHL];
++    char_u	*cwd;
+ 
+     rettv->v_type = VAR_STRING;
+-    if (mch_dirname(cwd, MAXPATHL) == FAIL)
+-	rettv->vval.v_string = NULL;
+-    else
++    rettv->vval.v_string = NULL;
++    cwd = alloc(MAXPATHL);
++    if (cwd != NULL)
+     {
+-	rettv->vval.v_string = vim_strsave(cwd);
++	if (mch_dirname(cwd, MAXPATHL) != FAIL)
++	{
++	    rettv->vval.v_string = vim_strsave(cwd);
+ #ifdef BACKSLASH_IN_FILENAME
+-	if (rettv->vval.v_string != NULL)
+-	    slash_adjust(rettv->vval.v_string);
++	    if (rettv->vval.v_string != NULL)
++		slash_adjust(rettv->vval.v_string);
+ #endif
++	}
++	vim_free(cwd);
+     }
+ }
+ 
+@@ -11653,7 +11728,7 @@
+     typval_T	*argvars;
+     typval_T	*rettv;
+ {
+-    int		flags = WILD_SILENT|WILD_USE_NL;
++    int		options = WILD_SILENT|WILD_USE_NL;
+     expand_T	xpc;
+     int		error = FALSE;
+ 
+@@ -11661,14 +11736,16 @@
+     * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+     if (argvars[1].v_type != VAR_UNKNOWN
+ 				&& get_tv_number_chk(&argvars[1], &error))
+-	flags |= WILD_KEEP_ALL;
++	options |= WILD_KEEP_ALL;
+     rettv->v_type = VAR_STRING;
+     if (!error)
+     {
+ 	ExpandInit(&xpc);
+ 	xpc.xp_context = EXPAND_FILES;
++	if (p_wic)
++	    options += WILD_ICASE;
+ 	rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
+-						       NULL, flags, WILD_ALL);
++						     NULL, options, WILD_ALL);
+     }
+     else
+ 	rettv->vval.v_string = NULL;
+@@ -11741,9 +11818,6 @@
+ #ifdef __QNX__
+ 	"qnx",
+ #endif
+-#ifdef RISCOS
+-	"riscos",
+-#endif
+ #ifdef UNIX
+ 	"unix",
+ #endif
+@@ -12116,6 +12190,9 @@
+ #ifdef FEAT_TOOLBAR
+ 	"toolbar",
+ #endif
++#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
++	"unnamedplus",
++#endif
+ #ifdef FEAT_USR_CMDS
+ 	"user-commands",    /* was accidentally included in 5.4 */
+ 	"user_commands",
+@@ -12572,7 +12649,7 @@
+ 	}
+ 
+ 	for ( ; item != NULL; item = item->li_next, ++idx)
+-	    if (tv_equal(&item->li_tv, &argvars[1], ic))
++	    if (tv_equal(&item->li_tv, &argvars[1], ic, FALSE))
+ 	    {
+ 		rettv->vval.v_number = idx;
+ 		break;
+@@ -12712,7 +12789,7 @@
+ 	    IObuff[0] = NUL;
+ 	if (message != NULL && defstr != NULL
+ 		&& do_dialog(VIM_QUESTION, NULL, message,
+-				(char_u *)_("&OK\n&Cancel"), 1, IObuff) == 1)
++			  (char_u *)_("&OK\n&Cancel"), 1, IObuff, FALSE) == 1)
+ 	    rettv->vval.v_string = vim_strsave(IObuff);
+ 	else
+ 	{
+@@ -12850,7 +12927,7 @@
+     if (argvars[0].v_type != VAR_LIST)
+ 	EMSG2(_(e_listarg), "insert()");
+     else if ((l = argvars[0].vval.v_list) != NULL
+-	    && !tv_check_lock(l->lv_lock, (char_u *)"insert()"))
++	    && !tv_check_lock(l->lv_lock, (char_u *)_("insert() argument")))
+     {
+ 	if (argvars[2].v_type != VAR_UNKNOWN)
+ 	    before = get_tv_number_chk(&argvars[2], &error);
+@@ -13290,8 +13367,10 @@
+     char_u	*keys_buf = NULL;
+     char_u	*rhs;
+     int		mode;
+-    garray_T	ga;
+     int		abbr = FALSE;
++    int         get_dict = FALSE;
++    mapblock_T	*mp;
++    int		buffer_local;
+ 
+     /* return empty string for failure */
+     rettv->v_type = VAR_STRING;
+@@ -13305,7 +13384,11 @@
+     {
+ 	which = get_tv_string_buf_chk(&argvars[1], buf);
+ 	if (argvars[2].v_type != VAR_UNKNOWN)
++	{
+ 	    abbr = get_tv_number(&argvars[2]);
++	    if (argvars[3].v_type != VAR_UNKNOWN)
++		get_dict = get_tv_number(&argvars[3]);
++	}
+     }
+     else
+ 	which = (char_u *)"";
+@@ -13315,19 +13398,34 @@
+     mode = get_map_mode(&which, 0);
+ 
+     keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
+-    rhs = check_map(keys, mode, exact, FALSE, abbr);
++    rhs = check_map(keys, mode, exact, FALSE, abbr, &mp, &buffer_local);
+     vim_free(keys_buf);
+-    if (rhs != NULL)
+-    {
+-	ga_init(&ga);
+-	ga.ga_itemsize = 1;
+-	ga.ga_growsize = 40;
+ 
+-	while (*rhs != NUL)
+-	    ga_concat(&ga, str2special(&rhs, FALSE));
++    if (!get_dict)
++    {
++	/* Return a string. */
++	if (rhs != NULL)
++	    rettv->vval.v_string = str2special_save(rhs, FALSE);
++
++    }
++    else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL)
++    {
++	/* Return a dictionary. */
++	char_u	    *lhs = str2special_save(mp->m_keys, TRUE);
++	char_u	    *mapmode = map_mode_to_chars(mp->m_mode);
++	dict_T	    *dict = rettv->vval.v_dict;
++
++	dict_add_nr_str(dict, "lhs",	 0L, lhs);
++	dict_add_nr_str(dict, "rhs",     0L, mp->m_orig_str);
++	dict_add_nr_str(dict, "noremap", mp->m_noremap ? 1L : 0L , NULL);
++	dict_add_nr_str(dict, "expr",    mp->m_expr    ? 1L : 0L, NULL);
++	dict_add_nr_str(dict, "silent",  mp->m_silent  ? 1L : 0L, NULL);
++	dict_add_nr_str(dict, "sid",     (long)mp->m_script_ID, NULL);
++	dict_add_nr_str(dict, "buffer",  (long)buffer_local, NULL);
++	dict_add_nr_str(dict, "mode",    0L, mapmode);
+ 
+-	ga_append(&ga, NUL);
+-	rettv->vval.v_string = (char_u *)ga.ga_data;
++	vim_free(lhs);
++	vim_free(mapmode);
+     }
+ }
+ 
+@@ -14224,9 +14322,9 @@
+ 	{
+ 	    if (buf[filtd] == '\n' || readlen <= 0)
+ 	    {
+-		/* Only when in binary mode add an empty list item when the
+-		 * last line ends in a '\n'. */
+-		if (!binary && readlen == 0 && filtd == 0)
++		/* In binary mode add an empty list item when the last
++		 * non-empty line ends in a '\n'. */
++		if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
+ 		    break;
+ 
+ 		/* Found end-of-line or end-of-file: add a text line to the
+@@ -14291,25 +14389,28 @@
+ 
+ 	if (tolist == 0)
+ 	{
+-	    /* "buf" is full, need to move text to an allocated buffer */
+-	    if (prev == NULL)
++	    if (buflen >= FREAD_SIZE / 2)
+ 	    {
+-		prev = vim_strnsave(buf, buflen);
+-		prevlen = buflen;
+-	    }
+-	    else
+-	    {
+-		s = alloc((unsigned)(prevlen + buflen));
+-		if (s != NULL)
++		/* "buf" is full, need to move text to an allocated buffer */
++		if (prev == NULL)
+ 		{
+-		    mch_memmove(s, prev, prevlen);
+-		    mch_memmove(s + prevlen, buf, buflen);
+-		    vim_free(prev);
+-		    prev = s;
+-		    prevlen += buflen;
++		    prev = vim_strnsave(buf, buflen);
++		    prevlen = buflen;
+ 		}
++		else
++		{
++		    s = alloc((unsigned)(prevlen + buflen));
++		    if (s != NULL)
++		    {
++			mch_memmove(s, prev, prevlen);
++			mch_memmove(s + prevlen, buf, buflen);
++			vim_free(prev);
++			prev = s;
++			prevlen += buflen;
++		    }
++		}
++		filtd = 0;
+ 	    }
+-	    filtd = 0;
+ 	}
+ 	else
+ 	{
+@@ -14691,13 +14792,14 @@
+     char_u	*key;
+     dict_T	*d;
+     dictitem_T	*di;
++    char	*arg_errmsg = N_("remove() argument");
+ 
+     if (argvars[0].v_type == VAR_DICT)
+     {
+ 	if (argvars[2].v_type != VAR_UNKNOWN)
+ 	    EMSG2(_(e_toomanyarg), "remove()");
+ 	else if ((d = argvars[0].vval.v_dict) != NULL
+-		&& !tv_check_lock(d->dv_lock, (char_u *)"remove() argument"))
++		&& !tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+ 	{
+ 	    key = get_tv_string_chk(&argvars[1]);
+ 	    if (key != NULL)
+@@ -14717,7 +14819,7 @@
+     else if (argvars[0].v_type != VAR_LIST)
+ 	EMSG2(_(e_listdictarg), "remove()");
+     else if ((l = argvars[0].vval.v_list) != NULL
+-	    && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument"))
++	    && !tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+     {
+ 	int	    error = FALSE;
+ 
+@@ -14847,6 +14949,9 @@
+     typval_T	*rettv;
+ {
+     char_u	*p;
++#ifdef HAVE_READLINK
++    char_u	*buf = NULL;
++#endif
+ 
+     p = get_tv_string(&argvars[0]);
+ #ifdef FEAT_SHORTCUT
+@@ -14862,7 +14967,6 @@
+ #else
+ # ifdef HAVE_READLINK
+     {
+-	char_u	buf[MAXPATHL + 1];
+ 	char_u	*cpy;
+ 	int	len;
+ 	char_u	*remain = NULL;
+@@ -14890,6 +14994,10 @@
+ 	    q[-1] = NUL;
+ 	}
+ 
++	buf = alloc(MAXPATHL + 1);
++	if (buf == NULL)
++	    goto fail;
++
+ 	for (;;)
+ 	{
+ 	    for (;;)
+@@ -15033,6 +15141,7 @@
+ 
+ #ifdef HAVE_READLINK
+ fail:
++    vim_free(buf);
+ #endif
+     rettv->v_type = VAR_STRING;
+ }
+@@ -15051,7 +15160,7 @@
+     if (argvars[0].v_type != VAR_LIST)
+ 	EMSG2(_(e_listarg), "reverse()");
+     else if ((l = argvars[0].vval.v_list) != NULL
+-	    && !tv_check_lock(l->lv_lock, (char_u *)"reverse()"))
++	    && !tv_check_lock(l->lv_lock, (char_u *)_("reverse() argument")))
+     {
+ 	li = l->lv_last;
+ 	l->lv_first = l->lv_last = NULL;
+@@ -16348,7 +16457,8 @@
+     else
+     {
+ 	l = argvars[0].vval.v_list;
+-	if (l == NULL || tv_check_lock(l->lv_lock, (char_u *)"sort()"))
++	if (l == NULL || tv_check_lock(l->lv_lock,
++					     (char_u *)_("sort() argument")))
+ 	    return;
+ 	rettv->vval.v_list = l;
+ 	rettv->v_type = VAR_LIST;
+@@ -17512,18 +17622,22 @@
+     typval_T	*argvars UNUSED;
+     typval_T	*rettv;
+ {
+-    char_u	fname[MAXPATHL + 1];
++    char_u	*fname;
+     tagname_T	tn;
+     int		first;
+ 
+     if (rettv_list_alloc(rettv) == FAIL)
+ 	return;
++    fname = alloc(MAXPATHL);
++    if (fname == NULL)
++	return;
+ 
+     for (first = TRUE; ; first = FALSE)
+ 	if (get_tagfname(&tn, first, fname) == FAIL
+ 		|| list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
+ 	    break;
+     tagname_free(&tn);
++    vim_free(fname);
+ }
+ 
+ /*
+@@ -19730,7 +19844,6 @@
+     dictitem_T	*v;
+     char_u	*varname;
+     hashtab_T	*ht;
+-    char_u	*p;
+ 
+     ht = find_var_ht(name, &varname);
+     if (ht == NULL || *varname == NUL)
+@@ -19740,25 +19853,8 @@
+     }
+     v = find_var_in_ht(ht, varname, TRUE);
+ 
+-    if (tv->v_type == VAR_FUNC)
+-    {
+-	if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
+-		&& !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
+-							 ? name[2] : name[0]))
+-	{
+-	    EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
+-	    return;
+-	}
+-	/* Don't allow hiding a function.  When "v" is not NULL we migth be
+-	 * assigning another function to the same var, the type is checked
+-	 * below. */
+-	if (v == NULL && function_exists(name))
+-	{
+-	    EMSG2(_("E705: Variable name conflicts with existing function: %s"),
+-									name);
+-	    return;
+-	}
+-    }
++    if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
++	return;
+ 
+     if (v != NULL)
+     {
+@@ -19824,13 +19920,8 @@
+ 	}
+ 
+ 	/* Make sure the variable name is valid. */
+-	for (p = varname; *p != NUL; ++p)
+-	    if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
+-						       && *p != AUTOLOAD_CHAR)
+-	    {
+-		EMSG2(_(e_illvar), varname);
+-		return;
+-	    }
++	if (!valid_varname(varname))
++	    return;
+ 
+ 	v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
+ 							  + STRLEN(varname)));
+@@ -19895,6 +19986,55 @@
+ }
+ 
+ /*
++ * Check if a funcref is assigned to a valid variable name.
++ * Return TRUE and give an error if not.
++ */
++    static int
++var_check_func_name(name, new_var)
++    char_u *name;    /* points to start of variable name */
++    int    new_var;  /* TRUE when creating the variable */
++{
++    if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
++	    && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
++						     ? name[2] : name[0]))
++    {
++	EMSG2(_("E704: Funcref variable name must start with a capital: %s"),
++									name);
++	return TRUE;
++    }
++    /* Don't allow hiding a function.  When "v" is not NULL we might be
++     * assigning another function to the same var, the type is checked
++     * below. */
++    if (new_var && function_exists(name))
++    {
++	EMSG2(_("E705: Variable name conflicts with existing function: %s"),
++								    name);
++	return TRUE;
++    }
++    return FALSE;
++}
++
++/*
++ * Check if a variable name is valid.
++ * Return FALSE and give an error if not.
++ */
++    static int
++valid_varname(varname)
++    char_u *varname;
++{
++    char_u *p;
++
++    for (p = varname; *p != NUL; ++p)
++	if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
++						   && *p != AUTOLOAD_CHAR)
++	{
++	    EMSG2(_(e_illvar), varname);
++	    return FALSE;
++	}
++    return TRUE;
++}
++
++/*
+  * Return TRUE if typeval "tv" is set to be locked (immutable).
+  * Also give an error message, using "name".
+  */
+@@ -22519,18 +22659,21 @@
+ 	if (tab != NULL)
+ 	{
+ 	    *tab++ = '\0';	/* isolate the variable name */
+-	    if (*tab == 'S')	/* string var */
+-		type = VAR_STRING;
++	    switch (*tab)
++	    {
++		case 'S': type = VAR_STRING; break;
+ #ifdef FEAT_FLOAT
+-	    else if (*tab == 'F')
+-		type = VAR_FLOAT;
++		case 'F': type = VAR_FLOAT; break;
+ #endif
++		case 'D': type = VAR_DICT; break;
++		case 'L': type = VAR_LIST; break;
++	    }
+ 
+ 	    tab = vim_strchr(tab, '\t');
+ 	    if (tab != NULL)
+ 	    {
+ 		tv.v_type = type;
+-		if (type == VAR_STRING)
++		if (type == VAR_STRING || type == VAR_DICT || type == VAR_LIST)
+ 		    tv.vval.v_string = viminfo_readstring(virp,
+ 				       (int)(tab - virp->vir_line + 1), TRUE);
+ #ifdef FEAT_FLOAT
+@@ -22539,9 +22682,27 @@
+ #endif
+ 		else
+ 		    tv.vval.v_number = atol((char *)tab + 1);
++		if (type == VAR_DICT || type == VAR_LIST)
++		{
++		    typval_T *etv = eval_expr(tv.vval.v_string, NULL);
++
++		    if (etv == NULL)
++			/* Failed to parse back the dict or list, use it as a
++			 * string. */
++			tv.v_type = VAR_STRING;
++		    else
++		    {
++			vim_free(tv.vval.v_string);
++			tv = *etv;
++		    }
++		}
++
+ 		set_var(virp->vir_line + 1, &tv, FALSE);
+-		if (type == VAR_STRING)
++
++		if (tv.v_type == VAR_STRING)
+ 		    vim_free(tv.vval.v_string);
++		else if (tv.v_type == VAR_DICT || tv.v_type == VAR_LIST)
++		    clear_tv(&tv);
+ 	    }
+ 	}
+     }
+@@ -22583,8 +22744,10 @@
+ 		    case VAR_STRING: s = "STR"; break;
+ 		    case VAR_NUMBER: s = "NUM"; break;
+ #ifdef FEAT_FLOAT
+-		    case VAR_FLOAT: s = "FLO"; break;
++		    case VAR_FLOAT:  s = "FLO"; break;
+ #endif
++		    case VAR_DICT:   s = "DIC"; break;
++		    case VAR_LIST:   s = "LIS"; break;
+ 		    default: continue;
+ 		}
+ 		fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
+diff -Naur vim73.orig/src/ex_cmds.c vim73/src/ex_cmds.c
+--- vim73.orig/src/ex_cmds.c	2010-08-13 09:14:35.000000000 +0000
++++ vim73/src/ex_cmds.c	2011-05-17 09:39:31.599920425 +0000
+@@ -11,10 +11,6 @@
+  * ex_cmds.c: some functions for command line commands
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for mch_open(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ #include "version.h"
+ 
+@@ -323,7 +319,8 @@
+     /* When sorting numbers "start_col_nr" is the number, not the column
+      * number. */
+     if (sort_nr)
+-	result = l1.start_col_nr - l2.start_col_nr;
++	result = l1.start_col_nr == l2.start_col_nr ? 0
++				 : l1.start_col_nr > l2.start_col_nr ? 1 : -1;
+     else
+     {
+ 	/* We need to copy one line into "sortbuf1", because there is no
+@@ -482,7 +479,7 @@
+ 	     * of the match, by temporarily terminating the string there */
+ 	    s2 = s + end_col;
+ 	    c = *s2;
+-	    (*s2) = 0;
++	    *s2 = NUL;
+ 	    /* Sorting on number: Store the number itself. */
+ 	    p = s + start_col;
+ 	    if (sort_hex)
+@@ -491,9 +488,13 @@
+ 		s = skiptodigit(p);
+ 	    if (s > p && s[-1] == '-')
+ 		--s;  /* include preceding negative sign */
+-	    vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
+-					&nrs[lnum - eap->line1].start_col_nr, NULL);
+-	    (*s2) = c;
++	    if (*s == NUL)
++		/* empty line should sort before any number */
++		nrs[lnum - eap->line1].start_col_nr = -MAXLNUM;
++	    else
++		vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
++				  &nrs[lnum - eap->line1].start_col_nr, NULL);
++	    *s2 = c;
+ 	}
+ 	else
+ 	{
+@@ -898,9 +899,6 @@
+  * Handle the ":!cmd" command.	Also for ":r !cmd" and ":w !cmd"
+  * Bangs in the argument are replaced with the previously entered command.
+  * Remember the argument.
+- *
+- * RISCOS: Bangs only replaced when followed by a space, since many
+- * pathnames contain one.
+  */
+     void
+ do_bang(addr_count, eap, forceit, do_in, do_out)
+@@ -979,11 +977,7 @@
+ 	trailarg = NULL;
+ 	while (*p)
+ 	{
+-	    if (*p == '!'
+-#ifdef RISCOS
+-			&& (p[1] == ' ' || p[1] == NUL)
+-#endif
+-					)
++	    if (*p == '!')
+ 	    {
+ 		if (p > newcmd && p[-1] == '\\')
+ 		    STRMOVE(p - 1, p);
+@@ -1577,14 +1571,8 @@
+ 	    if (p != NULL)
+ 		*p = NUL;
+ 	}
+-# ifdef RISCOS
+-	STRCAT(buf, " { < ");	/* Use RISC OS notation for input. */
+-	STRCAT(buf, itmp);
+-	STRCAT(buf, " } ");
+-# else
+ 	STRCAT(buf, " <");	/* " < " causes problems on Amiga */
+ 	STRCAT(buf, itmp);
+-# endif
+ 	if (*p_shq == NUL)
+ 	{
+ 	    p = vim_strchr(cmd, '|');
+@@ -1633,16 +1621,9 @@
+     else
+ 	vim_snprintf((char *)end, (size_t)(buflen - (end - buf)),
+ #ifdef FEAT_QUICKFIX
+-# ifndef RISCOS
+-		opt != p_sp ? " %s%s" :
+-# endif
+ 		" %s %s",
+ #else
+-# ifndef RISCOS
+ 		" %s%s",	/* " > %s" causes problems on Amiga */
+-# else
+-		" %s %s",	/* But is needed for 'shellpipe' and RISC OS */
+-# endif
+ #endif
+ 		(char *)opt, (char *)fname);
+ }
+@@ -1843,11 +1824,7 @@
+ #ifdef VMS
+ 				    (char_u *)"-tmp",
+ #else
+-# ifdef RISCOS
+-				    (char_u *)"/tmp",
+-# else
+ 				    (char_u *)".tmp",
+-# endif
+ #endif
+ 				    FALSE);
+ 	    if (tempname == NULL)		/* out of memory */
+@@ -2700,6 +2677,10 @@
+ 									TRUE);
+ 		do_modelines(0);
+ 	    }
++
++	    /* Autocommands may have changed buffer names, esp. when
++	     * 'autochdir' is set. */
++	    fname = curbuf->b_sfname;
+ #endif
+ 	}
+ 
+@@ -2772,7 +2753,7 @@
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ 	    if (p_confirm || cmdmod.confirm)
+ 	    {
+-		char_u	buff[IOSIZE];
++		char_u	buff[DIALOG_MSG_SIZE];
+ 
+ 		dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
+ 		if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
+@@ -2790,7 +2771,7 @@
+ 	/* For ":w! filename" check that no swap file exists for "filename". */
+ 	if (other && !emsg_silent)
+ 	{
+-	    char_u	dir[MAXPATHL];
++	    char_u	*dir;
+ 	    char_u	*p;
+ 	    int		r;
+ 	    char_u	*swapname;
+@@ -2801,20 +2782,29 @@
+ 	     * Use 'shortname' of the current buffer, since there is no buffer
+ 	     * for the written file. */
+ 	    if (*p_dir == NUL)
++	    {
++		dir = alloc(5);
++		if (dir == NULL)
++		    return FAIL;
+ 		STRCPY(dir, ".");
++	    }
+ 	    else
+ 	    {
++		dir = alloc(MAXPATHL);
++		if (dir == NULL)
++		    return FAIL;
+ 		p = p_dir;
+ 		copy_option_part(&p, dir, MAXPATHL, ",");
+ 	    }
+ 	    swapname = makeswapname(fname, ffname, curbuf, dir);
++	    vim_free(dir);
+ 	    r = vim_fexists(swapname);
+ 	    if (r)
+ 	    {
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ 		if (p_confirm || cmdmod.confirm)
+ 		{
+-		    char_u	buff[IOSIZE];
++		    char_u	buff[DIALOG_MSG_SIZE];
+ 
+ 		    dialog_msg(buff,
+ 			    _("Swap file \"%s\" exists, overwrite anyway?"),
+@@ -2964,7 +2954,7 @@
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ 	if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
+ 	{
+-	    char_u	buff[IOSIZE];
++	    char_u	buff[DIALOG_MSG_SIZE];
+ 
+ 	    if (buf->b_p_ro)
+ 		dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
+@@ -3498,9 +3488,7 @@
+ 	curbuf->b_p_bin = FALSE;	/* reset 'bin' before reading file */
+ 	curwin->w_p_nu = 0;		/* no line numbers */
+ 	curwin->w_p_rnu = 0;		/* no relative line numbers */
+-#ifdef FEAT_SCROLLBIND
+-	curwin->w_p_scb = FALSE;	/* no scroll binding */
+-#endif
++	RESET_BINDING(curwin);		/* no scroll or cursor binding */
+ #ifdef FEAT_ARABIC
+ 	curwin->w_p_arab = FALSE;	/* no arabic mode */
+ #endif
+@@ -5353,8 +5341,9 @@
+ global_exe(cmd)
+     char_u	*cmd;
+ {
+-    linenr_T	old_lcount;	/* b_ml.ml_line_count before the command */
+-    linenr_T	lnum;		/* line number according to old situation */
++    linenr_T old_lcount;	/* b_ml.ml_line_count before the command */
++    buf_T    *old_buf = curbuf;	/* remember what buffer we started in */
++    linenr_T lnum;		/* line number according to old situation */
+ 
+     /*
+      * Set current position only once for a global command.
+@@ -5398,8 +5387,10 @@
+ 	msg_didout = FALSE;
+ 
+     /* If substitutes done, report number of substitutes, otherwise report
+-     * number of extra or deleted lines. */
+-    if (!do_sub_msg(FALSE))
++     * number of extra or deleted lines.
++     * Don't report extra or deleted lines in the edge case where the buffer
++     * we are in after execution is different from the buffer we started in. */
++    if (!do_sub_msg(FALSE) && curbuf == old_buf)
+ 	msgmore(curbuf->b_ml.ml_line_count - old_lcount);
+ }
+ 
+@@ -5409,7 +5400,7 @@
+     vir_T	*virp;
+     int		force;
+ {
+-    if (old_sub != NULL && force)
++    if (force)
+ 	vim_free(old_sub);
+     if (force || old_sub == NULL)
+ 	old_sub = viminfo_readstring(virp, 1, TRUE);
+@@ -5471,9 +5462,8 @@
+ 		return FALSE;
+ 	    curwin->w_p_pvw = TRUE;
+ 	    curwin->w_p_wfh = TRUE;
+-# ifdef FEAT_SCROLLBIND
+-	    curwin->w_p_scb = FALSE;	    /* don't take over 'scrollbind' */
+-# endif
++	    RESET_BINDING(curwin);	    /* don't take over 'scrollbind'
++					       and 'cursorbind' */
+ # ifdef FEAT_DIFF
+ 	    curwin->w_p_diff = FALSE;	    /* no 'diff' */
+ # endif
+@@ -6559,8 +6549,7 @@
+ struct sign
+ {
+     sign_T	*sn_next;	/* next sign in list */
+-    int		sn_typenr;	/* type number of sign (negative if not equal
+-				   to name) */
++    int		sn_typenr;	/* type number of sign */
+     char_u	*sn_name;	/* name of sign */
+     char_u	*sn_icon;	/* name of pixmap */
+ #ifdef FEAT_SIGN_ICONS
+@@ -6572,7 +6561,7 @@
+ };
+ 
+ static sign_T	*first_sign = NULL;
+-static int	last_sign_typenr = MAX_TYPENR;	/* is decremented */
++static int	next_sign_typenr = 1;
+ 
+ static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
+ static void sign_list_defined __ARGS((sign_T *sp));
+@@ -6654,9 +6643,14 @@
+ 	    EMSG(_("E156: Missing sign name"));
+ 	else
+ 	{
++	    /* Isolate the sign name.  If it's a number skip leading zeroes,
++	     * so that "099" and "99" are the same sign.  But keep "0". */
+ 	    p = skiptowhite(arg);
+ 	    if (*p != NUL)
+ 		*p++ = NUL;
++	    while (arg[0] == '0' && arg[1] != NUL)
++		++arg;
++
+ 	    sp_prev = NULL;
+ 	    for (sp = first_sign; sp != NULL; sp = sp->sn_next)
+ 	    {
+@@ -6669,46 +6663,52 @@
+ 		/* ":sign define {name} ...": define a sign */
+ 		if (sp == NULL)
+ 		{
++		    sign_T	*lp;
++		    int		start = next_sign_typenr;
++
+ 		    /* Allocate a new sign. */
+ 		    sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
+ 		    if (sp == NULL)
+ 			return;
+-		    if (sp_prev == NULL)
+-			first_sign = sp;
+-		    else
+-			sp_prev->sn_next = sp;
+-		    sp->sn_name = vim_strnsave(arg, (int)(p - arg));
+ 
+-		    /* If the name is a number use that for the typenr,
+-		     * otherwise use a negative number. */
+-		    if (VIM_ISDIGIT(*arg))
+-			sp->sn_typenr = atoi((char *)arg);
+-		    else
++		    /* Check that next_sign_typenr is not already being used.
++		     * This only happens after wrapping around.  Hopefully
++		     * another one got deleted and we can use its number. */
++		    for (lp = first_sign; lp != NULL; )
+ 		    {
+-			sign_T	*lp;
+-			int	start = last_sign_typenr;
+-
+-			for (lp = first_sign; lp != NULL; lp = lp->sn_next)
++			if (lp->sn_typenr == next_sign_typenr)
+ 			{
+-			    if (lp->sn_typenr == last_sign_typenr)
++			    ++next_sign_typenr;
++			    if (next_sign_typenr == MAX_TYPENR)
++				next_sign_typenr = 1;
++			    if (next_sign_typenr == start)
+ 			    {
+-				--last_sign_typenr;
+-				if (last_sign_typenr == 0)
+-				    last_sign_typenr = MAX_TYPENR;
+-				if (last_sign_typenr == start)
+-				{
+-				    EMSG(_("E612: Too many signs defined"));
+-				    return;
+-				}
+-				lp = first_sign;
+-				continue;
++				vim_free(sp);
++				EMSG(_("E612: Too many signs defined"));
++				return;
+ 			    }
++			    lp = first_sign;  /* start all over */
++			    continue;
+ 			}
++			lp = lp->sn_next;
++		    }
++
++		    sp->sn_typenr = next_sign_typenr;
++		    if (++next_sign_typenr == MAX_TYPENR)
++			next_sign_typenr = 1; /* wrap around */
+ 
+-			sp->sn_typenr = last_sign_typenr--;
+-			if (last_sign_typenr == 0)
+-			    last_sign_typenr = MAX_TYPENR; /* wrap around */
++		    sp->sn_name = vim_strsave(arg);
++		    if (sp->sn_name == NULL)  /* out of memory */
++		    {
++			vim_free(sp);
++			return;
+ 		    }
++
++		    /* add the new sign to the list of signs */
++		    if (sp_prev == NULL)
++			first_sign = sp;
++		    else
++			sp_prev->sn_next = sp;
+ 		}
+ 
+ 		/* set values for a defined sign. */
+@@ -6886,6 +6886,8 @@
+ 		arg = skiptowhite(arg);
+ 		if (*arg != NUL)
+ 		    *arg++ = NUL;
++		while (sign_name[0] == '0' && sign_name[1] != NUL)
++		    ++sign_name;
+ 	    }
+ 	    else if (STRNCMP(arg, "file=", 5) == 0)
+ 	    {
+diff -Naur vim73.orig/src/ex_cmds2.c vim73/src/ex_cmds2.c
+--- vim73.orig/src/ex_cmds2.c	2010-07-27 19:43:38.000000000 +0000
++++ vim73/src/ex_cmds2.c	2011-05-17 09:39:31.599920425 +0000
+@@ -11,10 +11,6 @@
+  * ex_cmds2.c: some more functions for command line commands
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for mch_open(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ #include "version.h"
+ 
+@@ -504,18 +500,10 @@
+ 	/* Expand the file name in the same way as do_source().  This means
+ 	 * doing it twice, so that $DIR/file gets expanded when $DIR is
+ 	 * "~/dir". */
+-#ifdef RISCOS
+-	q = mch_munge_fname(p);
+-#else
+ 	q = expand_env_save(p);
+-#endif
+ 	if (q == NULL)
+ 	    return FAIL;
+-#ifdef RISCOS
+-	p = mch_munge_fname(q);
+-#else
+ 	p = expand_env_save(q);
+-#endif
+ 	vim_free(q);
+ 	if (p == NULL)
+ 	    return FAIL;
+@@ -1119,7 +1107,7 @@
+ static enum
+ {
+     PEXP_SUBCMD,	/* expand :profile sub-commands */
+-    PEXP_FUNC,		/* expand :profile func {funcname} */
++    PEXP_FUNC		/* expand :profile func {funcname} */
+ } pexpand_what;
+ 
+ static char *pexpand_cmds[] = {
+@@ -1496,7 +1484,7 @@
+     buf_T	*buf;
+     int		checkall;	/* may abandon all changed buffers */
+ {
+-    char_u	buff[IOSIZE];
++    char_u	buff[DIALOG_MSG_SIZE];
+     int		ret;
+     buf_T	*buf2;
+ 
+@@ -2165,9 +2153,7 @@
+ 	{
+ 	    if (win_split(0, 0) == FAIL)
+ 		return;
+-# ifdef FEAT_SCROLLBIND
+-	    curwin->w_p_scb = FALSE;
+-# endif
++	    RESET_BINDING(curwin);
+ 	}
+ 	else
+ #endif
+@@ -2946,11 +2932,7 @@
+     proftime_T		    wait_start;
+ #endif
+ 
+-#ifdef RISCOS
+-    p = mch_munge_fname(fname);
+-#else
+     p = expand_env_save(fname);
+-#endif
+     if (p == NULL)
+ 	return retval;
+     fname_exp = fix_fname(p);
+diff -Naur vim73.orig/src/ex_docmd.c vim73/src/ex_docmd.c
+--- vim73.orig/src/ex_docmd.c	2010-08-07 14:59:47.000000000 +0000
++++ vim73/src/ex_docmd.c	2011-05-17 09:39:31.603919981 +0000
+@@ -733,7 +733,7 @@
+  * do_cmdline(): execute one Ex command line
+  *
+  * 1. Execute "cmdline" when it is not NULL.
+- *    If "cmdline" is NULL, or more lines are needed, getline() is used.
++ *    If "cmdline" is NULL, or more lines are needed, fgetline() is used.
+  * 2. Split up in parts separated with '|'.
+  *
+  * This function can be called recursively!
+@@ -741,7 +741,7 @@
+  * flags:
+  * DOCMD_VERBOSE  - The command will be included in the error message.
+  * DOCMD_NOWAIT   - Don't call wait_return() and friends.
+- * DOCMD_REPEAT   - Repeat execution until getline() returns NULL.
++ * DOCMD_REPEAT   - Repeat execution until fgetline() returns NULL.
+  * DOCMD_KEYTYPED - Don't reset KeyTyped.
+  * DOCMD_EXCRESET - Reset the exception environment (used for debugging).
+  * DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
+@@ -749,15 +749,15 @@
+  * return FAIL if cmdline could not be executed, OK otherwise
+  */
+     int
+-do_cmdline(cmdline, getline, cookie, flags)
++do_cmdline(cmdline, fgetline, cookie, flags)
+     char_u	*cmdline;
+-    char_u	*(*getline) __ARGS((int, void *, int));
+-    void	*cookie;		/* argument for getline() */
++    char_u	*(*fgetline) __ARGS((int, void *, int));
++    void	*cookie;		/* argument for fgetline() */
+     int		flags;
+ {
+     char_u	*next_cmdline;		/* next cmd to execute */
+     char_u	*cmdline_copy = NULL;	/* copy of cmd line */
+-    int		used_getline = FALSE;	/* used "getline" to obtain command */
++    int		used_getline = FALSE;	/* used "fgetline" to obtain command */
+     static int	recursive = 0;		/* recursive depth */
+     int		msg_didout_before_start = 0;
+     int		count = 0;		/* line number count */
+@@ -775,14 +775,14 @@
+     struct msglist	**saved_msg_list = NULL;
+     struct msglist	*private_msg_list;
+ 
+-    /* "getline" and "cookie" passed to do_one_cmd() */
++    /* "fgetline" and "cookie" passed to do_one_cmd() */
+     char_u	*(*cmd_getline) __ARGS((int, void *, int));
+     void	*cmd_cookie;
+     struct loop_cookie cmd_loop_cookie;
+     void	*real_cookie;
+     int		getline_is_func;
+ #else
+-# define cmd_getline getline
++# define cmd_getline fgetline
+ # define cmd_cookie cookie
+ #endif
+     static int	call_depth = 0;		/* recursiveness */
+@@ -822,10 +822,10 @@
+     cstack.cs_lflags = 0;
+     ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
+ 
+-    real_cookie = getline_cookie(getline, cookie);
++    real_cookie = getline_cookie(fgetline, cookie);
+ 
+     /* Inside a function use a higher nesting level. */
+-    getline_is_func = getline_equal(getline, cookie, get_func_line);
++    getline_is_func = getline_equal(fgetline, cookie, get_func_line);
+     if (getline_is_func && ex_nesting_level == func_level(real_cookie))
+ 	++ex_nesting_level;
+ 
+@@ -837,7 +837,7 @@
+ 	breakpoint = func_breakpoint(real_cookie);
+ 	dbg_tick = func_dbg_tick(real_cookie);
+     }
+-    else if (getline_equal(getline, cookie, getsourceline))
++    else if (getline_equal(fgetline, cookie, getsourceline))
+     {
+ 	fname = sourcing_name;
+ 	breakpoint = source_breakpoint(real_cookie);
+@@ -881,7 +881,8 @@
+      * KeyTyped is only set when calling vgetc().  Reset it here when not
+      * calling vgetc() (sourced command lines).
+      */
+-    if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
++    if (!(flags & DOCMD_KEYTYPED)
++			       && !getline_equal(fgetline, cookie, getexline))
+ 	KeyTyped = FALSE;
+ 
+     /*
+@@ -894,7 +895,7 @@
+     do
+     {
+ #ifdef FEAT_EVAL
+-	getline_is_func = getline_equal(getline, cookie, get_func_line);
++	getline_is_func = getline_equal(fgetline, cookie, get_func_line);
+ #endif
+ 
+ 	/* stop skipping cmds for an error msg after all endif/while/for */
+@@ -909,7 +910,7 @@
+ 
+ 	/*
+ 	 * 1. If repeating a line in a loop, get a line from lines_ga.
+-	 * 2. If no line given: Get an allocated line with getline().
++	 * 2. If no line given: Get an allocated line with fgetline().
+ 	 * 3. If a line is given: Make a copy, so we can mess with it.
+ 	 */
+ 
+@@ -938,12 +939,12 @@
+ 	    }
+ #ifdef FEAT_PROFILE
+ 	    else if (do_profiling == PROF_YES
+-			     && getline_equal(getline, cookie, getsourceline))
++			    && getline_equal(fgetline, cookie, getsourceline))
+ 		script_line_end();
+ #endif
+ 
+ 	    /* Check if a sourced file hit a ":finish" command. */
+-	    if (source_finished(getline, cookie))
++	    if (source_finished(fgetline, cookie))
+ 	    {
+ 		retval = FAIL;
+ 		break;
+@@ -954,7 +955,7 @@
+ 						   && *dbg_tick != debug_tick)
+ 	    {
+ 		*breakpoint = dbg_find_breakpoint(
+-				getline_equal(getline, cookie, getsourceline),
++				getline_equal(fgetline, cookie, getsourceline),
+ 							fname, sourcing_lnum);
+ 		*dbg_tick = debug_tick;
+ 	    }
+@@ -969,7 +970,7 @@
+ 		dbg_breakpoint(fname, sourcing_lnum);
+ 		/* Find next breakpoint. */
+ 		*breakpoint = dbg_find_breakpoint(
+-				getline_equal(getline, cookie, getsourceline),
++			       getline_equal(fgetline, cookie, getsourceline),
+ 							fname, sourcing_lnum);
+ 		*dbg_tick = debug_tick;
+ 	    }
+@@ -978,7 +979,7 @@
+ 	    {
+ 		if (getline_is_func)
+ 		    func_line_start(real_cookie);
+-		else if (getline_equal(getline, cookie, getsourceline))
++		else if (getline_equal(fgetline, cookie, getsourceline))
+ 		    script_line_start();
+ 	    }
+ # endif
+@@ -987,7 +988,7 @@
+ 	if (cstack.cs_looplevel > 0)
+ 	{
+ 	    /* Inside a while/for loop we need to store the lines and use them
+-	     * again.  Pass a different "getline" function to do_one_cmd()
++	     * again.  Pass a different "fgetline" function to do_one_cmd()
+ 	     * below, so that it stores lines in or reads them from
+ 	     * "lines_ga".  Makes it possible to define a function inside a
+ 	     * while/for loop. */
+@@ -995,27 +996,27 @@
+ 	    cmd_cookie = (void *)&cmd_loop_cookie;
+ 	    cmd_loop_cookie.lines_gap = &lines_ga;
+ 	    cmd_loop_cookie.current_line = current_line;
+-	    cmd_loop_cookie.getline = getline;
++	    cmd_loop_cookie.getline = fgetline;
+ 	    cmd_loop_cookie.cookie = cookie;
+ 	    cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
+ 	}
+ 	else
+ 	{
+-	    cmd_getline = getline;
++	    cmd_getline = fgetline;
+ 	    cmd_cookie = cookie;
+ 	}
+ #endif
+ 
+-	/* 2. If no line given, get an allocated line with getline(). */
++	/* 2. If no line given, get an allocated line with fgetline(). */
+ 	if (next_cmdline == NULL)
+ 	{
+ 	    /*
+ 	     * Need to set msg_didout for the first line after an ":if",
+ 	     * otherwise the ":if" will be overwritten.
+ 	     */
+-	    if (count == 1 && getline_equal(getline, cookie, getexline))
++	    if (count == 1 && getline_equal(fgetline, cookie, getexline))
+ 		msg_didout = TRUE;
+-	    if (getline == NULL || (next_cmdline = getline(':', cookie,
++	    if (fgetline == NULL || (next_cmdline = fgetline(':', cookie,
+ #ifdef FEAT_EVAL
+ 		    cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
+ #else
+@@ -1142,7 +1143,7 @@
+ 	     * If the command was typed, remember it for the ':' register.
+ 	     * Do this AFTER executing the command to make :@: work.
+ 	     */
+-	    if (getline_equal(getline, cookie, getexline)
++	    if (getline_equal(fgetline, cookie, getexline)
+ 						  && new_last_cmdline != NULL)
+ 	    {
+ 		vim_free(last_cmdline);
+@@ -1163,7 +1164,7 @@
+ #ifdef FEAT_EVAL
+ 	/* reset did_emsg for a function that is not aborted by an error */
+ 	if (did_emsg && !force_abort
+-		&& getline_equal(getline, cookie, get_func_line)
++		&& getline_equal(fgetline, cookie, get_func_line)
+ 					      && !func_has_abort(real_cookie))
+ 	    did_emsg = FALSE;
+ 
+@@ -1202,7 +1203,7 @@
+ 		    if (breakpoint != NULL)
+ 		    {
+ 			*breakpoint = dbg_find_breakpoint(
+-				getline_equal(getline, cookie, getsourceline),
++			       getline_equal(fgetline, cookie, getsourceline),
+ 									fname,
+ 			   ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
+ 			*dbg_tick = debug_tick;
+@@ -1296,8 +1297,8 @@
+ #endif
+ 	    )
+ 	    && !(did_emsg && used_getline
+-			  && (getline_equal(getline, cookie, getexmodeline)
+-				|| getline_equal(getline, cookie, getexline)))
++			    && (getline_equal(fgetline, cookie, getexmodeline)
++			       || getline_equal(fgetline, cookie, getexline)))
+ 	    && (next_cmdline != NULL
+ #ifdef FEAT_EVAL
+ 			|| cstack.cs_idx >= 0
+@@ -1316,9 +1317,9 @@
+ 	 * unclosed conditional.
+ 	 */
+ 	if (!got_int && !did_throw
+-		&& ((getline_equal(getline, cookie, getsourceline)
+-			&& !source_finished(getline, cookie))
+-		    || (getline_equal(getline, cookie, get_func_line)
++		&& ((getline_equal(fgetline, cookie, getsourceline)
++			&& !source_finished(fgetline, cookie))
++		    || (getline_equal(fgetline, cookie, get_func_line)
+ 					    && !func_has_ended(real_cookie))))
+ 	{
+ 	    if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
+@@ -1354,7 +1355,7 @@
+     /* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
+      * lack was reported above and the error message is to be converted to an
+      * exception, do this now after rewinding the cstack. */
+-    do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
++    do_errthrow(&cstack, getline_equal(fgetline, cookie, get_func_line)
+ 				  ? (char_u *)"endfunction" : (char_u *)NULL);
+ 
+     if (trylevel == 0)
+@@ -1449,9 +1450,9 @@
+      */
+     if (did_throw)
+ 	need_rethrow = TRUE;
+-    if ((getline_equal(getline, cookie, getsourceline)
++    if ((getline_equal(fgetline, cookie, getsourceline)
+ 		&& ex_nesting_level > source_level(real_cookie))
+-	    || (getline_equal(getline, cookie, get_func_line)
++	    || (getline_equal(fgetline, cookie, get_func_line)
+ 		&& ex_nesting_level > func_level(real_cookie) + 1))
+     {
+ 	if (!did_throw)
+@@ -1460,16 +1461,16 @@
+     else
+     {
+ 	/* When leaving a function, reduce nesting level. */
+-	if (getline_equal(getline, cookie, get_func_line))
++	if (getline_equal(fgetline, cookie, get_func_line))
+ 	    --ex_nesting_level;
+ 	/*
+ 	 * Go to debug mode when returning from a function in which we are
+ 	 * single-stepping.
+ 	 */
+-	if ((getline_equal(getline, cookie, getsourceline)
+-		    || getline_equal(getline, cookie, get_func_line))
++	if ((getline_equal(fgetline, cookie, getsourceline)
++		    || getline_equal(fgetline, cookie, get_func_line))
+ 		&& ex_nesting_level + 1 <= debug_break_level)
+-	    do_debug(getline_equal(getline, cookie, getsourceline)
++	    do_debug(getline_equal(fgetline, cookie, getsourceline)
+ 		    ? (char_u *)_("End of sourced file")
+ 		    : (char_u *)_("End of function"));
+     }
+@@ -2423,25 +2424,39 @@
+     if (       (ea.argt & REGSTR)
+ 	    && *ea.arg != NUL
+ #ifdef FEAT_USR_CMDS
+-	    && valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
+-						   && USER_CMDIDX(ea.cmdidx)))
+ 	    /* Do not allow register = for user commands */
+ 	    && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
+-#else
+-	    && valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
+ #endif
+ 	    && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+     {
+-	ea.regname = *ea.arg++;
+-#ifdef FEAT_EVAL
+-	/* for '=' register: accept the rest of the line as an expression */
+-	if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
++#ifndef FEAT_CLIPBOARD
++	/* check these explicitly for a more specific error message */
++	if (*ea.arg == '*' || *ea.arg == '+')
+ 	{
+-	    set_expr_line(vim_strsave(ea.arg));
+-	    ea.arg += STRLEN(ea.arg);
++	    errormsg = (char_u *)_(e_invalidreg);
++	    goto doend;
+ 	}
+ #endif
+-	ea.arg = skipwhite(ea.arg);
++	if (
++#ifdef FEAT_USR_CMDS
++	    valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
++						   && USER_CMDIDX(ea.cmdidx)))
++#else
++	    valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
++#endif
++	   )
++	{
++	    ea.regname = *ea.arg++;
++#ifdef FEAT_EVAL
++	    /* for '=' register: accept the rest of the line as an expression */
++	    if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
++	    {
++		set_expr_line(vim_strsave(ea.arg));
++		ea.arg += STRLEN(ea.arg);
++	    }
++#endif
++	    ea.arg = skipwhite(ea.arg);
++	}
+     }
+ 
+     /*
+@@ -2871,8 +2886,10 @@
+ 	    }
+ 
+ #ifdef FEAT_USR_CMDS
+-	/* Look for a user defined command as a last resort */
+-	if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
++	/* Look for a user defined command as a last resort.  Let ":Print" be
++	 * overruled by a user defined command. */
++	if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
++		&& *eap->cmd >= 'A' && *eap->cmd <= 'Z')
+ 	{
+ 	    /* User defined commands may contain digits. */
+ 	    while (ASCII_ISALNUM(*p))
+@@ -3465,7 +3482,8 @@
+ 	case CMD_find:
+ 	case CMD_sfind:
+ 	case CMD_tabfind:
+-	    xp->xp_context = EXPAND_FILES_IN_PATH;
++	    if (xp->xp_context == EXPAND_FILES)
++		xp->xp_context = EXPAND_FILES_IN_PATH;
+ 	    break;
+ 	case CMD_cd:
+ 	case CMD_chdir:
+@@ -4520,12 +4538,14 @@
+ 		else /* n == 2 */
+ 		{
+ 		    expand_T	xpc;
++		    int		options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
+ 
+ 		    ExpandInit(&xpc);
+ 		    xpc.xp_context = EXPAND_FILES;
++		    if (p_wic)
++			options += WILD_ICASE;
+ 		    p = ExpandOne(&xpc, eap->arg, NULL,
+-					    WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
+-						   WILD_EXPAND_FREE);
++						   options, WILD_EXPAND_FREE);
+ 		    if (p == NULL)
+ 			return FAIL;
+ 		}
+@@ -5087,12 +5107,14 @@
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ 	    if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
+ 	    {
+-		char_u	buff[IOSIZE];
++		char_u	buff[DIALOG_MSG_SIZE];
+ 
+ 		if (n == 1)
+-		    STRCPY(buff, _("1 more file to edit.  Quit anyway?"));
++		    vim_strncpy(buff,
++			    (char_u *)_("1 more file to edit.  Quit anyway?"),
++							 DIALOG_MSG_SIZE - 1);
+ 		else
+-		    vim_snprintf((char *)buff, IOSIZE,
++		    vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
+ 			      _("%d more files to edit.  Quit anyway?"), n);
+ 		if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
+ 		    return OK;
+@@ -5587,6 +5609,7 @@
+     int	    compl = EXPAND_NOTHING;
+     char_u  *compl_arg = NULL;
+     int	    has_attr = (eap->arg[0] == '-');
++    int	    name_len;
+ 
+     p = eap->arg;
+ 
+@@ -5612,6 +5635,7 @@
+ 	return;
+     }
+     end = p;
++    name_len = (int)(end - name);
+ 
+     /* If there is nothing after the name, and no attributes were specified,
+      * we are listing commands
+@@ -5626,6 +5650,13 @@
+ 	EMSG(_("E183: User defined commands must start with an uppercase letter"));
+ 	return;
+     }
++    else if ((name_len == 1 && *name == 'X')
++	  || (name_len <= 4
++		  && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
++    {
++	EMSG(_("E841: Reserved name, cannot be used for user defined command"));
++	return;
++    }
+     else
+ 	uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
+ 								eap->forceit);
+@@ -6039,15 +6070,17 @@
+ 		end = vim_strchr(start + 1, '>');
+ 	    if (buf != NULL)
+ 	    {
+-		ksp = vim_strchr(p, K_SPECIAL);
+-		if (ksp != NULL && (start == NULL || ksp < start || end == NULL)
++		for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
++		    ;
++		if (*ksp == K_SPECIAL
++			&& (start == NULL || ksp < start || end == NULL)
+ 			&& ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
+ # ifdef FEAT_GUI
+ 			    || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
+ # endif
+ 			    ))
+ 		{
+-		    /* K_SPECIAL han been put in the buffer as K_SPECIAL
++		    /* K_SPECIAL has been put in the buffer as K_SPECIAL
+ 		     * KS_SPECIAL KE_FILLER, like for mappings, but
+ 		     * do_cmdline() doesn't handle that, so convert it back.
+ 		     * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
+@@ -6897,9 +6930,7 @@
+ # ifdef FEAT_WINDOWS
+ 	if (win_split(0, 0) == FAIL)
+ 	    return;
+-#  ifdef FEAT_SCROLLBIND
+-	curwin->w_p_scb = FALSE;
+-#  endif
++	RESET_BINDING(curwin);
+ 
+ 	/* When splitting the window, create a new alist.  Otherwise the
+ 	 * existing one is overwritten. */
+@@ -7299,7 +7330,9 @@
+ 		|| cmdmod.browse
+ #  endif
+ 	   )
+-	    curwin->w_p_scb = FALSE;
++	{
++	    RESET_BINDING(curwin);
++	}
+ 	else
+ 	    do_check_scrollbind(FALSE);
+ # endif
+@@ -8907,35 +8940,42 @@
+ 		failed = TRUE;
+ 	    if (eap->cmdidx == CMD_mksession)
+ 	    {
+-		char_u dirnow[MAXPATHL];	/* current directory */
++		char_u *dirnow;	 /* current directory */
+ 
+-		/*
+-		 * Change to session file's dir.
+-		 */
+-		if (mch_dirname(dirnow, MAXPATHL) == FAIL
+-					    || mch_chdir((char *)dirnow) != 0)
+-		    *dirnow = NUL;
+-		if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
+-		{
+-		    if (vim_chdirfile(fname) == OK)
+-			shorten_fnames(TRUE);
+-		}
+-		else if (*dirnow != NUL
+-			&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
++		dirnow = alloc(MAXPATHL);
++		if (dirnow == NULL)
++		    failed = TRUE;
++		else
+ 		{
+-		    if (mch_chdir((char *)globaldir) == 0)
+-			shorten_fnames(TRUE);
+-		}
++		    /*
++		     * Change to session file's dir.
++		     */
++		    if (mch_dirname(dirnow, MAXPATHL) == FAIL
++					    || mch_chdir((char *)dirnow) != 0)
++			*dirnow = NUL;
++		    if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
++		    {
++			if (vim_chdirfile(fname) == OK)
++			    shorten_fnames(TRUE);
++		    }
++		    else if (*dirnow != NUL
++			   && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
++		    {
++			if (mch_chdir((char *)globaldir) == 0)
++			    shorten_fnames(TRUE);
++		    }
+ 
+-		failed |= (makeopens(fd, dirnow) == FAIL);
++		    failed |= (makeopens(fd, dirnow) == FAIL);
+ 
+-		/* restore original dir */
+-		if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
++		    /* restore original dir */
++		    if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
+ 			|| ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+-		{
+-		    if (mch_chdir((char *)dirnow) != 0)
+-			EMSG(_(e_prev_dir));
+-		    shorten_fnames(TRUE);
++		    {
++			if (mch_chdir((char *)dirnow) != 0)
++			    EMSG(_(e_prev_dir));
++			shorten_fnames(TRUE);
++		    }
++		    vim_free(dirnow);
+ 		}
+ 	    }
+ 	    else
+@@ -8966,10 +9006,15 @@
+ 	else if (eap->cmdidx == CMD_mksession)
+ 	{
+ 	    /* successful session write - set this_session var */
+-	    char_u	tbuf[MAXPATHL];
++	    char_u	*tbuf;
+ 
+-	    if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
+-		set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
++	    tbuf = alloc(MAXPATHL);
++	    if (tbuf != NULL)
++	    {
++		if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
++		    set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
++		vim_free(tbuf);
++	    }
+ 	}
+ #endif
+ #ifdef MKSESSION_NL
+@@ -9295,7 +9340,7 @@
+ 								  && !got_int)
+     {
+ 	update_topline_cursor();
+-	normal_cmd(&oa, FALSE);	/* execute a Normal mode cmd */
++	normal_cmd(&oa, TRUE);	/* execute a Normal mode cmd */
+     }
+ }
+ #endif
+@@ -9393,7 +9438,7 @@
+ ex_ptag(eap)
+     exarg_T	*eap;
+ {
+-    g_do_tagpreview = p_pvh;
++    g_do_tagpreview = p_pvh;  /* will be reset to 0 in ex_tag_cmd() */
+     ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
+ }
+ 
+@@ -9525,17 +9570,23 @@
+ #define SPEC_CFILE  4
+ 		    "<sfile>",		/* ":so" file name */
+ #define SPEC_SFILE  5
++		    "<slnum>",		/* ":so" file line number */
++#define SPEC_SLNUM  6
+ #ifdef FEAT_AUTOCMD
+ 		    "<afile>",		/* autocommand file name */
+-# define SPEC_AFILE 6
++# define SPEC_AFILE 7
+ 		    "<abuf>",		/* autocommand buffer number */
+-# define SPEC_ABUF  7
++# define SPEC_ABUF  8
+ 		    "<amatch>",		/* autocommand match name */
+-# define SPEC_AMATCH 8
++# define SPEC_AMATCH 9
+ #endif
+ #ifdef FEAT_CLIENTSERVER
+ 		    "<client>"
+-# define SPEC_CLIENT 9
++# ifdef FEAT_AUTOCMD
++#  define SPEC_CLIENT 10
++# else
++#  define SPEC_CLIENT 7
++# endif
+ #endif
+     };
+ 
+@@ -9560,6 +9611,7 @@
+  *	  '<cWORD>' to WORD under the cursor
+  *	  '<cfile>' to path name under the cursor
+  *	  '<sfile>' to sourced file name
++ *	  '<slnum>' to sourced file line number
+  *	  '<afile>' to file name for autocommand
+  *	  '<abuf>'  to buffer number for autocommand
+  *	  '<amatch>' to matching name for autocommand
+@@ -9591,10 +9643,7 @@
+ #ifdef FEAT_MODIFY_FNAME
+     int		skip_mod = FALSE;
+ #endif
+-
+-#if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER)
+     char_u	strbuf[30];
+-#endif
+ 
+     *errormsg = NULL;
+     if (escaped != NULL)
+@@ -9653,14 +9702,7 @@
+ 		    valid = 0;	    /* Must have ":p:h" to be valid */
+ 		}
+ 		else
+-#ifdef RISCOS
+-		    /* Always use the full path for RISC OS if possible. */
+-		    result = curbuf->b_ffname;
+-		    if (result == NULL)
+-			result = curbuf->b_fname;
+-#else
+ 		    result = curbuf->b_fname;
+-#endif
+ 		break;
+ 
+ 	case SPEC_HASH:		/* '#' or "#99": alternate file */
+@@ -9783,6 +9825,15 @@
+ 		    return NULL;
+ 		}
+ 		break;
++	case SPEC_SLNUM:	/* line in file for ":so" command */
++		if (sourcing_name == NULL || sourcing_lnum == 0)
++		{
++		    *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
++		    return NULL;
++		}
++		sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
++		result = strbuf;
++		break;
+ #if defined(FEAT_CLIENTSERVER)
+ 	case SPEC_CLIENT:	/* Source of last submitted input */
+ 		sprintf((char *)strbuf, PRINTF_HEX_LONG_U,
+@@ -9796,11 +9847,7 @@
+ 	if (src[*usedlen] == '<')	/* remove the file name extension */
+ 	{
+ 	    ++*usedlen;
+-#ifdef RISCOS
+-	    if ((s = vim_strrchr(result, '/')) != NULL && s >= gettail(result))
+-#else
+ 	    if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result))
+-#endif
+ 		resultlen = (int)(s - result);
+ 	}
+ #ifdef FEAT_MODIFY_FNAME
+@@ -10645,7 +10692,7 @@
+     unsigned	*flagp;
+ {
+     int		i;
+-    char_u	buf[MAXPATHL];
++    char_u	*buf = NULL;
+     char_u	*s;
+ 
+     if (gap->ga_len == 0)
+@@ -10660,11 +10707,19 @@
+ 	{
+ 	    if (fullname)
+ 	    {
+-		(void)vim_FullName(s, buf, MAXPATHL, FALSE);
+-		s = buf;
++		buf = alloc(MAXPATHL);
++		if (buf != NULL)
++		{
++		    (void)vim_FullName(s, buf, MAXPATHL, FALSE);
++		    s = buf;
++		}
+ 	    }
+ 	    if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
++	    {
++		vim_free(buf);
+ 		return FAIL;
++	    }
++	    vim_free(buf);
+ 	}
+     }
+     return put_eol(fd);
+@@ -10707,7 +10762,7 @@
+  * Write a file name to the session file.
+  * Takes care of the "slash" option in 'sessionoptions' and escapes special
+  * characters.
+- * Returns FAIL if writing fails.
++ * Returns FAIL if writing fails or out of memory.
+  */
+     static int
+ ses_put_fname(fd, name, flagp)
+@@ -10716,49 +10771,32 @@
+     unsigned	*flagp;
+ {
+     char_u	*sname;
++    char_u	*p;
+     int		retval = OK;
+-    int		c;
+ 
+     sname = home_replace_save(NULL, name);
+-    if (sname != NULL)
+-	name = sname;
+-    while (*name != NUL)
+-    {
+-#ifdef FEAT_MBYTE
+-	{
+-	    int l;
++    if (sname == NULL)
++	return FAIL;
+ 
+-	    if (has_mbyte && (l = (*mb_ptr2len)(name)) > 1)
+-	    {
+-		/* copy a multibyte char */
+-		while (--l >= 0)
+-		{
+-		    if (putc(*name, fd) != *name)
+-			retval = FAIL;
+-		    ++name;
+-		}
+-		continue;
+-	    }
+-	}
+-#endif
+-	c = *name++;
+-	if (c == '\\' && (*flagp & SSOP_SLASH))
+-	    /* change a backslash to a forward slash */
+-	    c = '/';
+-	else if ((vim_strchr(escape_chars, c) != NULL
+-#ifdef BACKSLASH_IN_FILENAME
+-		    && c != '\\'
+-#endif
+-		 ) || c == '#' || c == '%')
+-	{
+-	    /* escape a special character with a backslash */
+-	    if (putc('\\', fd) != '\\')
+-		retval = FAIL;
+-	}
+-	if (putc(c, fd) != c)
+-	    retval = FAIL;
++    if (*flagp & SSOP_SLASH)
++    {
++	/* change all backslashes to forward slashes */
++	for (p = sname; *p != NUL; mb_ptr_adv(p))
++	    if (*p == '\\')
++		*p = '/';
+     }
++
++    /* escapse special characters */
++    p = vim_strsave_fnameescape(sname, FALSE);
+     vim_free(sname);
++    if (p == NULL)
++	return FAIL;
++
++    /* write the result */
++    if (fputs((char *)p, fd) < 0)
++	retval = FAIL;
++
++    vim_free(p);
+     return retval;
+ }
+ 
+@@ -10826,8 +10864,7 @@
+ 	    else if (vim_ispathsep(*p))
+ 	    {
+ 		*s++ = '=';
+-#if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(RISCOS) \
+-	|| defined(VMS)
++#if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(VMS)
+ 		if (*p == ':')
+ 		    *s++ = '-';
+ 		else
+@@ -10910,7 +10947,7 @@
+ 
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
+ /*
+- * Make a dialog message in "buff[IOSIZE]".
++ * Make a dialog message in "buff[DIALOG_MSG_SIZE]".
+  * "format" must contain "%s".
+  */
+     void
+@@ -10921,7 +10958,7 @@
+ {
+     if (fname == NULL)
+ 	fname = (char_u *)_("Untitled");
+-    vim_snprintf((char *)buff, IOSIZE, format, fname);
++    vim_snprintf((char *)buff, DIALOG_MSG_SIZE, format, fname);
+ }
+ #endif
+ 
+diff -Naur vim73.orig/src/ex_getln.c vim73/src/ex_getln.c
+--- vim73.orig/src/ex_getln.c	2010-08-14 15:25:45.000000000 +0000
++++ vim73/src/ex_getln.c	2011-05-17 09:38:39.473705700 +0000
+@@ -688,28 +688,35 @@
+ 		    p = get_expr_line();
+ 		    --textlock;
+ 		    restore_cmdline(&save_ccline);
+-		    len = (int)STRLEN(p);
+ 
+-		    if (p != NULL && realloc_cmdbuff(len + 1) == OK)
++		    if (p != NULL)
+ 		    {
+-			ccline.cmdlen = len;
+-			STRCPY(ccline.cmdbuff, p);
+-			vim_free(p);
+-
+-			/* Restore the cursor or use the position set with
+-			 * set_cmdline_pos(). */
+-			if (new_cmdpos > ccline.cmdlen)
+-			    ccline.cmdpos = ccline.cmdlen;
+-			else
+-			    ccline.cmdpos = new_cmdpos;
+-
+-			KeyTyped = FALSE;	/* Don't do p_wc completion. */
+-			redrawcmd();
+-			goto cmdline_changed;
++			len = (int)STRLEN(p);
++			if (realloc_cmdbuff(len + 1) == OK)
++			{
++			    ccline.cmdlen = len;
++			    STRCPY(ccline.cmdbuff, p);
++			    vim_free(p);
++
++			    /* Restore the cursor or use the position set with
++			     * set_cmdline_pos(). */
++			    if (new_cmdpos > ccline.cmdlen)
++				ccline.cmdpos = ccline.cmdlen;
++			    else
++				ccline.cmdpos = new_cmdpos;
++
++			    KeyTyped = FALSE;	/* Don't do p_wc completion. */
++			    redrawcmd();
++			    goto cmdline_changed;
++			}
+ 		    }
+ 		}
+ 		beep_flush();
+-		c = ESC;
++		got_int = FALSE;	/* don't abandon the command line */
++		did_emsg = FALSE;
++		emsg_on_display = FALSE;
++		redrawcmd();
++		goto cmdline_not_changed;
+ 	    }
+ #endif
+ 	    else
+@@ -2342,15 +2349,31 @@
+ 	windgoto(msg_row, msg_col);
+ 	pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
+ 
+-	/* we are done when a NL is entered, but not when it comes after a
+-	 * backslash */
+-	if (line_ga.ga_len > 0 && pend[-1] == '\n'
+-		&& (line_ga.ga_len <= 1 || pend[-2] != '\\'))
+-	{
+-	    --line_ga.ga_len;
+-	    --pend;
+-	    *pend = NUL;
+-	    break;
++	/* We are done when a NL is entered, but not when it comes after an
++	 * odd number of backslashes, that results in a NUL. */
++	if (line_ga.ga_len > 0 && pend[-1] == '\n')
++	{
++	    int bcount = 0;
++
++	    while (line_ga.ga_len - 2 >= bcount && pend[-2 - bcount] == '\\')
++		++bcount;
++
++	    if (bcount > 0)
++	    {
++		/* Halve the number of backslashes: "\NL" -> "NUL", "\\NL" ->
++		 * "\NL", etc. */
++		line_ga.ga_len -= (bcount + 1) / 2;
++		pend -= (bcount + 1) / 2;
++		pend[-1] = '\n';
++	    }
++
++	    if ((bcount & 1) == 0)
++	    {
++		--line_ga.ga_len;
++		--pend;
++		*pend = NUL;
++		break;
++	    }
+ 	}
+     }
+ 
+@@ -3316,10 +3339,14 @@
+ 	    p2 = NULL;
+ 	else
+ 	{
++	    int use_options = options |
++		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
++
++	    if (p_wic)
++		use_options += WILD_ICASE;
+ 	    p2 = ExpandOne(xp, p1,
+ 			 vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
+-		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+-							      |options, type);
++							   use_options, type);
+ 	    vim_free(p1);
+ 	    /* longest match: make sure it is not shorter, happens with :help */
+ 	    if (p2 != NULL && type == WILD_LONGEST)
+@@ -3405,6 +3432,7 @@
+  * options = WILD_KEEP_ALL:	    don't remove 'wildignore' entries
+  * options = WILD_SILENT:	    don't print warning messages
+  * options = WILD_ESCAPE:	    put backslash before special chars
++ * options = WILD_ICASE:	    ignore case for files
+  *
+  * The variables xp->xp_context and xp->xp_backslash must have been set!
+  */
+@@ -3674,6 +3702,7 @@
+     if (options & WILD_ESCAPE)
+     {
+ 	if (xp->xp_context == EXPAND_FILES
++		|| xp->xp_context == EXPAND_FILES_IN_PATH
+ 		|| xp->xp_context == EXPAND_SHELLCMD
+ 		|| xp->xp_context == EXPAND_BUFFERS
+ 		|| xp->xp_context == EXPAND_DIRECTORIES)
+@@ -4338,6 +4367,7 @@
+     char_u	***matches;	/* return: array of pointers to matches */
+ {
+     char_u	*file_str = NULL;
++    int		options = WILD_ADD_SLASH|WILD_SILENT;
+ 
+     if (xp->xp_context == EXPAND_UNSUCCESSFUL)
+     {
+@@ -4356,9 +4386,11 @@
+     if (file_str == NULL)
+ 	return EXPAND_UNSUCCESSFUL;
+ 
++    if (p_wic)
++	options += WILD_ICASE;
++
+     /* find all files that match the description */
+-    if (ExpandFromContext(xp, file_str, matchcount, matches,
+-					  WILD_ADD_SLASH|WILD_SILENT) == FAIL)
++    if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
+     {
+ 	*matchcount = 0;
+ 	*matches = NULL;
+@@ -4410,7 +4442,7 @@
+     char_u	*pat;
+     int		*num_file;
+     char_u	***file;
+-    int		options;
++    int		options;  /* EW_ flags */
+ {
+ #ifdef FEAT_CMDL_COMPL
+     regmatch_T	regmatch;
+@@ -4464,6 +4496,9 @@
+ 	    flags |= (EW_FILE | EW_PATH);
+ 	else
+ 	    flags = (flags | EW_DIR) & ~EW_FILE;
++	if (options & WILD_ICASE)
++	    flags |= EW_ICASE;
++
+ 	/* Expand wildcards, supporting %:h and the like. */
+ 	ret = expand_wildcards_eval(&pat, num_file, file, flags);
+ 	if (free_pat)
+@@ -4728,7 +4763,11 @@
+ 			    || (pat[1] == '.' && vim_ispathsep(pat[2])))))
+ 	path = (char_u *)".";
+     else
++    {
+ 	path = vim_getenv((char_u *)"PATH", &mustfree);
++	if (path == NULL)
++	    path = (char_u *)"";
++    }
+ 
+     /*
+      * Go over all directories in $PATH.  Expand matches in that directory and
+@@ -6147,9 +6186,7 @@
+     curwin->w_p_rl = cmdmsg_rl;
+     cmdmsg_rl = FALSE;
+ # endif
+-# ifdef FEAT_SCROLLBIND
+-    curwin->w_p_scb = FALSE;
+-# endif
++    RESET_BINDING(curwin);
+ 
+ # ifdef FEAT_AUTOCMD
+     /* Do execute autocommands for setting the filetype (load syntax). */
+diff -Naur vim73.orig/src/fileio.c vim73/src/fileio.c
+--- vim73.orig/src/fileio.c	2010-08-14 12:20:54.000000000 +0000
++++ vim73/src/fileio.c	2011-05-17 09:39:31.607919537 +0000
+@@ -11,14 +11,6 @@
+  * fileio.c: read from and write to a file
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for lseek(), must be before vim.h */
+-#endif
+-
+-#if defined __EMX__
+-# include "vimio.h"	/* for mktemp(), CJW 1997-12-03 */
+-#endif
+-
+ #include "vim.h"
+ 
+ #if defined(__TANDEM) || defined(__MINT__)
+@@ -258,6 +250,7 @@
+ #ifdef FEAT_CRYPT
+     char_u	*cryptkey = NULL;
+     int		did_ask_for_key = FALSE;
++    int		crypt_method_used;
+ #endif
+ #ifdef FEAT_PERSISTENT_UNDO
+     context_sha256_T sha_ctx;
+@@ -325,7 +318,7 @@
+     int		using_b_fname;
+ #endif
+ 
+-    write_no_eol_lnum = 0;	/* in case it was set by the previous read */
++    curbuf->b_no_eol_lnum = 0;	/* in case it was set by the previous read */
+ 
+     /*
+      * If there is no file name yet, use the one for the read file.
+@@ -511,18 +504,11 @@
+ 
+     if (newfile && !read_stdin && !read_buffer)
+     {
+-	/* Remember time of file.
+-	 * For RISCOS, also remember the filetype.
+-	 */
++	/* Remember time of file. */
+ 	if (mch_stat((char *)fname, &st) >= 0)
+ 	{
+ 	    buf_store_time(curbuf, &st, fname);
+ 	    curbuf->b_mtime_read = curbuf->b_mtime;
+-
+-#if defined(RISCOS) && defined(FEAT_OSFILETYPE)
+-	    /* Read the filetype into the buffer local filetype option. */
+-	    mch_read_filetype(fname);
+-#endif
+ #ifdef UNIX
+ 	    /*
+ 	     * Use the protection bits of the original file for the swap file.
+@@ -564,7 +550,6 @@
+ 
+ /*
+  * for UNIX: check readonly with perm and mch_access()
+- * for RISCOS: same as Unix, otherwise file gets re-datestamped!
+  * for MSDOS and Amiga: check readonly by trying to open the file for writing
+  */
+     file_readonly = FALSE;
+@@ -918,7 +903,7 @@
+ 	    {
+ 		/* Read the first line (and a bit more).  Immediately rewind to
+ 		 * the start of the file.  If the read() fails "len" is -1. */
+-		len = vim_read(fd, firstline, 80);
++		len = read_eintr(fd, firstline, 80);
+ 		lseek(fd, (off_t)0L, SEEK_SET);
+ 		for (p = firstline; p < firstline + len; ++p)
+ 		    if (*p >= 0x80)
+@@ -1373,7 +1358,7 @@
+ 		    /*
+ 		     * Read bytes from the file.
+ 		     */
+-		    size = vim_read(fd, ptr, size);
++		    size = read_eintr(fd, ptr, size);
+ 		}
+ 
+ 		if (size <= 0)
+@@ -2297,6 +2282,7 @@
+ 	save_file_ff(curbuf);		/* remember the current file format */
+ 
+ #ifdef FEAT_CRYPT
++    crypt_method_used = use_crypt_method;
+     if (cryptkey != NULL)
+     {
+ 	crypt_pop_state();
+@@ -2491,7 +2477,10 @@
+ #ifdef FEAT_CRYPT
+ 	    if (cryptkey != NULL)
+ 	    {
+-		STRCAT(IObuff, _("[crypted]"));
++		if (crypt_method_used == 1)
++		    STRCAT(IObuff, _("[blowfish]"));
++		else
++		    STRCAT(IObuff, _("[crypted]"));
+ 		c = TRUE;
+ 	    }
+ #endif
+@@ -2607,10 +2596,11 @@
+ 
+     /*
+      * Trick: We remember if the last line of the read didn't have
+-     * an eol for when writing it again.  This is required for
++     * an eol even when 'binary' is off, for when writing it again with
++     * 'binary' on.  This is required for
+      * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
+      */
+-    write_no_eol_lnum = read_no_eol_lnum;
++    curbuf->b_no_eol_lnum = read_no_eol_lnum;
+ 
+     /* When reloading a buffer put the cursor at the first line that is
+      * different. */
+@@ -2658,13 +2648,17 @@
+ 							    FALSE, NULL, eap);
+ 	if (msg_scrolled == n)
+ 	    msg_scroll = m;
+-#ifdef FEAT_EVAL
++# ifdef FEAT_EVAL
+ 	if (aborting())	    /* autocmds may abort script processing */
+ 	    return FAIL;
+-#endif
++# endif
+     }
+ #endif
+ 
++    /* Reset now, following writes should not omit the EOL.  Also, the line
++     * number will become invalid because of edits. */
++    curbuf->b_no_eol_lnum = 0;
++
+     if (recoverymode && error)
+ 	return FAIL;
+     return OK;
+@@ -3202,6 +3196,9 @@
+     int		    write_undo_file = FALSE;
+     context_sha256_T sha_ctx;
+ #endif
++#ifdef FEAT_CRYPT
++    int		    crypt_method_used;
++#endif
+ 
+     if (fname == NULL || *fname == NUL)	/* safety check */
+ 	return FAIL;
+@@ -3799,13 +3796,7 @@
+ 
+ 	/* make sure we have a valid backup extension to use */
+ 	if (*p_bex == NUL)
+-	{
+-#ifdef RISCOS
+-	    backup_ext = (char_u *)"/bak";
+-#else
+ 	    backup_ext = (char_u *)".bak";
+-#endif
+-	}
+ 	else
+ 	    backup_ext = p_bex;
+ 
+@@ -4000,7 +3991,7 @@
+ #ifdef HAS_BW_FLAGS
+ 			write_info.bw_flags = FIO_NOCONVERT;
+ #endif
+-			while ((write_info.bw_len = vim_read(fd, copybuf,
++			while ((write_info.bw_len = read_eintr(fd, copybuf,
+ 								BUFSIZE)) > 0)
+ 			{
+ 			    if (buf_write_bytes(&write_info) == FAIL)
+@@ -4568,7 +4559,7 @@
+ 	if (end == 0
+ 		|| (lnum == end
+ 		    && write_bin
+-		    && (lnum == write_no_eol_lnum
++		    && (lnum == buf->b_no_eol_lnum
+ 			|| (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
+ 	{
+ 	    ++lnum;			/* written the line, count it */
+@@ -4719,11 +4710,6 @@
+ #endif
+     if (perm >= 0)		/* set perm. of new file same as old file */
+ 	(void)mch_setperm(wfname, perm);
+-#ifdef RISCOS
+-    if (!append && !filtering)
+-	/* Set the filetype after writing the file. */
+-	mch_set_filetype(wfname, buf->b_p_oft);
+-#endif
+ #ifdef HAVE_ACL
+     /* Probably need to set the ACL before changing the user (can't set the
+      * ACL on a file the user doesn't own). */
+@@ -4731,6 +4717,7 @@
+ 	mch_set_acl(wfname, acl);
+ #endif
+ #ifdef FEAT_CRYPT
++    crypt_method_used = use_crypt_method;
+     if (wb_flags & FIO_ENCRYPTED)
+ 	crypt_pop_state();
+ #endif
+@@ -4813,7 +4800,7 @@
+ #ifdef HAS_BW_FLAGS
+ 			write_info.bw_flags = FIO_NOCONVERT;
+ #endif
+-			while ((write_info.bw_len = vim_read(fd, smallbuf,
++			while ((write_info.bw_len = read_eintr(fd, smallbuf,
+ 						      SMBUFSIZE)) > 0)
+ 			    if (buf_write_bytes(&write_info) == FAIL)
+ 				break;
+@@ -4885,7 +4872,10 @@
+ #ifdef FEAT_CRYPT
+ 	if (wb_flags & FIO_ENCRYPTED)
+ 	{
+-	    STRCAT(IObuff, _("[crypted]"));
++	    if (crypt_method_used == 1)
++		STRCAT(IObuff, _("[blowfish]"));
++	    else
++		STRCAT(IObuff, _("[crypted]"));
+ 	    c = TRUE;
+ 	}
+ #endif
+@@ -5094,8 +5084,6 @@
+     {
+ 	aco_save_T	aco;
+ 
+-	write_no_eol_lnum = 0;	/* in case it was set by the previous read */
+-
+ 	/*
+ 	 * Apply POST autocommands.
+ 	 * Careful: The autocommands may call buf_write() recursively!
+@@ -5330,7 +5318,7 @@
+ 
+ /*
+  * Call write() to write a number of bytes to the file.
+- * Also handles encryption and 'encoding' conversion.
++ * Handles encryption and 'encoding' conversion.
+  *
+  * Return FAIL for failure, OK otherwise.
+  */
+@@ -5702,16 +5690,8 @@
+ 	crypt_encode(buf, len, buf);
+ #endif
+ 
+-    /* Repeat the write(), it may be interrupted by a signal. */
+-    while (len > 0)
+-    {
+-	wlen = vim_write(ip->bw_fd, buf, len);
+-	if (wlen <= 0)		    /* error! */
+-	    return FAIL;
+-	len -= wlen;
+-	buf += wlen;
+-    }
+-    return OK;
++    wlen = write_eintr(ip->bw_fd, buf, len);
++    return (wlen < len) ? FAIL : OK;
+ }
+ 
+ #ifdef FEAT_MBYTE
+@@ -6024,15 +6004,19 @@
+ shorten_fname1(full_path)
+     char_u	*full_path;
+ {
+-    char_u	dirname[MAXPATHL];
++    char_u	*dirname;
+     char_u	*p = full_path;
+ 
++    dirname = alloc(MAXPATHL);
++    if (dirname == NULL)
++	return full_path;
+     if (mch_dirname(dirname, MAXPATHL) == OK)
+     {
+ 	p = shorten_fname(full_path, dirname);
+ 	if (p == NULL || *p == NUL)
+ 	    p = full_path;
+     }
++    vim_free(dirname);
+     return p;
+ }
+ #endif
+@@ -6259,19 +6243,17 @@
+      */
+     for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
+     {
+-#ifndef RISCOS
+ 	if (*ext == '.'
+-# ifdef USE_LONG_FNAME
++#ifdef USE_LONG_FNAME
+ 		    && (!USE_LONG_FNAME || shortname)
+-# else
+-#  ifndef SHORT_FNAME
++#else
++# ifndef SHORT_FNAME
+ 		    && shortname
+-#  endif
+ # endif
++#endif
+ 								)
+ 	    if (*ptr == '.')	/* replace '.' by '_' */
+ 		*ptr = '_';
+-#endif
+ 	if (vim_ispathsep(*ptr))
+ 	{
+ 	    ++ptr;
+@@ -6306,23 +6288,14 @@
+ 	if (fname == NULL || *fname == NUL
+ 				   || vim_ispathsep(fname[STRLEN(fname) - 1]))
+ 	{
+-#ifdef RISCOS
+-	    if (*ext == '/')
+-#else
+ 	    if (*ext == '.')
+-#endif
+ 		*s++ = '_';
+ 	}
+ 	/*
+ 	 * If the extension starts with '.', truncate the base name at 8
+ 	 * characters
+ 	 */
+-#ifdef RISCOS
+-	/* We normally use '/', but swap files are '_' */
+-	else if (*ext == '/' || *ext == '_')
+-#else
+ 	else if (*ext == '.')
+-#endif
+ 	{
+ 	    if ((size_t)(s - ptr) > (size_t)8)
+ 	    {
+@@ -6334,13 +6307,8 @@
+ 	 * If the extension doesn't start with '.', and the file name
+ 	 * doesn't have an extension yet, append a '.'
+ 	 */
+-#ifdef RISCOS
+-	else if ((e = vim_strchr(ptr, '/')) == NULL)
+-	    *s++ = '/';
+-#else
+ 	else if ((e = vim_strchr(ptr, '.')) == NULL)
+ 	    *s++ = '.';
+-#endif
+ 	/*
+ 	 * If the extension doesn't start with '.', and there already is an
+ 	 * extension, it may need to be truncated
+@@ -6368,23 +6336,14 @@
+     /*
+      * Prepend the dot.
+      */
+-    if (prepend_dot && !shortname && *(e = gettail(retval)) !=
+-#ifdef RISCOS
+-	    '/'
+-#else
+-	    '.'
+-#endif
++    if (prepend_dot && !shortname && *(e = gettail(retval)) != '.'
+ #ifdef USE_LONG_FNAME
+ 	    && USE_LONG_FNAME
+ #endif
+ 				)
+     {
+ 	STRMOVE(e + 1, e);
+-#ifdef RISCOS
+-	*e = '/';
+-#else
+ 	*e = '.';
+-#endif
+     }
+ #endif
+ 
+@@ -6552,6 +6511,21 @@
+ 	    use_tmp_file = TRUE;
+     }
+ #endif
++#ifdef WIN3264
++    {
++	BY_HANDLE_FILE_INFORMATION info1, info2;
++
++	/* It's possible for the source and destination to be the same file.
++	 * In that case go through a temp file name.  This makes rename("foo",
++	 * "./foo") a no-op (in a complicated way). */
++	if (win32_fileinfo(from, &info1) == FILEINFO_OK
++		&& win32_fileinfo(to, &info2) == FILEINFO_OK
++		&& info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber
++		&& info1.nFileIndexHigh == info2.nFileIndexHigh
++		&& info1.nFileIndexLow == info2.nFileIndexLow)
++	    use_tmp_file = TRUE;
++    }
++#endif
+ 
+ #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
+     if (use_tmp_file)
+@@ -6662,8 +6636,8 @@
+ 	return -1;
+     }
+ 
+-    while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
+-	if (vim_write(fd_out, buffer, n) != n)
++    while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
++	if (write_eintr(fd_out, buffer, n) != n)
+ 	{
+ 	    errmsg = _("E208: Error writing to \"%s\"");
+ 	    break;
+@@ -7024,7 +6998,7 @@
+ 		    STRCAT(tbuf, mesg2);
+ 		}
+ 		if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
+-				(char_u *)_("&OK\n&Load File"), 1, NULL) == 2)
++			  (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
+ 		    reload = TRUE;
+ 	    }
+ 	    else
+@@ -7272,8 +7246,8 @@
+ write_lnum_adjust(offset)
+     linenr_T	offset;
+ {
+-    if (write_no_eol_lnum != 0)		/* only if there is a missing eol */
+-	write_no_eol_lnum += offset;
++    if (curbuf->b_no_eol_lnum != 0)	/* only if there is a missing eol */
++	curbuf->b_no_eol_lnum += offset;
+ }
+ 
+ #if defined(TEMPDIRNAMES) || defined(PROTO)
+@@ -7475,7 +7449,10 @@
+ 
+     STRCPY(itmp, "");
+     if (GetTempPath(_MAX_PATH, szTempFile) == 0)
+-	szTempFile[0] = NUL;	/* GetTempPath() failed, use current dir */
++    {
++	szTempFile[0] = '.';	/* GetTempPath() failed, use current dir */
++	szTempFile[1] = NUL;
++    }
+     strcpy(buf4, "VIM");
+     buf4[2] = extra_char;   /* make it "VIa", "VIb", etc. */
+     if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
+@@ -7496,8 +7473,11 @@
+ # else /* WIN3264 */
+ 
+ #  ifdef USE_TMPNAM
++    char_u	*p;
++
+     /* tmpnam() will make its own name */
+-    if (*tmpnam((char *)itmp) == NUL)
++    p = tmpnam((char *)itmp);
++    if (p == NULL || *p == NUL)
+ 	return NULL;
+ #  else
+     char_u	*p;
+@@ -10181,19 +10161,11 @@
+ 		    ++p;
+ 		break;
+ 	    case '.':
+-#ifdef RISCOS
+-		if (allow_dirs != NULL)
+-		     *allow_dirs = TRUE;
+-		/* FALLTHROUGH */
+-#endif
+ 	    case '~':
+ 		reg_pat[i++] = '\\';
+ 		reg_pat[i++] = *p;
+ 		break;
+ 	    case '?':
+-#ifdef RISCOS
+-	    case '#':
+-#endif
+ 		reg_pat[i++] = '.';
+ 		break;
+ 	    case '\\':
+@@ -10304,3 +10276,55 @@
+     }
+     return reg_pat;
+ }
++
++#if defined(EINTR) || defined(PROTO)
++/*
++ * Version of read() that retries when interrupted by EINTR (possibly
++ * by a SIGWINCH).
++ */
++    long
++read_eintr(fd, buf, bufsize)
++    int	    fd;
++    void    *buf;
++    size_t  bufsize;
++{
++    long ret;
++
++    for (;;)
++    {
++	ret = vim_read(fd, buf, bufsize);
++	if (ret >= 0 || errno != EINTR)
++	    break;
++    }
++    return ret;
++}
++
++/*
++ * Version of write() that retries when interrupted by EINTR (possibly
++ * by a SIGWINCH).
++ */
++    long
++write_eintr(fd, buf, bufsize)
++    int	    fd;
++    void    *buf;
++    size_t  bufsize;
++{
++    long    ret = 0;
++    long    wlen;
++
++    /* Repeat the write() so long it didn't fail, other than being interrupted
++     * by a signal. */
++    while (ret < (long)bufsize)
++    {
++	wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
++	if (wlen < 0)
++	{
++	    if (errno != EINTR)
++		break;
++	}
++	else
++	    ret += wlen;
++    }
++    return ret;
++}
++#endif
+diff -Naur vim73.orig/src/getchar.c vim73/src/getchar.c
+--- vim73.orig/src/getchar.c	2010-08-08 13:00:33.000000000 +0000
++++ vim73/src/getchar.c	2011-05-17 09:38:46.448931545 +0000
+@@ -635,11 +635,14 @@
+ /*
+  * Stuff "s" into the stuff buffer, leaving special key codes unmodified and
+  * escaping other K_SPECIAL and CSI bytes.
++ * Change CR, LF and ESC into a space.
+  */
+     void
+ stuffReadbuffSpec(s)
+     char_u	*s;
+ {
++    int c;
++
+     while (*s != NUL)
+     {
+ 	if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
+@@ -649,11 +652,16 @@
+ 	    s += 3;
+ 	}
+ 	else
++	{
+ #ifdef FEAT_MBYTE
+-	    stuffcharReadbuff(mb_ptr2char_adv(&s));
++	    c = mb_ptr2char_adv(&s);
+ #else
+-	    stuffcharReadbuff(*s++);
++	    c = *s++;
+ #endif
++	    if (c == CAR || c == NL || c == ESC)
++		c = ' ';
++	    stuffcharReadbuff(c);
++	}
+     }
+ }
+ #endif
+@@ -1506,9 +1514,6 @@
+     }
+ }
+ 
+-#define KL_PART_KEY -1		/* keylen value for incomplete key-code */
+-#define KL_PART_MAP -2		/* keylen value for incomplete mapping */
+-
+ /*
+  * Get the next input character.
+  * Can return a special key or a multi-byte character.
+@@ -2171,7 +2176,7 @@
+ 					if (!timedout)
+ 					{
+ 					    /* break at a partly match */
+-					    keylen = KL_PART_MAP;
++					    keylen = KEYLEN_PART_MAP;
+ 					    break;
+ 					}
+ 				    }
+@@ -2192,7 +2197,7 @@
+ 
+ 			/* If no partly match found, use the longest full
+ 			 * match. */
+-			if (keylen != KL_PART_MAP)
++			if (keylen != KEYLEN_PART_MAP)
+ 			{
+ 			    mp = mp_match;
+ 			    keylen = mp_match_len;
+@@ -2230,7 +2235,7 @@
+ 			}
+ 			/* Need more chars for partly match. */
+ 			if (mlen == typebuf.tb_len)
+-			    keylen = KL_PART_KEY;
++			    keylen = KEYLEN_PART_KEY;
+ 			else if (max_mlen < mlen)
+ 			    /* no match, may have to check for termcode at
+ 			     * next character */
+@@ -2238,7 +2243,7 @@
+ 		    }
+ 
+ 		    if ((mp == NULL || max_mlen >= mp_match_len)
+-						     && keylen != KL_PART_MAP)
++						 && keylen != KEYLEN_PART_MAP)
+ 		    {
+ 			int	save_keylen = keylen;
+ 
+@@ -2264,8 +2269,8 @@
+ 			    /* If no termcode matched but 'pastetoggle'
+ 			     * matched partially it's like an incomplete key
+ 			     * sequence. */
+-			    if (keylen == 0 && save_keylen == KL_PART_KEY)
+-				keylen = KL_PART_KEY;
++			    if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
++				keylen = KEYLEN_PART_KEY;
+ 
+ 			    /*
+ 			     * When getting a partial match, but the last
+@@ -2302,7 +2307,7 @@
+ 				    continue;
+ 				}
+ 				if (*s == NUL)	    /* need more characters */
+-				    keylen = KL_PART_KEY;
++				    keylen = KEYLEN_PART_KEY;
+ 			    }
+ 			    if (keylen >= 0)
+ #endif
+@@ -2339,7 +2344,8 @@
+ 			if (keylen > 0)	    /* full matching terminal code */
+ 			{
+ #if defined(FEAT_GUI) && defined(FEAT_MENU)
+-			    if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
++			    if (typebuf.tb_len >= 2
++				&& typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
+ 					 && typebuf.tb_buf[typebuf.tb_off + 1]
+ 								   == KS_MENU)
+ 			    {
+@@ -2381,7 +2387,7 @@
+ 			/* Partial match: get some more characters.  When a
+ 			 * matching mapping was found use that one. */
+ 			if (mp == NULL || keylen < 0)
+-			    keylen = KL_PART_KEY;
++			    keylen = KEYLEN_PART_KEY;
+ 			else
+ 			    keylen = mp_match_len;
+ 		    }
+@@ -2553,7 +2559,8 @@
+ #endif
+ 			&& typebuf.tb_maplen == 0
+ 			&& (State & INSERT)
+-			&& (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
++			&& (p_timeout
++			    || (keylen == KEYLEN_PART_KEY && p_ttimeout))
+ 			&& (c = inchar(typebuf.tb_buf + typebuf.tb_off
+ 						     + typebuf.tb_len, 3, 25L,
+ 						 typebuf.tb_change_cnt)) == 0)
+@@ -2711,8 +2718,11 @@
+ 		 * are still available.  But when those available characters
+ 		 * are part of a mapping, and we are going to do a blocking
+ 		 * wait here.  Need to update the screen to display the
+-		 * changed text so far. */
+-		if ((State & INSERT) && advance && must_redraw != 0)
++		 * changed text so far. Also for when 'lazyredraw' is set and
++		 * redrawing was postponed because there was something in the
++		 * input buffer (e.g., termresponse). */
++		if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
++			  && advance && must_redraw != 0 && !need_wait_return)
+ 		{
+ 		    update_screen(0);
+ 		    setcursor(); /* put cursor back where it belongs */
+@@ -2783,9 +2793,9 @@
+ 			    ? 0
+ 			    : ((typebuf.tb_len == 0
+ 				    || !(p_timeout || (p_ttimeout
+-						   && keylen == KL_PART_KEY)))
++					       && keylen == KEYLEN_PART_KEY)))
+ 				    ? -1L
+-				    : ((keylen == KL_PART_KEY && p_ttm >= 0)
++				    : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
+ 					    ? p_ttm
+ 					    : p_tm)), typebuf.tb_change_cnt);
+ 
+@@ -3168,6 +3178,7 @@
+     int		expr = FALSE;
+ #endif
+     int		noremap;
++    char_u      *orig_rhs;
+ 
+     keys = arg;
+     map_table = maphash;
+@@ -3266,6 +3277,7 @@
+     }
+     if (*p != NUL)
+ 	*p++ = NUL;
++
+     p = skipwhite(p);
+     rhs = p;
+     hasarg = (*rhs != NUL);
+@@ -3288,6 +3300,7 @@
+      */
+     if (haskey)
+ 	keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
++    orig_rhs = rhs;
+     if (hasarg)
+     {
+ 	if (STRICMP(rhs, "<nop>") == 0)	    /* "<Nop>" means nothing */
+@@ -3298,7 +3311,7 @@
+ 
+ #ifdef FEAT_FKMAP
+     /*
+-     * when in right-to-left mode and alternate keymap option set,
++     * When in right-to-left mode and alternate keymap option set,
+      * reverse the character flow in the rhs in Farsi.
+      */
+     if (p_altkeymap && curwin->w_p_rl)
+@@ -3556,6 +3569,8 @@
+ 				}
+ 				vim_free(mp->m_str);
+ 				mp->m_str = newstr;
++				vim_free(mp->m_orig_str);
++				mp->m_orig_str = vim_strsave(orig_rhs);
+ 				mp->m_noremap = noremap;
+ 				mp->m_silent = silent;
+ 				mp->m_mode = mode;
+@@ -3633,10 +3648,12 @@
+ 
+     mp->m_keys = vim_strsave(keys);
+     mp->m_str = vim_strsave(rhs);
++    mp->m_orig_str = vim_strsave(orig_rhs);
+     if (mp->m_keys == NULL || mp->m_str == NULL)
+     {
+ 	vim_free(mp->m_keys);
+ 	vim_free(mp->m_str);
++	vim_free(mp->m_orig_str);
+ 	vim_free(mp);
+ 	retval = 4;	/* no mem */
+ 	goto theend;
+@@ -3682,6 +3699,7 @@
+     mp = *mpp;
+     vim_free(mp->m_keys);
+     vim_free(mp->m_str);
++    vim_free(mp->m_orig_str);
+     *mpp = mp->m_next;
+     vim_free(mp);
+ }
+@@ -3851,12 +3869,57 @@
+     }
+ }
+ 
++/*
++ * Return characters to represent the map mode in an allocated string.
++ * Returns NULL when out of memory.
++ */
++    char_u *
++map_mode_to_chars(mode)
++    int mode;
++{
++    garray_T    mapmode;
++
++    ga_init2(&mapmode, 1, 7);
++
++    if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
++	ga_append(&mapmode, '!');			/* :map! */
++    else if (mode & INSERT)
++	ga_append(&mapmode, 'i');			/* :imap */
++    else if (mode & LANGMAP)
++	ga_append(&mapmode, 'l');			/* :lmap */
++    else if (mode & CMDLINE)
++	ga_append(&mapmode, 'c');			/* :cmap */
++    else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
++				 == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
++	ga_append(&mapmode, ' ');			/* :map */
++    else
++    {
++	if (mode & NORMAL)
++	    ga_append(&mapmode, 'n');			/* :nmap */
++	if (mode & OP_PENDING)
++	    ga_append(&mapmode, 'o');			/* :omap */
++	if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
++	    ga_append(&mapmode, 'v');			/* :vmap */
++	else
++	{
++	    if (mode & VISUAL)
++		ga_append(&mapmode, 'x');		/* :xmap */
++	    if (mode & SELECTMODE)
++		ga_append(&mapmode, 's');		/* :smap */
++	}
++    }
++
++    ga_append(&mapmode, NUL);
++    return (char_u *)mapmode.ga_data;
++}
++
+     static void
+ showmap(mp, local)
+     mapblock_T	*mp;
+     int		local;	    /* TRUE for buffer-local map */
+ {
+-    int len = 1;
++    int		len = 1;
++    char_u	*mapchars;
+ 
+     if (msg_didout || msg_silent != 0)
+     {
+@@ -3864,49 +3927,15 @@
+ 	if (got_int)	    /* 'q' typed at MORE prompt */
+ 	    return;
+     }
+-    if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
+-	msg_putchar('!');			/* :map! */
+-    else if (mp->m_mode & INSERT)
+-	msg_putchar('i');			/* :imap */
+-    else if (mp->m_mode & LANGMAP)
+-	msg_putchar('l');			/* :lmap */
+-    else if (mp->m_mode & CMDLINE)
+-	msg_putchar('c');			/* :cmap */
+-    else if ((mp->m_mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
+-				 == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
+-	msg_putchar(' ');			/* :map */
+-    else
++
++    mapchars = map_mode_to_chars(mp->m_mode);
++    if (mapchars != NULL)
+     {
+-	len = 0;
+-	if (mp->m_mode & NORMAL)
+-	{
+-	    msg_putchar('n');		/* :nmap */
+-	    ++len;
+-	}
+-	if (mp->m_mode & OP_PENDING)
+-	{
+-	    msg_putchar('o');		/* :omap */
+-	    ++len;
+-	}
+-	if ((mp->m_mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
+-	{
+-	    msg_putchar('v');		/* :vmap */
+-	    ++len;
+-	}
+-	else
+-	{
+-	    if (mp->m_mode & VISUAL)
+-	    {
+-		msg_putchar('x');		/* :xmap */
+-		++len;
+-	    }
+-	    if (mp->m_mode & SELECTMODE)
+-	    {
+-		msg_putchar('s');		/* :smap */
+-		++len;
+-	    }
+-	}
++	msg_puts(mapchars);
++	len = (int)STRLEN(mapchars);
++	vim_free(mapchars);
+     }
++
+     while (++len <= 3)
+ 	msg_putchar(' ');
+ 
+@@ -3931,8 +3960,7 @@
+ 	msg_putchar(' ');
+ 
+     /* Use FALSE below if we only want things like <Up> to show up as such on
+-     * the rhs, and not M-x etc, TRUE gets both -- webb
+-     */
++     * the rhs, and not M-x etc, TRUE gets both -- webb */
+     if (*mp->m_str == NUL)
+ 	msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
+     else
+@@ -4995,19 +5023,21 @@
+     sourcing_name = save_name;
+ }
+ 
+-#ifdef FEAT_EVAL
++#if defined(FEAT_EVAL) || defined(PROTO)
+ /*
+- * Check the string "keys" against the lhs of all mappings
+- * Return pointer to rhs of mapping (mapblock->m_str)
+- * NULL otherwise
++ * Check the string "keys" against the lhs of all mappings.
++ * Return pointer to rhs of mapping (mapblock->m_str).
++ * NULL when no mapping found.
+  */
+     char_u *
+-check_map(keys, mode, exact, ign_mod, abbr)
++check_map(keys, mode, exact, ign_mod, abbr, mp_ptr, local_ptr)
+     char_u	*keys;
+     int		mode;
+     int		exact;		/* require exact match */
+     int		ign_mod;	/* ignore preceding modifier */
+     int		abbr;		/* do abbreviations */
++    mapblock_T	**mp_ptr;	/* return: pointer to mapblock or NULL */
++    int		*local_ptr;	/* return: buffer-local mapping or NULL */
+ {
+     int		hash;
+     int		len, minlen;
+@@ -5062,7 +5092,17 @@
+ 			    minlen = mp->m_keylen - 3;
+ 		    }
+ 		    if (STRNCMP(s, keys, minlen) == 0)
++		    {
++			if (mp_ptr != NULL)
++			    *mp_ptr = mp;
++			if (local_ptr != NULL)
++#ifdef FEAT_LOCALMAP
++			    *local_ptr = local;
++#else
++			    *local_ptr = 0;
++#endif
+ 			return mp->m_str;
++		    }
+ 		}
+ 	    }
+ 	}
+diff -Naur vim73.orig/src/globals.h vim73/src/globals.h
+--- vim73.orig/src/globals.h	2010-07-23 19:20:45.000000000 +0000
++++ vim73/src/globals.h	2011-05-17 09:39:31.607919537 +0000
+@@ -510,8 +510,13 @@
+ EXTERN VimClipboard clip_plus;	/* CLIPBOARD selection in X11 */
+ # else
+ #  define clip_plus clip_star	/* there is only one clipboard */
++#  define ONE_CLIPBOARD
+ # endif
+-EXTERN int	clip_unnamed INIT(= FALSE);
++
++#define CLIP_UNNAMED      1
++#define CLIP_UNNAMED_PLUS 2
++EXTERN int	clip_unnamed INIT(= 0); /* above two values or'ed */
++
+ EXTERN int	clip_autoselect INIT(= FALSE);
+ EXTERN int	clip_autoselectml INIT(= FALSE);
+ EXTERN int	clip_html INIT(= FALSE);
+@@ -1052,10 +1057,6 @@
+ 			;
+ #endif
+ 
+-EXTERN linenr_T	write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
+-						of next binary write should
+-						not have an end-of-line */
+-
+ #ifdef FEAT_WINDOWS
+ EXTERN int	postponed_split INIT(= 0);  /* for CTRL-W CTRL-] command */
+ EXTERN int	postponed_split_flags INIT(= 0);  /* args for win_split() */
+@@ -1512,7 +1513,7 @@
+ EXTERN char_u e_sandbox[]	INIT(= N_("E48: Not allowed in sandbox"));
+ #endif
+ EXTERN char_u e_secure[]	INIT(= N_("E523: Not allowed here"));
+-#if defined(AMIGA) || defined(MACOS) || defined(MSWIN) || defined(RISCOS) \
++#if defined(AMIGA) || defined(MACOS) || defined(MSWIN)  \
+ 	|| defined(UNIX) || defined(VMS) || defined(OS2)
+ EXTERN char_u e_screenmode[]	INIT(= N_("E359: Screen mode setting not supported"));
+ #endif
+@@ -1560,6 +1561,9 @@
+ 	(defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+ EXTERN char_u e_notset[]	INIT(= N_("E764: Option '%s' is not set"));
+ #endif
++#ifndef FEAT_CLIPBOARD
++EXTERN char_u e_invalidreg[]    INIT(= N_("E850: Invalid register name"));
++#endif
+ 
+ #ifdef MACOS_X_UNIX
+ EXTERN short disallow_gui	INIT(= FALSE);
+diff -Naur vim73.orig/src/gui.c vim73/src/gui.c
+--- vim73.orig/src/gui.c	2010-08-08 13:01:18.000000000 +0000
++++ vim73/src/gui.c	2011-05-17 09:39:31.607919537 +0000
+@@ -105,8 +105,18 @@
+ 
+ #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+     if (gui.in_use)
++    {
++# ifdef FEAT_EVAL
++	Window	x11_window;
++	Display	*x11_display;
++
++	if (gui_get_x11_windis(&x11_window, &x11_display) == OK)
++	    set_vim_var_nr(VV_WINDOWID, (long)x11_window);
++# endif
++
+ 	/* Display error messages in a dialog now. */
+ 	display_errors();
++    }
+ #endif
+ 
+ #if defined(MAY_FORK) && !defined(__QNXNTO__)
+@@ -2146,7 +2156,7 @@
+ 
+     if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
+     {
+-#if defined(AMIGA) || defined(RISCOS)
++#if defined(AMIGA)
+ 	gui_mch_set_colors(bg_color, fg_color);
+ #else
+ 	gui_mch_set_fg_color(bg_color);
+@@ -2155,7 +2165,7 @@
+     }
+     else
+     {
+-#if defined(AMIGA) || defined(RISCOS)
++#if defined(AMIGA)
+ 	gui_mch_set_colors(fg_color, bg_color);
+ #else
+ 	gui_mch_set_fg_color(fg_color);
+@@ -2183,7 +2193,7 @@
+     if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
+ 	return FAIL;
+ 
+-#if defined(RISCOS) || defined(FEAT_GUI_GTK)
++#if defined(FEAT_GUI_GTK)
+     /* If there's no italic font, then fake it.
+      * For GTK2, we don't need a different font for italic style. */
+     if (hl_mask_todo & HL_ITALIC)
+@@ -2352,7 +2362,7 @@
+     if (draw_sign)
+ 	/* Draw the sign on top of the spaces. */
+ 	gui_mch_drawsign(gui.row, col, gui.highlight_mask);
+-# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_MOTIF) \
++# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
+ 	|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
+     if (multi_sign)
+ 	netbeans_draw_multisign_indicator(gui.row);
+@@ -2975,26 +2985,11 @@
+ 	    did_clip = TRUE;
+ 	}
+ 	/* Allow the left button to start the selection */
+-	else if (button ==
+-# ifdef RISCOS
+-		/* Only start a drag on a drag event. Otherwise
+-		 * we don't get a release event. */
+-		    MOUSE_DRAG
+-# else
+-		    MOUSE_LEFT
+-# endif
+-				)
+-	{
+-	    clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+-	    did_clip = TRUE;
+-	}
+-# ifdef RISCOS
+ 	else if (button == MOUSE_LEFT)
+ 	{
+-	    clip_clear_selection();
++	    clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+ 	    did_clip = TRUE;
+ 	}
+-# endif
+ 
+ 	/* Always allow pasting */
+ 	if (button != MOUSE_MIDDLE)
+@@ -4893,7 +4888,7 @@
+ 		if (STRLEN(p) > 2000)
+ 		    STRCPY(p + 2000 - 14, "...(truncated)");
+ 		(void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
+-					      p, (char_u *)_("&Ok"), 1, NULL);
++				       p, (char_u *)_("&Ok"), 1, NULL, FALSE);
+ 		break;
+ 	    }
+ 	ga_clear(&error_ga);
+diff -Naur vim73.orig/src/gui.h vim73/src/gui.h
+--- vim73.orig/src/gui.h	2010-07-17 19:40:58.000000000 +0000
++++ vim73/src/gui.h	2011-05-17 09:39:31.611919093 +0000
+@@ -52,10 +52,6 @@
+ # include <SegLoad.h>*/
+ #endif
+ 
+-#ifdef RISCOS
+-# include "gui_riscos.h"
+-#endif
+-
+ #ifdef FEAT_GUI_PHOTON
+ # include <Ph.h>
+ # include <Pt.h>
+@@ -151,7 +147,7 @@
+ #define DRAW_BOLD		0x02	/* draw bold text */
+ #define DRAW_UNDERL		0x04	/* draw underline text */
+ #define DRAW_UNDERC		0x08	/* draw undercurl text */
+-#if defined(RISCOS) || defined(FEAT_GUI_GTK)
++#if defined(FEAT_GUI_GTK)
+ # define DRAW_ITALIC		0x10	/* draw italic text */
+ #endif
+ #define DRAW_CURSOR		0x20	/* drawing block cursor (win32) */
+@@ -219,9 +215,6 @@
+ #ifdef FEAT_GUI_MAC
+     ControlHandle id;		/* A handle to the scrollbar */
+ #endif
+-#ifdef RISCOS
+-    int		id;		/* Window handle of scrollbar window */
+-#endif
+ #ifdef FEAT_GUI_PHOTON
+     PtWidget_t	*id;
+ #endif
+@@ -450,14 +443,6 @@
+     int		visibility;	    /* Is window partially/fully obscured? */
+ #endif
+ 
+-#ifdef RISCOS
+-    int		window_handle;
+-    char_u	*window_title;
+-    int		window_title_size;
+-    int		fg_colour;		/* in 0xBBGGRR format */
+-    int		bg_colour;
+-#endif
+-
+ #ifdef FEAT_GUI_PHOTON
+     PtWidget_t	*vimWindow;		/* PtWindow */
+     PtWidget_t	*vimTextArea;		/* PtRaw */
+diff -Naur vim73.orig/src/gui_athena.c vim73/src/gui_athena.c
+--- vim73.orig/src/gui_athena.c	2010-08-08 13:01:39.000000000 +0000
++++ vim73/src/gui_athena.c	2011-05-17 09:36:14.481798035 +0000
+@@ -2117,13 +2117,14 @@
+ }
+ 
+     int
+-gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield)
++gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
+     int		type UNUSED;
+     char_u	*title;
+     char_u	*message;
+     char_u	*buttons;
+     int		dfltbutton UNUSED;
+     char_u	*textfield;
++    int		ex_cmd UNUSED;
+ {
+     char_u		*buts;
+     char_u		*p, *next;
+diff -Naur vim73.orig/src/gui_gtk.c vim73/src/gui_gtk.c
+--- vim73.orig/src/gui_gtk.c	2010-07-20 11:15:22.000000000 +0000
++++ vim73/src/gui_gtk.c	2011-05-17 09:36:14.481798035 +0000
+@@ -1268,7 +1268,8 @@
+ 	       char_u	*message,   /* message text */
+ 	       char_u	*buttons,   /* names of buttons */
+ 	       int	def_but,    /* default button */
+-	       char_u	*textfield) /* text for textfield or NULL */
++	       char_u	*textfield, /* text for textfield or NULL */
++	       int	ex_cmd UNUSED)
+ {
+     GtkWidget	*dialog;
+     GtkWidget	*entry = NULL;
+@@ -1287,6 +1288,9 @@
+ 	entry = gtk_entry_new();
+ 	gtk_widget_show(entry);
+ 
++	/* Make Enter work like pressing OK. */
++        gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
++
+ 	text = CONVERT_TO_UTF8(textfield);
+ 	gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
+ 	CONVERT_TO_UTF8_FREE(text);
+@@ -1795,7 +1799,6 @@
+     char_u		*repl_text;
+     gboolean		direction_down;
+     SharedFindReplace	*sfr;
+-    int			rc;
+ 
+     flags = (int)(long)data;	    /* avoid a lint warning here */
+ 
+@@ -1821,7 +1824,7 @@
+ 
+     repl_text = CONVERT_FROM_UTF8(repl_text);
+     find_text = CONVERT_FROM_UTF8(find_text);
+-    rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
++    gui_do_findrepl(flags, find_text, repl_text, direction_down);
+     CONVERT_FROM_UTF8_FREE(repl_text);
+     CONVERT_FROM_UTF8_FREE(find_text);
+ }
+diff -Naur vim73.orig/src/gui_gtk_x11.c vim73/src/gui_gtk_x11.c
+--- vim73.orig/src/gui_gtk_x11.c	2010-08-15 11:52:15.000000000 +0000
++++ vim73/src/gui_gtk_x11.c	2011-05-17 09:37:27.149732729 +0000
+@@ -86,9 +86,10 @@
+ 
+ #ifdef HAVE_X11_SUNKEYSYM_H
+ # include <X11/Sunkeysym.h>
+-static guint32 clipboard_event_time = CurrentTime;
+ #endif
+ 
++static guint32 clipboard_event_time = CurrentTime;
++
+ /*
+  * Easy-to-use macro for multihead support.
+  */
+@@ -3093,7 +3094,7 @@
+     gtk_drag_dest_set(gui.drawarea,
+ 		      GTK_DEST_DEFAULT_ALL,
+ 		      targets, n_targets,
+-		      GDK_ACTION_COPY);
++		      GDK_ACTION_COPY | GDK_ACTION_MOVE);
+ }
+ 
+ /*
+@@ -5419,7 +5420,7 @@
+ 	}
+ 
+ #if defined(FEAT_NETBEANS_INTG)
+-	/* Process the queued netbeans messages. */
++	/* Process any queued netbeans messages. */
+ 	netbeans_parse_messages();
+ #endif
+ 
+diff -Naur vim73.orig/src/gui_mac.c vim73/src/gui_mac.c
+--- vim73.orig/src/gui_mac.c	2010-08-14 19:39:54.000000000 +0000
++++ vim73/src/gui_mac.c	2011-05-17 09:36:14.485797591 +0000
+@@ -1480,7 +1480,7 @@
+  *
+  *  Returns the index inside the menu wher
+  */
+-    short /* Shoulde we return MenuItemIndex? */
++    short /* Should we return MenuItemIndex? */
+ gui_mac_get_menu_item_index(vimmenu_T *pMenu)
+ {
+     short	index;
+@@ -1823,7 +1823,7 @@
+ 	p.h += gui.scrollbar_width;
+     if (gui.which_scrollbars[SBAR_RIGHT])
+ 	p.h += gui.scrollbar_width;
+-    /* ideal height is as heigh as we can get */
++    /* ideal height is as high as we can get */
+     p.v = 15 * 1024;
+ 
+     thePart = IsWindowInStandardState(whichWindow, &p, &r)
+@@ -4481,7 +4481,7 @@
+ 	 * event arrives.  No need to check for input_buf_full because we are
+ 	 * returning as soon as it contains a single char.
+ 	 */
+-	/* TODO: reduce wtime accordinly???  */
++	/* TODO: reduce wtime accordingly???  */
+ 	if (wtime > -1)
+ 	    sleeppyTick = 60 * wtime / 1000;
+ 	else
+@@ -5583,7 +5583,8 @@
+     char_u	*message,
+     char_u	*buttons,
+     int		dfltbutton,
+-    char_u	*textfield)
++    char_u	*textfield,
++    int		ex_cmd)
+ {
+     Handle	buttonDITL;
+     Handle	iconDITL;
+@@ -5723,13 +5724,13 @@
+     iconDITL = GetResource('DITL', 131);
+     switch (type)
+     {
+-	case VIM_GENERIC:  useIcon = kNoteIcon;
+-	case VIM_ERROR:    useIcon = kStopIcon;
+-	case VIM_WARNING:  useIcon = kCautionIcon;
+-	case VIM_INFO:     useIcon = kNoteIcon;
+-	case VIM_QUESTION: useIcon = kNoteIcon;
+-	default:      useIcon = kStopIcon;
+-    };
++	case VIM_GENERIC:
++	case VIM_INFO:
++	case VIM_QUESTION: useIcon = kNoteIcon; break;
++	case VIM_WARNING:  useIcon = kCautionIcon; break;
++	case VIM_ERROR:    useIcon = kStopIcon; break;
++	default:           useIcon = kStopIcon;
++    }
+     AppendDITL(theDialog, iconDITL, overlayDITL);
+     ReleaseResource(iconDITL);
+     GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
+@@ -5892,7 +5893,7 @@
+ 
+     return itemHit;
+ /*
+- * Usefull thing which could be used
++ * Useful thing which could be used
+  * SetDialogTimeout(): Auto click a button after timeout
+  * SetDialogTracksCursor() : Get the I-beam cursor over input box
+  * MoveDialogItem():	    Probably better than SetDialogItem
+@@ -6100,7 +6101,7 @@
+ #endif
+ 
+ /*
+- * Transfered from os_mac.c for MacOS X using os_unix.c prep work
++ * Transferred from os_mac.c for MacOS X using os_unix.c prep work
+  */
+ 
+     int
+@@ -6543,7 +6544,7 @@
+ static ControlRef dataBrowser = NULL;
+ 
+ // when the tabline is hidden, vim doesn't call update_tabline(). When
+-// the tabline is shown again, show_tabline() is called before upate_tabline(),
++// the tabline is shown again, show_tabline() is called before update_tabline(),
+ // and because of this, the tab labels and vims internal tabs are out of sync
+ // for a very short time. to prevent inconsistent state, we store the labels
+ // of the tabs, not pointers to the tabs (which are invalid for a short time).
+diff -Naur vim73.orig/src/gui_motif.c vim73/src/gui_motif.c
+--- vim73.orig/src/gui_motif.c	2010-08-08 13:04:15.000000000 +0000
++++ vim73/src/gui_motif.c	2011-05-17 09:36:14.485797591 +0000
+@@ -2549,13 +2549,14 @@
+ #endif
+ 
+     int
+-gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield)
++gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield, ex_cmd)
+     int		type UNUSED;
+     char_u	*title;
+     char_u	*message;
+     char_u	*button_names;
+     int		dfltbutton;
+     char_u	*textfield;		/* buffer of size IOSIZE */
++    int		ex_cmd UNUSED;
+ {
+     char_u		*buts;
+     char_u		*p, *next;
+diff -Naur vim73.orig/src/gui_photon.c vim73/src/gui_photon.c
+--- vim73.orig/src/gui_photon.c	2010-05-15 11:04:08.000000000 +0000
++++ vim73/src/gui_photon.c	2011-05-17 09:36:14.485797591 +0000
+@@ -1502,7 +1502,8 @@
+ 	char_u	*message,
+ 	char_u	*buttons,
+ 	int	default_button,
+-	char_u	*textfield)
++	char_u	*textfield,
++	int	ex_cmd)
+ {
+     char_u	*str;
+     char_u	**button_array;
+diff -Naur vim73.orig/src/gui_riscos.c vim73/src/gui_riscos.c
+--- vim73.orig/src/gui_riscos.c	2010-05-15 11:04:09.000000000 +0000
++++ vim73/src/gui_riscos.c	1970-01-01 00:00:00.000000000 +0000
+@@ -1,3558 +0,0 @@
+-/* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved	by Bram Moolenaar
+- *
+- * Do ":help uganda"  in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- * See README.txt for an overview of the Vim source code.
+- */
+-
+-#include "vim.h"
+-#include <string.h>
+-
+-/*
+- * gui_riscos.c
+- *
+- * Thomas Leonard <tal197@ecs.soton.ac.uk>
+- * Updated by Andy Wingate <andy@sparse.net>
+- */
+-
+-extern int time_of_last_poll;
+-
+-int task_handle = 0;		/* Zero means we are not yet a Wimp task */
+-int child_handle = 0;		/* Task handle of our child process (zero if none). */
+-int *wimp_menu = (int *) -1;	/* Pointer to a Wimp menu structure (or -1) */
+-int save_window = -1;		/* Save As window handle */
+-
+-int *redraw_block = NULL;	/* NULL means not in a redraw loop. */
+-int ro_return_early = FALSE;	/* Break out of gui_mch_wait_for_chars() */
+-
+-int leaf_ref = 0;		/* Wimp message number - send via Wimp$Scrap */
+-char_u *leaf_name = NULL;	/* Leaf name from DataSave */
+-
+-int default_columns = 120;	/* These values are used if the --rows and --columns */
+-int default_rows = 32;		/* options aren't used on startup. */
+-
+-#define DRAG_FALSE	    0
+-#define DRAG_SELECTION	    1
+-#define DRAG_RESIZE_WINDOW  2
+-int ro_dragging = DRAG_FALSE;
+-int drag_button;
+-int drag_modifiers;
+-int drag_x_offset;
+-int drag_y_offset;
+-
+-int nested_wimp = FALSE;	/* Bool - can we use the new wimp? */
+-
+-int changed_mode = FALSE;
+-int x_eigen_factor;
+-int y_eigen_factor;
+-
+-/* If ro_current_font is non-zero then use the outline font with that handle,
+- * otherwise, if zap_redraw is TRUE then use ZapRedraw, otherwise use the
+- * system font.
+- *
+- * If zap_redraw is TRUE then zap_file[] contains valid Zap font file
+- * pointers (or NULLs).
+- */
+-int ro_current_font = 0;	/* 0 is system font, or ZapRedraw */
+-int font_x_offset   = 0;	/* Where to position each char in its box */
+-int font_y_offset   = 0;
+-
+-int zap_redraw	    = FALSE;
+-int double_height   = FALSE;	/* Plot each line twice? */
+-
+-#define grgb(r,g,b) ((b<<16) + (g<<8) + (r))
+-#define UNUSED_COLOUR (gui.back_pixel)
+-
+-#define RO_LOAD_CLIPBOARD -2	/* Internal handle for DataSave message. */
+-
+-/* Changes by John Kortink, 22-23 July 1998
+- *
+- * Stuff to make redraw a lot faster. Almost all of it is right here below,
+- * elsewhere changes are marked with 'JK230798'. Apart from a small change in
+- * 'gui.c' all changes are limited to this file, 'gui_riscos.c'. The change in
+- * 'gui.c' is to make Vim stop being 'smart' not redrawing characters that are
+- * 'already there' (i.e. from the previous line, by coincidence). This caused a
+- * lot more calls to the redraw code, which we want to avoid because a few nice
+- * big strings at a time is a lot faster than a truckload of small ones. ('Dear
+- * Bram ...').
+- */
+-
+-/* The ZapRedraw structure */
+-
+-static struct
+-{
+-    int		r_flags;
+-    int		r_minx;
+-    int		r_miny;
+-    int		r_maxx;
+-    int		r_maxy;
+-    int		r_screen;
+-    int		r_bpl;
+-    int		r_bpp;
+-    int		r_charw;
+-    int		r_charh;
+-    char	*r_caddr;
+-    int		r_cbpl;
+-    int		r_cbpc;
+-    int		r_linesp;
+-    int		r_data;
+-    int		r_scrollx;
+-    int		r_scrolly;
+-    int		*r_palette;
+-    int		r_for;
+-    int		r_bac;
+-    char	*r_workarea;
+-    int		r_magx;
+-    int		r_magy;
+-    int		r_xsize;
+-    int		r_ysize;
+-    int		r_mode;
+-}
+-zap_redraw_block;
+-
+-/* Other globals */
+-
+-static int	zap_redraw_initialised = FALSE;
+-static int	zap_redraw_update_colours;
+-static int	zap_redraw_colours[2];
+-static int	zap_redraw_palette[16];
+-
+-/* Holds the current Zap font file(s).
+- * The font is recreated from this block on a mode change.
+- * When using zap, element ZAP_NORMAL is always valid, but
+- * the others can be NULL.
+- */
+-
+-#define ZAP_NORMAL  0
+-#define ZAP_BOLD    1
+-#define ZAP_ITALIC  2
+-#define ZAP_BITALIC 3
+-#define ZAP_STYLES  4
+-
+-/* Zap font file format data */
+-static char	*zap_file[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+-
+-/* r_caddr format for current mode */
+-static char	*zap_caddr[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+-
+-static void ro_remove_menu(int *menu);
+-
+-/*
+- * Initialise all the ZapRedraw stuff.
+- * Call this when changing font and after each mode change.
+- * zap_redraw_bitmap must contain a valid Zap font file (possibly
+- * created from the system font).
+- *
+- * Return FAIL to revert to system font (if we can't use ZapRedraw).
+- */
+-    int
+-ro_zap_redraw_initialise()
+-{
+-    int	    bytes_per_bitmap_char;
+-    int	    first, last;
+-    int	    i;
+-
+-    /* Can't have initialisers for struct members :-(, ok, this way then ... */
+-    if (!zap_redraw_initialised)
+-    {
+-	zap_redraw_block.r_workarea = NULL;
+-	zap_redraw_initialised = TRUE;
+-    }
+-
+-    /* We redraw in DSA mode */
+-    zap_redraw_block.r_flags = 0x0;
+-
+-    /* Let ZapRedraw get the screen address for us */
+-    zap_redraw_block.r_screen = 0;
+-
+-    /* Read the font width and height from the font file header.
+-     * Assume that all styles are the same size.
+-     * ZAP_NORMAL is always present.
+-     */
+-    zap_redraw_block.r_charw = ((int *) zap_file[ZAP_NORMAL])[2];
+-    zap_redraw_block.r_charh = ((int *) zap_file[ZAP_NORMAL])[3];
+-
+-    /* We have no linespacing */
+-    zap_redraw_block.r_linesp = 0;
+-
+-    /* Fix foreground = colour 1 */
+-    zap_redraw_block.r_for = 1;
+-
+-    /* Fix background = colour 0 */
+-    zap_redraw_block.r_bac = 0;
+-
+-    /* Colour mask buffer */
+-    zap_redraw_block.r_palette = zap_redraw_palette;
+-
+-    /* Allocate local workspace (for the few calls following here) */
+-    if (zap_redraw_block.r_workarea != NULL)
+-	free(zap_redraw_block.r_workarea);
+-    zap_redraw_block.r_workarea = (char*) malloc(128);
+-    if (!zap_redraw_block.r_workarea)
+-	return FAIL;	/* Out of memory */
+-
+-    /* Fill in VDU variables */
+-    if (xswi(ZapRedraw_ReadVduVars, 0, &zap_redraw_block) & v_flag)
+-	return FAIL;	    /* Can't find ZapRedraw module - use VDU instead */
+-
+-    /* Determine cbpl and cbpc */
+-    swi(ZapRedraw_CachedCharSize, zap_redraw_block.r_bpp, 0,
+-	zap_redraw_block.r_charw, zap_redraw_block.r_charh);
+-    zap_redraw_block.r_cbpl = r2;
+-    zap_redraw_block.r_cbpc = r3;
+-
+-    /* Allocate general workspace (for the calls outside) */
+-    if (zap_redraw_block.r_workarea != NULL)
+-	free(zap_redraw_block.r_workarea);
+-    zap_redraw_block.r_workarea = (char*) malloc(128 + zap_redraw_block.r_cbpl);
+-    if (!zap_redraw_block.r_workarea)
+-	return FAIL;	/* Out of memory */
+-
+-    /* Now convert the 1 bpp character data ready for the current mode */
+-
+-    bytes_per_bitmap_char = (zap_redraw_block.r_charw * zap_redraw_block.r_charh + 7) / 8;
+-
+-    /* Convert the fonts from 1bpp to a format suitable for the
+-     * current mode.
+-     */
+-    for (i = 0; i < ZAP_STYLES; i++)
+-    {
+-	first = ((int *) zap_file[i])[4];
+-	last  = ((int *) zap_file[i])[5];
+-
+-	if (last > 255)
+-	    last = 255;	/* Don't convert cursors (overwrites memory!) */
+-
+-	/* Allocate the font cache */
+-	vim_free(zap_caddr[i]);
+-	if (zap_file[i])
+-	    zap_caddr[i] = (char*) malloc(zap_redraw_block.r_cbpc * 256);
+-	else
+-	    zap_caddr[i] = NULL;    /* No file for this style */
+-
+-	if (zap_caddr[i])
+-	{
+-	    zap_redraw_block.r_caddr = zap_caddr[i];
+-
+-	    swi(ZapRedraw_ConvertBitmap, 0, &zap_redraw_block,
+-		    first, last,		/* Range of characters to convert */
+-		    zap_file[i] + 0x20	/* Addr of first char provided by font */
+-		    - first * bytes_per_bitmap_char);
+-	}
+-    }
+-
+-    if (!zap_caddr[ZAP_NORMAL])
+-    {
+-	zap_redraw = FALSE;	/* Out of memory */
+-	return FAIL;
+-    }
+-
+-    /* Next time we need them, we have to update the colour masks */
+-    zap_redraw_update_colours = TRUE;
+-
+-    return OK;
+-}
+-
+-/*
+- * Redraw a string at OS coordinates <x,y> (top-left, x inclusive, y exclusive).
+- * Graphics clip window is window[0..3] as in R1+28..40 of Wimp_RedrawWindow.
+- * Returns (possibly modified) flags.
+- */
+-    int
+-ro_zap_redraw_draw_string(x, y, string, length, flags, clip)
+-    int	    x;
+-    int	    y;
+-    char    *string;
+-    int	    length;
+-    int	    flags;	/* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL, DRAW_ITALIC */
+-    int	    *clip;
+-{
+-    char redraw_data[1024];
+-    int clip_minx;
+-    int clip_miny;
+-    int clip_maxx;
+-    int clip_maxy;
+-    int os_xshift = zap_redraw_block.r_magx;
+-    int os_yshift = zap_redraw_block.r_magy;
+-
+-    if (flags & DRAW_TRANSP)
+-	return flags;	/* We don't do transparent plotting yet. */
+-
+-    if (flags & DRAW_BOLD)
+-    {
+-	if (flags & DRAW_ITALIC && zap_caddr[ZAP_BITALIC])
+-	    zap_redraw_block.r_caddr = zap_caddr[ZAP_BITALIC];
+-	else
+-	    zap_redraw_block.r_caddr = zap_caddr[ZAP_BOLD];
+-    }
+-    else
+-    {
+-	if (flags & DRAW_ITALIC)
+-	    zap_redraw_block.r_caddr = zap_caddr[ZAP_ITALIC];
+-	else
+-	    zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+-    }
+-    if (!zap_redraw_block.r_caddr)
+-    {
+-	zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+-	flags |= DRAW_UNDERL;	    /* Style missing - we can always underline */
+-    }
+-
+-    /* Set the vertical scaling flag */
+-    if (double_height)
+-	zap_redraw_block.r_flags = 1 << 1;
+-    else
+-	zap_redraw_block.r_flags = 0;
+-
+-    /* Update the colour masks (if needed) */
+-    if (zap_redraw_update_colours)
+-    {
+-	swi(ZapRedraw_CreatePalette, 2,
+-		&zap_redraw_block,
+-		zap_redraw_colours,
+-		zap_redraw_block.r_palette, 2);
+-	zap_redraw_update_colours = FALSE;
+-    }
+-
+-    /* Target rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+-    zap_redraw_block.r_minx = x >> os_xshift;					/* inclusive */
+-    zap_redraw_block.r_miny = zap_redraw_block.r_ysize - (y >> os_yshift);	/* inclusive */
+-    zap_redraw_block.r_maxx = (x + length * gui.char_width) >> os_xshift;	/* exclusive */
+-    zap_redraw_block.r_maxy = zap_redraw_block.r_ysize - ((y - gui.char_height) >> os_yshift);
+-										/* exclusive */
+-
+-    /* Clip rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+-    clip_minx = clip[0] >> os_xshift;					/* inclusive */
+-    clip_miny = zap_redraw_block.r_ysize - (clip[3] >> os_yshift);	/* inclusive */
+-    clip_maxx = clip[2] >> os_xshift;					/* exclusive */
+-    clip_maxy = zap_redraw_block.r_ysize - (clip[1] >> os_yshift);	/* exclusive */
+-
+-    /* Clip target rectangle against the current graphics window */
+-    if (zap_redraw_block.r_minx < clip_minx)
+-    {
+-	zap_redraw_block.r_scrollx = clip_minx - zap_redraw_block.r_minx;
+-	zap_redraw_block.r_minx = clip_minx;
+-    }
+-    else
+-	zap_redraw_block.r_scrollx = 0;
+-    if (zap_redraw_block.r_miny < clip_miny)
+-    {
+-	zap_redraw_block.r_scrolly = clip_miny - zap_redraw_block.r_miny;
+-	zap_redraw_block.r_miny = clip_miny;
+-    }
+-    else
+-	zap_redraw_block.r_scrolly = 0;
+-    if (zap_redraw_block.r_maxx > clip_maxx)
+-	zap_redraw_block.r_maxx = clip_maxx;
+-    if (zap_redraw_block.r_maxy > clip_maxy)
+-	zap_redraw_block.r_maxy = clip_maxy;
+-
+-    /* Fill in the character data structure */
+-    if (length > (sizeof(redraw_data) - 2 * 4 - 2))
+-	length = sizeof(redraw_data) - 2 * 4 - 2;
+-    ((int*) redraw_data)[0] = 2 * 4;
+-    ((int*) redraw_data)[1] = 0;
+-    strncpy(redraw_data + 2 * 4, string, length);
+-    redraw_data[2 * 4 + length + 0] = '\0';
+-    redraw_data[2 * 4 + length + 1] = '\x2';
+-    zap_redraw_block.r_data = (int) redraw_data;
+-
+-    /* Perform the draw */
+-    swi(ZapRedraw_RedrawArea, 0, &zap_redraw_block);
+-
+-    return flags;
+-}
+-
+-/*
+- * Okay that was it from me, back to Thomas ...
+- */
+-
+-/*
+- * Parse the GUI related command-line arguments.  Any arguments used are
+- * deleted from argv, and *argc is decremented accordingly.  This is called
+- * when vim is started, whether or not the GUI has been started.
+- */
+-    void
+-gui_mch_prepare(int *argc, char **argv)
+-{
+-    int	    arg = 1;
+-
+-    while (arg < *argc - 1)
+-    {
+-	if (strcmp(argv[arg], "--rows") == 0 || strcmp(argv[arg], "--columns") == 0)
+-	{
+-	    int	    value;
+-
+-	    value = atoi(argv[arg + 1]);
+-
+-	    if (argv[arg][2] == 'r')
+-		default_rows = value;
+-	    else
+-		default_columns = value;
+-
+-	    /* Delete argument from argv[]. (hope this is read/write!) */
+-
+-	    *argc -= 2;
+-	    if (*argc > arg)
+-	    mch_memmove(&argv[arg], &argv[arg + 2], (*argc - arg)
+-		    * sizeof(char *));
+-	}
+-	else
+-	    arg++;
+-    }
+-}
+-
+-/* Fatal error on initialisation - report it and die. */
+-    void
+-ro_die(error)
+-    char_u *error;	/* RISC OS error block */
+-{
+-    swi(Wimp_ReportError, error, 5, "GVim");
+-    exit(EXIT_FAILURE);
+-}
+-
+-/* Find the sizes of the window tools:
+- *
+- * Create a test window.
+- * Find inner and outer sizes.
+- * Find the difference.
+- * Delete window.
+- *
+- * While we're here, find the eigen values too.
+- */
+-    void
+-ro_measure_tools()
+-{
+-    int block[10];
+-    int vdu[] = { 4, 5, -1};
+-    int test_window[] =
+-	{
+-	    -100, -100,		/* Visible area : min X,Y */
+-	    -50, -50,		/*		  max X,Y */
+-	    0,   0,		/* Scroll offsets */
+-	    -1,			/* Window in front */
+-	    0xd0800150,		/* Window flags */
+-	    0xff070207,		/* Colours */
+-	    0x000c0103,		/* More colours */
+-	    0, -0x4000,		/* Workarea extent */
+-	    0x4000, 0,		/* max X,Y */
+-	    0x00000000,		/* No title */
+-	    0 << 12,		/* No workarea button type */
+-	    1,			/* Wimp sprite area */
+-	    0x00010001,		/* Minimum width, height */
+-	    0, 0, 0,		/* Title data (none) */
+-	    0			/* No icons */
+-	};
+-    int inner_max_x, inner_min_y;
+-
+-    swi(Wimp_CreateWindow, 0, test_window);
+-
+-    block[0] = r0;
+-    /* Open the window (and read state).
+-     * GetWindowOutline needs it too if the wimp isn't nested.
+-     */
+-    swi(Wimp_OpenWindow, 0, block);
+-    inner_max_x = block[3];
+-    inner_min_y = block[2];
+-
+-    swi(Wimp_GetWindowOutline, 0, block);
+-
+-    gui.scrollbar_width = block[3] - inner_max_x;
+-    gui.scrollbar_height = inner_min_y - block[2];
+-
+-    swi(Wimp_DeleteWindow, 0, block);
+-
+-    /* Read the size of one pixel. */
+-    swi(OS_ReadVduVariables, vdu, vdu);
+-    x_eigen_factor = vdu[0];
+-    y_eigen_factor = vdu[1];
+-}
+-
+-/* Load a template from the current templates file.
+- * Create the window and return its handle.
+- */
+-    int
+-ro_load_template(str_name, title, title_size)
+-    char_u  *str_name;      /* Identifier of window in file (max 12 chars)   */
+-    char_u  **title;	    /* If not NULL then return pointer to title here */
+-    int     *title_size;    /* If not NULL then return the title length here */
+-{
+-    int     *window;
+-    char    *data;
+-    int     name[4];
+-
+-    strcpy( (char *) name, str_name);
+-
+-    /* Find how big we must make the buffers */
+-
+-    if (xswi(Wimp_LoadTemplate, 0, 0, 0, 0, -1, name, 0) & v_flag)
+-	ro_die( (char *) r0);
+-
+-    window = malloc(r1);	/* Don't print text messages from alloc() */
+-    data = malloc(r2);
+-    if (window == NULL || data == NULL)
+-	ro_die("\0\0\0\0Out of memory - Can't load templates");
+-
+-    /* Load the template into the buffers */
+-
+-    swi(Wimp_LoadTemplate, 0,
+-				window,		/* Temp block */
+-				data,		/* Icon data */
+-				data + r2 + 1,	/* End of icon data */
+-				-1,		/* No fonts */
+-				name, 0);	/* First match */
+-    if (r6 == 0)
+-	ro_die("\0\0\0\0Can't find window in Templates file");
+-
+-    /* Create the window */
+-
+-    if (xswi(Wimp_CreateWindow, 0, window) & v_flag)
+-	ro_die( (char *) r0);
+-
+-    if (title)
+-	*title = (char_u *) window[18];
+-    if (title_size)
+-	*title_size = window[20];
+-
+-    free(window);	/* Free temp block */
+-    return r0;		/* Return the window handle */
+-}
+-
+-/*
+- * Check if the GUI can be started.  Called before gvimrc is sourced.
+- * Return OK or FAIL.
+- */
+-    int
+-gui_mch_init_check()
+-{
+-    return OK;		/* TODO: GUI can always be started? */
+-}
+-
+-/*
+- * Initialise the RISC OS GUI.
+- * Create all the windows.
+- * Returns OK for success, FAIL when the GUI can't be started.
+- */
+-    int
+-gui_mch_init()
+-{
+-    int     messages[] = {
+-	    1, 2, 3, 4,	/* DataSave, DataSaveAck, DataLoad, DataLoadAck */
+-	    8,		/* PreQuit */
+-	    0xf,	/* ClaimEntity (for clipboard) */
+-	    0x10,	/* DataRequest (for clipboard) */
+-	    0x400c1,	/* Mode change */
+-	    0x400c3,	/* TaskCloseDown */
+-	    0x400c9,	/* MenusDeleted */
+-	    0x808c1,	/* TW_Output */
+-	    0x808c2,    /* TW_Ego */
+-	    0x808c3,	/* TW_Morio */
+-	    0x808c4,	/* TW_Morite */
+-	    0};		/* End-of-list. */
+-
+-
+-    /* There may have been some errors reported in the
+-     * command window before we get here. Wait if so.
+-     */
+-    swi(Wimp_ReadSysInfo, 3);
+-    if (r0 == 0)
+-	swi(Wimp_CommandWindow, 0);	/* Window opened - close with prompt */
+-
+-    if (xswi(Wimp_Initialise, 310, 0x4b534154, "GVim", messages) & v_flag)
+-	return FAIL;
+-    nested_wimp = r0 >= 397;
+-    task_handle = r1;
+-
+-    /* Load the templates. */
+-
+-    if (xswi(Wimp_OpenTemplate, 0, "Vim:Templates") & v_flag)
+-	ro_die( (char *) r0);
+-
+-    gui.window_handle = ro_load_template("editor",
+-	    &gui.window_title,
+-	    &gui.window_title_size);
+-
+-    save_window = ro_load_template("save", NULL, NULL);
+-
+-    swi(Wimp_CloseTemplate);
+-
+-    /* Set default foreground and background colours. */
+-
+-    gui.norm_pixel = gui.def_norm_pixel;
+-    gui.back_pixel = gui.def_back_pixel;
+-
+-    /* Get the colours from the "Normal" and "Menu" group (set in syntax.c or
+-     * in a vimrc file) */
+-
+-    set_normal_colors();
+-
+-    /*
+-     * Check that none of the colors are the same as the background color
+-     */
+-
+-    gui_check_colors();
+-
+-    /* Get the colours for the highlight groups (gui_check_colors() might have
+-     * changed them) */
+-
+-    highlight_gui_started();		/* re-init colours and fonts */
+-
+-    /* Set geometry based on values read on initialisation. */
+-
+-    gui.num_cols = Columns = default_columns;
+-    gui.num_rows = Rows    = default_rows;
+-
+-    /* Get some information about our environment. */
+-
+-    ro_measure_tools();
+-
+-    return OK;
+-}
+-
+-/*
+- * Called when the foreground or background colour has been changed.
+- */
+-    void
+-gui_mch_new_colors()
+-{
+-}
+-
+-/*
+- * Open the GUI window which was created by a call to gui_mch_init().
+- */
+-    int
+-gui_mch_open(void)
+-{
+-    int block[10];
+-
+-    block[0] = gui.window_handle;
+-    swi(Wimp_GetWindowState, 0, block);
+-    block[7] = -1;		    /* Open at the top of the stack */
+-    swi(Wimp_OpenWindow, 0, block);
+-
+-    /* Give the new window the input focus */
+-    swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+-    if (gui_win_x != -1 && gui_win_y != -1)
+-	gui_mch_set_winpos(gui_win_x, gui_win_y);
+-
+-    return OK;
+-}
+-
+-    void
+-gui_mch_exit(int rc)
+-{
+-    int	    block[64];
+-
+-    /* Close window. Stops us from getting troublesome events
+-     * if we take a while to die.
+-     */
+-    block[0] = gui.window_handle;
+-    swi(Wimp_CloseWindow, 0, block);
+-
+-    if (child_handle)
+-    {
+-	/* We still have a sub-task running - kill it */
+-	block[0] = 20;
+-	block[3] = 0;
+-	block[4] = 0;	    /* Quit */
+-	if ((xswi(Wimp_SendMessage, 17, block, child_handle) & v_flag) == 0)
+-	{
+-	    /* Idle until child dies. */
+-	    while (child_handle)
+-	    {
+-		process_event(wimp_poll(1, block), block);
+-	    }
+-	}
+-    }
+-
+-    exit(rc);
+-}
+-
+-/*
+- * Get the position of the top left corner of the window.
+- */
+-    int
+-gui_mch_get_winpos(int *x, int *y)
+-{
+-    /* TODO */
+-    return FAIL;
+-}
+-
+-/*
+- * Set the position of the top left corner of the window to the given
+- * coordinates.
+- */
+-    void
+-gui_mch_set_winpos(int x, int y)
+-{
+-    /* TODO */
+-}
+-
+-    void
+-gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
+-    int width;		/* In OS units */
+-    int height;
+-    int min_width;	/* Smallest permissible window size (ignored) */
+-    int min_height;
+-    int base_width;	/* Space for scroll bars, etc */
+-    int base_height;
+-    int direction;
+-{
+-    int s_width, s_height;
+-    int block[] = {
+-	gui.window_handle,
+-	0,
+-	-height + 1,
+-	width,
+-	1};
+-
+-    gui_mch_get_screen_dimensions(&s_width, &s_height);
+-    s_width -= base_width;
+-    s_height -= base_height;		    /* Underestimate - ignores titlebar */
+-
+-    swi(Wimp_GetWindowState, 0, block);
+-    block[3]  = block[1] + width;
+-    block[2]  = block[4] - height;
+-    if (block[3] > s_width)
+-    {
+-	block[3] = s_width;
+-	block[1] = block[3] - width;
+-    }
+-    if (block[2] < gui.scrollbar_height)
+-    {
+-	block[2] = gui.scrollbar_height;
+-	block[4] = block[2] + height;
+-    }
+-    swi(Wimp_OpenWindow, 0, block);
+-    swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+-}
+-
+-    void
+-gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
+-{
+-    int block[] = {4, 5, 11, 12, -1};
+-
+-    swi(OS_ReadVduVariables, block, block);
+-    *screen_w = (block[2] + 1) << block[0];
+-    *screen_h = (block[3] + 1) << block[1];
+-}
+-
+-/* Take a font name with options and return a font handle, or
+- * zero for failure.
+- * Replace extension with 'Bold' or 'Italic' depending on modifiers.
+- */
+-    int
+-ro_get_font(fullname, weight)
+-    char_u	*fullname;
+-    int		weight;		/* Initial weights:
+-				 * BIT	    MEANING
+-				 * 0	    bold
+-				 * 1	    italic
+-				 */
+-{
+-    char_u	*arg;
+-    char_u	font[41];
+-    int		width = -1;
+-    int		height = -1;
+-    int		name_len;
+-    int		i;
+-    char_u	c;
+-
+-    for (i = 0; i < 39;)
+-    {
+-	c = fullname[i];
+-	if (c == ':' || c == NUL || c == '.')
+-	    break;
+-	font[i++] = c;
+-    }
+-
+-    /* find the first modifier, NULL if none */
+-    arg = strchr(fullname + i, ':');
+-
+-    while (arg)
+-    {
+-	switch (*++arg)
+-	{
+-	    case 'h':
+-		height = strtol(arg + 1, (char **) &arg, 10);
+-		break;
+-	    case 'w':
+-		width = strtol(arg + 1, (char **) &arg, 10);
+-		break;
+-	    case 'b':
+-		weight |= 1;
+-		break;
+-	    case 'i':
+-		weight |= 2;
+-		break;
+-	    default:
+-		return 0;
+-	}
+-	arg = strchr(arg, ':');
+-    }
+-
+-    if ((weight & 1) && i < 35)
+-    {
+-	/* Bold goes instead of given suffix */
+-	strncpy(font + i, ".Bold", 5);
+-	i += 5;
+-    }
+-    else
+-    {
+-	/* Copy rest of name unless we are using Bold */
+-	while (i < 39)
+-	{
+-	    c = fullname[i];
+-	    if (c == ':' || c == NUL)
+-		break;
+-	    font[i++] = c;
+-	}
+-    }
+-    if ((weight & 2) && i < 32)
+-    {
+-	strncpy(font + i, ".Oblique", 8);
+-	i += 8;
+-    }
+-
+-    font[i] = 0;
+-
+-    if (height < 1 && width < 1)
+-	height = width = 10;	/* Default to 10pt */
+-    else if (height < 1)
+-	height = width;
+-    else if (width < 1)
+-	width = height;
+-
+-    if (xswi(Font_FindFont, 0, font, width << 4, height << 4, 0, 0) & v_flag)
+-	return NOFONT;		/* Can't find font */
+-
+-    return r0;
+-}
+-
+-/* Load a file into allocated memory and check it is valid.
+- * Return a pointer to the allocated block on success.
+- */
+-    char    *
+-zap_load_file(name, style)
+-    char_u  *name;	    /* Name of directory containing styles */
+-    char_u  *style;	    /* Name of style within directory */
+-{
+-    char_u  fname[256];
+-    char_u  *file;
+-
+-    if (strlen(name) + strlen(style) > 254)
+-	return NULL;	    /* Names too long */
+-
+-    sprintf(fname, "%s.%s", name, style);
+-
+-    /* Load the named font in 1bpp format. */
+-    if (xswi(OS_File, 13, fname, 0, 0, "VimFonts:") & v_flag || r0 != 1)
+-	return NULL;	    /* Error reading file info, or not a file */
+-
+-    /* Allocate enough memory to load the whole file */
+-    file = (char *) alloc(r4);
+-    if (!file)
+-	return NULL;	/* Out of memory */
+-
+-    if (xswi(OS_File, 12, fname, file, 0, "VimFonts:") & v_flag)
+-	return NULL;	/* Unable to load file */
+-
+-    if (strncmp(file, "ZapFont\015", 8) == 0)
+-	return file;	/* Loaded OK! */
+-
+-    vim_free(file);
+-    return NULL;	/* Not a valid font file */
+-}
+-
+-/* Load and convert the named font.
+- * If name is NULL or a null string then convert the system font.
+- * Return OK on success; FAIL and we revert to using the VDU drivers.
+- *
+- * 'name' is the name of a directory.
+- * Tries to load 'name.0', 'name.B', 'name.I' and 'name.IB'.
+- */
+-    int
+-zap_load_font(name)
+-    char_u  *name;
+-{
+-    int	    i;
+-
+-    /* Free the existing font files, if any */
+-    for (i = 0; i < ZAP_STYLES; i++)
+-    {
+-	vim_free(zap_file[i]);
+-	zap_file[i] = NULL;
+-    }
+-
+-    if (name && *name == '!')
+-    {
+-	name++;
+-	double_height = TRUE;
+-    }
+-    else
+-	double_height = FALSE;
+-
+-    if (name && *name)
+-    {
+-	zap_file[ZAP_NORMAL]	= zap_load_file(name, "0");
+-	if (!zap_file[ZAP_NORMAL])
+-	    return FAIL;	/* Can't load the 'normal' style - error */
+-
+-	zap_file[ZAP_BOLD]	= zap_load_file(name, "B");
+-	zap_file[ZAP_ITALIC]	= zap_load_file(name, "I");
+-	zap_file[ZAP_BITALIC]	= zap_load_file(name, "IB");
+-    }
+-    else
+-    {
+-	int	*header;
+-	char	workarea[16];
+-	char	*old_wa;
+-
+-	/* Allocate memory for system font (8 x 8 x 256 bits, plus header) */
+-	header = (int *) alloc(0x20 + 8 * 256);
+-	if (header == NULL)
+-	    return FAIL;
+-	zap_file[ZAP_NORMAL] = (char *) header;
+-
+-	/* Store details about the system font */
+-	header[2] = 8;	    /* Width */
+-	header[3] = 8;	    /* Height */
+-	header[4] = 0;	    /* First char */
+-	header[5] = 255;    /* Last char */
+-	header[6] = header[7] = 0;  /* Reserved */
+-
+-	/* Get system font bitmap */
+-	old_wa = zap_redraw_block.r_workarea;
+-	zap_redraw_block.r_workarea = workarea;
+-	swi(ZapRedraw_ReadSystemChars, zap_file[ZAP_NORMAL] + 0x20, &zap_redraw_block);
+-	zap_redraw_block.r_workarea = old_wa;
+-    }
+-
+-    return ro_zap_redraw_initialise();
+-}
+-
+-/*
+- * Initialise vim to use the font with the given name.
+- * Return FAIL if the font could not be loaded, OK otherwise.
+- */
+-    int
+-gui_mch_init_font(char_u *font_name, int fontset)
+-{
+-    int	    new_handle	= 0;	    /* Use the system font by default */
+-
+-    if (font_name[0] == '!')
+-    {
+-	/* Select a ZapRedraw font */
+-	if (zap_load_font(font_name + 1))
+-	    zap_redraw = TRUE;
+-	else
+-	{
+-	    EMSG2(_("E610: Can't load Zap font '%s'"), font_name);
+-	    font_name = "System";   /* Error - use system font */
+-	    zap_redraw = FALSE;
+-	}
+-    }
+-    else
+-    {
+-	zap_redraw = FALSE;
+-
+-	if (font_name)
+-	{
+-	    /* Extract any extra details about the font */
+-	    new_handle = ro_get_font(font_name, 0);
+-	    if (!new_handle)
+-		return FAIL;
+-	}
+-	else
+-	    font_name = "System";
+-    }
+-
+-    /* Free the previous font, if any */
+-    gui_mch_free_font(gui.norm_font);
+-    gui.norm_font = new_handle;
+-    gui.char_ascent = 0;
+-
+-    if (new_handle)
+-    {
+-	/* Read details about the chosen font */
+-	swi(Font_ReadInfo, new_handle);
+-
+-	gui.char_width	= r3 - r1;
+-	gui.char_height = r4 - r2;
+-
+-	font_x_offset = -r1;	/* Where to position each char in its box */
+-	font_y_offset = -r4;
+-
+-	/* Try to load other fonts for bold, italic, and bold-italic */
+-	gui_mch_free_font(gui.bold_font);
+-	gui.bold_font = ro_get_font(font_name, 1);
+-	gui_mch_free_font(gui.ital_font);
+-	gui.ital_font = ro_get_font(font_name, 2);
+-	gui_mch_free_font(gui.boldital_font);
+-	gui.boldital_font = ro_get_font(font_name, 3);
+-    }
+-    else
+-    {
+-	/* Use the system font or ZapRedraw. */
+-	if (zap_redraw)
+-	{
+-	    gui.char_width	= zap_redraw_block.r_charw << zap_redraw_block.r_magx;
+-	    gui.char_height	= zap_redraw_block.r_charh << zap_redraw_block.r_magy;
+-	    if (double_height)
+-		gui.char_height <<= 1;
+-	}
+-	else
+-	{
+-	    gui.char_width	= 16;
+-	    gui.char_height	= 32;
+-	}
+-
+-	gui_mch_free_font(gui.bold_font);
+-	gui.bold_font = 0;
+-	gui_mch_free_font(gui.ital_font);
+-	gui.ital_font = 0;
+-	gui_mch_free_font(gui.boldital_font);
+-	gui.boldital_font = 0;
+-    }
+-    hl_set_font_name(font_name);
+-
+-    must_redraw = CLEAR;
+-    return OK;
+-}
+-
+-/*
+- * Adjust gui.char_height (after 'linespace' was changed).
+- */
+-    int
+-gui_mch_adjust_charheight()
+-{
+-    return FAIL;
+-}
+-
+-/*
+- * Get a font structure for highlighting.
+- */
+-    GuiFont
+-gui_mch_get_font(name, giveErrorIfMissing)
+-    char_u	*name;
+-    int		giveErrorIfMissing;
+-{
+-    int		handle;
+-
+-    if (!name)
+-	return NOFONT;		/* System font if no name */
+-
+-    handle = ro_get_font(name, 0);
+-    if (!handle)
+-    {
+-	if (giveErrorIfMissing)
+-	    EMSG2(_("E611: Can't use font %s"), name);
+-	return NOFONT;
+-    }
+-
+-    return handle;
+-}
+-
+-#if defined(FEAT_EVAL) || defined(PROTO)
+-/*
+- * Return the name of font "font" in allocated memory.
+- * Don't know how to get the actual name, thus use the provided name.
+- */
+-    char_u *
+-gui_mch_get_fontname(font, name)
+-    GuiFont font;
+-    char_u  *name;
+-{
+-    if (name == NULL)
+-	return NULL;
+-    return vim_strsave(name);
+-}
+-#endif
+-
+-/*
+- * Set the current text font.
+- */
+-    void
+-gui_mch_set_font(GuiFont font)
+-{
+-    ro_current_font = font;
+-
+-    if (font)
+-    {
+-	/* Not the system font or ZapRedraw font - select it */
+-	swi(Font_SetFont, font);
+-    }
+-}
+-
+-/*
+- * If a font is not going to be used, free its structure.
+- */
+-    void
+-gui_mch_free_font(GuiFont font)
+-{
+-    if (font)
+-	swi(Font_LoseFont, font);
+-}
+-
+-/*
+- * Return the Pixel value (colour) for the given colour name.
+- * Return INVALCOLOR for error.
+- * NB: I've changed Green for now, since it looked really sick
+- */
+-    guicolor_T
+-gui_mch_get_color(char_u *name)
+-{
+-    int		i;
+-    struct colour
+-    {
+-	char_u		*name;
+-	guicolor_T	value;
+-    } colours[] =
+-    {
+-	{ "Red",		grgb(255,	0,	0)	},
+-	{ "LightRed",		grgb(255,	0,	0)	},
+-	{ "DarkRed",		grgb(139,	0,	0)	},
+-
+-	{ "Green",		grgb(50,	200,	50)	},
+-	{ "LightGreen",		grgb(144,	238,	144)	},
+-	{ "DarkGreen",		grgb(0,		100,	0)	},
+-	{ "SeaGreen",		grgb(46,	139,	87)	},
+-
+-	{ "Blue",		grgb(0,		0,	255)	},
+-	{ "LightBlue",		grgb(173,	216,	230)	},
+-	{ "DarkBlue",		grgb(0,		0,	139)	},
+-	{ "SlateBlue",		grgb(160,	90,	205)	},
+-
+-	{ "Cyan",		grgb(0,		255,	255)	},
+-	{ "LightCyan",		grgb(224,	255,	255)	},
+-	{ "DarkCyan",		grgb(0,		139,	139)	},
+-
+-	{ "Magenta",		grgb(255,	0,	255)	},
+-	{ "LightMagenta",	grgb(255,	224,	255)	},
+-	{ "DarkMagenta",	grgb(139,	0,	139)	},
+-
+-	{ "Yellow",		grgb(255,	255,	0)	},
+-	{ "LightYellow",	grgb(255,	255,	224)	},
+-	{ "DarkYellow",		grgb(139,	139,	0)	},
+-	{ "Brown",		grgb(165,	42,	42)	},
+-
+-	{ "Gray",		grgb(190,	190,	190)	},
+-	{ "Grey",		grgb(190,	190,	190)	},
+-	{ "LightGray",		grgb(211,	211,	211)	},
+-	{ "LightGrey",		grgb(211,	211,	211)	},
+-	{ "DarkGray",		grgb(169,	169,	169)	},
+-	{ "DarkGrey",		grgb(169,	169,	169)	},
+-	{ "Gray10",		grgb(26,	26,	26)	},
+-	{ "Grey10",		grgb(26,	26,	26)	},
+-	{ "Gray20",		grgb(51,	51,	51)	},
+-	{ "Grey20",		grgb(51,	51,	51)	},
+-	{ "Gray30",		grgb(77,	77,	77)	},
+-	{ "Grey30",		grgb(77,	77,	77)	},
+-	{ "Gray40",		grgb(102,	102,	102)	},
+-	{ "Grey40",		grgb(102,	102,	102)	},
+-	{ "Gray50",		grgb(127,	127,	127)	},
+-	{ "Grey50",		grgb(127,	127,	127)	},
+-	{ "Gray60",		grgb(153,	153,	153)	},
+-	{ "Grey60",		grgb(153,	153,	153)	},
+-	{ "Gray70",		grgb(179,	179,	179)	},
+-	{ "Grey70",		grgb(179,	179,	179)	},
+-	{ "Gray80",		grgb(204,	204,	204)	},
+-	{ "Grey80",		grgb(204,	204,	204)	},
+-	{ "Gray90",		grgb(229,	229,	229)	},
+-	{ "Grey90",		grgb(229,	229,	229)	},
+-
+-	{ "Black",		grgb(0,		0,	0)	},
+-	{ "White",		grgb(255,	255,	255)	},
+-
+-	{ "Orange",		grgb(255,	165,	0)	},
+-	{ "Purple",		grgb(160,	32,	240)	},
+-	{ "Violet",		grgb(238,	130,	238)	},
+-	{NULL, 0}
+-    };
+-
+-    if (name[0] == '#')
+-    {
+-	char	    *end;
+-	int	    c;
+-
+-	c = strtol(name + 1, &end, 16);
+-	return (guicolor_T) ((c >> 16) & 0xff) | (c & 0xff00) | ((c & 0xff) << 16);
+-    }
+-
+-    for (i = 0; colours[i].name != NULL; i++)
+-    {
+-	if (STRICMP(name, colours[i].name) == 0)
+-	    return colours[i].value;
+-    }
+-    if (strnicmp(name, "grey", 4) == 0 || strnicmp(name, "gray", 4) == 0)
+-    {
+-	int level = (255 * atoi(name + 4)) / 100;
+-	return (guicolor_T) grgb(level, level, level);
+-    }
+-    return INVALCOLOR;
+-}
+-
+-/*
+- * Set the current text colours.
+- * If we are using fonts then set the antialiasing colours too.
+- */
+-    void
+-gui_mch_set_colors(guicolor_T fg, guicolor_T bg)
+-{
+-    zap_redraw_colours[0] = bg << 8;	/* JK230798, register new background colour */
+-    zap_redraw_colours[1] = fg << 8;	/* JK230798, register new foreground colour */
+-    zap_redraw_update_colours = TRUE;	/* JK230798, need update of colour masks */
+-
+-    swi(ColourTrans_ReturnGCOL, fg << 8);
+-    gui.fg_colour = r0;
+-    swi(ColourTrans_ReturnGCOL, bg << 8);
+-    gui.bg_colour = r0;
+-
+-    if (ro_current_font)
+-	swi(ColourTrans_SetFontColours, 0, bg << 8, fg << 8, 14);
+-}
+-
+-    void
+-ro_draw_string(x, y, s, len, flags, clip)
+-    int	    x;		/* Top-left coord to plot at (x incl, y excl) */
+-    int	    y;		/* (screen coords) */
+-    char_u  *s;		/* String to plot */
+-    int	    len;	/* Length of string */
+-    int	    flags;	/* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL */
+-    int*    clip;	/* JK230798, added clip window */
+-{
+-    if (ro_current_font)
+-    {
+-	int	fx;
+-	int	flen = len;	/* Preserve for underline */
+-
+-	/* Use the Font manager to paint the string.
+-	 * Must do one char at a time to get monospacing.
+-	 */
+-
+-	if (flags & DRAW_ITALIC && !gui.ital_font)
+-	    flags |= DRAW_UNDERL;	/* No italic - underline instead */
+-
+-	if ((flags & DRAW_TRANSP) == 0)
+-	{
+-	    swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+-	    swi(OS_Plot, 4, x, y - gui.char_height);
+-	    swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+-	}
+-
+-	fx = x + font_x_offset;
+-	while (flen--)
+-	{
+-	    swi(Font_Paint, 0, s++, 0x90, fx, y + font_y_offset, 0, 0, 1);
+-	    fx += gui.char_width;
+-	}
+-    }
+-    else
+-    {
+-	if (zap_redraw)
+-	{
+-	    /* Using fast Zap redraw. */
+-	    flags = ro_zap_redraw_draw_string(x, y, s, len, flags, clip);
+-	}
+-	else
+-	{
+-	    /* Using the system font */
+-	    if (flags & DRAW_ITALIC)
+-		flags |= DRAW_UNDERL;
+-
+-	    if ((flags & DRAW_TRANSP) == 0)
+-	    {
+-		swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+-		swi(OS_Plot, 4, x, y - gui.char_height);
+-		swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+-	    }
+-	    swi(OS_Plot, 4,			/* Move the drawing cursor */
+-		    x,
+-		    y - 1);
+-	    swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+-	    swi(OS_WriteN, s, len);
+-
+-	    if (flags & DRAW_BOLD)
+-	    {
+-		swi(OS_Plot, 4, x + (1 << x_eigen_factor), y - 1);
+-		swi(OS_WriteN, s, len);
+-	    }
+-	}
+-    }
+-
+-    if (flags & DRAW_UNDERL)
+-    {
+-	if (ro_current_font || zap_redraw)
+-	    swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+-	/* Underlined is the same with all plotting methods */
+-	swi(OS_Plot, 4, x, y - gui.char_height);
+-	swi(OS_Plot, 1, gui.char_width * len, 0);
+-    }
+-}
+-
+-    void
+-gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
+-{
+-    int x, y;		/* Workarea x,y */
+-    x = col * gui.char_width;
+-    y = -row * gui.char_height;
+-
+-    if (redraw_block)
+-    {
+-	ro_draw_string(x + redraw_block[1], y + redraw_block[4],
+-			s, len, flags, &redraw_block[7]);	/* JK230798, added clip window */
+-    }
+-    else
+-    {
+-	int block[44];
+-	block[0] = gui.window_handle;
+-	block[1] = x;
+-	block[2] = y - gui.char_height;
+-	block[3] = (col + len) * gui.char_width;
+-	block[4] = y;
+-	swi(Wimp_UpdateWindow, 0, block);
+-	while (r0)
+-	{
+-	    ro_draw_string(x + block[1], y + block[4],
+-			s, len, flags, &block[7]);	/* JK230798, added clip window */
+-	    swi(Wimp_GetRectangle, 0, block);
+-	}
+-    }
+-}
+-
+-/*
+- * Return OK if the key with the termcap name "name" is supported.
+- */
+-    int
+-gui_mch_haskey(char_u *name)
+-{
+-    return FAIL;
+-}
+-
+-    void
+-gui_mch_beep(void)
+-{
+-    swi(OS_WriteI + 7);
+-}
+-
+-/*
+- * Visual bell.
+- */
+-    void
+-gui_mch_flash(int msec)
+-{
+-    /* TODO */
+-}
+-
+-
+-/*
+- * Plot a solid rectangle using the given plot action and colour.
+- * Coordinates are inclusive and window-relative.
+- */
+-    void
+-plot_rectangle(plot, colour, minx, miny, maxx, maxy)
+-    int plot;		/* OS_Plot action */
+-    int colour;
+-    int minx;
+-    int miny;
+-    int maxx;
+-    int maxy;
+-{
+-    if (redraw_block)
+-    {
+-	swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+-	swi(OS_Plot, 4, minx + redraw_block[1], miny + redraw_block[4]);
+-	swi(OS_Plot, plot, maxx + redraw_block[1], maxy + redraw_block[4]);
+-    }
+-    else
+-    {
+-	int block[44];
+-	block[0] = gui.window_handle;
+-	block[1] = minx;
+-	block[2] = miny;
+-	block[3] = maxx + 1;
+-	block[4] = maxy + 1;
+-	swi(Wimp_UpdateWindow, 0, block);
+-	while (r0)
+-	{
+-	    swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+-	    swi(OS_Plot, 4, minx + block[1], miny + block[4]);
+-	    swi(OS_Plot, plot, maxx + block[1], maxy + block[4]);
+-	    swi(Wimp_GetRectangle, 0, block);
+-	}
+-    }
+-}
+-
+-/*
+- * Invert a rectangle from row r, column c, for nr rows and nc columns.
+- */
+-    void
+-gui_mch_invert_rectangle(int r, int c, int nr, int nc)
+-{
+-    plot_rectangle(96 + 6, 0, FILL_X(c), -FILL_Y(r + nr), FILL_X(c + nc), -FILL_Y(r));
+-}
+-
+-/*
+- * Iconify the GUI window.
+- */
+-    void
+-gui_mch_iconify(void)
+-{
+-}
+-
+-#if defined(FEAT_EVAL) || defined(PROTO)
+-/*
+- * Bring the Vim window to the foreground.
+- */
+-    void
+-gui_mch_set_foreground()
+-{
+-    /* TODO */
+-}
+-#endif
+-
+-/* Draw a hollow rectangle relative to the current
+- * graphics cursor position, with the given width
+- * and height. Start position is top-left.
+- */
+-    void
+-draw_hollow(w, h)
+-    int	w;
+-    int	h;
+-{
+-    swi(OS_Plot, 1, w - 1, 0);
+-    swi(OS_Plot, 1, 0, 1 - h);
+-    swi(OS_Plot, 1, 1 - w, 0);
+-    swi(OS_Plot, 1, 0, h - 1);
+-}
+-
+-/*
+- * Draw a cursor without focus.
+- */
+-    void
+-gui_mch_draw_hollow_cursor(guicolor_T colour)
+-{
+-    int x = FILL_X(gui.cursor_col);	/* Window relative, top-left */
+-    int y = -FILL_Y(gui.cursor_row);
+-    if (redraw_block == NULL)
+-    {
+-	int block[11];
+-
+-	block[0] = gui.window_handle;
+-	block[1] = x;
+-	block[2] = y - gui.char_height;
+-	block[3] = x + gui.char_width;
+-	block[4] = y;
+-	swi(Wimp_UpdateWindow, 0, block);
+-	while (r0)
+-	{
+-	    swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+-
+-	    swi(OS_Plot, 4, x + block[1], y + block[4] - 1);
+-	    draw_hollow(gui.char_width, gui.char_height);
+-
+-	    swi(Wimp_GetRectangle, 0, block);
+-	}
+-    }
+-    else
+-    {
+-	swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+-
+-	swi(OS_Plot, 4, x + redraw_block[1], y + redraw_block[4] - 1);
+-	draw_hollow(gui.char_width, gui.char_height);
+-    }
+-}
+-
+-/*
+- * Draw part of a cursor, "w" pixels wide, and "h" pixels high, using
+- * color "color".
+- */
+-    void
+-gui_mch_draw_part_cursor(w, h, colour)
+-    int w;
+-    int h;
+-    guicolor_T colour;
+-{
+-    int x = FILL_X(gui.cursor_col);
+-    int y = -FILL_Y(gui.cursor_row);
+-    swi(ColourTrans_ReturnGCOL, colour << 8);
+-    plot_rectangle(96 + 5, r0, x, y - h, x + w - 1, y - 1);
+-}
+-
+-/*
+- * Catch up with any queued events.  This may put keyboard input into the
+- * input buffer, call resize call-backs, trigger timers etc.
+- * If there is nothing in the event queue(& no timers pending), then we return
+- * immediately (well, after a Wimp_Poll).
+- */
+-    void
+-gui_mch_update(void)
+-{
+-    int block[64];
+-    int reason;
+-
+-    swi(OS_ReadMonotonicTime);
+-    if ((r0 - time_of_last_poll) < 50)
+-	return;			    /* Don't return too often */
+-
+-    reason = wimp_poll(0, block);
+-    if (reason)
+-	process_event(reason, block);
+-    ro_return_early = FALSE;		/* We're returning anyway. */
+-}
+-
+-    void
+-redraw_window(block)
+-    int *block;
+-{
+-    int x, y;			/* Vim workarea coords */
+-    int width, height;
+-    int blank_col;
+-
+-    swi(ColourTrans_ReturnGCOL, UNUSED_COLOUR << 8, 0, 0, 1<<7, 0);
+-    blank_col = r0;
+-
+-    swi(Wimp_RedrawWindow, 0, block);
+-    redraw_block = block;
+-    while (r0)
+-    {
+-	x = block[7] - block[1];
+-	y = block[4] - block[10];
+-	width  = block[9]  - block[7];
+-	height = block[10] - block[8];
+-
+-	if (height + y > Rows * gui.char_height)
+-	{
+-	    /* Blank everything off the bottom. */
+-	    plot_rectangle(96 + 5, blank_col,
+-				0, block[8] - block[4],
+-				block[9] - block[1], -FILL_Y(Rows) - 1);
+-	    height = Rows * gui.char_height;
+-	}
+-	if (width + x> Columns * gui.char_width)
+-	{
+-	    /* Blank everything off to the right. */
+-	    plot_rectangle(96 + 5, blank_col,
+-				FILL_X(Columns), block[8] - block[4],
+-				block[9] - block[1], 0);
+-	    width = Columns * gui.char_width;
+-	}
+-	gui_redraw(x , y, width, height);
+-	swi(Wimp_GetRectangle, 0, block);
+-    }
+-    redraw_block = NULL;
+-}
+-
+-/* Check if we have modified data.
+- * If we do then ack the message to stop the shutdown.
+- * Otherwise, ignore the message.
+- */
+-    void
+-ro_prequit(block)
+-    int	    *block;
+-{
+-    if (!ro_ok_to_quit())
+-    {
+-	/* Not OK to quit - stop shutdown */
+-	block[3] = block[2];
+-	swi(Wimp_SendMessage, 19, block, block[1]);
+-    }
+-    /* Do nothing. We may get a Message_Quit later. */
+-}
+-
+-/* If there is unsaved data then ask the user if they mind losing it.
+- * Return TRUE if we can quit without saving, FALSE to halt the
+- * shutdown.
+- */
+-    int
+-ro_ok_to_quit()
+-{
+-    int	    old_confirm = cmdmod.confirm;
+-
+-    cmdmod.confirm = FALSE;	    /* Use our own, single tasking, box */
+-
+-    if (check_changed_any(FALSE))
+-    {
+-	swi(Wimp_ReportError,
+-		"\0\0\0\0Vim contains unsaved data - quit anyway?",
+-		0x17,
+-		"Vim");
+-	cmdmod.confirm = old_confirm;
+-	if (r1 != 1)
+-	    return FALSE;
+-    }
+-    cmdmod.confirm = old_confirm;
+-    return TRUE;
+-}
+-
+-/* Quit without checking for unsaved data. */
+-    void
+-ro_quit()
+-{
+-    exiting = TRUE;
+-    getout(0);
+-
+-    exiting = FALSE;		    /* probably can't get here */
+-    setcursor();		    /* position cursor */
+-    out_flush();
+-}
+-
+-/* Insent the given vim special code into the input buffer */
+-    void
+-ro_press(a, b, modifier)
+-    char a;
+-    char b;
+-    int modifier;	/* %<Ctrl><Shift> 0000 0000 */
+-{
+-    char_u buf[6];
+-    int	    vim_mod;
+-    int	    key;
+-
+-
+-    /* Convert RISC OS modifier to Vim modifier. */
+-    vim_mod = ((modifier & 0x10) ? MOD_MASK_SHIFT : 0)
+-	       | ((modifier & 0x20) ? MOD_MASK_CTRL : 0);
+-    key = simplify_key(TERMCAP2KEY(a, b), &vim_mod);
+-
+-    buf[3] = CSI;
+-    buf[4] = KEY2TERMCAP0(key);
+-    buf[5] = KEY2TERMCAP1(key);
+-    if (vim_mod)
+-    {
+-	buf[0] = CSI;
+-	buf[1] = KS_MODIFIER;
+-	buf[2] = vim_mod;
+-	add_to_input_buf(buf, 6);
+-    }
+-    else
+-	add_to_input_buf(buf + 3, 3);
+-}
+-
+-/* Take a wimp key code and insert the vim equivalent
+- * into vim's input buffer.
+- * CTRL-C also sets got_int.
+- */
+-    void
+-ro_insert_key(code)
+-    char_u *code;		/* Wimp_ProcessKey code (4 bytes) */
+-{
+-    char a = code[0];
+-    char b = code[1];
+-    int base, modifier;
+-
+-    if (a == 3 && ctrl_c_interrupts)
+-	got_int = TRUE;
+-
+-    /* Is it a normal key? */
+-    if (a > 31 && a < 127)
+-    {
+-	add_to_input_buf(code, 1);
+-	return;
+-    }
+-
+-    /* We should pass any unrecognised keys on, but
+-     * for now just pass on F12 combinations.
+-     */
+-    switch (b)
+-    {
+-	case 0:
+-	    /* Home and Delete are the only special cases */
+-	    switch (a)
+-	    {
+-		case 0x1e:
+-		    ro_press('k','h', 0);	/* Home */
+-		    return;
+-		case 0x7f:
+-		    ro_press('k','D', 0);	/* Delete */
+-		    return;
+-		case CSI:
+-		    {
+-			/* Turn CSI into K_CSI.  Untested! */
+-			char_u string[3] = {CSI, KS_EXTRA, KE_CSI};
+-
+-			add_to_input_buf(string, 3);
+-			return;
+-		    }
+-		default:
+-		    add_to_input_buf(code, 1);
+-		    return;
+-	    }
+-	case 1:
+-	    if ((a & 0xcf) == 0xcc)
+-	    {
+-		/* F12 pressed - pass it on (quick hack) */
+-		swi(Wimp_ProcessKey, a | 0x100);
+-		return;
+-	    }
+-	    base = a & 0xcf;
+-	    modifier = a & 0x30;
+-	    switch (base)
+-	    {
+-		case 0x8a:	/* Tab */
+-		    add_to_input_buf("\011", 1);
+-		    return;
+-		case 0x8b:	/* Copy (End) */
+-		    return ro_press('@', '7', modifier);
+-		case 0x8c:	/* Left */
+-		    return ro_press('k', 'l', modifier);
+-		case 0x8d:	/* Right */
+-		    return ro_press('k', 'r', modifier);
+-		case 0x8e:	/* Down */
+-		    if (modifier & 0x10)
+-			return ro_press('k', 'N', modifier ^ 0x10);
+-		    else
+-			return ro_press('k', 'd', modifier);
+-		case 0x8f:	/* Up */
+-		    if (modifier & 0x10)
+-			return ro_press('k', 'P', modifier ^ 0x10);
+-		    else
+-			return ro_press('k', 'u', modifier);
+-		case 0xca:	/* F10 */
+-		    return ro_press('k', ';', modifier);
+-		case 0xcb:	/* F11 */
+-		    return ro_press('F', '1', modifier);
+-		case 0xcd:	/* Insert */
+-		    return ro_press('k', 'I', modifier);
+-		default:
+-		    if (base > 0x80 && base < 0x18a)
+-		    {
+-			/* One of the other function keys */
+-			return ro_press('k', '0' + (base & 15), modifier);
+-		    }
+-	    }
+-    }
+-}
+-
+-/* Process a mouse event. */
+-    void
+-ro_mouse(block)
+-    int *block;
+-{
+-    int x, y, button, vim_button;
+-    int modifiers = 0;
+-    int min_x, min_y;		/* Visible area of editor window */
+-    int max_x, max_y;
+-
+-    if (block[3] != gui.window_handle || ro_dragging)
+-	return;			/* Not our window or ignoring clicks*/
+-
+-    x = block[0];		/* Click position - screen coords */
+-    y = block[1];
+-    button = block[2];
+-
+-    block[0] = gui.window_handle;
+-    swi(Wimp_GetWindowState, 0, block);
+-    min_x = block[1];
+-    min_y = block[2];
+-    max_x = block[3];
+-    max_y = block[4];
+-
+-    if (block[3] - x < gui.scrollbar_width)
+-    {
+-	/* Click in that blank area under the scrollbars */
+-
+-	if (button & 0x444)
+-	{
+-	    int	    front_block[10];
+-	    /* Dragging with Select - bring window to front first */
+-	    front_block[0] = gui.window_handle;
+-	    swi(Wimp_GetWindowState, 0, front_block);
+-	    front_block[7] = -1;
+-	    ro_open_main(front_block);
+-	}
+-
+-	block[0] = gui.window_handle;
+-	block[1] = 7;			/* Drag point */
+-	block[2] = block[4] = 0;	/* Coords of point. */
+-	block[3] = block[5] = 0;
+-	drag_x_offset = max_x - x;
+-	drag_y_offset = min_y - y;
+-
+-	/* Parent box. */
+-	block[6] = min_x +
+-			gui.scrollbar_width * 2 +
+-			MIN_COLUMNS * gui.char_width;
+-	block[7] = 0;
+-	gui_mch_get_screen_dimensions(&block[8], &block[9]);
+-	block[9] = max_y -
+-			4 * gui.char_height -
+-			gui.scrollbar_height;
+-
+-	swi(Wimp_DragBox, 0, block);
+-	ro_dragging = DRAG_RESIZE_WINDOW;
+-	drag_button = vim_button;
+-	drag_modifiers = modifiers;
+-	return;
+-    }
+-
+-    if (button & 0x111)
+-	vim_button = MOUSE_RIGHT;
+-    else if (button & 0x222)
+-	vim_button = MOUSE_MIDDLE;
+-    else
+-	vim_button = MOUSE_LEFT;
+-
+-    swi(OS_Byte, 121, 0x80);
+-    if (r1 == 0xff)
+-	modifiers |= MOUSE_SHIFT;
+-    swi(OS_Byte, 121, 0x81);
+-    if (r1 == 0xff)
+-	modifiers |= MOUSE_CTRL;
+-    swi(OS_Byte, 121, 0x82);
+-    if (r1 == 0xff)
+-	modifiers |= MOUSE_ALT;
+-
+-    if (button == 2)
+-    {
+-	/* Menu click:
+-	 * If shift was pressed then do the paste action.
+-	 * If not, then open the pop-up menu.
+-	 */
+-	modifiers ^= MOUSE_SHIFT;
+-	if (modifiers && MOUSE_SHIFT)
+-	{
+-	    vimmenu_T	main;
+-	    /* Shift was NOT pressed - show menu */
+-	    main.dname = (char_u *) "Vim";
+-	    main.children = root_menu;
+-	    gui_mch_show_popupmenu(&main);
+-	    return;
+-	}
+-    }
+-
+-    /* Gain the input focus */
+-    swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+-    if (button & 0xf0)
+-    {
+-	/* Drag operation:
+-	 *
+-	 * Tell the Wimp to start a drag.
+-	 * Monitor null events.
+-	 */
+-	block[1] = 7;			/* Drag a point. */
+-	block[2] = block[4] = x;	/* Coords of point. */
+-	block[3] = block[5] = y;
+-	block[6] = 0;			/* Coords of bounding box. */
+-	block[7] = 0;
+-	gui_mch_get_screen_dimensions(&block[8], &block[9]);
+-
+-	drag_x_offset = drag_y_offset = 0;
+-
+-	swi(Wimp_DragBox, 0, block);
+-	ro_dragging = DRAG_SELECTION;
+-	drag_button = vim_button;
+-	drag_modifiers = modifiers;
+-
+-	vim_button |= MOUSE_DRAG;
+-    }
+-
+-    gui_send_mouse_event(
+-		vim_button,
+-		x - min_x,
+-		max_y - y,
+-		button & 0xf ? TRUE : FALSE,	/* dclick */
+-		modifiers);
+-}
+-
+-    void
+-ro_continue_drag(block)
+-    int *block;			/* Just used as scrap. */
+-{
+-    int x, y;
+-
+-    /* Get screen coords of pointer. */
+-    swi(Wimp_GetPointerInfo, 0, block);
+-    x = block[0] + drag_x_offset;
+-    y = block[1] + drag_y_offset;
+-
+-    block[0] = gui.window_handle;
+-    swi(Wimp_GetWindowState, 0, block);
+-
+-    if (ro_dragging == DRAG_RESIZE_WINDOW)
+-    {
+-	/* Resizeing the main window. */
+-	block[2] = y;
+-	block[3] = x;
+-	ro_open_main(block);
+-    }
+-    else
+-    {
+-	/* Selecting some text. */
+-	gui_send_mouse_event(
+-	    drag_button | MOUSE_DRAG,	/* Always report the same button */
+-	    x - block[1],
+-	    block[4] - y,
+-	    FALSE,			/* Not a double click. */
+-	    drag_modifiers);
+-    }
+-}
+-
+-/* User has released all mouse buttons, marking the end of a drag. */
+-    void
+-ro_drag_finished(block)
+-    int *block;
+-{
+-    int x;
+-    int y;
+-    int width, height;
+-
+-    /* I don't trust the box returned by Wimp_Poll; look at the pointer
+-     * ourselves.
+-     */
+-    swi(Wimp_GetPointerInfo, 0, block);
+-    x = block[0] + drag_x_offset;
+-    y = block[1] + drag_y_offset;
+-
+-    if (ro_dragging == DRAG_RESIZE_WINDOW)
+-    {
+-	block[0] = gui.window_handle;
+-	swi(Wimp_GetWindowState, 0, block);
+-	block[2] = y;
+-	block[3] = x;
+-	ro_open_main(block);
+-
+-	width = (block[3] - block[1]);
+-	height = (block[4] - block[2]);
+-
+-	swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+-	gui_resize_shell(width, height);
+-    }
+-    else
+-    {
+-	block[0] = gui.window_handle;
+-	swi(Wimp_GetWindowState, 0, block);
+-	gui_send_mouse_event(
+-		MOUSE_RELEASE,
+-		x - block[1],
+-		block[4] - y,
+-		FALSE,			/* not a double click */
+-		drag_modifiers);
+-    }
+-    ro_dragging = DRAG_FALSE;
+-}
+-
+-/* Load the file/pathname given in block into a [new] buffer.
+- *
+- * Modifier	Action
+- *
+- * None		:confirm e <file>
+- * Ctrl		:sp <file>
+- * Shift	<file>
+- *
+- * Insert into typebuf, at the start.
+- * If loading from !Scrap then use saved leafname instead, and
+- * delete the scrap file. Also, ignore shift key.
+- *
+- * NB: Doesn't send DataLoadAck (other app might delete temp file?).
+- */
+-    void
+-ro_dataload(block)
+-    int	    *block;
+-{
+-    char_u  new_path[MAXPATHL];
+-    char_u  *path = ((char_u *) block) + 44;
+-    int	    scrap = FALSE;
+-
+-    if (block[3] == leaf_ref && leaf_name)
+-	scrap = TRUE;
+-
+-    switch (get_real_state() & 0xff)
+-    {
+-	case INSERT:
+-	case CMDLINE:
+-	case CMDLINE+LANGMAP:
+-	    /* For insert mode we can only insert the pathname (currently)
+-	     * Make sure Shift is pressed.
+-	     */
+-	    swi(OS_Byte, 121, 0x80);	    /* Is Shift pressed? */
+-	    if (r1 == 0xff)
+-	    {
+-		ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+-		ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+-		ro_return_early = TRUE;		    /* Return even though nothing was typed. */
+-	    }
+-	    else
+-		swi(Wimp_ReportError,
+-			"\0\0\0\0Sorry, you can only load text in normal mode", 5, "Vim");
+-	    break;
+-
+-	case NORMAL:
+-	    ro_return_early = TRUE;	    /* Return even though nothing was typed. */
+-
+-	    if (scrap)			    /* Remove <Wimp$Scrap>. Later. */
+-		ins_typebuf(":!~remove <Wimp$Scrap>\r", REMAP_NONE, 0, TRUE, FALSE);
+-
+-	    /* Insert {:sp ,:confirm e }[+f\ <leaf> ]<file><CR> */
+-	    ins_typebuf("\r", REMAP_NONE, 0, TRUE, FALSE);
+-	    ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+-	    ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+-
+-	    if (scrap)
+-	    {
+-		/* Loading via !Scrap - change pathname to stored leafname */
+-		ins_typebuf(leaf_name, REMAP_NONE, 0, TRUE, FALSE);
+-		ins_typebuf(" +f\\ ", REMAP_NONE, 0, TRUE, FALSE);
+-		leaf_ref = 0;
+-		vim_free(leaf_name);
+-		leaf_name = NULL;
+-	    }
+-
+-	    swi(OS_Byte, 121, 0x81);	    /* Is Ctrl pressed? */
+-	    if (r1 == 0xff)
+-		/* Yes, split window */
+-		ins_typebuf(":sp", REMAP_NONE, 0, TRUE, FALSE);
+-	    else
+-		ins_typebuf(":confirm e", REMAP_NONE, 0, TRUE, FALSE);
+-	    break;
+-
+-	default:
+-	    swi(Wimp_ReportError, "\0\0\0\0You can only load text in normal mode.", 5, "Vim");
+-    }
+-    /* Send DataSaveAck so other program doesn't think we died
+-     * and delete <Wimp$Scrap>.
+-     */
+-    block[3] = block[2];
+-    block[4] = 4;
+-    swi(Wimp_SendMessage, 17, block, block[1]);
+-}
+-
+-    void
+-ro_datasave(block)
+-    int	    *block;
+-{
+-    char_u *path = ((char_u *) block) + 44;
+-
+-    /* Preserve the name given so we can use it, not <Wimp$Scrap> */
+-    if (leaf_name)
+-	vim_free(leaf_name);
+-    leaf_name = vim_strsave(path);
+-
+-    block[9] = -1;	    /* File is unsafe. */
+-    strcpy(path, "<Wimp$Scrap>");
+-    block[0] = 60;
+-    block[3] = block[2];
+-    block[4] = 2;
+-    swi(Wimp_SendMessage, 17, block, block[1]);
+-
+-    leaf_ref = block[2];
+-}
+-
+-    void
+-ro_message(block)
+-    int *block;
+-{
+-    char_u	*buffer;
+-    long_u	len;
+-
+-    if (block[1] == task_handle)
+-	return;			    /* Don't talk to ourself! */
+-    switch (block[4])
+-    {
+-	case 0:		/* Quit. */
+-	    if (block[4] == 0)
+-		ro_quit();
+-	    break;
+-	case 1:	/* DataSave */
+-	    ro_datasave(block);
+-	    break;
+-	case 2:		/* DataSaveAck. */
+-	    if (clip_convert_selection(&buffer, &len, &clip_star) == -1)
+-		return;
+-
+-	    /* Save the clipboard contents to a file. */
+-	    swi(OS_File, 10, ((char_u *) block) + 44, 0xfff, 0, buffer, buffer + len);
+-
+-	    /* Ack with DataLoad message. */
+-	    block[3] = block[2];
+-	    block[4] = 3;
+-	    block[9] = len;
+-	    swi(Wimp_SendMessage, 17, block, block[1]);
+-
+-	    vim_free(buffer);
+-	    break;
+-	case 3:		/* DataLoad */
+-	    ro_dataload(block);
+-	    break;
+-	case 8:		/* PreQuit */
+-	    ro_prequit(block);
+-	    break;
+-	case 0xf:	/* Lose clipboard. */
+-	    if (block[5] & 4)
+-	    {
+-		clip_free_selection(&clip_star);
+-		clip_star.owned = FALSE;
+-	    }
+-	    break;
+-	case 0x10:	/* DataRequest (clip_star) */
+-	    if (clip_star.owned)
+-	    {
+-		int rows;
+-
+-		/* Tell other program that we have the clipboard. */
+-		block[0] = 52;
+-		block[3] = block[2];	    /* Copy myref to yourref. */
+-		block[4] = 1;		    /* DataSave message. */
+-		/* Create an estimate for the size (larger or same as true
+-		 * value) */
+-		rows = clip_star.end.lnum - clip_star.start.lnum;
+-		if (rows < 0)
+-		    rows = -rows;
+-		block[9] = (rows + 1) * Columns + 1; /* Add one for possible
+-							final newline. */
+-		block[10] = 0xfff;	    /* Clipboard is text. */
+-		strcpy( ((char_u *) block) + 44, "VimClip");
+-		swi(Wimp_SendMessage, 17, block, block[1]);
+-	    }
+-	    break;
+-	case 0x400c1:	/* Mode change */
+-	    changed_mode = TRUE;		/* Flag - update on next OpenWindow */
+-	    if (zap_redraw)
+-	    {
+-		/* JK230798, re-initialise ZapRedraw stuff */
+-		if (ro_zap_redraw_initialise() == FAIL)
+-		    zap_redraw = FALSE;
+-	    }
+-	    break;
+-	case 0x400c3:	/* TaskCloseDown */
+-	    if (block[1] == child_handle)
+-		child_handle = 0;
+-	    break;
+-    }
+-}
+-
+-/*
+- * Converts a scrollbar's window handle into a scrollbar pointer.
+- * NULL on failure.
+- */
+-    scrollbar_T *
+-ro_find_sbar(id)
+-    int		id;
+-{
+-    win_T	*wp;
+-
+-    if (gui.bottom_sbar.id == id)
+-	return &gui.bottom_sbar;
+-    FOR_ALL_WINDOWS(wp)
+-    {
+-	if (wp->w_scrollbars[SBAR_LEFT].id == id)
+-	    return &wp->w_scrollbars[SBAR_LEFT];
+-	if (wp->w_scrollbars[SBAR_RIGHT].id == id)
+-	    return &wp->w_scrollbars[SBAR_RIGHT];
+-    }
+-    return NULL;
+-}
+-
+-    void
+-scroll_to(line, sb)
+-    int sb;	/* Scrollbar number */
+-    int line;
+-{
+-    char_u code[8];
+-
+-    /* Don't put events in the input queue now. */
+-    if (hold_gui_events)
+-	return;
+-
+-    /* Send a scroll event:
+-     *
+-     * A scrollbar event is CSI (NOT K_SPECIAL), KS_VER_SCROLLBAR,
+-     * KE_FILLER followed by:
+-     * one byte representing the scrollbar number, and then four bytes
+-     * representing a long_u which is the new value of the scrollbar.
+-     */
+-    code[0] = CSI;
+-    code[1] = KS_VER_SCROLLBAR;
+-    code[2] = KE_FILLER;
+-    code[3] = sb;
+-    code[4] = line >> 24;
+-    code[5] = line >> 16;
+-    code[6] = line >> 8;
+-    code[7] = line;
+-    add_to_input_buf(code, 8);
+-}
+-
+-    void
+-h_scroll_to(col)
+-    int col;
+-{
+-    char_u code[8];
+-
+-    /* Don't put events in the input queue now. */
+-    if (hold_gui_events)
+-	return;
+-
+-    /* Send a scroll event:
+-     *
+-     * A scrollbar event is CSI (NOT K_SPECIAL)
+-     *
+-     * A horizontal scrollbar event is K_SPECIAL, KS_HOR_SCROLLBAR,
+-     * KE_FILLER followed by four bytes representing a long_u which is the
+-     * new value of the scrollbar.
+-     */
+-    code[0] = CSI;
+-    code[1] = KS_HOR_SCROLLBAR;
+-    code[2] = KE_FILLER;
+-    code[4] = col >> 24;
+-    code[5] = col >> 16;
+-    code[6] = col >> 8;
+-    code[7] = col;
+-    add_to_input_buf(code, 8);
+-}
+-
+-    void
+-ro_scroll(block)
+-    int		*block;
+-{
+-    scrollbar_T	*sb;
+-    int		offset;
+-    win_T	*wp;
+-
+-    /* Block is ready for Wimp_OpenWindow, and also contains:
+-     *
+-     * +32 = scroll X direction (-2 .. +2)
+-     * +36 = scroll Y direction (-2 .. +2)
+-     */
+-
+-    sb = ro_find_sbar(block[0]);
+-    if (!sb)
+-	return;		/* Window not found (error). */
+-
+-    wp = sb-> wp;
+-
+-    if (wp == NULL)
+-    {
+-	/* Horizontal bar. */
+-	offset = block[8];
+-	if (offset == -2)
+-	    offset = (block[1] - block[3]) / gui.char_width;
+-	else if (offset == 2)
+-	    offset = (block[3] - block[1]) / gui.char_width;
+-
+-	block[5] += offset * gui.char_width;
+-
+-	gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+-
+-	swi(Wimp_OpenWindow, 0, block);
+-    }
+-    else
+-    {
+-	offset = -block[9];
+-	if (offset == -2)
+-	    offset = -(wp -> w_height - 1);
+-	else if (offset == 2)
+-	    offset = wp -> w_height - 1;
+-
+-	/* Possibly we should reposition the scrollbar?
+-	 * Vim seems to update the bar anyway...
+-	 */
+-	gui_drag_scrollbar(sb, offset - (block[6] / gui.char_height), FALSE);
+-    }
+-}
+-
+-/* Move a window by a given offset. Used to simulate the function of the
+- * nested wimp.
+- */
+-    void
+-ro_move_child(window, x, y, pos_wanted, pos_got)
+-    int	window;
+-    int x,y;		/* offset to move by */
+-    int	pos_wanted, pos_got;
+-{
+-    int	block[10];
+-
+-    block[0] = window;
+-    swi(Wimp_GetWindowState, 0, block);
+-    block[1] += x;
+-    block[2] += y;
+-    block[3] += x;
+-    block[4] += y;
+-    if (pos_wanted == -1)
+-	block[7] = -1;
+-    else if (pos_wanted == -2)
+-	block[7] = pos_got;
+-    swi(Wimp_OpenWindow, 0, block);
+-}
+-
+-/* Open the main window. Also updates scrollbars if we are not
+- * using the nested Wimp.
+- * If we have just changed mode then re-read all values.
+- */
+-    void
+-ro_open_main(block)
+-    int	    *block;
+-{
+-    int	    toggle_size;
+-
+-    /* Find out if the user clicked on the toggle size icon. */
+-    block[20] = block[0];
+-    swi(Wimp_GetWindowState, 0, block + 20);
+-    toggle_size = block[28] & (1 << 19);
+-
+-    if (nested_wimp)
+-    {
+-	swi(Wimp_OpenWindow, 0, block);
+-    }
+-    else
+-    {
+-	int	old[10];
+-	int	x_offset, y_offset;	    /* Move children same as parent. */
+-	int	pos_wanted, pos_got;
+-	int	left_bar  = gui.which_scrollbars[SBAR_LEFT];
+-	int	right_bar = gui.which_scrollbars[SBAR_RIGHT];
+-	win_T	*wp;
+-
+-	/* Three cases to think about:
+-	 * 1) Move to top. Open each window at the top.
+-	 * 2) Same stack position. Open each with same position.
+-	 * 3) Open at bottom. Open children with parent's new position.
+-	 */
+-
+-	old[0] = block[0];
+-	swi(Wimp_GetWindowState, 0, old);
+-	pos_wanted = block[7];
+-	swi(Wimp_OpenWindow, 0, block);
+-	/* Block updated by OpenWindow? I don't think so! */
+-	swi(Wimp_GetWindowState, 0, block);
+-	pos_got = block[7];
+-
+-	x_offset = block[1] - old[1];
+-	y_offset = block[4] - old[4];
+-	if (x_offset || y_offset || pos_wanted == -1 || pos_wanted == -2)
+-	{
+-	    /* If parent has moved, re-open all the child windows. */
+-	    FOR_ALL_WINDOWS(wp)
+-	    {
+-		/* Reopen scrollbars for this window. */
+-		if (left_bar)
+-		    ro_move_child(wp -> w_scrollbars[SBAR_LEFT].id,
+-				x_offset, y_offset,
+-				pos_wanted, pos_got);
+-		if (right_bar)
+-		    ro_move_child(wp -> w_scrollbars[SBAR_RIGHT].id,
+-				x_offset, y_offset,
+-				pos_wanted, pos_got);
+-	    }
+-	}
+-    }
+-    if (changed_mode || toggle_size)
+-    {
+-	int	width, height;
+-
+-	if (changed_mode)
+-	    ro_measure_tools();
+-	block[0] = gui.window_handle;
+-	swi(Wimp_GetWindowState, 0, block);
+-
+-	width = block[3] - block[1];
+-	height = block[4] - block[2];
+-	swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+-	gui_resize_shell(width, height);
+-	changed_mode = FALSE;
+-    }
+-}
+-
+-    void
+-ro_open_window(block)
+-    int		*block;
+-{
+-    int		pos;
+-    scrollbar_T *sb;
+-
+-    if (block[0] == gui.window_handle)
+-	ro_open_main(block);
+-    else
+-    {
+-	swi(Wimp_OpenWindow, 0, block);
+-	if (block[0] != gui.window_handle)
+-	{
+-	    sb = ro_find_sbar(block[0]);
+-	    if (sb)
+-	    {
+-		if (sb-> wp != NULL)
+-		    gui_drag_scrollbar(sb, -block[6] / gui.char_height, FALSE);
+-		else
+-		    gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+-	    }
+-	}
+-    }
+-}
+-
+-    void
+-ro_menu_selection(block)
+-    int		*block;
+-{
+-    int		*item = wimp_menu + 7;
+-    vimmenu_T	*menu;
+-    /* wimp_menu points to a wimp menu structure */
+-
+-    for (;;)
+-    {
+-	while (block[0]--)
+-	    item += 6;
+-	if (block[1] == -1)
+-	    break;
+-	item = ((int *) item[1]) + 7;
+-	block++;
+-    }
+-    /* item points to the wimp menu item structure chosen */
+-    menu = (vimmenu_T *) item[5];
+-
+-    swi(Wimp_GetPointerInfo, 0, block);
+-    if (block[2] == 1)
+-	/* Adjust used - keep menu open */
+-	swi(Wimp_CreateMenu, 0, wimp_menu);
+-
+-    if (menu-> cb)
+-	menu-> cb(menu);
+-}
+-
+-    void
+-ro_open_parent()
+-{
+-    int head;
+-    char_u *i = curbuf-> b_ffname;
+-    char_u  buffer[256];
+-
+-    head = 0;
+-    for (; *i; i++)
+-    {
+-	if (*i == '.')
+-	    head = i - curbuf-> b_ffname;
+-    }
+-
+-    /* Append head chars to buffer */
+-    if (head < 240 && curbuf-> b_ffname && head)
+-    {
+-	strcpy(buffer, "%filer_opendir ");
+-	strncpy(buffer + 15, curbuf-> b_ffname, head);
+-	buffer[15 + head] = '\0';
+-	swi(OS_CLI, buffer);
+-    }
+-}
+-
+-    void
+-process_event(event, block)
+-    int event;
+-    int *block;
+-{
+-    switch (event)
+-    {
+-	case 0:		/* Nothing - update drag state. */
+-	    if (ro_dragging)
+-		ro_continue_drag(block);
+-	    break;
+-	case 1:		/* Redraw window. */
+-	    redraw_window(block);
+-	    break;
+-	case 2:		/* Open window. */
+-	    ro_open_window(block);
+-	    break;
+-	case 3:		/* Close window. */
+-	    swi(Wimp_GetPointerInfo, 0, block + 1);
+-	    if (block[3] == 1)
+-		ro_open_parent();
+-	    else
+-		if (ro_ok_to_quit())
+-		    ro_quit();
+-	    break;
+-	case 6:		/* Mouse click. */
+-	    ro_mouse(block);
+-	    break;
+-	case 7:		/* Finished drag. */
+-	    ro_drag_finished(block);
+-	    break;
+-	case 8:		/* Key pressed. */
+-	    ro_insert_key((char_u *) &block[6]);
+-	    break;
+-	case 9:
+-	    ro_menu_selection(block);
+-	    break;
+-	case 10:	/* Scroll request. */
+-	    ro_scroll(block);
+-	    break;
+-	case 11:	/* Lose caret. */
+-	    if (block[0] == gui.window_handle)
+-		gui_focus_change(FALSE);
+-	    break;
+-	case 12:	/* Gain caret. */
+-	    if (block[0] == gui.window_handle)
+-		gui_focus_change(TRUE);
+-	    break;
+-	case 17:	/* User message. */
+-	case 18:	/* User message recorded. */
+-	    ro_message(block);
+-	    break;
+-    }
+-}
+-
+-/*
+- * GUI input routine called by gui_wait_for_chars().  Waits for a character
+- * from the keyboard.
+- *  wtime == -1	    Wait forever.
+- *  wtime == 0	    This should never happen.
+- *  wtime > 0	    Wait wtime milliseconds for a character.
+- * Returns OK if a character was found to be available within the given time,
+- * or FAIL otherwise.
+- */
+-    int
+-gui_mch_wait_for_chars(long wtime)
+-{
+-    int block[64];
+-    int	reason;
+-    int start_time = -1;
+-    int ctime = wtime / 10;	/* delay in cs */
+-
+-    if (wtime != -1)
+-    {
+-	swi(OS_ReadMonotonicTime);
+-	start_time = r0;
+-    }
+-
+-    for (;;)
+-    {
+-	if (ro_dragging)
+-	    reason = wimp_poll(0, block);	/* Always return immediately */
+-	else if (wtime == -1)
+-	    reason = wimp_poll(1, block);
+-	else
+-	    reason = wimp_pollidle(0, block, start_time + ctime);
+-
+-	process_event(reason, block);
+-
+-	if (input_available() || ro_return_early)
+-	{
+-	    ro_return_early = FALSE;
+-	    return OK;	    /* There is something to process (key / menu event) */
+-	}
+-
+-	if (wtime != -1)
+-	{
+-	    swi(OS_ReadMonotonicTime);
+-	    if (r0 - start_time > ctime)
+-		return FAIL;	/* We've been waiting too long - return failure */
+-	}
+-    }
+-}
+-
+-/* Flush any output to the screen */
+-    void
+-gui_mch_flush(void)
+-{
+-}
+-
+-/*
+- * Clear a rectangular region of the screen from text pos(row1, col1) to
+- * (row2, col2) inclusive.
+- */
+-    void
+-gui_mch_clear_block(int row1, int col1, int row2, int col2)
+-{
+-    swi(ColourTrans_ReturnGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-    plot_rectangle(96 + 5, r0,
+-			FILL_X(col1), -FILL_Y(row2 + 1),
+-			FILL_X(col2 + 1), -FILL_Y(row1));
+-}
+-
+-    void
+-gui_mch_clear_all(void)
+-{
+-    if (redraw_block)
+-    {
+-	swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-	swi(OS_WriteI + 16);
+-    }
+-    else
+-    {
+-	int block[44];
+-	block[0] = gui.window_handle;
+-	block[1] = 0;
+-	block[2] = -gui.num_rows * gui.char_height;
+-	block[3] = gui.num_cols * gui.char_width;
+-	block[4] = 0;
+-	swi(Wimp_UpdateWindow, 0, block);
+-	while (r0)
+-	{
+-	    swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+-	    swi(OS_WriteI + 16);
+-	    swi(Wimp_GetRectangle, 0, block);
+-	}
+-    }
+-}
+-
+-/*
+- * Delete the given number of lines from the given row, scrolling up any
+- * text further down within the scroll region.
+- */
+-    void
+-gui_mch_delete_lines(int row, int num_lines)
+-{
+-    int top_from = -row - num_lines;
+-    int bot_from = -gui.scroll_region_bot - 1;
+-    int bot_to   = bot_from + num_lines;
+-
+-    swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+-
+-    /* Changed without checking! */
+-    swi(Wimp_BlockCopy, gui.window_handle,
+-			    gui.scroll_region_left * gui.char_width,
+-			    bot_from * gui.char_height,
+-			    (gui.scroll_region_right - gui.scroll_region_left
+-							+ 1) * gui.char_width,
+-			    top_from * gui.char_height,
+-
+-			    gui.scroll_region_left * gui.char_width,
+-			    bot_to * gui.char_height);
+-
+-    gui_clear_block(gui.scroll_region_bot - num_lines + 1,
+-						       gui.scroll_region_left,
+-	gui.scroll_region_bot, gui.scroll_region_right);
+-}
+-
+-/*
+- * Insert the given number of lines before the given row, scrolling down any
+- * following text within the scroll region.
+- */
+-    void
+-gui_mch_insert_lines(int row, int num_lines)
+-{
+-    int top_from = -row;
+-    int bot_to   = -gui.scroll_region_bot - 1;
+-    int bot_from = bot_to + num_lines;
+-
+-    swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+-
+-    swi(Wimp_BlockCopy, gui.window_handle,
+-			    gui.scroll_region_left * gui.char_width,
+-			    bot_from * gui.char_height,
+-			    (gui.scroll_region_right - gui.scroll_region_left
+-							+ 1) * gui.char_width,
+-			    top_from * gui.char_height,
+-
+-			    gui.scroll_region_left * gui.char_width,
+-			    bot_to * gui.char_height);
+-
+-    gui_clear_block(row, gui.scroll_region_left,
+-				row + num_lines - 1, gui.scroll_region_right);
+-}
+-
+-/* Put selection in clipboard buffer.
+- * Should we become the new owner?
+- */
+-    void
+-clip_mch_request_selection(VimClipboard *cbd)
+-{
+-    int		block[64];	/* Will be used in Wimp_Poll. */
+-    int		reason;
+-    char_u	*buffer;
+-    long_u	length;
+-
+-    block[0] = 48;			/* Size of block. */
+-    block[3] = 0;			/* Orinial message. */
+-    block[4] = 0x10;			/* Data request. */
+-    block[5] = gui.window_handle;
+-    block[6] = RO_LOAD_CLIPBOARD;	/* Internal handle. */
+-    block[7] = block[8] = 0;		/* (x,y) not used. */
+-    block[9] = 4;
+-    block[10] = 0xfff;	    /* We want text files if possible, I think. */
+-    block[11] = -1;	    /* End of list. */
+-    swi(Wimp_SendMessage, 17, block, 0);    /* Broadcast request. */
+-
+-    /* OK, we've sent the request. Poll until we get a null poll (failure) or
+-     * we load the clipboard.
+-     * If we receive a DataSave event with icon handle = -2 then put it on the
+-     * clipboard. RISC OS should ensure that key events will not be delivered
+-     * until the clipboard operation completes (unless the owner starts idling
+-     * - we can't wait forever!).
+-     */
+-    for (;;)
+-    {
+-	reason = wimp_poll(0, block);
+-	if (reason == 0)
+-	    return;	    /* Failed to get clipboard. */
+-	if ((reason == 17 || reason == 18) &&
+-		block[4] == 1 && block[6] == RO_LOAD_CLIPBOARD)
+-	    break;	    /* Got it - stop waiting. */
+-	process_event(reason, block);
+-	if (ro_return_early)
+-	    return;
+-    }
+-    /* Tell owner to save data in <Wimp$Scrap>. */
+-    block[0] = 60;
+-    block[3] = block[2];   /* Copy myref -> yourref */
+-    block[4] = 2;	    /* DataSaveAck. */
+-    block[9] = -1;	    /* Data is unsafe. */
+-    strcpy( ((char_u *) block) + 44, "<Wimp$Scrap>");
+-    swi(Wimp_SendMessage, 17, block, block[1]);
+-
+-    /* Wait again for reply. */
+-    for (;;)
+-    {
+-	reason = wimp_poll(0, block);
+-	if (reason == 0)
+-	    return;	/* Other program has given up! */
+-	if ((reason == 17 || reason == 18) && block[4] == 3 && block[6] == RO_LOAD_CLIPBOARD)
+-	    break;	/* Clipboard data saved to <Wimp$Scrap> */
+-	process_event(reason, block);
+-	if (ro_return_early)
+-	    return;
+-    }
+-
+-    /* <Wimp$Scrap> contains clipboard - load it. */
+-    if (xswi(OS_File, 17, "<Wimp$Scrap>") & v_flag)
+-	return;		/* Error! */
+-    if (r0 != 1 && r0 != 3)
+-	return;
+-    length = r4;
+-
+-    buffer = lalloc(length, TRUE);  /* Claim memory (and report errors). */
+-    if (buffer == NULL)
+-	return;
+-
+-    if (xswi(OS_File, 16, "<Wimp$Scrap>", buffer, 0) & v_flag)
+-	return;
+-
+-    clip_yank_selection(MCHAR, buffer, length, cbd);
+-
+-    vim_free(buffer);
+-
+-    swi(OS_FSControl, 27, "<Wimp$Scrap>", 0, 0);    /* Delete temp file. */
+-
+-    block[4] = 4;		    /* Send DataLoadAck. */
+-    block[3] = block[2];	    /* Copy myref -> yourref. */
+-    swi(Wimp_SendMessage, 17, block, block[1]);
+-}
+-
+-/* Not sure what this means under RISC OS. */
+-    void
+-clip_mch_lose_selection(VimClipboard *cbd)
+-{
+-}
+-
+-/* Tell everyone that we now own the clipboard.
+- * Return OK if our claim is accepted (always, under RISC OS)
+- */
+-    int
+-clip_mch_own_selection(VimClipboard *cbd)
+-{
+-    int block[6];
+-    block[0] = 24;	/* Length of block.  */
+-    block[3] = 0;	/* Original message. */
+-    block[4] = 0xf;	/* ClaimEntity. */
+-    block[5] = 0x4;	/* Claim clipboard only. */
+-    swi(Wimp_SendMessage, 17, block, 0);
+-    return OK;
+-}
+-
+-/*
+- * Send the current selection to the clipboard.  Do nothing for X because we
+- * will fill in the selection only when requested by another app. Sounds good
+- * for RISC OS too.
+- */
+-    void
+-clip_mch_set_selection(VimClipboard *cbd)
+-{
+-    clip_get_selection(cbd);
+-}
+-
+-/*
+- * Make a menu either grey or not grey.
+- */
+-    void
+-gui_mch_menu_grey(vimmenu_T *menu, int grey)
+-{
+-    menu-> greyed_out = grey;
+-}
+-
+-/*
+- * Make menu item hidden or not hidden
+- */
+-    void
+-gui_mch_menu_hidden(vimmenu_T *menu, int hidden)
+-{
+-    menu-> hidden = hidden;
+-}
+-
+-/*
+- * This is called after setting all the menus to grey/hidden or not.
+- */
+-    void
+-gui_mch_draw_menubar(void)
+-{
+-    swi(Wimp_CreateMenu, 0, -1);
+-    if (wimp_menu != (int *) -1)
+-    {
+-	ro_remove_menu(wimp_menu);
+-	wimp_menu = (int *) -1;
+-    }
+-}
+-
+-/* Add or remove a scrollbar. Note that this is only called when
+- * the scrollbar state is changing.
+- * The scroll bar window has already been created.
+- * We can't do anything except remove the scroll bar
+- * until we know what size to use.
+- */
+-    void
+-gui_mch_enable_scrollbar(sb, flag)
+-    scrollbar_T	*sb;
+-    int		flag;
+-{
+-    if (!flag)
+-	swi(Wimp_CloseWindow, 0, & (sb->id) );
+-    return;
+-}
+-
+-    void
+-gui_mch_set_blinking(long waittime, long on, long off)
+-{
+-}
+-
+-/*
+- * Stop the cursor blinking.  Show the cursor if it wasn't shown.
+- */
+-    void
+-gui_mch_stop_blink(void)
+-{
+-}
+-
+-/*
+- * Start the cursor blinking.  If it was already blinking, this restarts the
+- * waiting time and shows the cursor.
+- */
+-    void
+-gui_mch_start_blink(void)
+-{
+-}
+-
+-/*
+- * Return the RGB value of a pixel as a long.
+- */
+-    long_u
+-gui_mch_get_rgb(guicolor_T pixel)
+-{
+-    return (long_u)pixel;
+-}
+-
+-    void
+-gui_mch_set_text_area_pos(int x, int y, int w, int h)
+-{
+-}
+-
+-    void
+-gui_mch_enable_menu(int flag)
+-{
+-}
+-
+-    void
+-gui_mch_set_menu_pos(int x, int y, int w, int h)
+-{
+-}
+-
+-    void
+-gui_mch_add_menu(vimmenu_T *menu, int idx)
+-{
+-}
+-
+-    void
+-gui_mch_add_menu_item(vimmenu_T *menu, int idx)
+-{
+-}
+-
+-    void
+-gui_mch_new_menu_colors(void)
+-{
+-}
+-
+-    void
+-gui_mch_destroy_menu(vimmenu_T *menu)
+-{
+-}
+-
+-/* Size of buffer has changed.
+- * Add one to max since gui.c subtracts one more than it should!
+- */
+-    void
+-gui_mch_set_scrollbar_thumb(sb, val, size, max)
+-    scrollbar_T	*sb;
+-    long	val;
+-    long	size;
+-    long	max;
+-{
+-    int		block[10], width, height;
+-
+-    width = (max + 1) * gui.char_width;
+-    height = (max + 1 + W_STATUS_HEIGHT(sb->wp)) * gui.char_height;
+-
+-    block[0] = block[3] = 0;
+-    block[1] = -height + (1 << y_eigen_factor);
+-    block[2] = width;
+-
+-    swi(Wimp_SetExtent, sb -> id, block);
+-
+-    block[0] = sb -> id;
+-    swi(Wimp_GetWindowState, 0, block);
+-    block[5] = val * gui.char_width;
+-    block[6] = -val * gui.char_height;
+-    swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+-			gui.window_handle,	/* Parent window handle. */
+-			(CHILD_FIX_TO_RIGHT  << CHILD_LEFT  )   |
+-			(CHILD_FIX_TO_RIGHT  << CHILD_RIGHT )   |
+-			(CHILD_FIX_TO_BOTTOM << CHILD_TOP   )   |
+-			(CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM)   |
+-			(CHILD_SELF_SCROLL   << CHILD_SCROLL_X) |
+-			(CHILD_SELF_SCROLL   << CHILD_SCROLL_Y)
+-			);
+-}
+-
+-/* Set the position of the scrollbar within the editor
+- * window. Note that, for vertical scrollbars, x and w
+- * are ignored. For horizontal bars y and h are ignored.
+- */
+-    void
+-gui_mch_set_scrollbar_pos(sb, x, y, w, h)
+-    scrollbar_T *sb;
+-    int		x;		/* Horizontal sb position */
+-    int		y;		/* Top of scroll bar */
+-    int		w;		/* Width */
+-    int		h;		/* Height */
+-{
+-    int		block[24];
+-    int		px1, py1;	/* Parent window min coords */
+-    int		px2, py2;	/* Parent window max coords */
+-
+-    /* Find where the parent window is. */
+-    block[0] = gui.window_handle;
+-    swi(Wimp_GetWindowState, 0, block);
+-    px1 = block[1];
+-    py1 = block[2];
+-    px2 = block[3];
+-    py2 = block[4];
+-
+-    block[0] = sb -> id;
+-
+-    /* Find out how big the scroll window is at the moment. */
+-    swi(Wimp_GetWindowInfo, 0, ((char_u *)block) + 1);
+-
+-    if (block[13] < w || block[12] > -h)
+-    {
+-	/* Current window is too small! */
+-	if (block[12] > -h)
+-	    block[12] = -h;
+-	if (block[13] < w)
+-	    block[13] = w;
+-	swi(Wimp_SetExtent, block[0], block + 11);
+-    }
+-
+-    /* This works better on the nested_wimp. */
+-    if (sb-> wp)
+-    {
+-	/* This is a vertical scrollbar. */
+-	block[1] = block[3] = px2 - gui.scrollbar_width + (1 << x_eigen_factor);
+-	block[2] = 1 + py2 - (y + h) + (1 << y_eigen_factor);
+-	block[4] = 1 + py2 - y;
+-    }
+-    else
+-    {
+-	/* This is a horizontal scrollbar. */
+-	block[2] = block[4] = py1 + gui.scrollbar_height;
+-	block[1] = px1;
+-	block[3] = px2 - gui.scrollbar_width;
+-    }
+-
+-    block[5] = 0;
+-    block[6] = 0;
+-    block[7] = -1;
+-
+-    swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+-	    gui.window_handle,	/* Parent window handle. */
+-	    (CHILD_FIX_TO_RIGHT  << CHILD_LEFT  )   |
+-	    (CHILD_FIX_TO_RIGHT  << CHILD_RIGHT )   |
+-	    (CHILD_FIX_TO_BOTTOM << CHILD_TOP   )   |
+-	    (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM)   |
+-	    (CHILD_SELF_SCROLL   << CHILD_SCROLL_X) |
+-	    (CHILD_SELF_SCROLL   << CHILD_SCROLL_Y)
+-       );
+-}
+-
+-/* Create a window with no workarea to place inside editor window.
+- * (what happens without the nested wimp?)
+- * Data for scrollbar is invalid.
+- */
+-    void
+-gui_mch_create_scrollbar(sb, orient)
+-    scrollbar_T *sb;
+-    int		orient;	/* orient is SBAR_HORIZ or SBAR_VERT */
+-{
+-    int bar[] =
+-	{
+-	    0,   0,		/* Visible area : min X,Y */
+-	    100, 100,		/*		  max X,Y */
+-	    0,   0,		/* Scroll offsets */
+-	    -1,			/* Window in front */
+-	    0x80800150 | (orient == SBAR_HORIZ ? (1 << 30) : (1 << 28)),
+-	    0xff070207,		/* Colours */
+-	    0x000c0103,		/* More colours */
+-	    0, -0x4000,		/* Workarea extent */
+-	    0x4000, 0,		/* max X,Y */
+-	    0x00000000,		/* No title */
+-	    0 << 12,		/* No workarea button type */
+-	    1,			/* Wimp sprite area */
+-	    0x00010001,		/* Minimum width, height */
+-	    0, 0, 0,		/* Title data (none) */
+-	    0			/* No icons */
+-	};
+-    swi(Wimp_CreateWindow, 0, bar);
+-    sb -> id = r0;
+-}
+-
+-#if defined(FEAT_WINDOWS) || defined(PROTO)
+-    void
+-gui_mch_destroy_scrollbar(scrollbar_T *sb)
+-{
+-    swi(Wimp_DeleteWindow, 0, & (sb->id));
+-    sb -> id = -1;
+-}
+-#endif
+-
+-    void
+-gui_mch_set_scrollbar_colors(scrollbar_T *sb)
+-{
+-    /* Always use default RO colour scheme. */
+-}
+-
+-/*
+- * Get current mouse coordinates in text window.
+- * Note: (0,0) is the bottom left corner, positive y is UP.
+- */
+-    void
+-gui_mch_getmouse(x, y)
+-    int *x;
+-    int *y;
+-{
+-    int left;
+-    int top;
+-    int block[10];
+-
+-    block[0] = gui.window_handle;
+-    swi(Wimp_GetWindowState, 0, block);
+-    left = block[1];
+-    top = block[4];
+-
+-    swi(Wimp_GetPointerInfo, 0, block);
+-    *x = block[0] - left;
+-    *y = top - block[1];
+-}
+-
+-/* MouseTo(x, y) */
+-    void
+-gui_mch_setmouse(x, y)
+-    int		x;
+-    int		y;
+-{
+-}
+-
+-    void
+-gui_mch_toggle_tearoffs(enable)
+-    int		enable;
+-{
+-    /* no tearoff menus */
+-}
+-
+-/* Redraw a window's title.
+- * For the nested wimp we use the new 'redraw-title-bar' reason code.
+- * For older wimps we mark the area of the screen where the title bar
+- * is as invalid.
+- */
+-    void
+-ro_redraw_title(window)
+-    int window;
+-{
+-    if (nested_wimp)
+-    {
+-	swi(Wimp_ForceRedraw, window, 0x4b534154, 3);
+-    }
+-    else
+-    {
+-	int block[10];
+-	int miny;
+-
+-	block[0] = window;
+-	swi(Wimp_GetWindowState, 0, block);
+-	miny = block[4];
+-	swi(Wimp_GetWindowOutline, 0, block);
+-	swi(Wimp_ForceRedraw, -1,
+-			block[1], miny,
+-			block[3], block[4]);
+-    }
+-}
+-
+-/* Turn a vimmenu_T structure into a wimp menu structure.
+- * -1 if resulting menu is empty.
+- * Only the children and dname items in the root menu are used.
+- */
+-    int *
+-ro_build_menu(menu)
+-    vimmenu_T	*menu;
+-{
+-    int		*wimp_menu;
+-    int		width = 4;
+-    int		w;
+-    int		size = 28;
+-    vimmenu_T	*item;
+-    int		*wimp_item;
+-
+-    /* Find out how big the menu is so we can allocate memory for it */
+-    for (item = menu-> children; item; item = item-> next)
+-    {
+-	if (item-> hidden == FALSE && !menu_is_separator(item->name))
+-	    size += 24;
+-    }
+-
+-    if (size <= 28)
+-	return (int *) -1;		/* No children - shouldn't happen */
+-
+-    wimp_menu = (int *) alloc(size);
+-
+-    wimp_menu[0] = (int) menu-> dname;
+-    wimp_menu[1] = -1;
+-    wimp_menu[2] = 0;
+-    wimp_menu[3] = 0x00070207;
+-    wimp_menu[5] = 44;
+-    wimp_menu[6] = 0;
+-
+-    wimp_item = wimp_menu + 7;
+-
+-    for (item = menu-> children; item; item = item-> next)
+-    {
+-	if (menu_is_separator(item-> name))
+-	{
+-	    /* This menu entry is actually a separator. If it is not the first
+-	     * menu entry then mark the previous menu item as needing a dotted
+-	     * line after it.
+-	     */
+-	    if (wimp_item > wimp_menu + 7)
+-		wimp_item[-6] |= 0x2;
+-	}
+-	else if (item-> hidden == FALSE)
+-	{
+-	    wimp_item[0] = 0;
+-	    wimp_item[1] = item-> children ? (int) ro_build_menu(item) : -1;
+-	    wimp_item[2] = 0x07009131 | (item-> greyed_out << 22);
+-	    wimp_item[3] = (int) item-> dname;
+-	    wimp_item[4] = -1;
+-	    wimp_item[5] = (int) item;  /* Stuff the menu address in this unused space */
+-
+-	    w = strlen(item-> dname) + 1;
+-	    if (w > width)
+-		width = w;
+-	    wimp_item += 6;
+-	}
+-    }
+-
+-    wimp_menu[4] = (width + 2) * 16;
+-    wimp_menu[7]  |= 0x100;	    /* Menu title is indirected */
+-    wimp_item[-6] |= 0x080;	    /* Last entry in menu */
+-    return wimp_menu;
+-}
+-
+-    static void
+-ro_remove_menu(menu)
+-    int	    *menu;
+-{
+-    int	    *item = menu + 7;
+-
+-    if (menu == NULL || menu == (int *) -1)
+-	return;
+-
+-    for (;;)
+-    {
+-	if (item[1] != -1)
+-	    ro_remove_menu((int *) item[1]);	/* Remove sub-menu */
+-	if (item[0] & 0x80)
+-	    break;			/* This was the last entry */
+-	item += 6;
+-    }
+-    vim_free(menu);
+-}
+-
+-    void
+-gui_mch_show_popupmenu(menu)
+-    vimmenu_T	*menu;
+-{
+-    int		block[10];
+-
+-    /* Remove the existing menu, if any */
+-    if (wimp_menu != (int *) -1)
+-    {
+-	swi(Wimp_CreateMenu, 0, -1);
+-	ro_remove_menu(wimp_menu);
+-	wimp_menu = (int *) -1;
+-    }
+-
+-    wimp_menu = ro_build_menu(menu);
+-    if (wimp_menu != (int *) -1)
+-    {
+-	swi(Wimp_GetPointerInfo, 0, block);
+-	swi(Wimp_CreateMenu, 0, wimp_menu, block[0] - 64, block[1] + 64);
+-    }
+-}
+-
+-/* Run a command using the TaskWindow module.
+- * If SHELL_FILTER is set then output is not echoed to the screen,
+- * If it is not set, then \r is not sent to the output file.
+- */
+-    int
+-gui_mch_call_shell(cmd, options)
+-    char_u  *cmd;
+-    int	    options;	/* SHELL_FILTER if called by do_filter() */
+-			/* SHELL_COOKED if term needs cooked mode */
+-{
+-    char_u  task_cmd[256];	/* Contains *TaskWindow command. */
+-    int	    block[64];
+-    int	    reason;
+-    char_u  *out;
+-    char_u  c;
+-    int	    old_msg_col;
+-    char_u  *out_redir;
+-    int	    length;
+-    FILE    *out_file = NULL;
+-
+-    out_redir = strstr(cmd, " > ");
+-    if (out_redir == NULL)
+-	length = strlen(cmd);	/* No redirection. */
+-    else
+-    {
+-	length = out_redir - cmd;
+-	out_file = fopen(out_redir + 3, "wb");
+-	if (out_file == NULL)
+-	    smsg("WARNING : Can't open file %s for writing\n", out_redir + 3);
+-    }
+-
+-    if (length > 180)
+-    {
+-	if (out_file)
+-	    fclose(out_file);
+-	return FAIL;		/* Command too long. */
+-    }
+-
+-    strcpy(task_cmd, "TaskWindow \"");
+-    strncpy(task_cmd + 12, cmd, length);
+-    sprintf(task_cmd + 12 + length,
+-	    "\" -task &%08x -ctrl -quit -name \"Vim command\"",
+-	    task_handle);
+-
+-    if (options & SHELL_COOKED)
+-	settmode(TMODE_COOK);
+-
+-    if (xswi(Wimp_StartTask, task_cmd) & v_flag)
+-    {
+-	/* Failed to even start a new task (out of memory?) */
+-	settmode(TMODE_RAW);
+-	if (out_file)
+-	    fclose(out_file);
+-	return FAIL;
+-    }
+-
+-    /* Wait for the child process to initialise. */
+-    child_handle = 0;
+-    while (!child_handle)
+-    {
+-	reason = wimp_poll(0, block);
+-	if ((reason == 17 || reason == 18) && block[4] == 0x808c2)
+-	    child_handle = block[1];
+-	else
+-	    process_event(reason, block);
+-    }
+-
+-    /* Block until finished */
+-    while (child_handle)
+-    {
+-	reason = wimp_poll(1, block);
+-	if (reason == 3 || (reason == 8 && block[6] == 3))
+-	{
+-	    /* Close window request or CTRL-C - kill child task. */
+-	    block[0] = 20;
+-	    block[3] = 0;
+-	    block[4] = 0x808c4;	    /* Morite */
+-	    swi(Wimp_SendMessage, 17, block, child_handle);
+-	    MSG_PUTS(_("\nSending message to terminate child process.\n"));
+-	    continue;
+-	}
+-	else if (reason == 8)
+-	{
+-	    block[0] = 28;
+-	    block[3] = 0;
+-	    block[4] = 0x808c0;	    /* Input */
+-	    block[5] = 1;
+-	    /* Block[6] is OK as it is! */
+-	    swi(Wimp_SendMessage, 17, block, child_handle);
+-	    continue;
+-	}
+-	else if (reason == 17 || reason == 18)
+-	{
+-	    if (block[4] == 0x808c1)
+-	    {
+-		/* Ack message. */
+-		block[3] = block[2];
+-		swi(Wimp_SendMessage, 19, block, block[1]);
+-		out = (char_u *)block + 24;
+-		old_msg_col = msg_col;
+-		while (block[5]--)
+-		{
+-		    c = *out++;
+-		    if (out_file && (c != '\r' || (options & SHELL_FILTER)))
+-			fputc(c, out_file);
+-		    if ((options & SHELL_FILTER) == 0)
+-		    {
+-			if (c == 127)
+-			    msg_puts("\b \b");
+-			else if (c > 31)
+-			    msg_putchar(c);
+-			else if (c == 10)
+-			{
+-			    lines_left = 8;	/* Don't do More prompt! */
+-			    msg_putchar(10);
+-			}
+-		    }
+-		}
+-		/* Flush output to the screen. */
+-		windgoto(msg_row, msg_col);
+-		out_flush();
+-		continue;
+-	    }
+-	}
+-	process_event(reason, block);
+-    }
+-    msg_putchar('\n');
+-    settmode(TMODE_RAW);
+-    if (out_file)
+-	fclose(out_file);
+-    return OK;
+-}
+-
+-/* Like strsave(), but stops at any control char */
+-    char_u *
+-wimp_strsave(str)
+-    char    *str;
+-{
+-    int	    strlen = 0;
+-    char_u  *retval;
+-    while (str[strlen] > 31)
+-	strlen++;
+-    retval = alloc(strlen + 1);
+-    if (retval)
+-    {
+-	memcpy(retval, str, strlen);
+-	retval[strlen] = '\0';
+-    }
+-    return retval;
+-}
+-
+-/* If we are saving then pop up a standard RISC OS save box.
+- * Otherwise, open a directory viewer on the given directory (and return NULL)
+- * The string we return will be freed later.
+- */
+-    char_u *
+-gui_mch_browse(saving, title, dflt, ext, initdir, filter)
+-    int		saving;		/* write action */
+-    char_u	*title;		/* title for the window */
+-    char_u	*dflt;		/* default file name */
+-    char_u	*ext;		/* extension added */
+-    char_u	*initdir;	/* initial directory, NULL for current dir */
+-    char_u	*filter;	/* file name filter */
+-{
+-    char command[256];
+-    int length;
+-
+-    if (saving)
+-    {
+-	int	block[64];
+-	int	reason;
+-	int	done_save = FALSE;
+-	char_u	*retval = NULL;
+-	char_u  *sprname;
+-	char_u	*fname;
+-	int	dragging_icon = FALSE;
+-	int	filetype;
+-
+-	if (!dflt)
+-	    dflt = "TextFile";
+-
+-	block[0] = save_window;
+-	block[1] = 0;
+-	swi(Wimp_GetIconState, 0, block);
+-	sprname = ((char_u *) block[7]);
+-	block[1] = 1;
+-	swi(Wimp_GetIconState, 0, block);
+-	fname = ((char *) block[7]);
+-	strncpy(fname, dflt, 255);
+-
+-	if (xswi(OS_FSControl, 31, curbuf->b_p_oft) & v_flag)
+-	{
+-	    filetype = 0xfff;
+-	    strcpy(sprname + 5, "xxx");
+-	}
+-	else
+-	{
+-	    filetype = r2;
+-	    sprintf(sprname + 5, "%03x", filetype);
+-	}
+-
+-	/* Open the save box */
+-
+-	swi(Wimp_GetPointerInfo, 0, block);
+-	swi(Wimp_CreateMenu, 0, save_window, block[0] - 64, block[1] + 64);
+-	swi(Wimp_SetCaretPosition, save_window, 1, 0, 0, -1, -1);
+-
+-	while (!done_save)
+-	{
+-	    reason = wimp_poll(1, block);
+-	    switch (reason)
+-	    {
+-		case 1:
+-		    redraw_window(block);
+-		    break;
+-		case 2:
+-		    if (block[0] == save_window)
+-			swi(Wimp_OpenWindow, 0, block);
+-		    else
+-			ro_open_window(block);
+-		    break;
+-		case 3:
+-		    done_save = TRUE;
+-		    break;
+-		case 6:
+-		    if (block[3] != save_window)
+-			done_save = TRUE;
+-		    else
+-		    {
+-			int drag_box[4];
+-			int min_x, max_y;
+-
+-			switch (block[4])
+-			{
+-			    case    0: /* Start drag */
+-				block[0] = save_window;
+-				swi(Wimp_GetWindowState, 0, block);
+-				min_x = block[1];
+-				max_y = block[4];
+-				block[1] = 0;
+-				swi(Wimp_GetIconState, 0, block);
+-				drag_box[0] = block[2] + min_x;
+-				drag_box[1] = block[3] + max_y;
+-				drag_box[2] = block[4] + min_x;
+-				drag_box[3] = block[5] + max_y;
+-
+-				swi(DragASprite_Start,
+-					0x45,
+-					1,
+-					sprname,
+-					drag_box);
+-				dragging_icon = TRUE;
+-				break;
+-			    case    2: /* OK */
+-				retval = wimp_strsave(fname);
+-				done_save = TRUE;
+-				break;
+-			    case    3: /* Cancel */
+-				done_save = TRUE;
+-				break;
+-			}
+-		    }
+-		    break;
+-		case 7:
+-		    if (dragging_icon)
+-		    {
+-			int len = 0;
+-
+-			dragging_icon = FALSE;
+-			swi(Wimp_GetPointerInfo, 0, block);
+-			block[5] = block[3];
+-			block[6] = block[4];
+-			block[7] = block[0];
+-			block[8] = block[1];
+-			block[9] = 0;		/* Don't know the size */
+-			block[10] = filetype;
+-
+-			while (fname[len] > 31)
+-			{
+-			    if (fname[len] == '.')
+-			    {
+-				fname += len + 1;
+-				len = 0;
+-			    }
+-			    else
+-				len++;
+-			}
+-			if (len > 211)
+-			    len = 211;
+-
+-			memcpy(((char_u *) block) + 44, fname, len);
+-			((char_u *)block)[44 + len] = '\0';
+-
+-			block[0] = (len + 48) & 0xfc;
+-			block[3] = 0;
+-			block[4] = 1;	    /* DataSave */
+-
+-			swi(Wimp_SendMessage, 17, block, block[5], block[6]);
+-		    }
+-		    else
+-			ro_drag_finished(block);
+-		    break;
+-		case 8:
+-		    if (block[6] == 13)
+-		    {
+-			retval = wimp_strsave(fname);
+-			done_save = TRUE;
+-		    }
+-		    else if (block[6] == 0x1b)
+-			done_save = TRUE;
+-		    else
+-			swi(Wimp_ProcessKey, block[6]);
+-		    break;
+-		case 17:
+-		case 18:
+-		    if (block[4] == 2 && block[9] != -1)
+-		    {
+-			/* DataSaveAck from dragging icon. */
+-			retval = wimp_strsave(((char_u *) block) + 44);
+-			done_save = TRUE;
+-		    }
+-		    else if (block[4] == 0x400c9)
+-		    {
+-			/* MenusDeleted */
+-			done_save = TRUE;
+-		    }
+-		    else
+-			ro_message(block);
+-		    break;
+-	    }
+-	}
+-	block[0] = save_window;
+-	swi(Wimp_CloseWindow, 0, block);
+-	swi(Wimp_GetCaretPosition, 0, block);
+-	if (block[0] == -1)
+-	    swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+-	return retval;
+-    }
+-    else if (initdir)
+-    {
+-	/* Open a directory viewer */
+-	length = strlen(initdir);
+-
+-	if (length > 240)
+-	    return NULL;	/* Path too long! */
+-
+-	length = sprintf(command, "Filer_OpenDir %s", initdir);
+-	while (command[length - 1] == '.')
+-	    length--;
+-	command[length] = '\0';
+-	swi(OS_CLI, command);
+-    }
+-    return NULL;
+-}
+diff -Naur vim73.orig/src/gui_riscos.h vim73/src/gui_riscos.h
+--- vim73.orig/src/gui_riscos.h	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/gui_riscos.h	1970-01-01 00:00:00.000000000 +0000
+@@ -1,32 +0,0 @@
+-/* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved	by Bram Moolenaar
+- *
+- * Do ":help uganda"  in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- */
+-
+-#define FEAT_BROWSE
+-
+-#define TASK 0x4b534154
+-
+-/* Nested wimp flags: */
+-#define CHILD_FIX_TO_WORKAREA	0
+-#define CHILD_FIX_TO_LEFT	1
+-#define CHILD_FIX_TO_BOTTOM	1
+-#define CHILD_FIX_TO_RIGHT	2
+-#define CHILD_FIX_TO_TOP	2
+-
+-#define CHILD_SELF_SCROLL	0
+-#define CHILD_PARENT_SCROLL	1
+-
+-#define CHILD_LEFT		16
+-#define CHILD_BOTTOM		18
+-#define CHILD_RIGHT		20
+-#define CHILD_TOP		22
+-#define CHILD_SCROLL_X		24
+-#define CHILD_SCROLL_Y		26
+-
+-int wimp_poll(int mask, int *block);
+-int wimp_poll_idle(int mask, int *block, int end_time);
+-void ro_open_main(int *block);
+diff -Naur vim73.orig/src/gui_w16.c vim73/src/gui_w16.c
+--- vim73.orig/src/gui_w16.c	2010-07-18 13:03:38.000000000 +0000
++++ vim73/src/gui_w16.c	2011-05-17 09:36:14.489797147 +0000
+@@ -1098,7 +1098,8 @@
+     char_u	*message,
+     char_u	*buttons,
+     int		 dfltbutton,
+-    char_u	*textfield)
++    char_u	*textfield,
++    int		ex_cmd)
+ {
+     FARPROC	dp;
+     LPWORD	p, pnumitems;
+diff -Naur vim73.orig/src/gui_w32.c vim73/src/gui_w32.c
+--- vim73.orig/src/gui_w32.c	2010-08-08 13:05:26.000000000 +0000
++++ vim73/src/gui_w32.c	2011-05-17 09:36:14.489797147 +0000
+@@ -289,13 +289,13 @@
+ 
+ #ifdef FEAT_MENU
+ static UINT	s_menu_id = 100;
++#endif
+ 
+ /*
+  * Use the system font for dialogs and tear-off menus.  Remove this line to
+  * use DLG_FONT_NAME.
+  */
+-# define USE_SYSMENU_FONT
+-#endif
++#define USE_SYSMENU_FONT
+ 
+ #define VIM_NAME	"vim"
+ #define VIM_CLASS	"Vim"
+@@ -1260,7 +1260,7 @@
+ 
+     /* try and load the user32.dll library and get the entry points for
+      * multi-monitor-support. */
+-    if ((user32_lib = LoadLibrary("User32.dll")) != NULL)
++    if ((user32_lib = vimLoadLib("User32.dll")) != NULL)
+     {
+ 	pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
+ 							 "MonitorFromWindow");
+@@ -1573,6 +1573,11 @@
+ # endif
+ #endif
+ 
++#ifdef FEAT_EVAL
++    /* set the v:windowid variable */
++    set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
++#endif
++
+ theend:
+     /* Display any pending error messages */
+     display_errors();
+@@ -3000,7 +3005,8 @@
+     char_u	*message,
+     char_u	*buttons,
+     int		 dfltbutton,
+-    char_u	*textfield)
++    char_u	*textfield,
++    int		ex_cmd)
+ {
+     WORD	*p, *pdlgtemplate, *pnumitems;
+     DWORD	*dwp;
+@@ -4188,7 +4194,7 @@
+     static void
+ dyn_imm_load(void)
+ {
+-    hLibImm = LoadLibrary("imm32.dll");
++    hLibImm = vimLoadLib("imm32.dll");
+     if (hLibImm == NULL)
+ 	return;
+ 
+diff -Naur vim73.orig/src/gui_w48.c vim73/src/gui_w48.c
+--- vim73.orig/src/gui_w48.c	2010-07-27 19:46:04.000000000 +0000
++++ vim73/src/gui_w48.c	2011-05-17 09:33:35.467447179 +0000
+@@ -1810,7 +1810,8 @@
+ 		 * mapped we want to use the mapping instead. */
+ 		if (vk == VK_F10
+ 			&& gui.menu_is_active
+-			&& check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
++			&& check_map(k10, State, FALSE, TRUE, FALSE,
++							  NULL, NULL) == NULL)
+ 		    break;
+ #endif
+ 		if (GetKeyState(VK_SHIFT) & 0x8000)
+@@ -1924,7 +1925,8 @@
+     /* Check for <F10>: Default effect is to select the menu.  When <F10> is
+      * mapped we need to stop it here to avoid strange effects (e.g., for the
+      * key-up event) */
+-    if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
++    if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
++							  NULL, NULL) == NULL)
+ #endif
+ 	DispatchMessage(&msg);
+ }
+diff -Naur vim73.orig/src/gui_x11.c vim73/src/gui_x11.c
+--- vim73.orig/src/gui_x11.c	2010-08-08 13:05:45.000000000 +0000
++++ vim73/src/gui_x11.c	2011-05-17 09:34:37.612549577 +0000
+@@ -2895,6 +2895,11 @@
+ 	    focus = gui.in_focus;
+ 	}
+ 
++#if defined(FEAT_NETBEANS_INTG)
++	/* Process any queued netbeans messages. */
++	netbeans_parse_messages();
++#endif
++
+ 	/*
+ 	 * Don't use gui_mch_update() because then we will spin-lock until a
+ 	 * char arrives, instead we use XtAppProcessEvent() to hang until an
+diff -Naur vim73.orig/src/gui_xmdlg.c vim73/src/gui_xmdlg.c
+--- vim73.orig/src/gui_xmdlg.c	2010-06-26 03:53:50.000000000 +0000
++++ vim73/src/gui_xmdlg.c	2011-05-17 09:36:14.477798479 +0000
+@@ -688,7 +688,7 @@
+ 	    do_dialog(VIM_ERROR,
+ 		    (char_u *)_("Error"),
+ 		    (char_u *)_("Invalid font specification"),
+-		    (char_u *)_("&Dismiss"), 1, NULL);
++		    (char_u *)_("&Dismiss"), 1, NULL, FALSE);
+ 
+ 	return True;
+     }
+@@ -807,7 +807,7 @@
+ 	do_dialog(VIM_ERROR,
+ 		(char_u *)_("Error"),
+ 		(char_u *)_("Invalid font specification"),
+-		(char_u *)_("&Dismiss"), 1, NULL);
++		(char_u *)_("&Dismiss"), 1, NULL, FALSE);
+ 	XFreeFontNames(name);
+     }
+     else
+diff -Naur vim73.orig/src/hardcopy.c vim73/src/hardcopy.c
+--- vim73.orig/src/hardcopy.c	2010-07-31 14:10:59.000000000 +0000
++++ vim73/src/hardcopy.c	2011-05-17 09:38:29.890769275 +0000
+@@ -1759,18 +1759,25 @@
+     char	*name;
+     struct prt_ps_resource_S *resource;
+ {
+-    char_u	buffer[MAXPATHL + 1];
++    char_u	*buffer;
++    int		retval;
+ 
+-    STRCPY(resource->name, name);
++    buffer = alloc(MAXPATHL + 1);
++    if (buffer == NULL)
++	return FALSE;
++
++    vim_strncpy(resource->name, (char_u *)name, 63);
+     /* Look for named resource file in runtimepath */
+     STRCPY(buffer, "print");
+     add_pathsep(buffer);
+-    STRCAT(buffer, name);
+-    STRCAT(buffer, ".ps");
++    vim_strcat(buffer, (char_u *)name, MAXPATHL);
++    vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+     resource->filename[0] = NUL;
+-    return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
++    retval = (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ 							   resource->filename)
+ 	    && resource->filename[0] != NUL);
++    vim_free(buffer);
++    return retval;
+ }
+ 
+ /* PS CR and LF characters have platform independent values */
+@@ -2848,15 +2855,33 @@
+     double      right;
+     double      top;
+     double      bottom;
+-    struct prt_ps_resource_S res_prolog;
+-    struct prt_ps_resource_S res_encoding;
++    struct prt_ps_resource_S *res_prolog;
++    struct prt_ps_resource_S *res_encoding;
+     char	buffer[256];
+     char_u      *p_encoding;
+     char_u	*p;
+ #ifdef FEAT_MBYTE
+-    struct prt_ps_resource_S res_cidfont;
+-    struct prt_ps_resource_S res_cmap;
++    struct prt_ps_resource_S *res_cidfont;
++    struct prt_ps_resource_S *res_cmap;
++#endif
++    int		retval = FALSE;
++
++    res_prolog = (struct prt_ps_resource_S *)
++				      alloc(sizeof(struct prt_ps_resource_S));
++    res_encoding = (struct prt_ps_resource_S *)
++				      alloc(sizeof(struct prt_ps_resource_S));
++#ifdef FEAT_MBYTE
++    res_cidfont = (struct prt_ps_resource_S *)
++				      alloc(sizeof(struct prt_ps_resource_S));
++    res_cmap = (struct prt_ps_resource_S *)
++				      alloc(sizeof(struct prt_ps_resource_S));
++#endif
++    if (res_prolog == NULL || res_encoding == NULL
++#ifdef FEAT_MBYTE
++	    || res_cidfont == NULL || res_cmap == NULL
+ #endif
++       )
++	goto theend;
+ 
+     /*
+      * PS DSC Header comments - no PS code!
+@@ -2932,27 +2957,27 @@
+ #endif
+ 
+     /* Search for external resources VIM supplies */
+-    if (!prt_find_resource("prolog", &res_prolog))
++    if (!prt_find_resource("prolog", res_prolog))
+     {
+ 	EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+ 	return FALSE;
+     }
+-    if (!prt_open_resource(&res_prolog))
++    if (!prt_open_resource(res_prolog))
+ 	return FALSE;
+-    if (!prt_check_resource(&res_prolog, PRT_PROLOG_VERSION))
++    if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION))
+ 	return FALSE;
+ #ifdef FEAT_MBYTE
+     if (prt_out_mbyte)
+     {
+ 	/* Look for required version of multi-byte printing procset */
+-	if (!prt_find_resource("cidfont", &res_cidfont))
++	if (!prt_find_resource("cidfont", res_cidfont))
+ 	{
+ 	    EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+ 	    return FALSE;
+ 	}
+-	if (!prt_open_resource(&res_cidfont))
++	if (!prt_open_resource(res_cidfont))
+ 	    return FALSE;
+-	if (!prt_check_resource(&res_cidfont, PRT_CID_PROLOG_VERSION))
++	if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION))
+ 	    return FALSE;
+     }
+ #endif
+@@ -2968,7 +2993,7 @@
+ #endif
+ 	p_encoding = enc_skip(p_penc);
+ 	if (*p_encoding == NUL
+-		|| !prt_find_resource((char *)p_encoding, &res_encoding))
++		|| !prt_find_resource((char *)p_encoding, res_encoding))
+ 	{
+ 	    /* 'printencoding' not set or not supported - find alternate */
+ #ifdef FEAT_MBYTE
+@@ -2977,13 +3002,13 @@
+ 	    p_encoding = enc_skip(p_enc);
+ 	    props = enc_canon_props(p_encoding);
+ 	    if (!(props & ENC_8BIT)
+-		    || !prt_find_resource((char *)p_encoding, &res_encoding))
++		    || !prt_find_resource((char *)p_encoding, res_encoding))
+ 		/* 8-bit 'encoding' is not supported */
+ #endif
+ 		{
+ 		/* Use latin1 as default printing encoding */
+ 		p_encoding = (char_u *)"latin1";
+-		if (!prt_find_resource((char *)p_encoding, &res_encoding))
++		if (!prt_find_resource((char *)p_encoding, res_encoding))
+ 		{
+ 		    EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ 			    p_encoding);
+@@ -2991,7 +3016,7 @@
+ 		}
+ 	    }
+ 	}
+-	if (!prt_open_resource(&res_encoding))
++	if (!prt_open_resource(res_encoding))
+ 	    return FALSE;
+ 	/* For the moment there are no checks on encoding resource files to
+ 	 * perform */
+@@ -3005,13 +3030,13 @@
+ 	if (prt_use_courier)
+ 	{
+ 	    /* Include ASCII range encoding vector */
+-	    if (!prt_find_resource(prt_ascii_encoding, &res_encoding))
++	    if (!prt_find_resource(prt_ascii_encoding, res_encoding))
+ 	    {
+ 		EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ 							  prt_ascii_encoding);
+ 		return FALSE;
+ 	    }
+-	    if (!prt_open_resource(&res_encoding))
++	    if (!prt_open_resource(res_encoding))
+ 		return FALSE;
+ 	    /* For the moment there are no checks on encoding resource files to
+ 	     * perform */
+@@ -3034,44 +3059,44 @@
+     if (prt_out_mbyte && prt_custom_cmap)
+     {
+ 	/* Find user supplied CMap */
+-	if (!prt_find_resource(prt_cmap, &res_cmap))
++	if (!prt_find_resource(prt_cmap, res_cmap))
+ 	{
+ 	    EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ 								    prt_cmap);
+ 	    return FALSE;
+ 	}
+-	if (!prt_open_resource(&res_cmap))
++	if (!prt_open_resource(res_cmap))
+ 	    return FALSE;
+     }
+ #endif
+ 
+     /* List resources supplied */
+-    STRCPY(buffer, res_prolog.title);
++    STRCPY(buffer, res_prolog->title);
+     STRCAT(buffer, " ");
+-    STRCAT(buffer, res_prolog.version);
++    STRCAT(buffer, res_prolog->version);
+     prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
+ #ifdef FEAT_MBYTE
+     if (prt_out_mbyte)
+     {
+-	STRCPY(buffer, res_cidfont.title);
++	STRCPY(buffer, res_cidfont->title);
+ 	STRCAT(buffer, " ");
+-	STRCAT(buffer, res_cidfont.version);
++	STRCAT(buffer, res_cidfont->version);
+ 	prt_dsc_resources(NULL, "procset", buffer);
+ 
+ 	if (prt_custom_cmap)
+ 	{
+-	    STRCPY(buffer, res_cmap.title);
++	    STRCPY(buffer, res_cmap->title);
+ 	    STRCAT(buffer, " ");
+-	    STRCAT(buffer, res_cmap.version);
++	    STRCAT(buffer, res_cmap->version);
+ 	    prt_dsc_resources(NULL, "cmap", buffer);
+ 	}
+     }
+     if (!prt_out_mbyte || prt_use_courier)
+ #endif
+     {
+-	STRCPY(buffer, res_encoding.title);
++	STRCPY(buffer, res_encoding->title);
+ 	STRCAT(buffer, " ");
+-	STRCAT(buffer, res_encoding.version);
++	STRCAT(buffer, res_encoding->version);
+ 	prt_dsc_resources(NULL, "encoding", buffer);
+     }
+     prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
+@@ -3114,15 +3139,15 @@
+     prt_dsc_noarg("BeginProlog");
+ 
+     /* Add required procsets - NOTE: order is important! */
+-    if (!prt_add_resource(&res_prolog))
++    if (!prt_add_resource(res_prolog))
+ 	return FALSE;
+ #ifdef FEAT_MBYTE
+     if (prt_out_mbyte)
+     {
+ 	/* Add CID font procset, and any user supplied CMap */
+-	if (!prt_add_resource(&res_cidfont))
++	if (!prt_add_resource(res_cidfont))
+ 	    return FALSE;
+-	if (prt_custom_cmap && !prt_add_resource(&res_cmap))
++	if (prt_custom_cmap && !prt_add_resource(res_cmap))
+ 	    return FALSE;
+     }
+ #endif
+@@ -3132,7 +3157,7 @@
+ #endif
+ 	/* There will be only one Roman font encoding to be included in the PS
+ 	 * file. */
+-	if (!prt_add_resource(&res_encoding))
++	if (!prt_add_resource(res_encoding))
+ 	    return FALSE;
+ 
+     prt_dsc_noarg("EndProlog");
+@@ -3248,7 +3273,17 @@
+     prt_dsc_noarg("EndSetup");
+ 
+     /* Fail if any problems writing out to the PS file */
+-    return !prt_file_error;
++    retval = !prt_file_error;
++
++theend:
++    vim_free(res_prolog);
++    vim_free(res_encoding);
++#ifdef FEAT_MBYTE
++    vim_free(res_cidfont);
++    vim_free(res_cmap);
++#endif
++
++    return retval;
+ }
+ 
+     void
+diff -Naur vim73.orig/src/if_cscope.c vim73/src/if_cscope.c
+--- vim73.orig/src/if_cscope.c	2010-07-25 14:32:31.000000000 +0000
++++ vim73/src/if_cscope.c	2011-05-17 09:38:55.383939882 +0000
+@@ -13,16 +13,10 @@
+ 
+ #if defined(FEAT_CSCOPE) || defined(PROTO)
+ 
+-#include <string.h>
+-#include <errno.h>
+-#include <assert.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #if defined(UNIX)
+ # include <sys/wait.h>
+-#else
+-    /* not UNIX, must be WIN32 */
+-# include "vimio.h"
+ #endif
+ #include "if_cscope.h"
+ 
+@@ -1274,9 +1268,7 @@
+ 		{
+ 		    win_split(postponed_split > 0 ? postponed_split : 0,
+ 						       postponed_split_flags);
+-#  ifdef FEAT_SCROLLBIND
+-		    curwin->w_p_scb = FALSE;
+-#  endif
++		    RESET_BINDING(curwin);
+ 		    postponed_split = 0;
+ 		}
+ # endif
+@@ -1353,7 +1345,7 @@
+ 		       "       g: Find this definition\n"
+ 		       "       i: Find files #including this file\n"
+ 		       "       s: Find this C symbol\n"
+-		       "       t: Find assignments to\n"));
++		       "       t: Find this text string\n"));
+ 
+ 	cmdp++;
+     }
+@@ -1420,17 +1412,15 @@
+ {
+     short	i, j;
+ #ifndef UNIX
+-    HANDLE	hFile;
+     BY_HANDLE_FILE_INFORMATION bhfi;
+ 
+-    vim_memset(&bhfi, 0, sizeof(bhfi));
+     /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
+     if (!mch_windows95())
+     {
+-	hFile = CreateFile(fname, FILE_READ_ATTRIBUTES, 0, NULL, OPEN_EXISTING,
+-						 FILE_ATTRIBUTE_NORMAL, NULL);
+-	if (hFile == INVALID_HANDLE_VALUE)
++	switch (win32_fileinfo(fname, &bhfi))
+ 	{
++	case FILEINFO_ENC_FAIL:		/* enc_to_utf16() failed */
++	case FILEINFO_READ_FAIL:	/* CreateFile() failed */
+ 	    if (p_csverbose)
+ 	    {
+ 		char *cant_msg = _("E625: cannot open cscope database: %s");
+@@ -1446,15 +1436,12 @@
+ 		    (void)EMSG2(cant_msg, fname);
+ 	    }
+ 	    return -1;
+-	}
+-	if (!GetFileInformationByHandle(hFile, &bhfi))
+-	{
+-	    CloseHandle(hFile);
++
++	case FILEINFO_INFO_FAIL:    /* GetFileInformationByHandle() failed */
+ 	    if (p_csverbose)
+ 		(void)EMSG(_("E626: cannot get cscope database information"));
+ 	    return -1;
+ 	}
+-	CloseHandle(hFile);
+     }
+ #endif
+ 
+@@ -1664,7 +1651,7 @@
+ /*
+  * PRIVATE: cs_make_vim_style_matches
+  *
+- * convert the cscope output into into a ctags style entry (as might be found
++ * convert the cscope output into a ctags style entry (as might be found
+  * in a ctags tags file).  there's one catch though: cscope doesn't tell you
+  * the type of the tag you are looking for.  for example, in Darren Hiebert's
+  * ctags (the one that comes with vim), #define's use a line number to find the
+diff -Naur vim73.orig/src/if_lua.c vim73/src/if_lua.c
+--- vim73.orig/src/if_lua.c	2010-08-12 20:12:04.000000000 +0000
++++ vim73/src/if_lua.c	2011-05-17 09:36:12.098062605 +0000
+@@ -9,12 +9,11 @@
+  * See README.txt for an overview of the Vim source code.
+  */
+ 
+-#include <stdio.h>
+-#include <string.h>
++#include "vim.h"
++
+ #include <lua.h>
+ #include <lualib.h>
+ #include <lauxlib.h>
+-#include "vim.h"
+ 
+ /* Only do the following when the feature is enabled.  Needed for "make
+  * depend". */
+@@ -49,7 +48,7 @@
+ # define symbol_from_dll dlsym
+ # define close_dll dlclose
+ #else
+-# define load_dll LoadLibrary
++# define load_dll vimLoadLib
+ # define symbol_from_dll GetProcAddress
+ # define close_dll FreeLibrary
+ #endif
+diff -Naur vim73.orig/src/if_mzsch.c vim73/src/if_mzsch.c
+--- vim73.orig/src/if_mzsch.c	2010-06-26 03:56:17.000000000 +0000
++++ vim73/src/if_mzsch.c	2011-05-17 09:34:14.935066585 +0000
+@@ -556,8 +556,8 @@
+ 
+     if (hMzGC && hMzSch)
+ 	return OK;
+-    hMzSch = LoadLibrary(sch_dll);
+-    hMzGC = LoadLibrary(gc_dll);
++    hMzSch = vimLoadLib(sch_dll);
++    hMzGC = vimLoadLib(gc_dll);
+ 
+     if (!hMzSch)
+     {
+@@ -794,9 +794,16 @@
+ #endif
+ }
+ 
++#if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
++static __declspec(thread) void *tls_space;
++#endif
++
+     void
+ mzscheme_main(void)
+ {
++#if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
++    scheme_register_tls_space(&tls_space, 0);
++#endif
+ #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
+     /* use trampoline for precise GC in MzScheme >= 4.x */
+     scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
+diff -Naur vim73.orig/src/if_perl.xs vim73/src/if_perl.xs
+--- vim73.orig/src/if_perl.xs	2010-07-22 09:33:37.000000000 +0000
++++ vim73/src/if_perl.xs	2011-05-17 09:33:40.054938001 +0000
+@@ -106,7 +106,7 @@
+ #define close_dll dlclose
+ #else
+ #define PERL_PROC FARPROC
+-#define load_dll LoadLibrary
++#define load_dll vimLoadLib
+ #define symbol_from_dll GetProcAddress
+ #define close_dll FreeLibrary
+ #endif
+diff -Naur vim73.orig/src/if_py_both.h vim73/src/if_py_both.h
+--- vim73.orig/src/if_py_both.h	2010-08-08 11:06:29.000000000 +0000
++++ vim73/src/if_py_both.h	2011-05-17 09:37:45.435703211 +0000
+@@ -33,7 +33,9 @@
+ 
+ static PyObject *OutputWrite(PyObject *, PyObject *);
+ static PyObject *OutputWritelines(PyObject *, PyObject *);
++static PyObject *OutputFlush(PyObject *, PyObject *);
+ 
++/* Function to write a line, points to either msg() or emsg(). */
+ typedef void (*writefn)(char_u *);
+ static void writer(writefn fn, char_u *str, PyInt n);
+ 
+@@ -46,9 +48,10 @@
+ 
+ static struct PyMethodDef OutputMethods[] = {
+     /* name,	    function,		calling,    documentation */
+-    {"write",	    OutputWrite,	1,	    "" },
+-    {"writelines",  OutputWritelines,	1,	    "" },
+-    { NULL,	    NULL,		0,	    NULL }
++    {"write",	    OutputWrite,	1,	    ""},
++    {"writelines",  OutputWritelines,	1,	    ""},
++    {"flush",       OutputFlush,        1,          ""},
++    { NULL,	    NULL,		0,	    NULL}
+ };
+ 
+ #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
+@@ -122,52 +125,28 @@
+     return Py_None;
+ }
+ 
+-static char_u *buffer = NULL;
+-static PyInt buffer_len = 0;
+-static PyInt buffer_size = 0;
+-
+-static writefn old_fn = NULL;
+-
+-    static void
+-buffer_ensure(PyInt n)
++    static PyObject *
++OutputFlush(PyObject *self UNUSED, PyObject *args UNUSED)
+ {
+-    PyInt new_size;
+-    char_u *new_buffer;
+-
+-    if (n < buffer_size)
+-	return;
+-
+-    new_size = buffer_size;
+-    while (new_size < n)
+-	new_size += 80;
+-
+-    if (new_size != buffer_size)
+-    {
+-	new_buffer = alloc((unsigned)new_size);
+-	if (new_buffer == NULL)
+-	    return;
++    /* do nothing */
++    Py_INCREF(Py_None);
++    return Py_None;
++}
+ 
+-	if (buffer)
+-	{
+-	    memcpy(new_buffer, buffer, buffer_len);
+-	    vim_free(buffer);
+-	}
+ 
+-	buffer = new_buffer;
+-	buffer_size = new_size;
+-    }
+-}
++/* Buffer IO, we write one whole line at a time. */
++static garray_T io_ga = {0, 0, 1, 80, NULL};
++static writefn old_fn = NULL;
+ 
+     static void
+ PythonIO_Flush(void)
+ {
+-    if (old_fn && buffer_len)
++    if (old_fn != NULL && io_ga.ga_len > 0)
+     {
+-	buffer[buffer_len] = 0;
+-	old_fn(buffer);
++	((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL;
++	old_fn((char_u *)io_ga.ga_data);
+     }
+-
+-    buffer_len = 0;
++    io_ga.ga_len = 0;
+ }
+ 
+     static void
+@@ -175,30 +154,34 @@
+ {
+     char_u *ptr;
+ 
+-    if (fn != old_fn && old_fn != NULL)
++    /* Flush when switching output function. */
++    if (fn != old_fn)
+ 	PythonIO_Flush();
+-
+     old_fn = fn;
+ 
++    /* Write each NL separated line.  Text after the last NL is kept for
++     * writing later. */
+     while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
+     {
+ 	PyInt len = ptr - str;
+ 
+-	buffer_ensure(buffer_len + len + 1);
++	if (ga_grow(&io_ga, (int)(len + 1)) == FAIL)
++	    break;
+ 
+-	memcpy(buffer + buffer_len, str, len);
+-	buffer_len += len;
+-	buffer[buffer_len] = 0;
+-	fn(buffer);
++	mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
++	((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
++	fn((char_u *)io_ga.ga_data);
+ 	str = ptr + 1;
+ 	n -= len + 1;
+-	buffer_len = 0;
++	io_ga.ga_len = 0;
+     }
+ 
+-    /* Put the remaining text into the buffer for later printing */
+-    buffer_ensure(buffer_len + n + 1);
+-    memcpy(buffer + buffer_len, str, n);
+-    buffer_len += n;
++    /* Put the remaining text into io_ga for later printing. */
++    if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK)
++    {
++	mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
++	io_ga.ga_len += (int)n;
++    }
+ }
+ 
+ /***************/
+diff -Naur vim73.orig/src/if_python.c vim73/src/if_python.c
+--- vim73.orig/src/if_python.c	2010-08-13 13:59:41.000000000 +0000
++++ vim73/src/if_python.c	2011-05-17 09:37:52.482921058 +0000
+@@ -102,7 +102,7 @@
+ #  include <dlfcn.h>
+ #  define FARPROC void*
+ #  define HINSTANCE void*
+-#  ifdef PY_NO_RTLD_GLOBAL
++#  if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
+ #   define load_dll(n) dlopen((n), RTLD_LAZY)
+ #  else
+ #   define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
+@@ -110,7 +110,7 @@
+ #  define close_dll dlclose
+ #  define symbol_from_dll dlsym
+ # else
+-#  define load_dll LoadLibrary
++#  define load_dll vimLoadLib
+ #  define close_dll FreeLibrary
+ #  define symbol_from_dll GetProcAddress
+ # endif
+@@ -165,9 +165,11 @@
+ # define PySys_SetObject dll_PySys_SetObject
+ # define PySys_SetArgv dll_PySys_SetArgv
+ # define PyType_Type (*dll_PyType_Type)
++# define PyType_Ready (*dll_PyType_Ready)
+ # define Py_BuildValue dll_Py_BuildValue
+ # define Py_FindMethod dll_Py_FindMethod
+ # define Py_InitModule4 dll_Py_InitModule4
++# define Py_SetPythonHome dll_Py_SetPythonHome
+ # define Py_Initialize dll_Py_Initialize
+ # define Py_Finalize dll_Py_Finalize
+ # define Py_IsInitialized dll_Py_IsInitialized
+@@ -223,9 +225,11 @@
+ static int(*dll_PySys_SetObject)(char *, PyObject *);
+ static int(*dll_PySys_SetArgv)(int, char **);
+ static PyTypeObject* dll_PyType_Type;
++static int (*dll_PyType_Ready)(PyTypeObject *type);
+ static PyObject*(*dll_Py_BuildValue)(char *, ...);
+ static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
+ static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
++static void(*dll_Py_SetPythonHome)(char *home);
+ static void(*dll_Py_Initialize)(void);
+ static void(*dll_Py_Finalize)(void);
+ static int(*dll_Py_IsInitialized)(void);
+@@ -303,6 +307,7 @@
+     {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
+     {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
+     {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
++    {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
+     {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
+     {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
+ # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
+@@ -310,6 +315,7 @@
+ # else
+     {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
+ # endif
++    {"Py_SetPythonHome", (PYTHON_PROC*)&dll_Py_SetPythonHome},
+     {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
+     {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
+     {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
+@@ -349,7 +355,7 @@
+ {
+     int i;
+ 
+-#if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON3)
++#if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
+     /* Can't have Python and Python3 loaded at the same time.
+      * It cause a crash, because RTLD_GLOBAL is needed for
+      * standard C extension libraries of one or both python versions. */
+@@ -543,6 +549,10 @@
+ 	}
+ #endif
+ 
++#ifdef PYTHON_HOME
++	Py_SetPythonHome(PYTHON_HOME);
++#endif
++
+ 	init_structs();
+ 
+ #if !defined(MACOS) || defined(MACOS_X_UNIX)
+@@ -773,7 +783,7 @@
+ PythonIO_Init(void)
+ {
+     /* Fixups... */
+-    OutputType.ob_type = &PyType_Type;
++    PyType_Ready(&OutputType);
+ 
+     return PythonIO_Init_io();
+ }
+@@ -1395,12 +1405,12 @@
+     static char *(argv[2]) = {"/must>not&exist/foo", NULL};
+ 
+     /* Fixups... */
+-    BufferType.ob_type = &PyType_Type;
+-    RangeType.ob_type = &PyType_Type;
+-    WindowType.ob_type = &PyType_Type;
+-    BufListType.ob_type = &PyType_Type;
+-    WinListType.ob_type = &PyType_Type;
+-    CurrentType.ob_type = &PyType_Type;
++    PyType_Ready(&BufferType);
++    PyType_Ready(&RangeType);
++    PyType_Ready(&WindowType);
++    PyType_Ready(&BufListType);
++    PyType_Ready(&WinListType);
++    PyType_Ready(&CurrentType);
+ 
+     /* Set sys.argv[] to avoid a crash in warn(). */
+     PySys_SetArgv(1, argv);
+diff -Naur vim73.orig/src/if_python3.c vim73/src/if_python3.c
+--- vim73.orig/src/if_python3.c	2010-08-13 13:59:40.000000000 +0000
++++ vim73/src/if_python3.c	2011-05-17 09:37:22.774218356 +0000
+@@ -22,8 +22,8 @@
+  * Adaptations to support both python3.x and python2.x
+  */
+ 
+-// uncomment this if used with the debug version of python
+-// #define Py_DEBUG
++/* uncomment this if used with the debug version of python */
++/* #define Py_DEBUG */
+ 
+ #include "vim.h"
+ 
+@@ -74,13 +74,13 @@
+ #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
+ #define PyString_FromString(repr) PyUnicode_FromString(repr)
+ 
+-#if defined(DYNAMIC_PYTHON3)
++#if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+ 
+ # ifndef WIN3264
+ #  include <dlfcn.h>
+ #  define FARPROC void*
+ #  define HINSTANCE void*
+-#  ifdef PY_NO_RTLD_GLOBAL
++#  if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
+ #   define load_dll(n) dlopen((n), RTLD_LAZY)
+ #  else
+ #   define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
+@@ -88,7 +88,7 @@
+ #  define close_dll dlclose
+ #  define symbol_from_dll dlsym
+ # else
+-#  define load_dll LoadLibrary
++#  define load_dll vimLoadLib
+ #  define close_dll FreeLibrary
+ #  define symbol_from_dll GetProcAddress
+ # endif
+@@ -132,6 +132,7 @@
+ # define PyType_Ready py3_PyType_Ready
+ #undef Py_BuildValue
+ # define Py_BuildValue py3_Py_BuildValue
++# define Py_SetPythonHome py3_Py_SetPythonHome
+ # define Py_Initialize py3_Py_Initialize
+ # define Py_Finalize py3_Py_Finalize
+ # define Py_IsInitialized py3_Py_IsInitialized
+@@ -170,6 +171,7 @@
+  * Pointers for dynamic link
+  */
+ static int (*py3_PySys_SetArgv)(int, wchar_t **);
++static void (*py3_Py_SetPythonHome)(wchar_t *home);
+ static void (*py3_Py_Initialize)(void);
+ static PyObject* (*py3_PyList_New)(Py_ssize_t size);
+ static PyGILState_STATE (*py3_PyGILState_Ensure)(void);
+@@ -254,6 +256,7 @@
+ } py3_funcname_table[] =
+ {
+     {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
++    {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
+     {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+     {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+     {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+@@ -336,7 +339,7 @@
+     int i;
+     void *ucs_from_string, *ucs_from_string_and_size;
+ 
+-# if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON)
++# if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
+     /* Can't have Python and Python3 loaded at the same time.
+      * It cause a crash, because RTLD_GLOBAL is needed for
+      * standard C extension libraries of one or both python versions. */
+@@ -539,6 +542,11 @@
+ 
+ 	init_structs();
+ 
++
++#ifdef PYTHON3_HOME
++	Py_SetPythonHome(PYTHON3_HOME);
++#endif
++
+ 	/* initialise threads */
+ 	PyEval_InitThreads();
+ 
+diff -Naur vim73.orig/src/if_ruby.c vim73/src/if_ruby.c
+--- vim73.orig/src/if_ruby.c	2010-06-30 19:33:12.000000000 +0000
++++ vim73/src/if_ruby.c	2011-05-17 09:36:12.098062605 +0000
+@@ -4,12 +4,17 @@
+  *
+  * Ruby interface by Shugo Maeda
+  *   with improvements by SegPhault (Ryan Paul)
++ *   with improvements by Jon Maken
+  *
+  * Do ":help uganda"  in Vim to read copying and usage conditions.
+  * Do ":help credits" in Vim to see a list of people who contributed.
+  * See README.txt for an overview of the Vim source code.
+  */
+ 
++#ifdef HAVE_CONFIG_H
++# include "auto/config.h"
++#endif
++
+ #include <stdio.h>
+ #include <string.h>
+ 
+@@ -26,12 +31,12 @@
+ # define RUBYEXTERN extern
+ #endif
+ 
++#ifdef DYNAMIC_RUBY
+ /*
+  * This is tricky.  In ruby.h there is (inline) function rb_class_of()
+  * definition.  This function use these variables.  But we want function to
+  * use dll_* variables.
+  */
+-#ifdef DYNAMIC_RUBY
+ # define rb_cFalseClass		(*dll_rb_cFalseClass)
+ # define rb_cFixnum		(*dll_rb_cFixnum)
+ # define rb_cNilClass		(*dll_rb_cNilClass)
+@@ -46,8 +51,23 @@
+  */
+ #  define RUBY_EXPORT
+ # endif
++
++#if !(defined(WIN32) || defined(_WIN64))
++# include <dlfcn.h>
++# define HINSTANCE void*
++# define RUBY_PROC void*
++# define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
++# define symbol_from_dll dlsym
++# define close_dll dlclose
++#else
++# define RUBY_PROC FARPROC
++# define load_dll vimLoadLib
++# define symbol_from_dll GetProcAddress
++# define close_dll FreeLibrary
+ #endif
+ 
++#endif  /* ifdef DYNAMIC_RUBY */
++
+ /* suggested by Ariya Mizutani */
+ #if (_MSC_VER == 1200)
+ # undef _WIN32_WINNT
+@@ -70,6 +90,7 @@
+ # include <ruby/encoding.h>
+ #endif
+ 
++#undef off_t	/* ruby defines off_t as _int64, Mingw uses long */
+ #undef EXTERN
+ #undef _
+ 
+@@ -160,28 +181,35 @@
+ #define rb_lastline_get			dll_rb_lastline_get
+ #define rb_lastline_set			dll_rb_lastline_set
+ #define rb_load_protect			dll_rb_load_protect
++#ifndef RUBY19_OR_LATER
+ #define rb_num2long			dll_rb_num2long
++#endif
+ #define rb_num2ulong			dll_rb_num2ulong
+ #define rb_obj_alloc			dll_rb_obj_alloc
+ #define rb_obj_as_string		dll_rb_obj_as_string
+ #define rb_obj_id			dll_rb_obj_id
+ #define rb_raise			dll_rb_raise
+-#define rb_str2cstr			dll_rb_str2cstr
+ #define rb_str_cat			dll_rb_str_cat
+ #define rb_str_concat			dll_rb_str_concat
+ #define rb_str_new			dll_rb_str_new
+ #ifdef rb_str_new2
+ /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */
+ # define need_rb_str_new_cstr 1
++/* Ruby's headers #define rb_str_new_cstr to make use of GCC's
++ * __builtin_constant_p extension. */
++# undef rb_str_new_cstr
+ # define rb_str_new_cstr		dll_rb_str_new_cstr
+ #else
+ # define rb_str_new2			dll_rb_str_new2
+ #endif
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++# define rb_string_value		dll_rb_string_value
+ # define rb_string_value_ptr		dll_rb_string_value_ptr
+ # define rb_float_new			dll_rb_float_new
+ # define rb_ary_new			dll_rb_ary_new
+ # define rb_ary_push			dll_rb_ary_push
++#else
++# define rb_str2cstr			dll_rb_str2cstr
+ #endif
+ #ifdef RUBY19_OR_LATER
+ # define rb_errinfo			dll_rb_errinfo
+@@ -190,9 +218,11 @@
+ #endif
+ #define ruby_init			dll_ruby_init
+ #define ruby_init_loadpath		dll_ruby_init_loadpath
+-#define NtInitialize			dll_NtInitialize
+-#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+-# define rb_w32_snprintf		dll_rb_w32_snprintf
++#ifdef WIN3264
++# define NtInitialize			dll_NtInitialize
++# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++#  define rb_w32_snprintf		dll_rb_w32_snprintf
++# endif
+ #endif
+ 
+ #ifdef RUBY19_OR_LATER
+@@ -201,7 +231,9 @@
+ # define rb_enc_find			dll_rb_enc_find
+ # define rb_enc_str_new			dll_rb_enc_str_new
+ # define rb_sprintf			dll_rb_sprintf
++# define rb_require			dll_rb_require
+ # define ruby_init_stack		dll_ruby_init_stack
++# define ruby_process_options		dll_ruby_process_options
+ #endif
+ 
+ /*
+@@ -246,7 +278,11 @@
+ static VALUE (*dll_rb_obj_as_string) (VALUE);
+ static VALUE (*dll_rb_obj_id) (VALUE);
+ static void (*dll_rb_raise) (VALUE, const char*, ...);
++#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++static VALUE (*dll_rb_string_value) (volatile VALUE*);
++#else
+ static char *(*dll_rb_str2cstr) (VALUE,int*);
++#endif
+ static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
+ static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
+ static VALUE (*dll_rb_str_new) (const char*, long);
+@@ -263,7 +299,12 @@
+ #endif
+ static void (*dll_ruby_init) (void);
+ static void (*dll_ruby_init_loadpath) (void);
++#ifdef WIN3264
+ static void (*dll_NtInitialize) (int*, char***);
++# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
++# endif
++#endif
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+ static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
+ static VALUE (*dll_rb_float_new) (double);
+@@ -273,9 +314,6 @@
+ #ifdef RUBY19_OR_LATER
+ static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
+ #endif
+-#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+-static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
+-#endif
+ 
+ #ifdef RUBY19_OR_LATER
+ static void (*dll_ruby_script) (const char*);
+@@ -283,7 +321,9 @@
+ static rb_encoding* (*dll_rb_enc_find) (const char*);
+ static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
+ static VALUE (*dll_rb_sprintf) (const char*, ...);
++static VALUE (*dll_rb_require) (const char*);
+ static void (*ruby_init_stack)(VALUE*);
++static void* (*ruby_process_options)(int, char**);
+ #endif
+ 
+ #ifdef RUBY19_OR_LATER
+@@ -297,12 +337,11 @@
+ }
+ #endif
+ 
+-static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
++static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
+ 
+ /*
+  * Table of name to function pointer of ruby.
+  */
+-#define RUBY_PROC FARPROC
+ static struct
+ {
+     char *name;
+@@ -347,7 +386,11 @@
+     {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
+     {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
+     {"rb_raise", (RUBY_PROC*)&dll_rb_raise},
++#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++    {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
++#else
+     {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
++#endif
+     {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
+     {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
+     {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
+@@ -363,15 +406,17 @@
+ #endif
+     {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
+     {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
++#ifdef WIN3264
+     {
+-#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
++# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
+     "NtInitialize",
+-#else
++# else
+     "ruby_sysinit",
+-#endif
++# endif
+ 			(RUBY_PROC*)&dll_NtInitialize},
+-#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
++# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+     {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
++# endif
+ #endif
+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
+     {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
+@@ -386,7 +431,9 @@
+     {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
+     {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
+     {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
++    {"rb_require", (RUBY_PROC*)&dll_rb_require},
+     {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
++    {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
+ #endif
+     {"", NULL},
+ };
+@@ -399,8 +446,8 @@
+ {
+     if (hinstRuby)
+     {
+-	FreeLibrary(hinstRuby);
+-	hinstRuby = 0;
++	close_dll(hinstRuby);
++	hinstRuby = NULL;
+     }
+ }
+ 
+@@ -416,7 +463,7 @@
+ 
+     if (hinstRuby)
+ 	return OK;
+-    hinstRuby = LoadLibrary(libname);
++    hinstRuby = load_dll(libname);
+     if (!hinstRuby)
+     {
+ 	if (verbose)
+@@ -426,11 +473,11 @@
+ 
+     for (i = 0; ruby_funcname_table[i].ptr; ++i)
+     {
+-	if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
++	if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
+ 			ruby_funcname_table[i].name)))
+ 	{
+-	    FreeLibrary(hinstRuby);
+-	    hinstRuby = 0;
++	    close_dll(hinstRuby);
++	    hinstRuby = NULL;
+ 	    if (verbose)
+ 		EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
+ 	    return FAIL;
+@@ -539,9 +586,9 @@
+ 	if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
+ 	    return;
+ 	for (i = eap->line1; i <= eap->line2; i++) {
+-	    VALUE line, oldline;
++	    VALUE line;
+ 
+-	    line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
++	    line = vim_str2rb_enc_str((char *)ml_get(i));
+ 	    rb_lastline_set(line);
+ 	    eval_enc_string_protect((char *) eap->arg, &state);
+ 	    if (state) {
+@@ -616,13 +663,16 @@
+ 		ruby_init();
+ 	    }
+ #ifdef RUBY19_OR_LATER
++	    {
++		int dummy_argc = 2;
++		char *dummy_argv[] = {"vim-ruby", "-e0"};
++		ruby_process_options(dummy_argc, dummy_argv);
++	    }
+ 	    ruby_script("vim-ruby");
+-#endif
++#else
+ 	    ruby_init_loadpath();
+-	    ruby_io_init();
+-#ifdef RUBY19_OR_LATER
+-	    rb_enc_find_index("encdb");
+ #endif
++	    ruby_io_init();
+ 	    ruby_vim_init();
+ 	    ruby_initialized = 1;
+ #ifdef DYNAMIC_RUBY
+@@ -906,15 +956,9 @@
+ 
+ static VALUE get_buffer_line(buf_T *buf, linenr_T n)
+ {
+-    if (n > 0 && n <= buf->b_ml.ml_line_count)
+-    {
+-	char *line = (char *)ml_get_buf(buf, n, FALSE);
+-	return line ? vim_str2rb_enc_str(line) : Qnil;
+-    }
+-    rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+-#ifndef __GNUC__
+-    return Qnil; /* For stop warning */
+-#endif
++    if (n <= 0 || n > buf->b_ml.ml_line_count)
++	rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
++    return vim_str2rb_enc_str((char *)ml_get_buf(buf, n, FALSE));
+ }
+ 
+ static VALUE buffer_aref(VALUE self, VALUE num)
+@@ -953,9 +997,6 @@
+     else
+     {
+ 	rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
+-#ifndef __GNUC__
+-	return Qnil; /* For stop warning */
+-#endif
+     }
+     return str;
+ }
+@@ -1010,7 +1051,8 @@
+     long	n = NUM2LONG(num);
+     aco_save_T	aco;
+ 
+-    if (line == NULL) {
++    if (line == NULL)
++    {
+ 	rb_raise(rb_eIndexError, "NULL line");
+     }
+     else if (n >= 0 && n <= buf->b_ml.ml_line_count)
+@@ -1034,7 +1076,8 @@
+ 
+ 	update_curbuf(NOT_VALID);
+     }
+-    else {
++    else
++    {
+ 	rb_raise(rb_eIndexError, "line number %ld out of range", n);
+     }
+     return str;
+diff -Naur vim73.orig/src/if_sniff.c vim73/src/if_sniff.c
+--- vim73.orig/src/if_sniff.c	2010-05-15 11:04:06.000000000 +0000
++++ vim73/src/if_sniff.c	2011-05-17 09:35:36.142053351 +0000
+@@ -9,7 +9,6 @@
+ 
+ #ifdef WIN32
+ # include <stdio.h>
+-# include "vimio.h"
+ # include <process.h>
+ # include <string.h>
+ # include <assert.h>
+diff -Naur vim73.orig/src/if_tcl.c vim73/src/if_tcl.c
+--- vim73.orig/src/if_tcl.c	2010-08-08 13:07:25.000000000 +0000
++++ vim73/src/if_tcl.c	2011-05-17 09:35:40.549564160 +0000
+@@ -74,7 +74,6 @@
+ #endif
+ 
+ #include <tcl.h>
+-#include <errno.h>
+ #include <string.h>
+ 
+ typedef struct
+diff -Naur vim73.orig/src/integration.c vim73/src/integration.c
+--- vim73.orig/src/integration.c	2010-08-08 13:09:21.000000000 +0000
++++ vim73/src/integration.c	2011-05-17 09:35:40.549564160 +0000
+@@ -33,7 +33,6 @@
+ #include <sys/un.h>
+ #endif
+ 
+-#include <errno.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/param.h>
+diff -Naur vim73.orig/src/link.sh vim73/src/link.sh
+--- vim73.orig/src/link.sh	2010-07-21 19:43:29.000000000 +0000
++++ vim73/src/link.sh	2011-05-17 09:34:17.110825093 +0000
+@@ -5,7 +5,7 @@
+ # libraries when they exist, but this doesn't mean they are needed for Vim.
+ #
+ #      Author: Bram Moolenaar
+-# Last change: 2006 Sep 26
++# Last change: 2010 Nov 03
+ #     License: Public domain
+ #
+ # Warning: This fails miserably if the linker doesn't return an error code!
+@@ -16,11 +16,23 @@
+ echo "$LINK " >link.cmd
+ exit_value=0
+ 
++if test "$LINK_AS_NEEDED" = yes; then
++  echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
++  cat link.cmd
++  if sh link.cmd; then
++    exit_value=0
++    echo "link.sh: Linked fine"
++  else
++    exit_value=$?
++    echo "link.sh: Linking failed"
++  fi
++else
++  if test -f auto/link.sed; then
++
+ #
+ # If auto/link.sed already exists, use it.  We assume a previous run of
+ # link.sh has found the correct set of libraries.
+ #
+-if test -f auto/link.sed; then
+   echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
+   echo "link.sh: If linking fails, try deleting the auto/link.sed file."
+   echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
+@@ -124,6 +136,8 @@
+   fi
+ fi
+ 
++fi
++
+ #
+ # cleanup
+ #
+diff -Naur vim73.orig/src/macros.h vim73/src/macros.h
+--- vim73.orig/src/macros.h	2010-07-17 19:41:21.000000000 +0000
++++ vim73/src/macros.h	2011-05-17 09:32:40.829511613 +0000
+@@ -285,3 +285,17 @@
+ #else
+ # define DO_AUTOCHDIR
+ #endif
++
++#if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
++# define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
++#else
++# if defined(FEAT_SCROLLBIND)
++#  define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE
++# else
++#  if defined(FEAT_CURSORBIND)
++#   define RESET_BINDING(wp)  (wp)->w_p_crb = FALSE
++#  else
++#   define RESET_BINDING(wp)
++#  endif
++# endif
++#endif
+diff -Naur vim73.orig/src/main.c vim73/src/main.c
+--- vim73.orig/src/main.c	2010-08-08 13:09:55.000000000 +0000
++++ vim73/src/main.c	2011-05-17 09:39:31.611919093 +0000
+@@ -7,10 +7,6 @@
+  * See README.txt for an overview of the Vim source code.
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"		/* for close() and dup() */
+-#endif
+-
+ #define EXTERN
+ #include "vim.h"
+ 
+@@ -96,37 +92,39 @@
+ #define EDIT_TAG    3	    /* tag name argument given, use tagname */
+ #define EDIT_QF	    4	    /* start in quickfix mode */
+ 
+-#if defined(UNIX) || defined(VMS)
++#if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
+ static int file_owned __ARGS((char *fname));
+ #endif
+ static void mainerr __ARGS((int, char_u *));
++#ifndef NO_VIM_MAIN
+ static void main_msg __ARGS((char *s));
+ static void usage __ARGS((void));
+ static int get_number_arg __ARGS((char_u *p, int *idx, int def));
+-#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
++# if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+ static void init_locale __ARGS((void));
+-#endif
++# endif
+ static void parse_command_name __ARGS((mparm_T *parmp));
+ static void early_arg_scan __ARGS((mparm_T *parmp));
+ static void command_line_scan __ARGS((mparm_T *parmp));
+ static void check_tty __ARGS((mparm_T *parmp));
+ static void read_stdin __ARGS((void));
+ static void create_windows __ARGS((mparm_T *parmp));
+-#ifdef FEAT_WINDOWS
++# ifdef FEAT_WINDOWS
+ static void edit_buffers __ARGS((mparm_T *parmp));
+-#endif
++# endif
+ static void exe_pre_commands __ARGS((mparm_T *parmp));
+ static void exe_commands __ARGS((mparm_T *parmp));
+ static void source_startup_scripts __ARGS((mparm_T *parmp));
+ static void main_start_gui __ARGS((void));
+-#if defined(HAS_SWAP_EXISTS_ACTION)
++# if defined(HAS_SWAP_EXISTS_ACTION)
+ static void check_swap_exists_action __ARGS((void));
+-#endif
+-#ifdef FEAT_CLIENTSERVER
++# endif
++# if defined(FEAT_CLIENTSERVER) || defined(PROTO)
+ static void exec_on_server __ARGS((mparm_T *parmp));
+ static void prepare_server __ARGS((mparm_T *parmp));
+ static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
+ static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
++# endif
+ #endif
+ 
+ 
+@@ -149,7 +147,8 @@
+ #define ME_INVALID_ARG		5
+ };
+ 
+-#ifndef PROTO	    /* don't want a prototype for main() */
++#ifndef NO_VIM_MAIN	/* skip this for unittests */
++#ifndef PROTO		/* don't want a prototype for main() */
+     int
+ # ifdef VIMDLL
+ _export
+@@ -940,7 +939,7 @@
+     if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
+     {
+ # ifdef FEAT_GUI
+-#  if !defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK)  \
++#  if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)  \
+ 		&& !defined(FEAT_GUI_W32)
+ 	if (gui.in_use)
+ 	{
+@@ -970,6 +969,7 @@
+     return 0;
+ }
+ #endif /* PROTO */
++#endif /* NO_VIM_MAIN */
+ 
+ /*
+  * Main loop: Execute Normal mode commands until exiting Vim.
+@@ -1202,7 +1202,9 @@
+ 			|| conceal_cursor_line(curwin)
+ 			|| need_cursor_line_redraw))
+ 	    {
+-		if (conceal_old_cursor_line != conceal_new_cursor_line)
++		if (conceal_old_cursor_line != conceal_new_cursor_line
++			&& conceal_old_cursor_line
++						<= curbuf->b_ml.ml_line_count)
+ 		    update_single_line(curwin, conceal_old_cursor_line);
+ 		update_single_line(curwin, conceal_new_cursor_line);
+ 		curwin->w_valid &= ~VALID_CROW;
+@@ -1432,6 +1434,7 @@
+     mch_exit(exitval);
+ }
+ 
++#ifndef NO_VIM_MAIN
+ /*
+  * Get a (optional) count for a Vim argument.
+  */
+@@ -2996,6 +2999,8 @@
+ #endif
+ }
+ 
++#endif  /* NO_VIM_MAIN */
++
+ /*
+  * Get an environment variable, and execute it as Ex commands.
+  * Returns FAIL if the environment variable was not executed, OK otherwise.
+@@ -3035,7 +3040,7 @@
+     return FAIL;
+ }
+ 
+-#if defined(UNIX) || defined(VMS)
++#if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
+ /*
+  * Return TRUE if we are certain the user owns the file "fname".
+  * Used for ".vimrc" and ".exrc".
+@@ -3093,6 +3098,7 @@
+     mainerr(ME_ARG_MISSING, str);
+ }
+ 
++#ifndef NO_VIM_MAIN
+ /*
+  * print a message with three spaces prepended and '\n' appended.
+  */
+@@ -3270,11 +3276,6 @@
+     main_msg(_("+reverse\t\tDon't use reverse video (also: +rv)"));
+     main_msg(_("-xrm <resource>\tSet the specified resource"));
+ #endif /* FEAT_GUI_X11 */
+-#if defined(FEAT_GUI) && defined(RISCOS)
+-    mch_msg(_("\nArguments recognised by gvim (RISC OS version):\n"));
+-    main_msg(_("--columns <number>\tInitial width of window in columns"));
+-    main_msg(_("--rows <number>\tInitial height of window in rows"));
+-#endif
+ #ifdef FEAT_GUI_GTK
+     mch_msg(_("\nArguments recognised by gvim (GTK+ version):\n"));
+     main_msg(_("-font <font>\t\tUse <font> for normal text (also: -fn)"));
+@@ -3313,6 +3314,8 @@
+ }
+ #endif
+ 
++#endif
++
+ #if defined(STARTUPTIME) || defined(PROTO)
+ static void time_diff __ARGS((struct timeval *then, struct timeval *now));
+ 
+@@ -3422,7 +3425,7 @@
+ 
+ #endif
+ 
+-#if defined(FEAT_CLIENTSERVER) || defined(PROTO)
++#if (defined(FEAT_CLIENTSERVER) && !defined(NO_VIM_MAIN)) || defined(PROTO)
+ 
+ /*
+  * Common code for the X command server and the Win32 command server.
+@@ -3806,7 +3809,7 @@
+     int		i;
+     char_u	*inicmd = NULL;
+     char_u	*p;
+-    char_u	cwd[MAXPATHL];
++    char_u	*cwd;
+ 
+     if (filec > 0 && filev[0][0] == '+')
+     {
+@@ -3817,15 +3820,25 @@
+     /* Check if we have at least one argument. */
+     if (filec <= 0)
+ 	mainerr_arg_missing((char_u *)filev[-1]);
++
++    /* Temporarily cd to the current directory to handle relative file names. */
++    cwd = alloc(MAXPATHL);
++    if (cwd == NULL)
++	return NULL;
+     if (mch_dirname(cwd, MAXPATHL) != OK)
++    {
++	vim_free(cwd);
+ 	return NULL;
+-    if ((p = vim_strsave_escaped_ext(cwd,
++    }
++    p = vim_strsave_escaped_ext(cwd,
+ #ifdef BACKSLASH_IN_FILENAME
+ 		    "",  /* rem_backslash() will tell what chars to escape */
+ #else
+ 		    PATH_ESC_CHARS,
+ #endif
+-		    '\\', TRUE)) == NULL)
++		    '\\', TRUE);
++    vim_free(cwd);
++    if (p == NULL)
+ 	return NULL;
+     ga_init2(&ga, 1, 100);
+     ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
+@@ -3858,13 +3871,20 @@
+ 	ga_concat(&ga, p);
+ 	vim_free(p);
+     }
++    ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
++
+     /* The :drop commands goes to Insert mode when 'insertmode' is set, use
+      * CTRL-\ CTRL-N again. */
+-    ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
+-    ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd -");
++    ga_concat(&ga, (char_u *)"<C-\\><C-N>");
++
++    /* Switch back to the correct current directory (prior to temporary path
++     * switch) unless 'autochdir' is set, in which case it will already be
++     * correct after the :drop command. */
++    ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif<CR>");
++
+     if (sendReply)
+-	ga_concat(&ga, (char_u *)"<CR>:call SetupRemoteReplies()");
+-    ga_concat(&ga, (char_u *)"<CR>:");
++	ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>");
++    ga_concat(&ga, (char_u *)":");
+     if (inicmd != NULL)
+     {
+ 	/* Can't use <CR> after "inicmd", because an "startinsert" would cause
+@@ -3881,6 +3901,32 @@
+ }
+ 
+ /*
++ * Make our basic server name: use the specified "arg" if given, otherwise use
++ * the tail of the command "cmd" we were started with.
++ * Return the name in allocated memory.  This doesn't include a serial number.
++ */
++    static char_u *
++serverMakeName(arg, cmd)
++    char_u	*arg;
++    char	*cmd;
++{
++    char_u *p;
++
++    if (arg != NULL && *arg != NUL)
++	p = vim_strsave_up(arg);
++    else
++    {
++	p = vim_strsave_up(gettail((char_u *)cmd));
++	/* Remove .exe or .bat from the name. */
++	if (p != NULL && vim_strchr(p, '.') != NULL)
++	    *vim_strchr(p, '.') = NUL;
++    }
++    return p;
++}
++#endif /* FEAT_CLIENTSERVER */
++
++#if defined(FEAT_CLIENTSERVER) || defined(PROTO)
++/*
+  * Replace termcodes such as <CR> and insert as key presses if there is room.
+  */
+     void
+@@ -3991,32 +4037,7 @@
+ # endif
+     return res;
+ }
+-
+-
+-/*
+- * Make our basic server name: use the specified "arg" if given, otherwise use
+- * the tail of the command "cmd" we were started with.
+- * Return the name in allocated memory.  This doesn't include a serial number.
+- */
+-    static char_u *
+-serverMakeName(arg, cmd)
+-    char_u	*arg;
+-    char	*cmd;
+-{
+-    char_u *p;
+-
+-    if (arg != NULL && *arg != NUL)
+-	p = vim_strsave_up(arg);
+-    else
+-    {
+-	p = vim_strsave_up(gettail((char_u *)cmd));
+-	/* Remove .exe or .bat from the name. */
+-	if (p != NULL && vim_strchr(p, '.') != NULL)
+-	    *vim_strchr(p, '.') = NUL;
+-    }
+-    return p;
+-}
+-#endif /* FEAT_CLIENTSERVER */
++#endif
+ 
+ /*
+  * When FEAT_FKMAP is defined, also compile the Farsi source code.
+diff -Naur vim73.orig/src/mark.c vim73/src/mark.c
+--- vim73.orig/src/mark.c	2010-08-13 09:14:35.000000000 +0000
++++ vim73/src/mark.c	2011-05-17 09:37:13.347264636 +0000
+@@ -1750,7 +1750,10 @@
+ 	    {
+ 		if (line[1] != NUL)
+ 		{
+-		    sscanf((char *)line + 2, "%ld %u", &pos.lnum, &pos.col);
++		    unsigned u;
++
++		    sscanf((char *)line + 2, "%ld %u", &pos.lnum, &u);
++		    pos.col = u;
+ 		    switch (line[1])
+ 		    {
+ 			case '"': curbuf->b_last_cursor = pos; break;
+diff -Naur vim73.orig/src/mbyte.c vim73/src/mbyte.c
+--- vim73.orig/src/mbyte.c	2010-07-18 13:05:44.000000000 +0000
++++ vim73/src/mbyte.c	2011-05-17 09:38:24.607355664 +0000
+@@ -3124,6 +3124,9 @@
+ 		/* If one of the two characters is incomplete return -1. */
+ 		if (incomplete || i + utf_byte2len(s2[i]) > n)
+ 		    return -1;
++		/* Don't case-fold illegal bytes or truncated characters. */
++		if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
++		    return -1;
+ 		cdiff = utf_fold(utf_ptr2char(s1 + i))
+ 					     - utf_fold(utf_ptr2char(s2 + i));
+ 		if (cdiff != 0)
+@@ -4126,7 +4129,7 @@
+ 	done = to - (char *)result;
+     }
+ 
+-    if (resultlenp != NULL)
++    if (resultlenp != NULL && result != NULL)
+ 	*resultlenp = (int)(to - (char *)result);
+     return result;
+ }
+@@ -4159,11 +4162,11 @@
+ {
+     if (hIconvDLL != 0 && hMsvcrtDLL != 0)
+ 	return TRUE;
+-    hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL);
++    hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL);
+     if (hIconvDLL == 0)		/* sometimes it's called libiconv.dll */
+-	hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL_ALT);
++	hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT);
+     if (hIconvDLL != 0)
+-	hMsvcrtDLL = LoadLibrary(DYNAMIC_MSVCRT_DLL);
++	hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL);
+     if (hIconvDLL == 0 || hMsvcrtDLL == 0)
+     {
+ 	/* Only give the message when 'verbose' is set, otherwise it might be
+@@ -5167,16 +5170,16 @@
+     void
+ xim_set_preedit()
+ {
+-    if (xic == NULL)
+-	return;
+-
+-    xim_set_focus(TRUE);
+-
+     XVaNestedList attr_list;
+     XRectangle spot_area;
+     XPoint over_spot;
+     int line_space;
+ 
++    if (xic == NULL)
++	return;
++
++    xim_set_focus(TRUE);
++
+     if (!xim_has_focus)
+     {
+ 	/* hide XIM cursor */
+@@ -5554,12 +5557,12 @@
+     void
+ xim_set_status_area()
+ {
+-    if (xic == NULL)
+-	return;
+-
+     XVaNestedList preedit_list = 0, status_list = 0, list = 0;
+     XRectangle pre_area, status_area;
+ 
++    if (xic == NULL)
++	return;
++
+     if (input_style & XIMStatusArea)
+     {
+ 	if (input_style & XIMPreeditArea)
+diff -Naur vim73.orig/src/memfile.c vim73/src/memfile.c
+--- vim73.orig/src/memfile.c	2010-06-21 02:59:57.000000000 +0000
++++ vim73/src/memfile.c	2011-05-17 09:39:31.611919093 +0000
+@@ -32,10 +32,6 @@
+  * file is opened.
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for lseek(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ /*
+@@ -88,6 +84,13 @@
+ static int  mf_write_block __ARGS((memfile_T *mfp, bhdr_T *hp, off_t offset, unsigned size));
+ static int  mf_trans_add __ARGS((memfile_T *, bhdr_T *));
+ static void mf_do_open __ARGS((memfile_T *, char_u *, int));
++static void mf_hash_init __ARGS((mf_hashtab_T *));
++static void mf_hash_free __ARGS((mf_hashtab_T *));
++static void mf_hash_free_all __ARGS((mf_hashtab_T *));
++static mf_hashitem_T *mf_hash_find __ARGS((mf_hashtab_T *, blocknr_T));
++static void mf_hash_add_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
++static void mf_hash_rem_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
++static int mf_hash_grow __ARGS((mf_hashtab_T *));
+ 
+ /*
+  * The functions for using a memfile:
+@@ -123,7 +126,6 @@
+     int		flags;
+ {
+     memfile_T		*mfp;
+-    int			i;
+     off_t		size;
+ #if defined(STATFS) && defined(UNIX) && !defined(__QNX__)
+ # define USE_FSTATFS
+@@ -156,11 +158,8 @@
+     mfp->mf_used_last = NULL;
+     mfp->mf_dirty = FALSE;
+     mfp->mf_used_count = 0;
+-    for (i = 0; i < MEMHASHSIZE; ++i)
+-    {
+-	mfp->mf_hash[i] = NULL;		/* hash lists are empty */
+-	mfp->mf_trans[i] = NULL;	/* trans lists are empty */
+-    }
++    mf_hash_init(&mfp->mf_hash);
++    mf_hash_init(&mfp->mf_trans);
+     mfp->mf_page_size = MEMFILE_PAGE_SIZE;
+ #ifdef FEAT_CRYPT
+     mfp->mf_old_key = NULL;
+@@ -246,8 +245,6 @@
+     int		del_file;
+ {
+     bhdr_T	*hp, *nextp;
+-    NR_TRANS	*tp, *tpnext;
+-    int		i;
+ 
+     if (mfp == NULL)		    /* safety check */
+ 	return;
+@@ -267,12 +264,8 @@
+     }
+     while (mfp->mf_free_first != NULL)	    /* free entries in free list */
+ 	vim_free(mf_rem_free(mfp));
+-    for (i = 0; i < MEMHASHSIZE; ++i)	    /* free entries in trans lists */
+-	for (tp = mfp->mf_trans[i]; tp != NULL; tp = tpnext)
+-	{
+-	    tpnext = tp->nt_next;
+-	    vim_free(tp);
+-	}
++    mf_hash_free(&mfp->mf_hash);
++    mf_hash_free_all(&mfp->mf_trans);	    /* free hashtable and its items */
+     vim_free(mfp->mf_fname);
+     vim_free(mfp->mf_ffname);
+     vim_free(mfp);
+@@ -747,16 +740,7 @@
+     memfile_T	*mfp;
+     bhdr_T	*hp;
+ {
+-    bhdr_T	*hhp;
+-    int		hash;
+-
+-    hash = MEMHASH(hp->bh_bnum);
+-    hhp = mfp->mf_hash[hash];
+-    hp->bh_hash_next = hhp;
+-    hp->bh_hash_prev = NULL;
+-    if (hhp != NULL)
+-	hhp->bh_hash_prev = hp;
+-    mfp->mf_hash[hash] = hp;
++    mf_hash_add_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
+ }
+ 
+ /*
+@@ -767,13 +751,7 @@
+     memfile_T	*mfp;
+     bhdr_T	*hp;
+ {
+-    if (hp->bh_hash_prev == NULL)
+-	mfp->mf_hash[MEMHASH(hp->bh_bnum)] = hp->bh_hash_next;
+-    else
+-	hp->bh_hash_prev->bh_hash_next = hp->bh_hash_next;
+-
+-    if (hp->bh_hash_next)
+-	hp->bh_hash_next->bh_hash_prev = hp->bh_hash_prev;
++    mf_hash_rem_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
+ }
+ 
+ /*
+@@ -784,12 +762,7 @@
+     memfile_T	*mfp;
+     blocknr_T	nr;
+ {
+-    bhdr_T	*hp;
+-
+-    for (hp = mfp->mf_hash[MEMHASH(nr)]; hp != NULL; hp = hp->bh_hash_next)
+-	if (hp->bh_bnum == nr)
+-	    break;
+-    return hp;
++    return (bhdr_T *)mf_hash_find(&mfp->mf_hash, nr);
+ }
+ 
+ /*
+@@ -1049,7 +1022,7 @@
+ 	PERROR(_("E294: Seek error in swap file read"));
+ 	return FAIL;
+     }
+-    if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size)
++    if ((unsigned)read_eintr(mfp->mf_fd, hp->bh_data, size) != size)
+     {
+ 	PERROR(_("E295: Read error in swap file"));
+ 	return FAIL;
+@@ -1168,7 +1141,7 @@
+     }
+ #endif
+ 
+-    if ((unsigned)vim_write(mfp->mf_fd, data, size) != size)
++    if ((unsigned)write_eintr(mfp->mf_fd, data, size) != size)
+ 	result = FAIL;
+ 
+ #ifdef FEAT_CRYPT
+@@ -1191,7 +1164,6 @@
+ {
+     bhdr_T	*freep;
+     blocknr_T	new_bnum;
+-    int		hash;
+     NR_TRANS	*np;
+     int		page_count;
+ 
+@@ -1239,12 +1211,8 @@
+     hp->bh_bnum = new_bnum;
+     mf_ins_hash(mfp, hp);		    /* insert in new hash list */
+ 
+-    hash = MEMHASH(np->nt_old_bnum);	    /* insert in trans list */
+-    np->nt_next = mfp->mf_trans[hash];
+-    mfp->mf_trans[hash] = np;
+-    if (np->nt_next != NULL)
+-	np->nt_next->nt_prev = np;
+-    np->nt_prev = NULL;
++    /* Insert "np" into "mf_trans" hashtable with key "np->nt_old_bnum" */
++    mf_hash_add_item(&mfp->mf_trans, (mf_hashitem_T *)np);
+ 
+     return OK;
+ }
+@@ -1259,25 +1227,20 @@
+     memfile_T	*mfp;
+     blocknr_T	old_nr;
+ {
+-    int		hash;
+     NR_TRANS	*np;
+     blocknr_T	new_bnum;
+ 
+-    hash = MEMHASH(old_nr);
+-    for (np = mfp->mf_trans[hash]; np != NULL; np = np->nt_next)
+-	if (np->nt_old_bnum == old_nr)
+-	    break;
++    np = (NR_TRANS *)mf_hash_find(&mfp->mf_trans, old_nr);
++
+     if (np == NULL)		/* not found */
+ 	return old_nr;
+ 
+     mfp->mf_neg_count--;
+     new_bnum = np->nt_new_bnum;
+-    if (np->nt_prev != NULL)		/* remove entry from the trans list */
+-	np->nt_prev->nt_next = np->nt_next;
+-    else
+-	mfp->mf_trans[hash] = np->nt_next;
+-    if (np->nt_next != NULL)
+-	np->nt_next->nt_prev = np->nt_prev;
++
++    /* remove entry from the trans list */
++    mf_hash_rem_item(&mfp->mf_trans, (mf_hashitem_T *)np);
++
+     vim_free(np);
+ 
+     return new_bnum;
+@@ -1344,7 +1307,7 @@
+      * fname cannot be NameBuff, because it must have been allocated.
+      */
+     mf_set_ffname(mfp);
+-#if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
++#if defined(MSDOS) || defined(MSWIN)
+     /*
+      * A ":!cd e:xxx" may change the directory without us knowning, use the
+      * full pathname always.  Careful: This frees fname!
+@@ -1401,3 +1364,207 @@
+ 	mch_hide(mfp->mf_fname);    /* try setting the 'hidden' flag */
+     }
+ }
++
++/*
++ * Implementation of mf_hashtab_T follows.
++ */
++
++/*
++ * The number of buckets in the hashtable is increased by a factor of
++ * MHT_GROWTH_FACTOR when the average number of items per bucket
++ * exceeds 2 ^ MHT_LOG_LOAD_FACTOR.
++ */
++#define MHT_LOG_LOAD_FACTOR 6
++#define MHT_GROWTH_FACTOR   2   /* must be a power of two */
++
++/*
++ * Initialize an empty hash table.
++ */
++    static void
++mf_hash_init(mht)
++    mf_hashtab_T *mht;
++{
++    vim_memset(mht, 0, sizeof(mf_hashtab_T));
++    mht->mht_buckets = mht->mht_small_buckets;
++    mht->mht_mask = MHT_INIT_SIZE - 1;
++}
++
++/*
++ * Free the array of a hash table.  Does not free the items it contains!
++ * The hash table must not be used again without another mf_hash_init() call.
++ */
++    static void
++mf_hash_free(mht)
++    mf_hashtab_T *mht;
++{
++    if (mht->mht_buckets != mht->mht_small_buckets)
++	vim_free(mht->mht_buckets);
++}
++
++/*
++ * Free the array of a hash table and all the items it contains.
++ */
++    static void
++mf_hash_free_all(mht)
++    mf_hashtab_T    *mht;
++{
++    long_u	    idx;
++    mf_hashitem_T   *mhi;
++    mf_hashitem_T   *next;
++
++    for (idx = 0; idx <= mht->mht_mask; idx++)
++	for (mhi = mht->mht_buckets[idx]; mhi != NULL; mhi = next)
++	{
++	    next = mhi->mhi_next;
++	    vim_free(mhi);
++	}
++
++    mf_hash_free(mht);
++}
++
++/*
++ * Find "key" in hashtable "mht".
++ * Returns a pointer to a mf_hashitem_T or NULL if the item was not found.
++ */
++    static mf_hashitem_T *
++mf_hash_find(mht, key)
++    mf_hashtab_T    *mht;
++    blocknr_T	    key;
++{
++    mf_hashitem_T   *mhi;
++
++    mhi = mht->mht_buckets[key & mht->mht_mask];
++    while (mhi != NULL && mhi->mhi_key != key)
++	mhi = mhi->mhi_next;
++
++    return mhi;
++}
++
++/*
++ * Add item "mhi" to hashtable "mht".
++ * "mhi" must not be NULL.
++ */
++    static void
++mf_hash_add_item(mht, mhi)
++    mf_hashtab_T    *mht;
++    mf_hashitem_T   *mhi;
++{
++    long_u	    idx;
++
++    idx = mhi->mhi_key & mht->mht_mask;
++    mhi->mhi_next = mht->mht_buckets[idx];
++    mhi->mhi_prev = NULL;
++    if (mhi->mhi_next != NULL)
++	mhi->mhi_next->mhi_prev = mhi;
++    mht->mht_buckets[idx] = mhi;
++
++    mht->mht_count++;
++
++    /*
++     * Grow hashtable when we have more thank 2^MHT_LOG_LOAD_FACTOR
++     * items per bucket on average
++     */
++    if (mht->mht_fixed == 0
++	&& (mht->mht_count >> MHT_LOG_LOAD_FACTOR) > mht->mht_mask)
++    {
++	if (mf_hash_grow(mht) == FAIL)
++	{
++	    /* stop trying to grow after first failure to allocate memory */
++	    mht->mht_fixed = 1;
++	}
++    }
++}
++
++/*
++ * Remove item "mhi" from hashtable "mht".
++ * "mhi" must not be NULL and must have been inserted into "mht".
++ */
++    static void
++mf_hash_rem_item(mht, mhi)
++    mf_hashtab_T    *mht;
++    mf_hashitem_T   *mhi;
++{
++    if (mhi->mhi_prev == NULL)
++	mht->mht_buckets[mhi->mhi_key & mht->mht_mask] = mhi->mhi_next;
++    else
++	mhi->mhi_prev->mhi_next = mhi->mhi_next;
++
++    if (mhi->mhi_next != NULL)
++	mhi->mhi_next->mhi_prev = mhi->mhi_prev;
++
++    mht->mht_count--;
++
++    /* We could shrink the table here, but it typically takes little memory,
++     * so why bother?  */
++}
++
++/*
++ * Increase number of buckets in the hashtable by MHT_GROWTH_FACTOR and
++ * rehash items.
++ * Returns FAIL when out of memory.
++ */
++    static int
++mf_hash_grow(mht)
++    mf_hashtab_T    *mht;
++{
++    long_u	    i, j;
++    int		    shift;
++    mf_hashitem_T   *mhi;
++    mf_hashitem_T   *tails[MHT_GROWTH_FACTOR];
++    mf_hashitem_T   **buckets;
++    size_t	    size;
++
++    size = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR * sizeof(void *);
++    buckets = (mf_hashitem_T **)lalloc_clear(size, FALSE);
++    if (buckets == NULL)
++	return FAIL;
++
++    shift = 0;
++    while ((mht->mht_mask >> shift) != 0)
++	shift++;
++
++    for (i = 0; i <= mht->mht_mask; i++)
++    {
++	/*
++	 * Traverse the items in the i-th original bucket and move them into
++	 * MHT_GROWTH_FACTOR new buckets, preserving their relative order
++	 * within each new bucket.  Preserving the order is important because
++	 * mf_get() tries to keep most recently used items at the front of
++	 * each bucket.
++	 *
++	 * Here we strongly rely on the fact the hashes are computed modulo
++	 * a power of two.
++	 */
++
++	vim_memset(tails, 0, sizeof(tails));
++
++	for (mhi = mht->mht_buckets[i]; mhi != NULL; mhi = mhi->mhi_next)
++	{
++	    j = (mhi->mhi_key >> shift) & (MHT_GROWTH_FACTOR - 1);
++	    if (tails[j] == NULL)
++	    {
++		buckets[i + (j << shift)] = mhi;
++		tails[j] = mhi;
++		mhi->mhi_prev = NULL;
++	    }
++	    else
++	    {
++		tails[j]->mhi_next = mhi;
++		mhi->mhi_prev = tails[j];
++		tails[j] = mhi;
++	    }
++	}
++
++	for (j = 0; j < MHT_GROWTH_FACTOR; j++)
++	    if (tails[j] != NULL)
++		tails[j]->mhi_next = NULL;
++    }
++
++    if (mht->mht_buckets != mht->mht_small_buckets)
++	vim_free(mht->mht_buckets);
++
++    mht->mht_buckets = buckets;
++    mht->mht_mask = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR - 1;
++
++    return OK;
++}
+diff -Naur vim73.orig/src/memfile_test.c vim73/src/memfile_test.c
+--- vim73.orig/src/memfile_test.c	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/memfile_test.c	2011-05-17 09:37:47.947424441 +0000
+@@ -0,0 +1,145 @@
++/* vi:set ts=8 sts=4 sw=4:
++ *
++ * VIM - Vi IMproved	by Bram Moolenaar
++ *
++ * Do ":help uganda"  in Vim to read copying and usage conditions.
++ * Do ":help credits" in Vim to see a list of people who contributed.
++ * See README.txt for an overview of the Vim source code.
++ */
++
++/*
++ * memfile_test.c: Unittests for memfile.c
++ * Mostly by Ivan Krasilnikov.
++ */
++
++#undef NDEBUG
++#include <assert.h>
++
++/* Must include main.c because it contains much more than just main() */
++#define NO_VIM_MAIN
++#include "main.c"
++
++/* This file has to be included because the tested functions are static */
++#include "memfile.c"
++
++#define index_to_key(i) ((i) ^ 15167)
++#define TEST_COUNT 50000
++
++static void test_mf_hash __ARGS((void));
++
++/*
++ * Test mf_hash_*() functions.
++ */
++    static void
++test_mf_hash()
++{
++    mf_hashtab_T   ht;
++    mf_hashitem_T  *item;
++    blocknr_T      key;
++    long_u	   i;
++    long_u	   num_buckets;
++
++    mf_hash_init(&ht);
++
++    /* insert some items and check invariants */
++    for (i = 0; i < TEST_COUNT; i++)
++    {
++	assert(ht.mht_count == i);
++
++	/* check that number of buckets is a power of 2 */
++	num_buckets = ht.mht_mask + 1;
++	assert(num_buckets > 0 && (num_buckets & (num_buckets - 1)) == 0);
++
++	/* check load factor */
++	assert(ht.mht_count <= (num_buckets << MHT_LOG_LOAD_FACTOR));
++
++	if (i < (MHT_INIT_SIZE << MHT_LOG_LOAD_FACTOR))
++	{
++	    /* first expansion shouldn't have occurred yet */
++	    assert(num_buckets == MHT_INIT_SIZE);
++	    assert(ht.mht_buckets == ht.mht_small_buckets);
++	}
++	else
++	{
++	    assert(num_buckets > MHT_INIT_SIZE);
++	    assert(ht.mht_buckets != ht.mht_small_buckets);
++	}
++
++	key = index_to_key(i);
++	assert(mf_hash_find(&ht, key) == NULL);
++
++	/* allocate and add new item */
++	item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);
++	assert(item != NULL);
++	item->mhi_key = key;
++	mf_hash_add_item(&ht, item);
++
++	assert(mf_hash_find(&ht, key) == item);
++
++	if (ht.mht_mask + 1 != num_buckets)
++	{
++	    /* hash table was expanded */
++	    assert(ht.mht_mask + 1 == num_buckets * MHT_GROWTH_FACTOR);
++	    assert(i + 1 == (num_buckets << MHT_LOG_LOAD_FACTOR));
++	}
++    }
++
++    /* check presence of inserted items */
++    for (i = 0; i < TEST_COUNT; i++)
++    {
++	key = index_to_key(i);
++	item = mf_hash_find(&ht, key);
++	assert(item != NULL);
++	assert(item->mhi_key == key);
++    }
++
++    /* delete some items */
++    for (i = 0; i < TEST_COUNT; i++)
++    {
++	if (i % 100 < 70)
++	{
++	    key = index_to_key(i);
++	    item = mf_hash_find(&ht, key);
++	    assert(item != NULL);
++	    assert(item->mhi_key == key);
++
++	    mf_hash_rem_item(&ht, item);
++	    assert(mf_hash_find(&ht, key) == NULL);
++
++	    mf_hash_add_item(&ht, item);
++	    assert(mf_hash_find(&ht, key) == item);
++
++	    mf_hash_rem_item(&ht, item);
++	    assert(mf_hash_find(&ht, key) == NULL);
++
++	    vim_free(item);
++	}
++    }
++
++    /* check again */
++    for (i = 0; i < TEST_COUNT; i++)
++    {
++	key = index_to_key(i);
++	item = mf_hash_find(&ht, key);
++
++	if (i % 100 < 70)
++	{
++	    assert(item == NULL);
++	}
++	else
++	{
++	    assert(item != NULL);
++	    assert(item->mhi_key == key);
++	}
++    }
++
++    /* free hash table and all remaining items */
++    mf_hash_free_all(&ht);
++}
++
++    int
++main()
++{
++    test_mf_hash();
++    return 0;
++}
+diff -Naur vim73.orig/src/memline.c vim73/src/memline.c
+--- vim73.orig/src/memline.c	2010-08-08 13:11:46.000000000 +0000
++++ vim73/src/memline.c	2011-05-17 09:39:31.615918649 +0000
+@@ -42,10 +42,6 @@
+  *  mf_get().
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for mch_open(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ #ifndef UNIX		/* it's in os_unix.h for Unix */
+@@ -56,10 +52,6 @@
+ # include <proto/dos.h>	    /* for Open() and Close() */
+ #endif
+ 
+-#ifdef HAVE_ERRNO_H
+-# include <errno.h>
+-#endif
+-
+ typedef struct block0		ZERO_BL;    /* contents of the first block */
+ typedef struct pointer_block	PTR_BL;	    /* contents of a pointer block */
+ typedef struct data_block	DATA_BL;    /* contents of a data block */
+@@ -582,6 +574,9 @@
+ 	    idx = ip->ip_index + 1;	    /* go to next index */
+ 	    page_count = 1;
+ 	}
++
++	if (error > 0)
++	    EMSG(_("E843: Error while updating swap file crypt"));
+     }
+ 
+     mfp->mf_old_key = NULL;
+@@ -753,7 +748,7 @@
+ 	    continue;
+ 	if (mf_open_file(mfp, fname) == OK)	/* consumes fname! */
+ 	{
+-#if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
++#if defined(MSDOS) || defined(MSWIN)
+ 	    /*
+ 	     * set full pathname for swap file now, because a ":!cd dir" may
+ 	     * change directory without us knowing it.
+@@ -938,7 +933,7 @@
+ 	b0p->b0_fname[0] = NUL;
+     else
+     {
+-#if defined(MSDOS) || defined(MSWIN) || defined(AMIGA) || defined(RISCOS)
++#if defined(MSDOS) || defined(MSWIN) || defined(AMIGA)
+ 	/* Systems that cannot translate "~user" back into a path: copy the
+ 	 * file name unmodified.  Do use slashes instead of backslashes for
+ 	 * portability. */
+@@ -1108,7 +1103,7 @@
+ 	fname = (char_u *)"";
+     len = (int)STRLEN(fname);
+     if (len >= 4 &&
+-#if defined(VMS) || defined(RISCOS)
++#if defined(VMS)
+ 	    STRNICMP(fname + len - 4, "_s" , 2)
+ #else
+ 	    STRNICMP(fname + len - 4, ".s" , 2)
+@@ -1778,11 +1773,7 @@
+ #ifdef VMS
+ 		names[0] = vim_strsave((char_u *)"*_sw%");
+ #else
+-# ifdef RISCOS
+-		names[0] = vim_strsave((char_u *)"*_sw#");
+-# else
+ 		names[0] = vim_strsave((char_u *)"*.sw?");
+-# endif
+ #endif
+ #if defined(UNIX) || defined(WIN3264)
+ 		/* For Unix names starting with a dot are special.  MS-Windows
+@@ -1809,11 +1800,7 @@
+ #ifdef VMS
+ 		names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
+ #else
+-# ifdef RISCOS
+-		names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
+-# else
+ 		names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
+-# endif
+ #endif
+ #if defined(UNIX) || defined(WIN3264)
+ 		/* For Unix names starting with a dot are special.  MS-Windows
+@@ -1882,7 +1869,7 @@
+ 	    char_u	    *swapname;
+ 
+ 	    swapname = modname(fname_res,
+-#if defined(VMS) || defined(RISCOS)
++#if defined(VMS)
+ 			       (char_u *)"_swp", FALSE
+ #else
+ 			       (char_u *)".swp", TRUE
+@@ -2059,7 +2046,7 @@
+     fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+     if (fd >= 0)
+     {
+-	if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
++	if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
+ 	{
+ 	    if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
+ 	    {
+@@ -2181,11 +2168,7 @@
+ #ifdef VMS
+     names[num_names] = concat_fnames(path, (char_u *)"_sw%", FALSE);
+ #else
+-# ifdef RISCOS
+-    names[num_names] = concat_fnames(path, (char_u *)"_sw#", FALSE);
+-# else
+     names[num_names] = concat_fnames(path, (char_u *)".sw?", FALSE);
+-# endif
+ #endif
+     if (names[num_names] == NULL)
+ 	goto end;
+@@ -2212,11 +2195,7 @@
+ #ifdef VMS
+     names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
+ #else
+-# ifdef RISCOS
+-    names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
+-# else
+     names[num_names] = modname(path, (char_u *)".sw?", FALSE);
+-# endif
+ #endif
+     if (names[num_names] == NULL)
+ 	goto end;
+@@ -2384,7 +2363,7 @@
+  * Make a copy of the line if necessary.
+  */
+ /*
+- * get a pointer to a (read-only copy of a) line
++ * Return a pointer to a (read-only copy of a) line.
+  *
+  * On failure an error message is given and IObuff is returned (to avoid
+  * having to check for error everywhere).
+@@ -2397,7 +2376,7 @@
+ }
+ 
+ /*
+- * ml_get_pos: get pointer to position 'pos'
++ * Return pointer to position "pos".
+  */
+     char_u *
+ ml_get_pos(pos)
+@@ -2407,7 +2386,7 @@
+ }
+ 
+ /*
+- * ml_get_curline: get pointer to cursor line.
++ * Return pointer to cursor line.
+  */
+     char_u *
+ ml_get_curline()
+@@ -2416,7 +2395,7 @@
+ }
+ 
+ /*
+- * ml_get_cursor: get pointer to cursor position
++ * Return pointer to cursor position.
+  */
+     char_u *
+ ml_get_cursor()
+@@ -2426,7 +2405,7 @@
+ }
+ 
+ /*
+- * get a pointer to a line in a specific buffer
++ * Return a pointer to a line in a specific buffer
+  *
+  * "will_change": if TRUE mark the buffer dirty (chars in the line will be
+  * changed)
+@@ -3210,7 +3189,8 @@
+ 	mf_free(mfp, hp);	/* free the data block */
+ 	buf->b_ml.ml_locked = NULL;
+ 
+-	for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0; --stack_idx)
++	for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0;
++								  --stack_idx)
+ 	{
+ 	    buf->b_ml.ml_stack_top = 0;	    /* stack is invalid when failing */
+ 	    ip = &(buf->b_ml.ml_stack[stack_idx]);
+@@ -3961,14 +3941,9 @@
+ #else
+ 	    (buf->b_p_sn || buf->b_shortname),
+ #endif
+-#ifdef RISCOS
+-	    /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
+-	    ffname,
+-#else
+ 	    fname_res,
+-#endif
+ 	    (char_u *)
+-#if defined(VMS) || defined(RISCOS)
++#if defined(VMS)
+ 	    "_swp",
+ #else
+ 	    ".swp",
+@@ -4076,9 +4051,9 @@
+     }
+     /* Some of these messages are long to allow translation to
+      * other languages. */
+-    MSG_PUTS(_("\n(1) Another program may be editing the same file.\n    If this is the case, be careful not to end up with two\n    different instances of the same file when making changes.\n"));
+-    MSG_PUTS(_("    Quit, or continue with caution.\n"));
+-    MSG_PUTS(_("\n(2) An edit session for this file crashed.\n"));
++    MSG_PUTS(_("\n(1) Another program may be editing the same file.  If this is the case,\n    be careful not to end up with two different instances of the same\n    file when making changes."));
++    MSG_PUTS(_("  Quit, or continue with caution.\n"));
++    MSG_PUTS(_("(2) An edit session for this file crashed.\n"));
+     MSG_PUTS(_("    If this is the case, use \":recover\" or \"vim -r "));
+     msg_outtrans(buf->b_fname);
+     MSG_PUTS(_("\"\n    to recover the changes (see \":help recovery\").\n"));
+@@ -4389,7 +4364,7 @@
+ 		fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
+ 		if (fd >= 0)
+ 		{
+-		    if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
++		    if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
+ 		    {
+ 			/*
+ 			 * If the swapfile has the same directory as the
+@@ -4432,14 +4407,6 @@
+ 		    }
+ 		    close(fd);
+ 		}
+-#ifdef RISCOS
+-		else
+-		    /* Can't open swap file, though it does exist.
+-		     * Assume that the user is editing two files with
+-		     * the same name in different directories. No error.
+-		     */
+-		    differ = TRUE;
+-#endif
+ 
+ 		/* give the ATTENTION message when there is an old swap file
+ 		 * for the current file, and the buffer was not recovered. */
+@@ -4521,7 +4488,7 @@
+ 				    process_still_running
+ 					? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
+ # endif
+-					(char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL);
++					(char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL, FALSE);
+ 
+ # if defined(UNIX) || defined(__EMX__) || defined(VMS)
+ 			if (process_still_running && choice >= 4)
+diff -Naur vim73.orig/src/menu.c vim73/src/menu.c
+--- vim73.orig/src/menu.c	2010-07-14 14:49:01.000000000 +0000
++++ vim73/src/menu.c	2011-05-17 09:38:27.315055146 +0000
+@@ -1394,7 +1394,8 @@
+     int		idx;
+ {
+     static vimmenu_T	*menu = NULL;
+-    static char_u	tbuffer[256]; /*hack*/
++#define TBUFFER_LEN 256
++    static char_u	tbuffer[TBUFFER_LEN]; /*hack*/
+     char_u		*str;
+ #ifdef FEAT_MULTI_LANG
+     static  int		should_advance = FALSE;
+@@ -1428,11 +1429,11 @@
+ 	{
+ #ifdef FEAT_MULTI_LANG
+ 	    if (should_advance)
+-		STRCPY(tbuffer, menu->en_dname);
++		vim_strncpy(tbuffer, menu->en_dname, TBUFFER_LEN - 2);
+ 	    else
+ 	    {
+ #endif
+-		STRCPY(tbuffer, menu->dname);
++		vim_strncpy(tbuffer, menu->dname,  TBUFFER_LEN - 2);
+ #ifdef FEAT_MULTI_LANG
+ 		if (menu->en_dname == NULL)
+ 		    should_advance = TRUE;
+@@ -1512,8 +1513,8 @@
+ {
+ #ifdef FEAT_MULTI_LANG
+     if (menu->en_name != NULL
+-	    && (menu_namecmp(name,menu->en_name)
+-		|| menu_namecmp(name,menu->en_dname)))
++	    && (menu_namecmp(name, menu->en_name)
++		|| menu_namecmp(name, menu->en_dname)))
+ 	return TRUE;
+ #endif
+     return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
+@@ -2342,7 +2343,7 @@
+ 
+ 	while (menu != NULL)
+ 	{
+-	    if (STRCMP(name, menu->name) == 0 || STRCMP(name, menu->dname) == 0)
++	    if (menu_name_equal(name, menu))
+ 	    {
+ 		if (menu->children == NULL)
+ 		{
+diff -Naur vim73.orig/src/message.c vim73/src/message.c
+--- vim73.orig/src/message.c	2010-08-04 18:10:02.000000000 +0000
++++ vim73/src/message.c	2011-05-17 09:37:38.700450741 +0000
+@@ -569,6 +569,10 @@
+     int		severe;
+ #endif
+ 
++    /* Skip this if not giving error messages at the moment. */
++    if (emsg_not_now())
++	return TRUE;
++
+     called_emsg = TRUE;
+     ex_exitval = 1;
+ 
+@@ -581,10 +585,6 @@
+     emsg_severe = FALSE;
+ #endif
+ 
+-    /* Skip this if not giving error messages at the moment. */
+-    if (emsg_not_now())
+-	return TRUE;
+-
+     if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
+     {
+ #ifdef FEAT_EVAL
+@@ -879,16 +879,17 @@
+     if (msg_silent != 0)
+ 	return;
+ 
+-/*
+- * With the global command (and some others) we only need one return at the
+- * end. Adjust cmdline_row to avoid the next message overwriting the last one.
+- * When inside vgetc(), we can't wait for a typed character at all.
+- */
++    /*
++     * When inside vgetc(), we can't wait for a typed character at all.
++     * With the global command (and some others) we only need one return at
++     * the end. Adjust cmdline_row to avoid the next message overwriting the
++     * last one.
++     */
+     if (vgetc_busy > 0)
+ 	return;
++    need_wait_return = TRUE;
+     if (no_wait_return)
+     {
+-	need_wait_return = TRUE;
+ 	if (!exmode_active)
+ 	    cmdline_row = msg_row;
+ 	return;
+@@ -1477,6 +1478,27 @@
+     return retval;
+ }
+ 
++#if defined(FEAT_EVAL) || defined(PROTO)
++/*
++ * Return the lhs or rhs of a mapping, with the key codes turned into printable
++ * strings, in an allocated string.
++ */
++    char_u *
++str2special_save(str, is_lhs)
++    char_u  *str;
++    int	    is_lhs;  /* TRUE for lhs, FALSE for rhs */
++{
++    garray_T	ga;
++    char_u	*p = str;
++
++    ga_init2(&ga, 1, 40);
++    while (*p != NUL)
++	ga_concat(&ga, str2special(&p, is_lhs));
++    ga_append(&ga, NUL);
++    return (char_u *)ga.ga_data;
++}
++#endif
++
+ /*
+  * Return the printable string for the key codes at "*sp".
+  * Used for translating the lhs or rhs of a mapping to printable chars.
+@@ -1616,8 +1638,16 @@
+ 	else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
+ 	{
+ 	    col += (*mb_ptr2cells)(s);
+-	    mch_memmove(buf, s, (size_t)l);
+-	    buf[l] = NUL;
++	    if (lcs_nbsp != NUL && list && mb_ptr2char(s) == 160)
++	    {
++		mb_char2bytes(lcs_nbsp, buf);
++		buf[(*mb_ptr2len)(buf)] = NUL;
++	    }
++	    else
++	    {
++		mch_memmove(buf, s, (size_t)l);
++		buf[l] = NUL;
++	    }
+ 	    msg_puts(buf);
+ 	    s += l;
+ 	    continue;
+@@ -1643,6 +1673,11 @@
+ 		    attr = hl_attr(HLF_8);
+ 		}
+ 	    }
++	    else if (c == 160 && list && lcs_nbsp != NUL)
++	    {
++		c = lcs_nbsp;
++		attr = hl_attr(HLF_8);
++	    }
+ 	    else if (c == NUL && list && lcs_eol != NUL)
+ 	    {
+ 		p_extra = (char_u *)"";
+@@ -3294,7 +3329,7 @@
+  * different letter.
+  */
+     int
+-do_dialog(type, title, message, buttons, dfltbutton, textfield)
++do_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
+     int		type UNUSED;
+     char_u	*title UNUSED;
+     char_u	*message;
+@@ -3302,6 +3337,8 @@
+     int		dfltbutton;
+     char_u	*textfield UNUSED;	/* IObuff for inputdialog(), NULL
+ 					   otherwise */
++    int		ex_cmd;	    /* when TRUE pressing : accepts default and starts
++			       Ex command */
+ {
+     int		oldState;
+     int		retval = 0;
+@@ -3320,7 +3357,7 @@
+     if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
+     {
+ 	c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
+-								   textfield);
++							   textfield, ex_cmd);
+ 	/* avoid a hit-enter prompt without clearing the cmdline */
+ 	need_wait_return = FALSE;
+ 	emsg_on_display = FALSE;
+@@ -3367,6 +3404,13 @@
+ 	    default:		/* Could be a hotkey? */
+ 		if (c < 0)	/* special keys are ignored here */
+ 		    continue;
++		if (c == ':' && ex_cmd)
++		{
++		    retval = dfltbutton;
++		    ins_char_typebuf(':');
++		    break;
++		}
++
+ 		/* Make the character lowercase, as chars in "hotkeys" are. */
+ 		c = MB_TOLOWER(c);
+ 		retval = 1;
+@@ -3640,7 +3684,7 @@
+     if (do_dialog(type,
+ 		title == NULL ? (char_u *)_("Question") : title,
+ 		message,
+-		(char_u *)_("&Yes\n&No"), dflt, NULL) == 1)
++		(char_u *)_("&Yes\n&No"), dflt, NULL, FALSE) == 1)
+ 	return VIM_YES;
+     return VIM_NO;
+ }
+@@ -3655,7 +3699,7 @@
+     switch (do_dialog(type,
+ 		title == NULL ? (char_u *)_("Question") : title,
+ 		message,
+-		(char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL))
++		(char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL, FALSE))
+     {
+ 	case 1: return VIM_YES;
+ 	case 2: return VIM_NO;
+@@ -3674,7 +3718,7 @@
+ 		title == NULL ? (char_u *)"Question" : title,
+ 		message,
+ 		(char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
+-								  dflt, NULL))
++							   dflt, NULL, FALSE))
+     {
+ 	case 1: return VIM_YES;
+ 	case 2: return VIM_NO;
+diff -Naur vim73.orig/src/misc1.c vim73/src/misc1.c
+--- vim73.orig/src/misc1.c	2010-08-15 11:24:05.000000000 +0000
++++ vim73/src/misc1.c	2011-05-17 09:39:31.615918649 +0000
+@@ -1561,6 +1561,9 @@
+     char_u	part_buf[COM_MAX_LEN];	/* buffer for one option part */
+     char_u	*string;		/* pointer to comment string */
+     char_u	*list;
++    int		middle_match_len = 0;
++    char_u	*prev_list;
++    char_u	*saved_flags = NULL;
+ 
+     i = 0;
+     while (vim_iswhite(line[i]))    /* leading white space is ignored */
+@@ -1569,7 +1572,7 @@
+     /*
+      * Repeat to match several nested comment strings.
+      */
+-    while (line[i])
++    while (line[i] != NUL)
+     {
+ 	/*
+ 	 * scan through the 'comments' option for a match
+@@ -1577,82 +1580,104 @@
+ 	found_one = FALSE;
+ 	for (list = curbuf->b_p_com; *list; )
+ 	{
+-	    /*
+-	     * Get one option part into part_buf[].  Advance list to next one.
+-	     * put string at start of string.
+-	     */
+-	    if (!got_com && flags != NULL)  /* remember where flags started */
+-		*flags = list;
++	    /* Get one option part into part_buf[].  Advance "list" to next
++	     * one.  Put "string" at start of string.  */
++	    if (!got_com && flags != NULL)
++		*flags = list;	    /* remember where flags started */
++	    prev_list = list;
+ 	    (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
+ 	    string = vim_strchr(part_buf, ':');
+ 	    if (string == NULL)	    /* missing ':', ignore this part */
+ 		continue;
+ 	    *string++ = NUL;	    /* isolate flags from string */
+ 
+-	    /*
+-	     * When already found a nested comment, only accept further
+-	     * nested comments.
+-	     */
++	    /* If we found a middle match previously, use that match when this
++	     * is not a middle or end. */
++	    if (middle_match_len != 0
++		    && vim_strchr(part_buf, COM_MIDDLE) == NULL
++		    && vim_strchr(part_buf, COM_END) == NULL)
++		break;
++
++	    /* When we already found a nested comment, only accept further
++	     * nested comments. */
+ 	    if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
+ 		continue;
+ 
+-	    /* When 'O' flag used don't use for "O" command */
++	    /* When 'O' flag present and using "O" command skip this one. */
+ 	    if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
+ 		continue;
+ 
+-	    /*
+-	     * Line contents and string must match.
++	    /* Line contents and string must match.
+ 	     * When string starts with white space, must have some white space
+ 	     * (but the amount does not need to match, there might be a mix of
+-	     * TABs and spaces).
+-	     */
++	     * TABs and spaces). */
+ 	    if (vim_iswhite(string[0]))
+ 	    {
+ 		if (i == 0 || !vim_iswhite(line[i - 1]))
+-		    continue;
++		    continue;  /* missing shite space */
+ 		while (vim_iswhite(string[0]))
+ 		    ++string;
+ 	    }
+ 	    for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
+ 		;
+ 	    if (string[j] != NUL)
+-		continue;
++		continue;  /* string doesn't match */
+ 
+-	    /*
+-	     * When 'b' flag used, there must be white space or an
+-	     * end-of-line after the string in the line.
+-	     */
++	    /* When 'b' flag used, there must be white space or an
++	     * end-of-line after the string in the line. */
+ 	    if (vim_strchr(part_buf, COM_BLANK) != NULL
+ 			   && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
+ 		continue;
+ 
+-	    /*
+-	     * We have found a match, stop searching.
+-	     */
+-	    i += j;
+-	    got_com = TRUE;
++	    /* We have found a match, stop searching unless this is a middle
++	     * comment. The middle comment can be a substring of the end
++	     * comment in which case it's better to return the length of the
++	     * end comment and its flags.  Thus we keep searching with middle
++	     * and end matches and use an end match if it matches better. */
++	    if (vim_strchr(part_buf, COM_MIDDLE) != NULL)
++	    {
++		if (middle_match_len == 0)
++		{
++		    middle_match_len = j;
++		    saved_flags = prev_list;
++		}
++		continue;
++	    }
++	    if (middle_match_len != 0 && j > middle_match_len)
++		/* Use this match instead of the middle match, since it's a
++		 * longer thus better match. */
++		middle_match_len = 0;
++
++	    if (middle_match_len == 0)
++		i += j;
+ 	    found_one = TRUE;
+ 	    break;
+ 	}
+ 
+-	/*
+-	 * No match found, stop scanning.
+-	 */
++	if (middle_match_len != 0)
++	{
++	    /* Use the previously found middle match after failing to find a
++	     * match with an end. */
++	    if (!got_com && flags != NULL)
++		*flags = saved_flags;
++	    i += middle_match_len;
++	    found_one = TRUE;
++	}
++
++	/* No match found, stop scanning. */
+ 	if (!found_one)
+ 	    break;
+ 
+-	/*
+-	 * Include any trailing white space.
+-	 */
++	/* Include any trailing white space. */
+ 	while (vim_iswhite(line[i]))
+ 	    ++i;
+ 
+-	/*
+-	 * If this comment doesn't nest, stop here.
+-	 */
++	/* If this comment doesn't nest, stop here. */
++	got_com = TRUE;
+ 	if (vim_strchr(part_buf, COM_NEST) == NULL)
+ 	    break;
+     }
++
+     return (got_com ? i : 0);
+ }
+ #endif
+@@ -2919,7 +2944,7 @@
+     buf_T	*buf;
+     int		ff;	/* also reset 'fileformat' */
+ {
+-    if (buf->b_changed || (ff && file_ff_differs(buf)))
++    if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
+     {
+ 	buf->b_changed = 0;
+ 	ml_setflags(buf);
+@@ -3114,10 +3139,19 @@
+ 	       && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+ 	    continue;
+ 
+-	/* found a termcode: adjust length */
+-	if (n > 0)
++	if (n == KEYLEN_REMOVED)  /* key code removed */
++	{
++	    if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
++	    {
++		/* Redrawing was postponed, do it now. */
++		update_screen(0);
++		setcursor(); /* put cursor back where it belongs */
++	    }
++	    continue;
++	}
++	if (n > 0)		/* found a termcode: adjust length */
+ 	    len = n;
+-	if (len == 0)	    /* nothing typed yet */
++	if (len == 0)		/* nothing typed yet */
+ 	    continue;
+ 
+ 	/* Handle modifier and/or special key code. */
+@@ -3323,19 +3357,23 @@
+ 	if (pn == 1)
+ 	{
+ 	    if (n > 0)
+-		STRCPY(msg_buf, _("1 more line"));
++		vim_strncpy(msg_buf, (char_u *)_("1 more line"),
++							     MSG_BUF_LEN - 1);
+ 	    else
+-		STRCPY(msg_buf, _("1 line less"));
++		vim_strncpy(msg_buf, (char_u *)_("1 line less"),
++							     MSG_BUF_LEN - 1);
+ 	}
+ 	else
+ 	{
+ 	    if (n > 0)
+-		sprintf((char *)msg_buf, _("%ld more lines"), pn);
++		vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
++						     _("%ld more lines"), pn);
+ 	    else
+-		sprintf((char *)msg_buf, _("%ld fewer lines"), pn);
++		vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
++						    _("%ld fewer lines"), pn);
+ 	}
+ 	if (got_int)
+-	    STRCAT(msg_buf, _(" (Interrupted)"));
++	    vim_strcat(msg_buf, (char_u *)_(" (Interrupted)"), MSG_BUF_LEN);
+ 	if (msg(msg_buf))
+ 	{
+ 	    set_keep_msg(msg_buf, 0);
+@@ -3492,7 +3530,7 @@
+     if (enc_utf8 && var != NULL)
+     {
+ 	int	len;
+-	char_u  *pp;
++	char_u  *pp = NULL;
+ 
+ 	/* Convert from active codepage to UTF-8.  Other conversions are
+ 	 * not done, because they would fail for non-ASCII characters. */
+@@ -3859,11 +3897,13 @@
+  * Vim's version of getenv().
+  * Special handling of $HOME, $VIM and $VIMRUNTIME.
+  * Also does ACP to 'enc' conversion for Win32.
++ * "mustfree" is set to TRUE when returned is allocated, it must be
++ * initialized to FALSE by the caller.
+  */
+     char_u *
+ vim_getenv(name, mustfree)
+     char_u	*name;
+-    int		*mustfree;	/* set to TRUE when returned is allocated */
++    int		*mustfree;
+ {
+     char_u	*p;
+     char_u	*pend;
+@@ -3885,7 +3925,7 @@
+ 	if (enc_utf8)
+ 	{
+ 	    int	    len;
+-	    char_u  *pp;
++	    char_u  *pp = NULL;
+ 
+ 	    /* Convert from active codepage to UTF-8.  Other conversions are
+ 	     * not done, because they would fail for non-ASCII characters. */
+@@ -3929,7 +3969,7 @@
+ 	    if (enc_utf8)
+ 	    {
+ 		int	len;
+-		char_u  *pp;
++		char_u  *pp = NULL;
+ 
+ 		/* Convert from active codepage to UTF-8.  Other conversions
+ 		 * are not done, because they would fail for non-ASCII
+@@ -3937,7 +3977,7 @@
+ 		acp_to_enc(p, (int)STRLEN(p), &pp, &len);
+ 		if (pp != NULL)
+ 		{
+-		    if (mustfree)
++		    if (*mustfree)
+ 			vim_free(p);
+ 		    p = pp;
+ 		    *mustfree = TRUE;
+@@ -4549,25 +4589,21 @@
+ vim_ispathsep(c)
+     int c;
+ {
+-#ifdef RISCOS
+-    return (c == '.' || c == ':');
+-#else
+-# ifdef UNIX
++#ifdef UNIX
+     return (c == '/');	    /* UNIX has ':' inside file names */
+-# else
+-#  ifdef BACKSLASH_IN_FILENAME
++#else
++# ifdef BACKSLASH_IN_FILENAME
+     return (c == ':' || c == '/' || c == '\\');
+-#  else
+-#   ifdef VMS
++# else
++#  ifdef VMS
+     /* server"user passwd"::device:[full.path.name]fname.extension;version" */
+     return (c == ':' || c == '[' || c == ']' || c == '/'
+ 	    || c == '<' || c == '>' || c == '"' );
+-#   else		/* Amiga */
++#  else
+     return (c == ':' || c == '/');
+-#   endif /* VMS */
+-#  endif
++#  endif /* VMS */
+ # endif
+-#endif /* RISC OS */
++#endif
+ }
+ 
+ #if defined(FEAT_SEARCHPATH) || defined(PROTO)
+@@ -4968,7 +5004,7 @@
+ }
+ 
+ /*
+- * Return TRUE if there there is no code at *s.  White space and comments are
++ * Return TRUE if there is no code at *s.  White space and comments are
+  * not considered code.
+  */
+     static int
+@@ -5383,8 +5419,7 @@
+ cin_ispreproc(s)
+     char_u *s;
+ {
+-    s = skipwhite(s);
+-    if (*s == '#')
++    if (*skipwhite(s) == '#')
+ 	return TRUE;
+     return FALSE;
+ }
+@@ -5444,8 +5479,11 @@
+ }
+ 
+ /*
+- * Recognize a line that starts with '{' or '}', or ends with ';', '{' or '}'.
++ * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
++ * '}'.
+  * Don't consider "} else" a terminated line.
++ * Don't consider a line where there are unmatched opening braces before '}',
++ * ';' or ',' a terminated line.
+  * Return the character terminating the line (ending char's have precedence if
+  * both apply in order to determine initializations).
+  */
+@@ -5456,6 +5494,7 @@
+     int		incl_comma;	/* recognize a trailing comma */
+ {
+     char_u found_start = 0;
++    unsigned n_open = 0;
+ 
+     s = cin_skipcomment(s);
+ 
+@@ -5466,10 +5505,19 @@
+     {
+ 	/* skip over comments, "" strings and 'c'haracters */
+ 	s = skip_string(cin_skipcomment(s));
+-	if ((*s == ';' || (incl_open && *s == '{') || *s == '}'
+-						 || (incl_comma && *s == ','))
++	if (*s == '}' && n_open > 0)
++	    --n_open;
++	if (n_open == 0
++		&& (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+ 		&& cin_nocode(s + 1))
+ 	    return *s;
++	else if (*s == '{')
++	{
++	    if (incl_open && cin_nocode(s + 1))
++		return *s;
++	    else
++		++n_open;
++	}
+ 
+ 	if (*s)
+ 	    s++;
+@@ -5500,6 +5548,10 @@
+     else
+ 	s = *sp;
+ 
++    /* Ignore line starting with #. */
++    if (cin_ispreproc(s))
++	return FALSE;
++
+     while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"')
+     {
+ 	if (cin_iscomment(s))	/* ignore comments */
+@@ -5525,13 +5577,29 @@
+ 		retval = TRUE;
+ 	    goto done;
+ 	}
+-	if (*s == ',' && cin_nocode(s + 1))
++	if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s))
+ 	{
+-	    /* ',' at the end: continue looking in the next line */
++	    int comma = (*s == ',');
++
++	    /* ',' at the end: continue looking in the next line.
++	     * At the end: check for ',' in the next line, for this style:
++	     * func(arg1
++	     *       , arg2) */
++	    for (;;)
++	    {
++		if (lnum >= curbuf->b_ml.ml_line_count)
++		    break;
++		s = ml_get(++lnum);
++		if (!cin_ispreproc(s))
++		    break;
++	    }
+ 	    if (lnum >= curbuf->b_ml.ml_line_count)
+ 		break;
+-
+-	    s = ml_get(++lnum);
++	    /* Require a comma at end of the line or a comma or ')' at the
++	     * start of next line. */
++	    s = skipwhite(s);
++	    if (!comma && *s != ',' && *s != ')')
++		break;
+ 	}
+ 	else if (cin_iscomment(s))	/* ignore comments */
+ 	    s = cin_skipcomment(s);
+@@ -5754,7 +5822,9 @@
+ 		continue;
+ 	}
+ 
+-	if (s[0] == ':')
++	if (s[0] == '"')
++	    s = skip_string(s) + 1;
++	else if (s[0] == ':')
+ 	{
+ 	    if (s[1] == ':')
+ 	    {
+@@ -6424,6 +6494,8 @@
+ 	/* find how indented the line beginning the comment is */
+ 	getvcol(curwin, trypos, &col, NULL, NULL);
+ 	amount = col;
++	*lead_start = NUL;
++	*lead_middle = NUL;
+ 
+ 	p = curbuf->b_p_com;
+ 	while (*p != NUL)
+@@ -6764,8 +6836,7 @@
+ 		{
+ 		    curwin->w_cursor.lnum = our_paren_pos.lnum;
+ 		    curwin->w_cursor.col = col;
+-		    if ((trypos = find_match_paren(ind_maxparen,
+-						     ind_maxcomment)) != NULL)
++		    if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ 			amount += ind_unclosed2;
+ 		    else
+ 			amount += ind_unclosed;
+@@ -9161,7 +9232,10 @@
+ #ifdef CASE_INSENSITIVE_FILENAME
+     regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
+ #else
+-    regmatch.rm_ic = FALSE;		/* Don't ever ignore case */
++    if (flags & EW_ICASE)
++	regmatch.rm_ic = TRUE;		/* 'wildignorecase' set */
++    else
++	regmatch.rm_ic = FALSE;		/* Don't ignore case */
+ #endif
+     regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+     vim_free(pat);
+@@ -9317,7 +9391,8 @@
+ 	    continue;  /* it's different when it's shorter */
+ 
+ 	rival = other_paths[j] + other_path_len - candidate_len;
+-	if (fnamecmp(maybe_unique, rival) == 0)
++	if (fnamecmp(maybe_unique, rival) == 0
++		&& (rival == other_paths[j] || vim_ispathsep(*(rival - 1))))
+ 	    return FALSE;  /* match */
+     }
+ 
+@@ -9642,7 +9717,7 @@
+     if (paths == NULL)
+ 	return 0;
+ 
+-    files = globpath(paths, pattern, 0);
++    files = globpath(paths, pattern, (flags & EW_ICASE) ? WILD_ICASE : 0);
+     vim_free(paths);
+     if (files == NULL)
+ 	return 0;
+diff -Naur vim73.orig/src/misc2.c vim73/src/misc2.c
+--- vim73.orig/src/misc2.c	2010-08-13 09:14:35.000000000 +0000
++++ vim73/src/misc2.c	2011-05-17 09:38:27.323054258 +0000
+@@ -200,7 +200,6 @@
+ 	}
+ #endif
+ 
+-	idx = -1;
+ 	ptr = line;
+ 	while (col <= wcol && *ptr != NUL)
+ 	{
+@@ -1223,7 +1222,7 @@
+ #endif
+ 
+ /*
+- * copy a string into newly allocated memory
++ * Copy "string" into newly allocated memory.
+  */
+     char_u *
+ vim_strsave(string)
+@@ -1239,6 +1238,12 @@
+     return p;
+ }
+ 
++/*
++ * Copy up to "len" bytes of "string" into newly allocated memory and
++ * terminate with a NUL.
++ * The allocated memory always has size "len + 1", also when "string" is
++ * shorter.
++ */
+     char_u *
+ vim_strnsave(string, len)
+     char_u	*string;
+@@ -1642,6 +1647,28 @@
+ }
+ 
+ /*
++ * Like strcat(), but make sure the result fits in "tosize" bytes and is
++ * always NUL terminated.
++ */
++    void
++vim_strcat(to, from, tosize)
++    char_u	*to;
++    char_u	*from;
++    size_t	tosize;
++{
++    size_t tolen = STRLEN(to);
++    size_t fromlen = STRLEN(from);
++
++    if (tolen + fromlen + 1 > tosize)
++    {
++	mch_memmove(to + tolen, from, tosize - tolen - 1);
++	to[tosize - 1] = NUL;
++    }
++    else
++	STRCPY(to + tolen, from);
++}
++
++/*
+  * Isolate one part of a string option where parts are separated with
+  * "sep_chars".
+  * The part is copied into "buf[maxlen]".
+diff -Naur vim73.orig/src/move.c vim73/src/move.c
+--- vim73.orig/src/move.c	2010-08-08 13:12:31.000000000 +0000
++++ vim73/src/move.c	2011-05-17 09:36:34.391588266 +0000
+@@ -2846,6 +2846,7 @@
+     colnr_T	col =  curwin->w_cursor.col;
+     win_T	*old_curwin = curwin;
+     buf_T	*old_curbuf = curbuf;
++    int		restart_edit_save;
+ # ifdef FEAT_VISUAL
+     int		old_VIsual_select = VIsual_select;
+     int		old_VIsual_active = VIsual_active;
+@@ -2875,16 +2876,22 @@
+ 		curwin->w_cursor.lnum = line;
+ 	    curwin->w_cursor.col = col;
+ 
+-	    /* Make sure the cursor is in a valid position. */
++	    /* Make sure the cursor is in a valid position.  Temporarily set
++	     * "restart_edit" to allow the cursor to be beyond the EOL. */
++	    restart_edit_save = restart_edit;
++	    restart_edit = TRUE;
+ 	    check_cursor();
++	    restart_edit = restart_edit_save;
+ # ifdef FEAT_MBYTE
+ 	    /* Correct cursor for multi-byte character. */
+ 	    if (has_mbyte)
+ 		mb_adjust_cursor();
+ # endif
+-
+ 	    redraw_later(VALID);
+-	    update_topline();
++
++	    /* Only scroll when 'scrollbind' hasn't done this. */
++	    if (!curwin->w_p_scb)
++		update_topline();
+ # ifdef FEAT_WINDOWS
+ 	    curwin->w_redr_status = TRUE;
+ # endif
+diff -Naur vim73.orig/src/netbeans.c vim73/src/netbeans.c
+--- vim73.orig/src/netbeans.c	2010-08-09 20:48:09.000000000 +0000
++++ vim73/src/netbeans.c	2011-05-17 09:38:29.894768831 +0000
+@@ -16,10 +16,6 @@
+  * See ":help netbeans-protocol" for explanation.
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for mch_open(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
+@@ -87,7 +83,7 @@
+ static void nb_init_graphics __ARGS((void));
+ static void coloncmd __ARGS((char *cmd, ...));
+ static void nb_set_curbuf __ARGS((buf_T *buf));
+-#ifdef FEAT_GUI_MOTIF
++#ifdef FEAT_GUI_X11
+ static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
+ #endif
+ #ifdef FEAT_GUI_GTK
+@@ -112,7 +108,7 @@
+ static NBSOCK nbsock = -1;		/* socket fd for Netbeans connection */
+ #define NETBEANS_OPEN (nbsock != -1)
+ 
+-#ifdef FEAT_GUI_MOTIF
++#ifdef FEAT_GUI_X11
+ static XtInputId inputHandler = (XtInputId)NULL;  /* Cookie for input */
+ #endif
+ #ifdef FEAT_GUI_GTK
+@@ -135,15 +131,13 @@
+ static int needupdate = 0;
+ static int inAtomic = 0;
+ 
++/*
++ * Close the socket and remove the input handlers.
++ */
+     static void
+-netbeans_close(void)
++nb_close_socket(void)
+ {
+-    if (!NETBEANS_OPEN)
+-	return;
+-
+-    netbeans_send_disconnect();
+-
+-#ifdef FEAT_GUI_MOTIF
++#ifdef FEAT_GUI_X11
+     if (inputHandler != (XtInputId)NULL)
+     {
+ 	XtRemoveInput(inputHandler);
+@@ -167,13 +161,27 @@
+ # endif
+ #endif
+ 
++    sock_close(nbsock);
++    nbsock = -1;
++}
++
++/*
++ * Close the connection and cleanup.
++ * May be called when nb_close_socket() was called earlier.
++ */
++    static void
++netbeans_close(void)
++{
++    if (NETBEANS_OPEN)
++    {
++	netbeans_send_disconnect();
++	nb_close_socket();
++    }
++
+ #ifdef FEAT_BEVAL
+     bevalServers &= ~BEVAL_NETBEANS;
+ #endif
+ 
+-    sock_close(nbsock);
+-    nbsock = -1;
+-
+     needupdate = 0;
+     inAtomic = 0;
+     nb_free();
+@@ -183,6 +191,7 @@
+     changed_window_setting();
+     update_screen(CLEAR);
+     setcursor();
++    cursor_on();
+     out_flush();
+ #ifdef FEAT_GUI
+     if (gui.in_use)
+@@ -311,14 +320,9 @@
+     server.sin_port = htons(port);
+     if ((host = gethostbyname(hostname)) == NULL)
+     {
+-	if (mch_access(hostname, R_OK) >= 0)
+-	{
+-	    /* DEBUG: input file */
+-	    sd = mch_open(hostname, O_RDONLY, 0);
+-	    goto theend;
+-	}
+ 	nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
+ 	PERROR("gethostbyname() in netbeans_connect()");
++	sock_close(sd);
+ 	goto theend;
+     }
+     memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
+@@ -368,15 +372,12 @@
+ 							 || (errno == EINTR)))
+ 		{
+ 		    nbdebug(("retrying...\n"));
+-		    sleep(5);
+-		    if (!doabort)
++		    mch_delay(3000L, TRUE);
++		    ui_breakcheck();
++		    if (got_int)
+ 		    {
+-			ui_breakcheck();
+-			if (got_int)
+-			{
+-			    errno = EINTR;
+-			    break;
+-			}
++			errno = EINTR;
++			break;
+ 		    }
+ 		    if (connect(sd, (struct sockaddr *)&server,
+ 							 sizeof(server)) == 0)
+@@ -391,6 +392,7 @@
+ 		    /* Get here when the server can't be found. */
+ 		    nbdebug(("Cannot connect to Netbeans #2\n"));
+ 		    PERROR(_("Cannot connect to Netbeans #2"));
++		    sock_close(sd);
+ 		    if (doabort)
+ 			getout(1);
+ 		    goto theend;
+@@ -401,6 +403,7 @@
+ 	{
+ 	    nbdebug(("Cannot connect to Netbeans\n"));
+ 	    PERROR(_("Cannot connect to Netbeans"));
++	    sock_close(sd);
+ 	    if (doabort)
+ 		getout(1);
+ 	    goto theend;
+@@ -631,9 +634,7 @@
+ {
+     char_u	*p;
+     queue_T	*node;
+-
+-    if (!NETBEANS_OPEN)
+-	return;
++    int		own_node;
+ 
+     while (head.next != NULL && head.next != &head)
+     {
+@@ -672,20 +673,25 @@
+ 	    *p++ = NUL;
+ 	    if (*p == NUL)
+ 	    {
++		own_node = TRUE;
+ 		head.next = node->next;
+ 		node->next->prev = node->prev;
+ 	    }
++	    else
++		own_node = FALSE;
+ 
+ 	    /* now, parse and execute the commands */
+ 	    nb_parse_cmd(node->buffer);
+ 
+-	    if (*p == NUL)
++	    if (own_node)
+ 	    {
+ 		/* buffer finished, dispose of the node and buffer */
+ 		vim_free(node->buffer);
+ 		vim_free(node);
+ 	    }
+-	    else
++	    /* Check that "head" wasn't changed under our fingers, e.g. when a
++	     * DETACH command was handled. */
++	    else if (head.next == node)
+ 	    {
+ 		/* more follows, move to the start */
+ 		STRMOVE(node->buffer, p);
+@@ -700,7 +706,7 @@
+ /*
+  * Read a command from netbeans.
+  */
+-#ifdef FEAT_GUI_MOTIF
++#ifdef FEAT_GUI_X11
+     static void
+ messageFromNetbeans(XtPointer clientData UNUSED,
+ 		    int *unused1 UNUSED,
+@@ -720,15 +726,14 @@
+ }
+ #endif
+ 
++#define DETACH_MSG "DETACH\n"
++
+     void
+ netbeans_read()
+ {
+     static char_u	*buf = NULL;
+     int			len = 0;
+     int			readlen = 0;
+-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
+-    static int		level = 0;
+-#endif
+ #ifdef HAVE_SELECT
+     struct timeval	tval;
+     fd_set		rfds;
+@@ -744,13 +749,6 @@
+ 	return;
+     }
+ 
+-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
+-    /* recursion guard; this will be called from the X event loop at unknown
+-     * moments */
+-    if (NB_HAS_GUI)
+-	++level;
+-#endif
+-
+     /* Allocate a buffer to read into. */
+     if (buf == NULL)
+     {
+@@ -790,34 +788,32 @@
+ 	    break;	/* did read everything that's available */
+     }
+ 
++    /* Reading a socket disconnection (readlen == 0), or a socket error. */
+     if (readlen <= 0)
+     {
+-	/* read error or didn't read anything */
+-	netbeans_close();
+-	nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
++	/* Queue a "DETACH" netbeans message in the command queue in order to
++	 * terminate the netbeans session later. Do not end the session here
++	 * directly as we may be running in the context of a call to
++	 * netbeans_parse_messages():
++	 *	netbeans_parse_messages
++	 *	    -> autocmd triggered while processing the netbeans cmd
++	 *		-> ui_breakcheck
++	 *		    -> gui event loop or select loop
++	 *			-> netbeans_read()
++	 */
++	save((char_u *)DETACH_MSG, (int)strlen(DETACH_MSG));
++	nb_close_socket();
++
+ 	if (len < 0)
+ 	{
+ 	    nbdebug(("read from Netbeans socket\n"));
+ 	    PERROR(_("read from Netbeans socket"));
+ 	}
+-	return; /* don't try to parse it */
+     }
+ 
+-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_W32)
+-    /* Let the main loop handle messages. */
+-    if (NB_HAS_GUI)
+-    {
+-# ifdef FEAT_GUI_GTK
+-	if (gtk_main_level() > 0)
+-	    gtk_main_quit();
+-# else
+-	/* Parse the messages now, but avoid recursion. */
+-	if (level == 1)
+-	    netbeans_parse_messages();
+-
+-	--level;
+-# endif
+-    }
++#if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
++    if (NB_HAS_GUI && gtk_main_level() > 0)
++	gtk_main_quit();
+ #endif
+ }
+ 
+@@ -955,7 +951,6 @@
+     keyQ_T *key_node = keyHead.next;
+     queue_T *cmd_node = head.next;
+     nbbuf_T buf;
+-    buf_T *bufp;
+     int i;
+ 
+     /* free the netbeans buffer list */
+@@ -964,7 +959,7 @@
+ 	buf = buf_list[i];
+ 	vim_free(buf.displayname);
+ 	vim_free(buf.signmap);
+-	if ((bufp=buf.bufp) != NULL)
++	if (buf.bufp != NULL)
+ 	{
+ 	    buf.bufp->b_netbeans_file = FALSE;
+ 	    buf.bufp->b_was_netbeans_file = FALSE;
+@@ -1186,6 +1181,10 @@
+ 
+     nbdebug(("REP %d: <none>\n", cmdno));
+ 
++    /* Avoid printing an annoying error message. */
++    if (!NETBEANS_OPEN)
++	return;
++
+     sprintf(reply, "%d\n", cmdno);
+     nb_send(reply, "nb_reply_nil");
+ }
+@@ -2250,6 +2249,7 @@
+ 	    update_topline();		/* scroll to show the line */
+ 	    update_screen(VALID);
+ 	    setcursor();
++	    cursor_on();
+ 	    out_flush();
+ #ifdef FEAT_GUI
+ 	    if (gui.in_use)
+@@ -2644,6 +2644,7 @@
+     {
+ 	update_screen(NOT_VALID);
+ 	setcursor();
++	cursor_on();
+ 	out_flush();
+ #ifdef FEAT_GUI
+ 	if (gui.in_use)
+@@ -2773,6 +2774,16 @@
+ ex_nbstart(eap)
+     exarg_T	*eap;
+ {
++#ifdef FEAT_GUI
++# if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK)  \
++		&& !defined(FEAT_GUI_W32)
++    if (gui.in_use)
++    {
++	EMSG(_("E838: netbeans is not supported with this GUI"));
++	return;
++    }
++# endif
++#endif
+     netbeans_open((char *)eap->arg, FALSE);
+ }
+ 
+@@ -2880,7 +2891,7 @@
+     char_u	*text;
+     linenr_T	lnum;
+     int		col;
+-    char	buf[MAXPATHL * 2 + 25];
++    char	*buf;
+     char_u	*p;
+ 
+     /* Don't do anything when 'ballooneval' is off, messages scrolled the
+@@ -2894,15 +2905,20 @@
+ 	 * length. */
+ 	if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
+ 	{
+-	    p = nb_quote(text);
+-	    if (p != NULL)
++	    buf = (char *)alloc(MAXPATHL * 2 + 25);
++	    if (buf != NULL)
+ 	    {
+-		vim_snprintf(buf, sizeof(buf),
+-				       "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+-		vim_free(p);
++		p = nb_quote(text);
++		if (p != NULL)
++		{
++		    vim_snprintf(buf, MAXPATHL * 2 + 25,
++				     "0:balloonText=%d \"%s\"\n", r_cmdno, p);
++		    vim_free(p);
++		}
++		nbdebug(("EVT: %s", buf));
++		nb_send(buf, "netbeans_beval_cb");
++		vim_free(buf);
+ 	    }
+-	    nbdebug(("EVT: %s", buf));
+-	    nb_send(buf, "netbeans_beval_cb");
+ 	}
+ 	vim_free(text);
+     }
+@@ -2937,7 +2953,7 @@
+     if (!NB_HAS_GUI || !NETBEANS_OPEN)
+ 	return;
+ 
+-# ifdef FEAT_GUI_MOTIF
++# ifdef FEAT_GUI_X11
+     /* tell notifier we are interested in being called
+      * when there is input on the editor connection socket
+      */
+@@ -3000,6 +3016,7 @@
+     changed_window_setting();
+     update_screen(CLEAR);
+     setcursor();
++    cursor_on();
+     out_flush();
+ #ifdef FEAT_GUI
+     if (gui.in_use)
+@@ -3027,7 +3044,7 @@
+     }
+ }
+ 
+-#if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
++#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
+ /*
+  * Tell netbeans that the window was moved or resized.
+  */
+@@ -3458,7 +3475,7 @@
+     return FALSE;
+ }
+ 
+-#if defined(FEAT_GUI_MOTIF) || defined(PROTO)
++#if defined(FEAT_GUI_X11) || defined(PROTO)
+ /*
+  * We have multiple signs to draw at the same location. Draw the
+  * multi-sign indicator instead. This is the Motif version.
+@@ -3487,7 +3504,7 @@
+     XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
+     XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
+ }
+-#endif /* FEAT_GUI_MOTIF */
++#endif /* FEAT_GUI_X11 */
+ 
+ #if defined(FEAT_GUI_GTK) && !defined(PROTO)
+ /*
+@@ -3902,14 +3919,12 @@
+     }
+     else
+     {
+-	char_u ebuf[BUFSIZ];
++	char_u msgbuf[IOSIZE];
+ 
+-	STRCPY(ebuf, (char_u *)_("E505: "));
+-	STRCAT(ebuf, IObuff);
+-	STRCAT(ebuf, (char_u *)_("is read-only (add ! to override)"));
+-	STRCPY(IObuff, ebuf);
+-	nbdebug(("    %s\n", ebuf ));
+-	emsg(IObuff);
++	vim_snprintf((char *)msgbuf, IOSIZE,
++		_("E505: %s is read-only (add ! to override)"), IObuff);
++	nbdebug(("    %s\n", msgbuf));
++	emsg(msgbuf);
+     }
+ }
+ 
+diff -Naur vim73.orig/src/normal.c vim73/src/normal.c
+--- vim73.orig/src/normal.c	2010-07-31 13:25:19.000000000 +0000
++++ vim73/src/normal.c	2011-05-17 09:39:36.371390862 +0000
+@@ -25,6 +25,9 @@
+ static int	restart_VIsual_select = 0;
+ #endif
+ 
++#ifdef FEAT_EVAL
++static void	set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
++#endif
+ static int
+ # ifdef __BORLANDC__
+ _RTLENTRYF
+@@ -648,6 +651,14 @@
+     dont_scroll = FALSE;	/* allow scrolling here */
+ #endif
+ 
++#ifdef FEAT_EVAL
++    /* Set v:count here, when called from main() and not a stuffed
++     * command, so that v:count can be used in an expression mapping
++     * when there is no count. */
++    if (toplevel && stuff_empty())
++	set_vcount_ca(&ca, &set_prevcount);
++#endif
++
+     /*
+      * Get the command character from the user.
+      */
+@@ -725,15 +736,7 @@
+ 	     * command, so that v:count can be used in an expression mapping
+ 	     * right after the count. */
+ 	    if (toplevel && stuff_empty())
+-	    {
+-		long count = ca.count0;
+-
+-		/* multiply with ca.opcount the same way as below */
+-		if (ca.opcount != 0)
+-		    count = ca.opcount * (count == 0 ? 1 : count);
+-		set_vcount(count, count == 0 ? 1 : count, set_prevcount);
+-		set_prevcount = FALSE;  /* only set v:prevcount once */
+-	    }
++		set_vcount_ca(&ca, &set_prevcount);
+ #endif
+ 	    if (ctrl_w)
+ 	    {
+@@ -1199,7 +1202,16 @@
+     {
+ 	clearop(oap);
+ #ifdef FEAT_EVAL
+-	set_reg_var('"');
++	{
++	    int regname = 0;
++
++	    /* Adjust the register according to 'clipboard', so that when
++	     * "unnamed" is present it becomes '*' or '+' instead of '"'. */
++# ifdef FEAT_CLIPBOARD
++	    adjust_clip_reg(&regname);
++# endif
++	    set_reg_var(regname);
++	}
+ #endif
+     }
+ 
+@@ -1386,6 +1398,26 @@
+     opcount = ca.opcount;
+ }
+ 
++#ifdef FEAT_EVAL
++/*
++ * Set v:count and v:count1 according to "cap".
++ * Set v:prevcount only when "set_prevcount" is TRUE.
++ */
++    static void
++set_vcount_ca(cap, set_prevcount)
++    cmdarg_T	*cap;
++    int		*set_prevcount;
++{
++    long count = cap->count0;
++
++    /* multiply with cap->opcount the same way as above */
++    if (cap->opcount != 0)
++	count = cap->opcount * (count == 0 ? 1 : count);
++    set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
++    *set_prevcount = FALSE;  /* only set v:prevcount once */
++}
++#endif
++
+ /*
+  * Handle an operator after visual mode or when the movement is finished
+  */
+@@ -5666,8 +5698,13 @@
+ 	else if (cmdchar == '#')
+ 	    aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
+ 	else if (tag_cmd)
+-	    /* Don't escape spaces and Tabs in a tag with a backslash */
+-	    aux_ptr = (char_u *)"\\|\"\n[";
++	{
++	    if (curbuf->b_help)
++		/* ":help" handles unescaped argument */
++		aux_ptr = (char_u *)"";
++	    else
++		aux_ptr = (char_u *)"\\|\"\n[";
++	}
+ 	else
+ 	    aux_ptr = (char_u *)"\\|\"\n*?[";
+ 
+@@ -8524,7 +8561,7 @@
+     else
+ 	curwin->w_curswant = 0;
+     /* keep curswant at the column where we wanted to go, not where
+-       we ended; differs if line is too short */
++     * we ended; differs if line is too short */
+     curwin->w_set_curswant = FALSE;
+ }
+ 
+diff -Naur vim73.orig/src/ops.c vim73/src/ops.c
+--- vim73.orig/src/ops.c	2010-08-01 12:16:08.000000000 +0000
++++ vim73/src/ops.c	2011-05-17 09:38:05.961425117 +0000
+@@ -1584,9 +1584,11 @@
+ adjust_clip_reg(rp)
+     int		*rp;
+ {
+-    /* If no reg. specified, and "unnamed" is in 'clipboard', use '*' reg. */
+-    if (*rp == 0 && clip_unnamed)
+-	*rp = '*';
++    /* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
++     * use '*' or '+' reg, respectively. "unnamedplus" prevails. */
++    if (*rp == 0 && clip_unnamed != 0)
++	*rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
++								  ? '+' : '*';
+     if (!clip_star.available && *rp == '*')
+ 	*rp = 0;
+     if (!clip_plus.available && *rp == '+')
+@@ -2842,6 +2844,9 @@
+     char_u		*p;
+     char_u		*pnew;
+     struct block_def	bd;
++#if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
++    int			did_star = FALSE;
++#endif
+ 
+ 				    /* check for read-only register */
+     if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
+@@ -3115,7 +3120,8 @@
+      */
+     if (clip_star.available
+ 	    && (curr == &(y_regs[STAR_REGISTER])
+-		|| (!deleting && oap->regname == 0 && clip_unnamed)))
++		|| (!deleting && oap->regname == 0
++					   && (clip_unnamed & CLIP_UNNAMED))))
+     {
+ 	if (curr != &(y_regs[STAR_REGISTER]))
+ 	    /* Copy the text from register 0 to the clipboard register. */
+@@ -3123,6 +3129,9 @@
+ 
+ 	clip_own_selection(&clip_star);
+ 	clip_gen_set_selection(&clip_star);
++# ifdef FEAT_X11
++	did_star = TRUE;
++# endif
+     }
+ 
+ # ifdef FEAT_X11
+@@ -3130,12 +3139,18 @@
+      * If we were yanking to the '+' register, send result to selection.
+      * Also copy to the '*' register, in case auto-select is off.
+      */
+-    else if (clip_plus.available && curr == &(y_regs[PLUS_REGISTER]))
++    if (clip_plus.available
++	    && (curr == &(y_regs[PLUS_REGISTER])
++		|| (!deleting && oap->regname == 0
++				      && (clip_unnamed & CLIP_UNNAMED_PLUS))))
+     {
+-	/* No need to copy to * register upon 'unnamed' now - see below */
++	if (curr != &(y_regs[PLUS_REGISTER]))
++	    /* Copy the text from register 0 to the clipboard register. */
++	    copy_yank_reg(&(y_regs[PLUS_REGISTER]));
++
+ 	clip_own_selection(&clip_plus);
+ 	clip_gen_set_selection(&clip_plus);
+-	if (!clip_isautosel())
++	if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
+ 	{
+ 	    copy_yank_reg(&(y_regs[STAR_REGISTER]));
+ 	    clip_own_selection(&clip_star);
+@@ -3979,7 +3994,12 @@
+     for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
+     {
+ 	name = get_register_name(i);
+-	if (arg != NULL && vim_strchr(arg, name) == NULL)
++	if (arg != NULL && vim_strchr(arg, name) == NULL
++#ifdef ONE_CLIPBOARD
++	    /* Star register and plus register contain the same thing. */
++		&& (name != '*' || vim_strchr(arg, '+') == NULL)
++#endif
++		)
+ 	    continue;	    /* did not ask for this register */
+ 
+ #ifdef FEAT_CLIPBOARD
+@@ -4153,9 +4173,10 @@
+     int	    save_undo;
+ {
+     char_u	*curr = NULL;
++    char_u      *curr_start = NULL;
+     char_u	*cend;
+     char_u	*newp;
+-    char_u	*spaces;	/* number of spaces inserte before a line */
++    char_u	*spaces;	/* number of spaces inserted before a line */
+     int		endcurr1 = NUL;
+     int		endcurr2 = NUL;
+     int		currsize = 0;	/* size of the current line */
+@@ -4181,7 +4202,7 @@
+      */
+     for (t = 0; t < count; ++t)
+     {
+-	curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
++	curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
+ 	if (insert_space && t > 0)
+ 	{
+ 	    curr = skipwhite(curr);
+@@ -4265,10 +4286,10 @@
+ 	    copy_spaces(cend, (size_t)(spaces[t]));
+ 	}
+ 	mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
+-				 (long)(cend - newp + spaces[t]));
++			 (long)(cend - newp + spaces[t] - (curr - curr_start)));
+ 	if (t == 0)
+ 	    break;
+-	curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
++	curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
+ 	if (insert_space && t > 1)
+ 	    curr = skipwhite(curr);
+ 	currsize = (int)STRLEN(curr);
+diff -Naur vim73.orig/src/option.c vim73/src/option.c
+--- vim73.orig/src/option.c	2010-08-04 18:49:18.000000000 +0000
++++ vim73/src/option.c	2011-05-17 09:38:42.077416723 +0000
+@@ -2740,7 +2740,7 @@
+ 			    (char_u *)&p_wc, PV_NONE,
+ 			    {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
+ 			    SCRIPTID_INIT},
+-    {"wildcharm",   "wcm",   P_NUM|P_VI_DEF,
++    {"wildcharm",   "wcm",  P_NUM|P_VI_DEF,
+ 			    (char_u *)&p_wcm, PV_NONE,
+ 			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+     {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+@@ -2750,6 +2750,9 @@
+ 			    (char_u *)NULL, PV_NONE,
+ #endif
+ 			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++    {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
++			    (char_u *)&p_wic, PV_NONE,
++			    {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+     {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
+ #ifdef FEAT_WILDMENU
+ 			    (char_u *)&p_wmnu, PV_NONE,
+@@ -3843,6 +3846,8 @@
+ # ifndef OS2	/* Always use bourne shell style redirection if we reach this */
+ 	    if (       fnamecmp(p, "sh") == 0
+ 		    || fnamecmp(p, "ksh") == 0
++		    || fnamecmp(p, "mksh") == 0
++		    || fnamecmp(p, "pdksh") == 0
+ 		    || fnamecmp(p, "zsh") == 0
+ 		    || fnamecmp(p, "zsh-beta") == 0
+ 		    || fnamecmp(p, "bash") == 0
+@@ -3850,6 +3855,8 @@
+ 		    || fnamecmp(p, "cmd") == 0
+ 		    || fnamecmp(p, "sh.exe") == 0
+ 		    || fnamecmp(p, "ksh.exe") == 0
++		    || fnamecmp(p, "mksh.exe") == 0
++		    || fnamecmp(p, "pdksh.exe") == 0
+ 		    || fnamecmp(p, "zsh.exe") == 0
+ 		    || fnamecmp(p, "zsh-beta.exe") == 0
+ 		    || fnamecmp(p, "bash.exe") == 0
+@@ -4349,7 +4356,7 @@
+ 		    p = find_termcode(key_name);
+ 		    if (p == NULL)
+ 		    {
+-			errmsg = (char_u *)N_("E518: Unknown option");
++			errmsg = (char_u *)N_("E846: Key code not set");
+ 			goto skip;
+ 		    }
+ 		    else
+@@ -4697,8 +4704,8 @@
+ 						|| s[i] == ','
+ 						|| s[i] == NUL))
+ 					break;
+-				    /* Count backspaces.  Only a comma with an
+-				     * even number of backspaces before it is
++				    /* Count backslashes.  Only a comma with an
++				     * even number of backslashes before it is
+ 				     * recognized as a separator */
+ 				    if (s > origval && s[-1] == '\\')
+ 					++bs;
+@@ -7304,7 +7311,7 @@
+     static char_u *
+ check_clipboard_option()
+ {
+-    int		new_unnamed = FALSE;
++    int		new_unnamed = 0;
+     int		new_autoselect = FALSE;
+     int		new_autoselectml = FALSE;
+     int		new_html = FALSE;
+@@ -7316,9 +7323,15 @@
+     {
+ 	if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
+ 	{
+-	    new_unnamed = TRUE;
++	    new_unnamed |= CLIP_UNNAMED;
+ 	    p += 7;
+ 	}
++        else if (STRNCMP(p, "unnamedplus", 11) == 0
++					    && (p[11] == ',' || p[11] == NUL))
++	{
++	    new_unnamed |= CLIP_UNNAMED_PLUS;
++	    p += 11;
++	}
+ 	else if (STRNCMP(p, "autoselect", 10) == 0
+ 					&& (p[10] == ',' || p[10] == NUL))
+ 	{
+@@ -9172,7 +9185,7 @@
+     int		expand;
+ {
+     char_u	*s;
+-    char_u	buf[MAXPATHL];
++    char_u	*buf;
+ 
+     if (fprintf(fd, "%s %s=", cmd, name) < 0)
+ 	return FAIL;
+@@ -9190,9 +9203,16 @@
+ 	}
+ 	else if (expand)
+ 	{
++	    buf = alloc(MAXPATHL);
++	    if (buf == NULL)
++		return FAIL;
+ 	    home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
+ 	    if (put_escstr(fd, buf, 2) == FAIL)
++	    {
++		vim_free(buf);
+ 		return FAIL;
++	    }
++	    vim_free(buf);
+ 	}
+ 	else if (put_escstr(fd, *valuep, 2) == FAIL)
+ 	    return FAIL;
+@@ -9756,6 +9776,9 @@
+ #ifdef FEAT_SCROLLBIND
+     to->wo_scb = from->wo_scb;
+ #endif
++#ifdef FEAT_CURSORBIND
++    to->wo_crb = from->wo_crb;
++#endif
+ #ifdef FEAT_SPELL
+     to->wo_spell = from->wo_spell;
+ #endif
+@@ -10011,7 +10034,7 @@
+ 	    buf->b_p_smc = p_smc;
+ #endif
+ #ifdef FEAT_SPELL
+-	    buf->b_s.b_p_spc = vim_strsave(p_spf);
++	    buf->b_s.b_p_spc = vim_strsave(p_spc);
+ 	    (void)compile_cap_prog(&buf->b_s);
+ 	    buf->b_s.b_p_spf = vim_strsave(p_spf);
+ 	    buf->b_s.b_p_spl = vim_strsave(p_spl);
+@@ -11284,16 +11307,19 @@
+  * from when editing started (save_file_ff() called).
+  * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
+  * changed and 'binary' is not set.
+- * Don't consider a new, empty buffer to be changed.
++ * When "ignore_empty" is true don't consider a new, empty buffer to be
++ * changed.
+  */
+     int
+-file_ff_differs(buf)
++file_ff_differs(buf, ignore_empty)
+     buf_T	*buf;
++    int		ignore_empty;
+ {
+     /* In a buffer that was never loaded the options are not valid. */
+     if (buf->b_flags & BF_NEVERLOADED)
+ 	return FALSE;
+-    if ((buf->b_flags & BF_NEW)
++    if (ignore_empty
++	    && (buf->b_flags & BF_NEW)
+ 	    && buf->b_ml.ml_line_count == 1
+ 	    && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
+ 	return FALSE;
+diff -Naur vim73.orig/src/option.h vim73/src/option.h
+--- vim73.orig/src/option.h	2010-07-25 14:15:02.000000000 +0000
++++ vim73/src/option.h	2011-05-17 09:36:52.217609780 +0000
+@@ -854,7 +854,11 @@
+ # define VE_ONEMORE	8
+ #endif
+ EXTERN long	p_verbose;	/* 'verbose' */
+-EXTERN char_u	*p_vfile;	/* 'verbosefile' */
++#ifdef IN_OPTION_C
++char_u	*p_vfile = (char_u *)""; /* used before options are initialized */
++#else
++extern char_u	*p_vfile;	/* 'verbosefile' */
++#endif
+ EXTERN int	p_warn;		/* 'warn' */
+ #ifdef FEAT_CMDL_COMPL
+ EXTERN char_u	*p_wop;		/* 'wildoptions' */
+@@ -872,6 +876,7 @@
+ EXTERN char_u	*p_ww;		/* 'whichwrap' */
+ EXTERN long	p_wc;		/* 'wildchar' */
+ EXTERN long	p_wcm;		/* 'wildcharm' */
++EXTERN long	p_wic;		/* 'wildignorecase' */
+ EXTERN char_u	*p_wim;		/* 'wildmode' */
+ #ifdef FEAT_WILDMENU
+ EXTERN int	p_wmnu;		/* 'wildmenu' */
+diff -Naur vim73.orig/src/os_macosx.m vim73/src/os_macosx.m
+--- vim73.orig/src/os_macosx.m	2010-08-15 10:56:50.000000000 +0000
++++ vim73/src/os_macosx.m	2011-05-17 09:33:10.742191503 +0000
+@@ -15,6 +15,10 @@
+     Error: MACOS 9 is no longer supported in Vim 7
+ #endif
+ 
++/* Avoid a conflict for the definition of Boolean between Mac header files and
++ * X11 header files. */
++#define NO_X11_INCLUDES
++
+ #include "vim.h"
+ #import <Cocoa/Cocoa.h>
+ 
+diff -Naur vim73.orig/src/os_msdos.c vim73/src/os_msdos.c
+--- vim73.orig/src/os_msdos.c	2010-05-15 11:04:07.000000000 +0000
++++ vim73/src/os_msdos.c	2011-05-17 09:35:36.146052907 +0000
+@@ -21,7 +21,6 @@
+  * Some functions are also used for Win16 (MS-Windows 3.1).
+  */
+ 
+-#include "vimio.h"
+ #include "vim.h"
+ 
+ #include <conio.h>
+diff -Naur vim73.orig/src/os_mswin.c vim73/src/os_mswin.c
+--- vim73.orig/src/os_mswin.c	2010-07-27 19:39:05.000000000 +0000
++++ vim73/src/os_mswin.c	2011-05-17 09:36:14.489797147 +0000
+@@ -22,7 +22,6 @@
+ # endif
+ #endif
+ 
+-#include "vimio.h"
+ #include "vim.h"
+ 
+ #ifdef WIN16
+@@ -31,7 +30,6 @@
+ # include <string.h>
+ #endif
+ #include <sys/types.h>
+-#include <errno.h>
+ #include <signal.h>
+ #include <limits.h>
+ #include <process.h>
+@@ -595,7 +593,7 @@
+ 				     gui.starting ? (char_u *)_("Message") :
+ #endif
+ 					     (char_u *)_("Error"),
+-				     p, (char_u *)_("&Ok"), 1, NULL);
++				     p, (char_u *)_("&Ok"), 1, NULL, FALSE);
+ 		break;
+ 	    }
+ 	ga_clear(&error_ga);
+@@ -817,7 +815,11 @@
+     BOOL fRunTimeLinkSuccess = FALSE;
+ 
+     // Get a handle to the DLL module.
++# ifdef WIN16
+     hinstLib = LoadLibrary(libname);
++# else
++    hinstLib = vimLoadLib(libname);
++# endif
+ 
+     // If the handle is valid, try to get the function address.
+     if (hinstLib != NULL)
+diff -Naur vim73.orig/src/os_riscos.c vim73/src/os_riscos.c
+--- vim73.orig/src/os_riscos.c	2010-05-15 11:04:08.000000000 +0000
++++ vim73/src/os_riscos.c	1970-01-01 00:00:00.000000000 +0000
+@@ -1,1292 +0,0 @@
+-/* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved	by Bram Moolenaar
+- *
+- * Do ":help uganda"  in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- * See README.txt for an overview of the Vim source code.
+- */
+-
+-#include "vim.h"
+-
+-/*
+- * os_riscos.c
+- *
+- * Thomas Leonard <tal197@ecs.soton.ac.uk>
+- */
+-
+-const char *__dynamic_da_name = "Vim heap"; /* Enable and name our dynamic area */
+-int ro_line_mode = TRUE;  /* For Ex mode we much echo chars to the screen ourselves */
+-int windowed;		/* Flag - are we running inside a text window? */
+-int WinLeft, WinTop;	/* We might be started inside a text window */
+-int ScrollTop;		/* Make cursor movements relative to ScrollTop. */
+-
+-int old_escape_state = -1;
+-int old_cursor_state = -1;
+-
+-#define rgb(r,g,b) ((b<<24) + (g<<16) + (r<<8))
+-#define NORMAL_FG 0x00000000
+-#define NORMAL_BG 0xffffffff
+-
+-/* Convert a DOS colour number to an RGB palette entry.
+- * Mappings from X11 rgb/txt file.
+- */
+-    static int
+-map_colour(dos)
+-    int dos;		/* Standard DOS colour number. */
+-{
+-    switch (dos)
+-    {
+-	case 0: return 0;			/* Black */
+-	case 1: return rgb(0,0,139);		/* DarkBlue */
+-	case 2: return rgb(0,100,0);		/* DarkGreen */
+-	case 3: return rgb(0,139,139);		/* DarkCyan */
+-	case 4: return rgb(139,0,0);		/* DarkRed */
+-	case 5: return rgb(139,0,139);		/* DarkMagenta */
+-	case 6: return rgb(165,42,42);		/* Brown, DarkYellow */
+-	case 7: return rgb(211,211,211);	/* LightGray, LightGrey, Gray, Grey */
+-	case 8: return rgb(169,169,169);	/* DarkGray, DarkGrey */
+-	case 9: return rgb(173,216,230);	/* Blue, LightBlue */
+-	case 10: return rgb(144,238,144);	/* Green, LightGreen */
+-	case 11: return rgb(224,255,255);	/* Cyan, LightCyan */
+-	case 12: return rgb(255,0,0);		/* Red, LightRed */
+-	case 13: return rgb(255,0,255);		/* Magenta, LightMagenta */
+-	case 14: return rgb(255,255,0);		/* Yellow, LightYellow */
+-	case 15: return rgb(255,255,255);	/* White */
+-    }
+-    return rgb(100,100,100);
+-}
+-
+-    static void
+-text_fg(fg)
+-    int fg;		/* Foregound colour in the form &BBGGRR00 */
+-{
+-    xswi(ColourTrans_SetTextColour, fg, 0, 0, 0);
+-}
+-
+-    static void
+-text_bg(bg)
+-    int		bg;	/* Backgound colour in the form &BBGGRR00 */
+-{
+-    xswi(ColourTrans_SetTextColour, bg, 0, 0, 1 << 7);
+-}
+-
+-#define OUT_NORMAL 0
+-#define OUT_NUMBER 1		/* Reading in a number */
+-
+-    void
+-mch_write(s, len)
+-    char_u  *s;
+-    int	    len;
+-{
+-    static int mode = OUT_NORMAL;
+-    static int x, y;			/* For reading numbers in. */
+-
+-    if (!term_console)
+-    {
+-	/* Maybe we are running Vim remotely - don't interpret chars */
+-	while (len--)
+-	{
+-	    char_u c = *s++;
+-	    swi(OS_WriteC, c);
+-	    /* We might need to send a CR too. This shouldn't
+-	     * hurt if we don't need it, should it?
+-	     */
+-	    if (c == 10)
+-		swi(OS_WriteI + 13);
+-	}
+-	return;
+-    }
+-
+-    while (len--)
+-    {
+-	char_u c = *s++;
+-	switch (mode)
+-	{
+-	    case OUT_NUMBER:
+-		if (c < '0' || c > '9')
+-		{
+-		    mode = OUT_NORMAL;
+-		}
+-		else
+-		{
+-		    x = (x * 10) + c - '0';
+-		    continue;
+-		}
+-	    /* note: no break here! */
+-
+-	    case OUT_NORMAL:
+-		switch (c)
+-		{
+-		    case 1:
+-			/* Number (in decimal) follows. */
+-			mode = OUT_NUMBER;
+-			y = x;
+-			x = 0;
+-			break;
+-		    case 2:
+-			/* Position cursor. */
+-			swi(OS_WriteI + 31);
+-			swi(OS_WriteC, x);
+-			swi(OS_WriteC, y - ScrollTop);
+-			break;
+-		    case 3:
+-			/* Set scroll region. */
+-			if (x == Rows -1 && y == 0 && !windowed)
+-			{
+-			    /* Whole screen - remove text window.
+-			     * This is MUCH faster.
+-			     */
+-			    swi(OS_WriteI + 26);
+-			}
+-			else
+-			{
+-			    /* Create a text window. */
+-			    swi(OS_WriteI + 28);
+-			    swi(OS_WriteC, WinLeft);
+-			    swi(OS_WriteC, WinTop + x);
+-			    swi(OS_WriteC, WinLeft + Columns - 1);
+-			    swi(OS_WriteC, WinTop + y);
+-			}
+-			ScrollTop = y;
+-			break;
+-		    case 4:
+-			/* Normal mode. */
+-			text_fg(NORMAL_FG);
+-			text_bg(NORMAL_BG);
+-			break;
+-		    case 5:
+-			/* Reverse mode. */
+-			text_fg(NORMAL_BG);
+-			text_bg(NORMAL_FG);
+-			break;
+-		    case 10:
+-			swi(OS_NewLine);
+-			break;
+-		    case 14:
+-			/* Cursor invisible. */
+-			swi(OS_WriteN,
+-			     "\027\001\000\000\000\000\000\000\000\000",
+-			     10);
+-			break;
+-		    case 15:
+-			/* Cursor visible. */
+-			swi(OS_WriteN,
+-			     "\027\001\002\000\000\000\000\000\000\000",
+-			     10);
+-			break;
+-		    case 16:
+-			/* Cursor very visible (flash) */
+-			swi(OS_WriteN,
+-			     "\027\001\003\000\000\000\000\000\000\000",
+-			     10);
+-		    case 17:
+-			/* Set foreground colour. */
+-			text_fg(map_colour(x));
+-			break;
+-		    case 18:
+-			/* Set background colour. */
+-			text_bg(map_colour(x));
+-			break;
+-		    case 19:
+-			/* Scroll text down. */
+-			swi(OS_WriteN,
+-			     "\027\007\000\002\000\000\000\000\000\000",
+-			     10);
+-			break;
+-		    default:
+-			swi(OS_WriteC, c);
+-		}
+-		continue;
+-
+-	    default:
+-		printf("[output error]");
+-		mode = OUT_NORMAL;
+-	}
+-    }
+-}
+-
+-/*
+- * mch_inchar(): low level input funcion.
+- * Get a characters from the keyboard.
+- * Return the number of characters that are available.
+- * If wtime == 0 do not wait for characters.
+- * If wtime == n wait n msecs for characters.
+- * If wtime == -1 wait forever for characters.
+- *
+- * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
+- */
+-    int
+-mch_inchar(buf, maxlen, wtime, tb_change_cnt)
+-    char_u  *buf;
+-    int	    maxlen;
+-    long    wtime;
+-    int	    tb_change_cnt;
+-{
+-    int got=0;
+-    unsigned int start_time = clock();
+-
+-    if (ro_line_mode)
+-    {
+-	/* We're probably in Ex mode - get whole lines at a time. */
+-
+-	static char_u	line_buffer[256];
+-	static int	remaining_chars = 0;
+-	static int	buf_pos = 0;
+-
+-	/* Do we need to fetch another line? */
+-	if (remaining_chars == 0)
+-	{
+-	    int		old_esc_state;
+-	    swi(OS_Byte, 200, 1, 0xfe);
+-	    old_esc_state = r1;
+-
+-	    buf_pos = 0;
+-	    if (xswi(OS_ReadLine, line_buffer, 255, 0, 255) & (c_flag | v_flag))
+-	    {
+-		got_int = TRUE;	    /* ESC pressed */
+-		r1 = 0;
+-	    }
+-	    line_buffer[r1] = 13;
+-	    remaining_chars = r1 + 1;	/* Count CR as part of input */
+-
+-	    swi(OS_Byte, 200, old_esc_state, 0);
+-	}
+-
+-	/* Can we send the rest of the buffer back in one go? */
+-	if (remaining_chars <= maxlen)
+-	{
+-	    int	    got = remaining_chars;
+-
+-	    memcpy(buf, line_buffer + buf_pos, got);
+-	    remaining_chars = 0;
+-	    return  got;
+-	}
+-
+-	/* Send as much as we can */
+-	memcpy(buf, line_buffer + buf_pos, maxlen);
+-	buf_pos += maxlen;
+-	remaining_chars -= maxlen;
+-
+-	return maxlen;
+-    }
+-
+-    if (!term_console)
+-    {
+-	/* Use OS_ReadC for all input.
+-	 * Avoids problems with remote access getting interference from
+-	 * the keyboard.
+-	 */
+-	if (wtime == 0)
+-	    return 0;	    /* Ignore quick key checks */
+-
+-	if (xswi(OS_ReadC) & c_flag)
+-	{
+-	    got_int = TRUE;	/* ESC pressed - can this happen? */
+-	    swi(OS_Byte, 124);	/* Clear Escape state */
+-	    r0 = 0x1b;		/* It *might* not have been Escape! */
+-	}
+-	buf[0] = r0;
+-	return 1;
+-    }
+-
+-    /*
+-     * OK, here's the plan:
+-     *
+-     * 1) Wait until wtime expires or we get a key
+-     * 2) Get keys until the keyboard buffer is empty or buf is full
+-     */
+-
+-    while (xswi(OS_Byte,145,0) & c_flag)
+-    {
+-	/* Nothing at all in the keyboard buffer.
+-	 * Has our time expired yet?
+-	 */
+-	if ( (wtime != -1) && (clock() - start_time) >= wtime )
+-	    return 0;		/* Nothing read - giving up */
+-    }
+-
+-    /* We've got one char (in r2) - are there any more? */
+-
+-    while (got < maxlen)
+-    {
+-	buf[got++] = r2;
+-
+-	if (xswi(OS_Byte,145,0) & c_flag)
+-	    return got;		/* Keyboard buffer empty */
+-    }
+-    return got;			/* buf is full */
+-}
+-
+-/*
+- * return non-zero if a character is available
+- */
+-    int
+-mch_char_avail()
+-{
+-    if (!term_console)
+-	return 0;	    /* Can't tell */
+-    if (xswi(OS_Byte, 152, 0) & c_flag)
+-	return 0;
+-    return 1;
+-}
+-
+-/* Find out how much free memory we have.
+- * I don't know how to work this out exactly but, since we can claim
+- * more memory from the OS, let's just report the free pool size.
+- * Dynamic area 6 doesn't exist pre 3.6 according to StrongHelp, so
+- * we'll use Wimp_SlotSize. If that fails (outside the desktop?)
+- * then just return a big number and hope.
+- */
+-    long_u
+-mch_avail_mem(special)
+-    int special;
+-{
+-    if (xswi(Wimp_SlotSize, -1, -1) & v_flag)
+-	return 0x7fffffff;
+-    return r2;
+-}
+-
+-    void
+-mch_delay(msec, ignoreinput)
+-    long	msec;
+-    int		ignoreinput;
+-{
+-    int		start_time, time_now;
+-    int		csec = msec / 10;
+-
+-    swi(OS_ReadMonotonicTime);
+-    start_time = r0;
+-
+-    for (;;)
+-    {
+-	swi(OS_ReadMonotonicTime);
+-	time_now = r0;
+-	if (time_now - start_time > csec)
+-	    return;
+-#ifdef FEAT_GUI
+-	/* In the GUI, allow other programs to run while waiting. */
+-	if (gui.in_use)
+-	    gui_mch_wait_for_chars(start_time + csec);
+-#endif
+-    }
+-}
+-
+-/*
+- * If the machine has job control, use it to suspend the program,
+- * otherwise fake it by starting a new shell.
+- */
+-    void
+-mch_suspend()
+-{
+-    suspend_shell();
+-}
+-
+-    void
+-mch_init()
+-{
+-    /*
+-     * Read window size first. Calls to mch_get_shellsize() will
+-     * simply return these values in future so that setting the
+-     * text window (used for scrolling) won't give strange results.
+-     */
+-
+-    int buf[7] = {132, 135, 256, 257, 1, 2, -1};
+-
+-    /* Command windows are no longer forced open, since if we are
+-     * in the desktop then we'll use the GUI version.
+-     * Opening a command window here messes up the GUI version startup
+-     */
+-#ifndef FEAT_GUI
+-    swi(OS_WriteI);
+-#endif
+-    swi(OS_ReadVduVariables, buf, buf);
+-    WinLeft = buf[0];
+-    WinTop  = buf[1];
+-    Columns = buf[2];
+-    Rows    = buf[3] + 1;	/* Seems to be one off (VduVars wrong?) */
+-    ScrollTop = 0;
+-
+-    /* Are we running in a textwindow? */
+-    if (Rows == buf[5] + 1 && Columns == buf[4] + 1)
+-	windowed = 0;
+-    else
+-	windowed = 1;
+-
+-    /* Choose a nice colour scheme. */
+-    text_fg(NORMAL_FG);
+-    text_bg(NORMAL_BG);
+-}
+-
+-/*
+- * Check_win checks whether we have an interactive stdout.
+- */
+-/* ARGSUSED */
+-    int
+-mch_check_win(argc, argv)
+-    int	    argc;
+-    char    **argv;
+-{
+-    return OK;
+-}
+-
+-/*
+- * Return TRUE if the input comes from a terminal, FALSE otherwise.
+- */
+-    int
+-mch_input_isatty()
+-{
+-    if (xswi(OS_ChangeRedirection, -1, -1) & v_flag)
+-	return TRUE;		/* Error - TRUE is probably correct though */
+-    if (r0 == 0)
+-	return TRUE;
+-    return FALSE;
+-}
+-
+-#ifdef FEAT_TITLE
+-    int
+-mch_can_restore_title()
+-{
+-    return FALSE;
+-}
+-
+-    int
+-mch_can_restore_icon()
+-{
+-    return FALSE;
+-}
+-
+-
+-/*
+- * Set the window title and icon.
+- */
+-    void
+-mch_settitle(title, icon)
+-    char_u *title;
+-    char_u *icon;
+-{
+-    if (title == NULL)
+-	title = (char_u *) "<untitled>";
+-#ifdef FEAT_GUI
+-    if (gui.in_use && strcmp(title, gui.window_title))
+-    {
+-	int length;
+-	length = strlen(title);
+-	if (length >= gui.window_title_size)
+-	    length = gui.window_title_size - 1;
+-	strncpy(gui.window_title, title, length);
+-	gui.window_title[length] = 0;
+-	ro_redraw_title(gui.window_handle);
+-    }
+-#endif
+-    return;
+-}
+-
+-/*
+- * Restore the window/icon title.
+- * "which" is one of:
+- *  1  only restore title
+- *  2  only restore icon
+- *  3  restore title and icon
+- */
+-    void
+-mch_restore_title(which)
+-    int which;
+-{
+-    return;
+-}
+-#endif
+-
+-/*
+- * Insert user name in s[len].
+- * Return OK if a name found.
+- */
+-    int
+-mch_get_user_name(s, len)
+-    char_u  *s;
+-    int	    len;
+-{
+-    /* RISC OS doesn't support user names. */
+-    *s = NUL;
+-    return FAIL;
+-}
+-
+-/*
+- * Insert host name in s[len].
+- */
+-
+-    void
+-mch_get_host_name(s, len)
+-    char_u  *s;
+-    int	    len;
+-{
+-    if (xswi(OS_ReadVarVal, "Machine$Name", s, len, 0, 3) & v_flag)
+-    {
+-	/* Variable does not exist (normal operation) */
+-	vim_strncpy(s, "(unknown)", len - 1);
+-    }
+-}
+-
+-/*
+- * return process ID
+- */
+-    long
+-mch_get_pid()
+-{
+-    if (xswi(Wimp_ReadSysInfo, 5) & v_flag)
+-	return 0;
+-    return r0;
+-}
+-
+-/*
+- * Get name of current directory into buffer 'buf' of length 'len' bytes.
+- * Return OK for success, FAIL for failure.
+- */
+-    int
+-mch_dirname(buf, len)
+-    char_u  *buf;
+-    int	    len;
+-{
+-    if (xswi(OS_FSControl, 37, "@", buf, 0, 0, len) & v_flag)
+-	return FAIL;
+-    return OK;
+-}
+-
+-/*
+- * Get absolute file name into buffer 'buf' of length 'len' bytes.
+- *
+- * return FAIL for failure, OK for success
+- */
+-    int
+-mch_FullName(fname, buf, len, force)
+-    char_u *fname, *buf;
+-    int len;
+-    int	force;		/* Also expand when already absolute path name.
+-			 * Not used under RISC OS.
+-			 */
+-{
+-    if (xswi(OS_FSControl, 37, fname, buf, 0, 0, len) & v_flag)
+-	return FAIL;
+-    return OK;
+-}
+-
+-/*
+- * Return TRUE if "fname" does not depend on the current directory.
+- */
+-    int
+-mch_isFullName(fname)
+-    char_u	*fname;
+-{
+-    if (strstr(fname, "::") && strstr(fname,".$."))
+-	return TRUE;
+-    return FALSE;
+-}
+-
+-/*
+- * Get file permissions for 'name'.
+- * Returns -1 when it doesn't exist.
+- */
+-    long
+-mch_getperm(name)
+-    char_u *name;
+-{
+-    struct stat statb;
+-
+-    if (stat((char *)name, &statb))
+-	return -1;
+-    return statb.st_mode;
+-}
+-
+-/*
+- * set file permission for 'name' to 'perm'
+- *
+- * return FAIL for failure, OK otherwise
+- */
+-    int
+-mch_setperm(name, perm)
+-    char_u  *name;
+-    long    perm;
+-{
+-    return (chmod((char *)name, (mode_t)perm) == 0 ? OK : FAIL);
+-}
+-
+-/*
+- * Set hidden flag for "name".
+- */
+-/* ARGSUSED */
+-    void
+-mch_hide(name)
+-    char_u	*name;
+-{
+-    /* can't hide a file */
+-}
+-
+-/*
+- * return TRUE if "name" is a directory
+- * return FALSE if "name" is not a directory
+- * return FALSE for error
+- */
+-    int
+-mch_isdir(name)
+-    char_u *name;
+-{
+-    if (xswi(OS_File, 17, name) & v_flag)
+-	return FALSE;
+-    if (r0 == 2 || r0 == 3)
+-	return TRUE;		/* Count image files as directories. */
+-    return FALSE;
+-}
+-
+-/*
+- * Return 1 if "name" can be executed, 0 if not.
+- * Return -1 if unknown. Requires which to work.
+- */
+-    int
+-mch_can_exe(name)
+-    char_u	*name;
+-{
+-    char_u	*buf;
+-    char_u	*p;
+-    int		retval;
+-
+-    buf = alloc((unsigned)STRLEN(name) + 7);
+-    if (buf == NULL)
+-	return -1;
+-    sprintf((char *)buf, "which %s", name);
+-    p = get_cmd_output(buf, NULL, SHELL_SILENT);
+-    vim_free(buf);
+-    if (p == NULL)
+-	return -1;
+-    /* result can be: "name: Command not found" */
+-    retval = (*p != NUL && strstr((char *)p, "not found") == NULL);
+-    vim_free(p);
+-    return retval;
+-}
+-
+-/*
+- * Check what "name" is:
+- * NODE_NORMAL: file or directory (or doesn't exist)
+- * NODE_WRITABLE: writable device, socket, fifo, etc.
+- * NODE_OTHER: non-writable things
+- */
+-    int
+-mch_nodetype(name)
+-    char_u	*name;
+-{
+-    /* TODO */
+-    return NODE_NORMAL;
+-}
+-
+-    void
+-mch_early_init()
+-{
+-    /* Turn off all the horrible filename munging in UnixLib. */
+-    int __riscosify_control = __RISCOSIFY_NO_PROCESS;
+-}
+-
+-    void
+-mch_exit(r)
+-    int r;
+-{
+-    settmode(TMODE_COOK);
+-    exiting = TRUE;
+-    out_flush();
+-    ml_close_all(TRUE);		/* remove all memfiles */
+-
+-#ifdef FEAT_GUI
+-    if (gui.in_use)
+-	gui_exit(r);
+-#endif
+-    swi(OS_NewLine);
+-    if (old_escape_state != -1)
+-	swi(OS_Byte, 229, old_escape_state, 0);
+-    if (old_cursor_state != -1)
+-	swi(OS_Byte, 4, old_cursor_state);
+-    exit(r);
+-}
+-
+-    void
+-mch_settmode(tmode)
+-    int		tmode;	    /* TMODE_RAW or TMODE_COOK */
+-{
+-    if (tmode == TMODE_COOK)
+-    {
+-	ro_line_mode = TRUE;
+-	return;
+-    }
+-
+-    ro_line_mode = FALSE;
+-
+-    if (term_console)
+-    {
+-	/* Block cursor. */
+-	swi(OS_WriteN,
+-		"\027\000\012\000\000\000\000\000\000\000",
+-		10);
+-
+-	/* Disable the standard cursor key actions. */
+-	swi(OS_Byte, 4, 1);
+-	if (old_cursor_state == -1)
+-	    old_cursor_state = r1;
+-    }
+-
+-    /* Stop Escape from quitting Vim! */
+-    swi(OS_Byte, 229, 1, 0);
+-    if (old_escape_state == -1)
+-	old_escape_state = r1;
+-}
+-
+-/*
+- * set mouse clicks on or off (only works for xterms)
+- */
+-    void
+-mch_setmouse(on)
+-    int	    on;
+-{
+-}
+-
+-/*
+- * set screen mode, always fails.
+- */
+-/* ARGSUSED */
+-    int
+-mch_screenmode(arg)
+-    char_u   *arg;
+-{
+-    EMSG(_(e_screenmode));
+-    return FAIL;
+-}
+-
+-/*
+- * Try to get the current window size.
+- * Return OK when size could be determined, FAIL otherwise.
+- * Simply return results stored by mch_init() if we are the
+- * machine's console. If not, we don't know how big the screen is.
+- */
+-    int
+-mch_get_shellsize()
+-{
+-    /* if size changed: screenalloc will allocate new screen buffers */
+-    return term_console ? OK : FAIL;
+-}
+-
+-/*
+- * Can't change the size.
+- * Assume the user knows what he's doing and use the new values.
+- */
+-    void
+-mch_set_shellsize()
+-{
+-    /* Assume the user knows what he's doing and use the new values. */
+-}
+-
+-/*
+- * Rows and/or Columns has changed.
+- */
+-    void
+-mch_new_shellsize()
+-{
+-    /* Nothing to do. */
+-}
+-
+-    int
+-mch_call_shell(cmd, options)
+-    char_u	*cmd;
+-    int		options;	/* SHELL_*, see vim.h */
+-{
+-    int		retval;
+-    int		tmode = cur_tmode;
+-
+-    if (cmd == NULL)
+-	cmd = (char_u *) "GOS";
+-
+-#ifdef FEAT_GUI
+-    if (gui.in_use)
+-	return gui_mch_call_shell(cmd, options);
+-#endif
+-    if (options & SHELL_COOKED)
+-	settmode(TMODE_COOK);		/* set to normal mode */
+-    MSG_PUTS("\n");
+-
+-   /* I don't even want to think about what UnixLib must
+-    * be doing to allow this to work...
+-    */
+-    retval = system(cmd);
+-    if (retval && !(options & SHELL_SILENT))
+-	EMSG(strerror(EOPSYS));		/* Doesn't seem to set errno? */
+-
+-    swi(OS_Byte, 229, 1, 0);		/* Re-disable escape */
+-    if (tmode == TMODE_RAW)
+-	settmode(TMODE_RAW);		/* set to raw mode */
+-    return retval ? FAIL : OK;
+-}
+-
+-/*
+- * Check for Escape being pressed right now.
+- * [ different if !term_console? ]
+- */
+-    void
+-mch_breakcheck()
+-{
+-    if (xswi(OS_Byte, 121, 0xf0) & v_flag)
+-	return;
+-    if (r1 == 0xff)
+-    {
+-	got_int = TRUE;
+-	swi(OS_Byte, 15, 1);	/* Flush input buffer */
+-    }
+-}
+-
+-/*
+- * Recursively expand one path component into all matching files and/or
+- * directories.
+- * "path" has backslashes before chars that are not to be expanded.
+- * Return the number of matches found.
+- */
+-    int
+-mch_expandpath(gap, path, flags)
+-    garray_T	*gap;	/* Grow array for results. */
+-    char_u	*path;
+-    int		flags;	/* EW_* flags */
+-{
+-    int		got;	/* Number of matches. */
+-    char_u	*pattern;
+-
+-   /* Plan:
+-    *
+-    * 1) Get first part of path - no wildcards
+-    * 2) Get next path element (wildcarded)
+-    * 3) Get rest of path
+-    *
+-    * If (3) is nothing then only the leaf is wildcarded - add to gap
+-    * Otherwise call recursively for each path in (2), passing (3)
+-    *
+-    * This is just the header function.
+-    */
+-
+-    /* We must be able to modifiy path, so make a copy */
+-    pattern = vim_strsave(path);
+-    if (pattern == NULL)
+-	return 0;
+-    got = expand_section(gap, (char_u *)"", pattern, flags);
+-    vim_free(pattern);
+-    return got;
+-}
+-
+-/*
+- * expand_section(gap, "$.Dir1.Dir2", "ABBA*.myleaf##")
+- *
+- * calls expand_section(gap, "$.Dir1.Dir2.ABBA_Gold", "myleaf##")
+- *   and expand_section(gap, "$.Dir1.Dir2.ABBA_Live", "myleaf##")
+- *
+- * If rest is just a leaf then all matches are added to gap.
+- *
+- * Returns number of items added to gap.
+- */
+-    int
+-expand_section(gap, root, rest, flags)
+-    garray_T	*gap;
+-    char_u	*root;	/* Non-wildcarded path to search */
+-    char_u	*rest;	/* Wildcarded remainder of path */
+-    int		flags;	/* Add dirs/files/missing objects. */
+-{
+-    static char_u buf[MAXPATHL];	/* Temporary buffer. */
+-    char_u dir[MAXPATHL];
+-    int start_element = -1;		/* Start of wildcarded element */
+-    char_u c;
+-    int i;
+-    int got, dir_pos;
+-    int buflen;			/* Chars used in buf[] */
+-    int colon = 0;		/* Dir ends in ':' */
+-
+-    buflen = strlen(root);
+-    STRNCPY(buf, root, buflen);	/* Copy root into buffer. */
+-
+-   /*
+-    * Find end of nonwildcarded section.
+-    * Count ':' as a path sep since Vim:Bug* is a valid pathname.
+-    */
+-
+-    for (i = 0; c = rest[i]; i++)
+-    {
+-	if (c == PATHSEP)
+-	{
+-	    start_element = i;
+-	    colon = 0;
+-	}
+-	if (c == ':')
+-	{
+-	    start_element = i + 1;
+-	    colon = 1;
+-	}
+-	if (c == '#' || c == '*')
+-	    break;
+-    }
+-    if (c == 0)
+-	start_element = i;
+-
+-   /*
+-    * start_element +> terminator for non-wildcarded section.
+-    * Transfer this bit into buf.
+-    */
+-    if (buflen + start_element + 4 >= MAXPATHL)
+-       return 0;			/* Buffer full */
+-    if (start_element >= 0)
+-    {
+-	if (*root && !colon)
+-	    buf[buflen++] = PATHSEP;
+-	strncpy(buf + buflen, rest, start_element);
+-	buflen += start_element;
+-    }
+-    buf[buflen] = 0;
+-
+-   /*
+-    * Did we reach the end of the string without hitting any wildcards?
+-    */
+-    if (c == 0)
+-    {
+-	/* Yes - add combined path to grow array and return. */
+-	addfile(gap, buf, flags);
+-	return 1;
+-    }
+-
+-    if (start_element < 0 || !colon)
+-	start_element++;
+-    rest += start_element;
+-
+-   /*
+-    * rest does contain wildcards if we get here.
+-    *
+-    * Now : have we reached the leaf names part yet?
+-    * If so, add all matches (files and dirs) to gap.
+-    * If not, get next path element and scan all matching directories.
+-    */
+-
+-    start_element = -1;
+-    for (i = 0; rest[i]; i++)
+-    {
+-	if (rest[i] == '.')
+-	{
+-	    start_element = i;
+-	    rest[i] = 0;		/* Break string here. */
+-	    break;
+-	}
+-    }
+-
+-    /* If start_element is -1 then we are matching leaf names */
+-
+-    r3 = 0;			/* Number of objs read. */
+-    dir_pos = 0;		/* Position through directory. */
+-    got = 0;			/* Files added so far. */
+-    while (dir_pos != -1)
+-    {
+-	buf[buflen] = 0;
+-	if (xswi(OS_GBPB, 9,
+-		buf,				/* Directory to scan. */
+-		buf + buflen + (1 - colon),	/* Buffer for result. */
+-		1,			/* Number of objects to read. */
+-		dir_pos,		/* Search position. */
+-		MAXPATHL - 2 - buflen,	/* Size of result buffer. */
+-		rest)			/* Wildcarded leafname. */
+-			& v_flag)
+-	{
+-	    EMSG(r0 + 4);
+-	    r4 = -1;
+-	}
+-	dir_pos = r4;		/* r4 corrupted by addfile() */
+-	if (r3 > 0)
+-	{
+-	    char_u *path = buf;
+-	    if (buflen == 0)
+-		path++;			/* Don't do '.File' */
+-	    else if (!colon)
+-		buf[buflen] = '.';		/* Join path and leaf */
+-
+-	   /* Path -> full path of object found */
+-	    if (start_element == -1)
+-	    {
+-		addfile(gap, path, flags);
+-		got++;
+-	    }
+-	    else
+-	    {
+-	       /* Scan into subdirectories and images; ignore files */
+-		swi(OS_File, 17, path);
+-		if (r0 == 2 || r0 == 3)
+-		    got += expand_section(gap,
+-						path,
+-						rest + start_element + 1,
+-						flags);
+-	    }
+-	}
+-    }
+-
+-    /* Restore the dot if we removed it. */
+-    if (start_element >= 0)
+-	rest[start_element] = '.';
+-    return got;
+-}
+-
+-/*
+- * mch_expand_wildcards() - this code does wild-card pattern matching using
+- * the shell. It isn't used under RISC OS.
+- *
+- * return OK for success, FAIL for error (you may lose some memory) and put
+- * an error message in *file.
+- *
+- * num_pat is number of input patterns
+- * pat is array of pointers to input patterns
+- * num_file is pointer to number of matched file names
+- * file is pointer to array of pointers to matched file names
+- */
+-    int
+-mch_expand_wildcards(num_pat, pat, num_file, file, flags)
+-    int		    num_pat;
+-    char_u	  **pat;
+-    int		   *num_file;
+-    char_u	 ***file;
+-    int		    flags;		/* EW_* flags */
+-{
+-    /* This doesn't get called unless SPECIAL_WILDCHAR is defined. */
+-    return FAIL;
+-}
+-
+-/*
+- * Return TRUE if "p" contains wildcards which can be expanded by
+- * mch_expandpath().
+- */
+-    int
+-mch_has_exp_wildcard(p)
+-    char_u	*p;
+-{
+-    if (vim_strpbrk((char_u *)"*#", p))
+-	return TRUE;
+-    return FALSE;
+-}
+-
+-/* Return TRUE if "p" contains wildcards. */
+-    int
+-mch_has_wildcard(p)
+-    char_u	*p;
+-{
+-    if (vim_strpbrk((char_u *)"*#`", p))
+-	return TRUE;
+-    return FALSE;
+-}
+-
+-    int			/* see Unix unlink(2) */
+-mch_remove(file)
+-    char_u *file;	/* Name of file to delete. */
+-{
+-    if (xswi(OS_FSControl, 27, file, 0, 0) & v_flag)
+-	return EXIT_FAILURE;
+-    return EXIT_SUCCESS;
+-}
+-
+-/* Try to make existing scripts work without modification.
+- * Return a pointer to the new string (freed by caller), or NULL
+- *
+- * Two main cases:
+- * - Absolute : $VIM/syntax/help.vim
+- * - Relative : Adfs::4.$.!Vim.Resources.Syntax/help.vim
+- */
+-    char_u *
+-mch_munge_fname(fname)
+-    char_u *fname;
+-{
+-    char_u c;
+-    int len;
+-    char_u *retval;
+-
+-    retval = fname = vim_strsave(fname);
+-    if (fname == NULL)
+-	return NULL;
+-
+-    if (strncmp(fname, "$VIM/", 5) == 0)
+-    {
+-	strncpy(fname, "Vim:", 4);
+-	for (fname += 5; c = *fname; fname++)
+-	{
+-	    if (c == '.')
+-		break;
+-	    if (c == '/')
+-		fname[-1] = '.';
+-	    else
+-		fname[-1] = c;
+-	}
+-	fname[-1] = '\0';
+-    }
+-    else
+-    {
+-	/* Check to see if the file exists without modification. */
+-	if (xswi(OS_File, 17, fname) & v_flag)
+-	    r0 == 0;		/* Invalid filename? */
+-	if (r0)
+-	    return retval;
+-
+-	len = strlen(fname);
+-	if (strcmp(fname + len - 4, ".vim") == 0)
+-	{
+-	    fname[len - 4] = '\0';
+-	    for (; c = *fname; fname++)
+-	    {
+-		if (c == '/')
+-		    *fname = '.';
+-	    }
+-	}
+-    }
+-    return retval;
+-}
+-
+-/* QuickFix reads munged names from the error file.
+- * Correct them.
+- */
+-    int
+-ro_buflist_add(old_name)
+-    char_u  *old_name;	/* Name of file found by quickfix */
+-{
+-    char_u  *fname;
+-    char_u  *leaf;	/* Pointer to start of leaf in old_name */
+-    char_u  *ptr;
+-    char_u  c;
+-    int	    retval;
+-
+-    if (old_name == NULL)
+-	return buflist_add(NULL, 0);
+-
+-    /* Copy the name so we can mess around with it. */
+-    fname = vim_strsave(old_name);
+-    if (fname == NULL)
+-	/* Out of memory - can't modify name */
+-	return buflist_add(old_name, 0);
+-
+-    /* Change `dir/main.c' into `dir.c.main' */
+-    leaf = fname;
+-    for (ptr = fname; c = *ptr; ptr++)
+-    {
+-	if (c == '/')
+-	{
+-	    leaf = ptr + 1;
+-	    *ptr = '.';
+-	}
+-	else if (c == '.')
+-	    break;
+-    }
+-    if (c == '.')
+-    {
+-	/* Change `main.c' into `c.main'
+-	 *	  |    |
+-	 *      leaf  ptr
+-	 */
+-	ptr += old_name - fname;
+-	*ptr = '\0';
+-	sprintf(leaf,
+-		"%s.%s",
+-		ptr + 1,
+-		leaf - fname + old_name);
+-    }
+-
+-    retval = buflist_add(fname, 0);
+-    free(fname);
+-    return retval;
+-}
+-
+-/* Change the current directory.
+- * Strip trailing dots to make it easier to use with filename completion.
+- * Return 0 for success, -1 for failure.
+- */
+-    int
+-mch_chdir(dir)
+-    char_u  *dir;
+-{
+-    int	    length;
+-    int	    retval;
+-    char_u  *new_dir;
+-
+-    if (p_verbose >= 5)
+-    {
+-	verbose_enter();
+-	smsg((char_u *)"chdir(%s)", dir);
+-	verbose_leave();
+-    }
+-    length = strlen(dir);
+-    if (dir[length - 1] != '.')
+-	return chdir(dir);	    /* No trailing dots - nothing to do. */
+-    new_dir = vim_strsave(dir);
+-    if (new_dir == NULL)
+-	return chdir(dir);	    /* Can't allocate memory. */
+-
+-    while (new_dir[--length] == '.')
+-	new_dir[length] = '\0';
+-
+-    retval = chdir(new_dir);
+-    vim_free(new_dir);
+-    return retval;
+-}
+-
+-/* Examine the named file, and set the 'osfiletype' option
+- * (in curbuf) to the file's type.
+- */
+-    void
+-mch_read_filetype(file)
+-    char_u  *file;
+-{
+-    int	    type;
+-    char_u  type_string[9];
+-    int	    i;
+-
+-    if (xswi(OS_File, 23, file) & v_flag)
+-	type = 0xfff;		/* Default to Text */
+-    else
+-	type = r6;
+-
+-    /* Type is the numerical value - see if we have a textual equivalent */
+-    swi(OS_FSControl, 18, 0, type);
+-    ((int *) type_string)[0] = r2;
+-    ((int *) type_string)[1] = r3;
+-    type_string[8] = 0;
+-    for (i = 0; type_string[i] > ' '; i++)
+-	;
+-    type_string[i] = 0;
+-
+-    set_string_option_direct("osfiletype", -1, type_string, OPT_FREE, 0);
+-    return;
+-}
+-
+-    void
+-mch_set_filetype(file, type)
+-    char_u  *file;
+-    char_u  *type;
+-{
+-    if (xswi(OS_FSControl, 31, type) & v_flag)
+-    {
+-	EMSG(_("E366: Invalid 'osfiletype' option - using Text"));
+-	r2 = 0xfff;
+-    }
+-
+-    swi(OS_File, 18, file, r2);
+-}
+-
+-/* Return TRUE if the file's type matches 'type'
+- * RISC OS types always start with '&'
+- */
+-    int
+-mch_check_filetype(fname, type)
+-    char_u  *fname;
+-    char_u  *type;
+-{
+-    int	    value;
+-    char    *end;
+-
+-    if (*type != '&')
+-	return FALSE;
+-
+-    value = strtol(type + 1, &end, 16);
+-    if (*end)
+-	return FALSE;		/* Invalid type (report error?) */
+-
+-    if (xswi(OS_File, 23, fname) & v_flag)
+-	return FALSE;		/* Invalid filename? */
+-
+-    return (r0 && r6 == value);
+-}
+diff -Naur vim73.orig/src/os_riscos.h vim73/src/os_riscos.h
+--- vim73.orig/src/os_riscos.h	2010-05-23 12:16:06.000000000 +0000
++++ vim73/src/os_riscos.h	1970-01-01 00:00:00.000000000 +0000
+@@ -1,166 +0,0 @@
+-/* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved	by Bram Moolenaar
+- *
+- * Do ":help uganda"  in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- */
+-
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#include <sys/ioctl.h>
+-#include <termios.h>
+-#include <stdlib.h>
+-#include <unixlib/local.h>
+-#include <errno.h>
+-#include <fcntl.h>
+-
+-#define CASE_INSENSITIVE_FILENAME
+-#define FEAT_MODIFY_FNAME
+-#define FEAT_OSFILETYPE
+-#define DFLT_OFT	"Text"
+-#define USE_TERM_CONSOLE
+-#define HAVE_AVAIL_MEM
+-
+-/* Longer filenames now accessible to all */
+-#ifndef BASENAMELEN
+-# define BASENAMELEN 64 /* Same length as unzip */
+-#endif
+-
+-#ifndef TEMNAME
+-# define TEMPNAME	"<Wimp$ScrapDir>.v?XXXXXX"
+-# define TEMPNAMELEN	25
+-#endif
+-
+-#ifndef DFLT_HELPFILE
+-# define DFLT_HELPFILE "Vim:doc.help"
+-#endif
+-
+-#ifndef DFLT_BDIR
+-# define DFLT_BDIR	".,<Wimp$ScrapDir>."	/* default for 'backupdir' */
+-#endif
+-
+-/* Paths to try putting swap file in. */
+-#ifndef DFLT_DIR
+-# define DFLT_DIR	"<Wimp$ScrapDir>.,."	/* default for 'directory' */
+-#endif
+-
+-#ifndef DFLT_VDIR
+-# define DFLT_VDIR	"Choices:Vim.view"	/* default for 'viewdir' */
+-#endif
+-
+-#ifndef TERMCAPFILE
+-# define TERMCAPFILE	"Vim:TermCap"
+-#endif
+-#define HAVE_TGETENT
+-
+-#ifndef SYNTAX_FNAME
+-# define SYNTAX_FNAME	"Vim:Syntax.%s"
+-#endif
+-
+-#ifndef EVIM_FILE
+-# define EVIM_FILE	"Vim:Evim"
+-#endif
+-
+-#define FEAT_VIMINFO
+-
+-#ifndef VIMINFO_FILE
+-# define VIMINFO_FILE	"<Choices$Write>.Vim.VimInfo"
+-#endif
+-#ifndef VIMINFO_FILE2
+-# define VIMINFO_FILE2	"Choices:Vim.VimInfo"
+-#endif
+-
+-#ifndef VIMRC_FILE
+-# define VIMRC_FILE	"/vimrc"
+-#endif
+-#ifndef EXRC_FILE
+-# define EXRC_FILE	"/exrc"
+-#endif
+-#ifndef GVIMRC_FILE
+-# define GVIMRC_FILE	"/gvimrc"
+-#endif
+-#ifndef USR_VIMRC_FILE
+-# define USR_VIMRC_FILE	"Vim:Evim"
+-#endif
+-#ifndef SESSION_FILE
+-# define SESSION_FILE	"/Session.vim"
+-#endif
+-#ifndef USR_VIMRC_FILE
+-# define USR_VIMRC_FILE	"Choices:Vim.VimRC"
+-#endif
+-#ifndef USR_GVIMRC_FILE
+-# define USR_GVIMRC_FILE    "Choices:Vim.GVimRC"
+-#endif
+-#ifndef USR_EXRC_FILE
+-# define USR_EXRC_FILE    "Choices:Vim.ExRC"
+-#endif
+-#ifndef SYS_VIMRC_FILE
+-# define SYS_VIMRC_FILE	    "Vim:VimRC"
+-#endif
+-#ifndef SYS_GVIMRC_FILE
+-# define SYS_GVIMRC_FILE    "Vim:GVimRC"
+-#endif
+-#ifndef SYS_MENU_FILE
+-# define SYS_MENU_FILE	    "Vim:Menu"
+-#endif
+-#ifndef SYS_OPTWIN_FILE
+-# define SYS_OPTWIN_FILE    "Vim:Optwin"
+-#endif
+-#ifndef FILETYPE_FILE
+-# define FILETYPE_FILE	    "Vim:Filetype"
+-#endif
+-#ifndef FTPLUGIN_FILE
+-# define FTPLUGIN_FILE	    "Vim:Ftplugin/vim"
+-#endif
+-#ifndef INDENT_FILE
+-# define INDENT_FILE	    "Vim:Indent/vim"
+-#endif
+-#ifndef FTOFF_FILE
+-# define FTOFF_FILE	    "Vim:Ftoff"
+-#endif
+-#ifndef FTPLUGOF_FILE
+-# define FTPLUGOF_FILE	    "Vim:Ftplugof"
+-#endif
+-#ifndef INDOFF_FILE
+-# define INDOFF_FILE	    "Vim:Indoff"
+-#endif
+-
+-#define DFLT_ERRORFILE		"errors/vim"
+-#define DFLT_RUNTIMEPATH	"Choices:Vim,Vim:,Choices:Vim.after"
+-
+-/*
+- * RISC PCs have plenty of memory, use large buffers
+- */
+-#define CMDBUFFSIZE 1024	/* size of the command processing buffer */
+-#define MAXPATHL    256		/* paths are always quite short though */
+-
+-#ifndef DFLT_MAXMEM
+-# define DFLT_MAXMEM	(5*1024)    /* use up to 5 Mbyte for a buffer */
+-#endif
+-
+-#ifndef DFLT_MAXMEMTOT
+-# define DFLT_MAXMEMTOT	(10*1024)    /* use up to 10 Mbyte for Vim */
+-#endif
+-
+-#ifdef HAVE_SIGSET
+-# define signal sigset
+-#endif
+-
+-#define n_flag (1<<31)
+-#define z_flag (1<<30)
+-#define c_flag (1<<29)
+-#define v_flag (1<<28)
+-
+-/* These take r0-r7 as inputs, returns r0-r7 in global variables. */
+-void swi(int swinum, ...);      /* Handles errors itself */
+-int xswi(int swinum, ...);      /* Returns errors using v flag */
+-extern int r0, r1, r2, r3, r4, r5, r6, r7;  /* For return values */
+-
+-#include <kernel.h>
+-#include <swis.h>
+-
+-#define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
+-#define mch_rename(src, dst) rename(src, dst)
+-#define mch_getenv(x) (char_u *)getenv((char *)x)
+-#define mch_setenv(name, val, x) setenv(name, val, x)
+diff -Naur vim73.orig/src/os_unix.c vim73/src/os_unix.c
+--- vim73.orig/src/os_unix.c	2010-08-08 13:14:04.000000000 +0000
++++ vim73/src/os_unix.c	2011-05-17 09:38:27.327053814 +0000
+@@ -283,7 +283,7 @@
+ #ifdef SIGTERM
+     {SIGTERM,	    "TERM",	TRUE},
+ #endif
+-#ifdef SIGVTALRM
++#if defined(SIGVTALRM) && !defined(FEAT_RUBY)
+     {SIGVTALRM,	    "VTALRM",	TRUE},
+ #endif
+ #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
+@@ -1107,7 +1107,7 @@
+  * On Linux, signal is not always handled immediately either.
+  * See https://bugs.launchpad.net/bugs/291373
+  *
+- * volatile because it is used in in signal handler sigcont_handler().
++ * volatile because it is used in signal handler sigcont_handler().
+  */
+ static volatile int sigcont_received;
+ static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+@@ -1123,6 +1123,30 @@
+ }
+ #endif
+ 
++# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
++static void loose_clipboard __ARGS((void));
++
++/*
++ * Called when Vim is going to sleep or execute a shell command.
++ * We can't respond to requests for the X selections.  Lose them, otherwise
++ * other applications will hang.  But first copy the text to cut buffer 0.
++ */
++    static void
++loose_clipboard()
++{
++    if (clip_star.owned || clip_plus.owned)
++    {
++	x11_export_final_selection();
++	if (clip_star.owned)
++	    clip_lose_selection(&clip_star);
++	if (clip_plus.owned)
++	    clip_lose_selection(&clip_plus);
++	if (x11_display != NULL)
++	    XFlush(x11_display);
++    }
++}
++#endif
++
+ /*
+  * If the machine has job control, use it to suspend the program,
+  * otherwise fake it by starting a new shell.
+@@ -1137,19 +1161,7 @@
+     out_flush();	    /* needed to disable mouse on some systems */
+ 
+ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+-    /* Since we are going to sleep, we can't respond to requests for the X
+-     * selections.  Lose them, otherwise other applications will hang.  But
+-     * first copy the text to cut buffer 0. */
+-    if (clip_star.owned || clip_plus.owned)
+-    {
+-	x11_export_final_selection();
+-	if (clip_star.owned)
+-	    clip_lose_selection(&clip_star);
+-	if (clip_plus.owned)
+-	    clip_lose_selection(&clip_plus);
+-	if (x11_display != NULL)
+-	    XFlush(x11_display);
+-    }
++    loose_clipboard();
+ # endif
+ 
+ # if defined(_REENTRANT) && defined(SIGCONT)
+@@ -1726,6 +1738,11 @@
+     }
+     if (x11_window == 0 || x11_display == NULL)
+ 	return (result = FAIL);
++
++# ifdef FEAT_EVAL
++    set_vim_var_nr(VV_WINDOWID, (long)x11_window);
++# endif
++
+     return (result = OK);
+ }
+ 
+@@ -3706,6 +3723,10 @@
+     if (options & SHELL_COOKED)
+ 	settmode(TMODE_COOK);	    /* set to normal mode */
+ 
++# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
++    loose_clipboard();
++# endif
++
+ # ifdef __EMX__
+     if (cmd == NULL)
+ 	x = system("");	/* this starts an interactive shell in emx */
+@@ -3814,13 +3835,17 @@
+ # endif
+     int		did_settmode = FALSE;	/* settmode(TMODE_RAW) called */
+ 
++    newcmd = vim_strsave(p_sh);
++    if (newcmd == NULL)		/* out of memory */
++	goto error;
++
+     out_flush();
+     if (options & SHELL_COOKED)
+ 	settmode(TMODE_COOK);		/* set to normal mode */
+ 
+-    newcmd = vim_strsave(p_sh);
+-    if (newcmd == NULL)		/* out of memory */
+-	goto error;
++# if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
++    loose_clipboard();
++# endif
+ 
+     /*
+      * Do this loop twice:
+@@ -4148,7 +4173,6 @@
+ # ifdef FEAT_GUI
+ 		if (pty_master_fd >= 0)
+ 		{
+-		    close(pty_slave_fd);	/* close slave side of pty */
+ 		    fromshell_fd = pty_master_fd;
+ 		    toshell_fd = dup(pty_master_fd);
+ 		}
+@@ -4221,7 +4245,7 @@
+ 				 * should not have one. */
+ 				if (lnum != curbuf->b_op_end.lnum
+ 					|| !curbuf->b_p_bin
+-					|| (lnum != write_no_eol_lnum
++					|| (lnum != curbuf->b_no_eol_lnum
+ 					    && (lnum !=
+ 						    curbuf->b_ml.ml_line_count
+ 						    || curbuf->b_p_eol)))
+@@ -4430,7 +4454,7 @@
+ 		    ++noread_cnt;
+ 		    while (RealWaitForChar(fromshell_fd, 10L, NULL))
+ 		    {
+-			len = read(fromshell_fd, (char *)buffer
++			len = read_eintr(fromshell_fd, buffer
+ # ifdef FEAT_MBYTE
+ 				+ buffer_off, (size_t)(BUFLEN - buffer_off)
+ # else
+@@ -4564,10 +4588,10 @@
+ 		    {
+ 			append_ga_line(&ga);
+ 			/* remember that the NL was missing */
+-			write_no_eol_lnum = curwin->w_cursor.lnum;
++			curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
+ 		    }
+ 		    else
+-			write_no_eol_lnum = 0;
++			curbuf->b_no_eol_lnum = 0;
+ 		    ga_clear(&ga);
+ 		}
+ 
+@@ -4617,6 +4641,14 @@
+ 		    break;
+ 	    }
+ 
++# ifdef FEAT_GUI
++	    /* Close slave side of pty.  Only do this after the child has
++	     * exited, otherwise the child may hang when it tries to write on
++	     * the pty. */
++	    if (pty_master_fd >= 0)
++		close(pty_slave_fd);
++# endif
++
+ 	    /* Make sure the child that writes to the external program is
+ 	     * dead. */
+ 	    if (wpid > 0)
+@@ -5693,6 +5725,7 @@
+ 	if (shell_style == STYLE_PRINT && !did_find_nul)
+ 	{
+ 	    /* If there is a NUL, set did_find_nul, else set check_spaces */
++	    buffer[len] = NUL;
+ 	    if (len && (int)STRLEN(buffer) < (int)len - 1)
+ 		did_find_nul = TRUE;
+ 	    else
+@@ -6562,7 +6595,7 @@
+ 	    xterm_hints.x = 2;
+ 	return TRUE;
+     }
+-    if (mouse_code == NULL)
++    if (mouse_code == NULL || STRLEN(mouse_code) > 45)
+     {
+ 	xterm_trace = 0;
+ 	return FALSE;
+diff -Naur vim73.orig/src/os_unix.h vim73/src/os_unix.h
+--- vim73.orig/src/os_unix.h	2010-05-23 12:16:14.000000000 +0000
++++ vim73/src/os_unix.h	2011-05-17 09:37:20.566463390 +0000
+@@ -184,10 +184,6 @@
+ 
+ #define BASENAMELEN	(MAXNAMLEN - 5)
+ 
+-#ifdef HAVE_ERRNO_H
+-# include <errno.h>
+-#endif
+-
+ #ifdef HAVE_PWD_H
+ # include <pwd.h>
+ #endif
+diff -Naur vim73.orig/src/os_win16.c vim73/src/os_win16.c
+--- vim73.orig/src/os_win16.c	2010-06-26 04:03:31.000000000 +0000
++++ vim73/src/os_win16.c	2011-05-17 09:35:40.553563716 +0000
+@@ -20,13 +20,11 @@
+ # pragma warn -obs
+ #endif
+ 
+-#include "vimio.h"
+ #include "vim.h"
+ 
+ #include <dos.h>
+ #include <string.h>
+ #include <sys/types.h>
+-#include <errno.h>
+ #include <signal.h>
+ #include <limits.h>
+ #include <process.h>
+diff -Naur vim73.orig/src/os_win32.c vim73/src/os_win32.c
+--- vim73.orig/src/os_win32.c	2010-07-14 14:49:36.000000000 +0000
++++ vim73/src/os_win32.c	2011-05-17 09:39:06.774675671 +0000
+@@ -20,7 +20,6 @@
+  * Roger Knobbe <rogerk@wonderware.com> did the initial port of Vim 3.0.
+  */
+ 
+-#include "vimio.h"
+ #include "vim.h"
+ 
+ #ifdef FEAT_MZSCHEME
+@@ -28,7 +27,6 @@
+ #endif
+ 
+ #include <sys/types.h>
+-#include <errno.h>
+ #include <signal.h>
+ #include <limits.h>
+ #include <process.h>
+@@ -206,42 +204,73 @@
+ static int suppress_winsize = 1;	/* don't fiddle with console */
+ #endif
+ 
++static char_u *exe_path = NULL;
++
+     static void
+ get_exe_name(void)
+ {
+-    char	temp[256];
+-    static int	did_set_PATH = FALSE;
++    /* Maximum length of $PATH is more than MAXPATHL.  8191 is often mentioned
++     * as the maximum length that works (plus a NUL byte). */
++#define MAX_ENV_PATH_LEN 8192
++    char	temp[MAX_ENV_PATH_LEN];
++    char_u	*p;
+ 
+     if (exe_name == NULL)
+     {
+ 	/* store the name of the executable, may be used for $VIM */
+-	GetModuleFileName(NULL, temp, 255);
++	GetModuleFileName(NULL, temp, MAX_ENV_PATH_LEN - 1);
+ 	if (*temp != NUL)
+ 	    exe_name = FullName_save((char_u *)temp, FALSE);
+     }
+ 
+-    if (!did_set_PATH && exe_name != NULL)
++    if (exe_path == NULL && exe_name != NULL)
+     {
+-	char_u	    *p;
+-	char_u	    *newpath;
+-
+-	/* Append our starting directory to $PATH, so that when doing "!xxd"
+-	 * it's found in our starting directory.  Needed because SearchPath()
+-	 * also looks there. */
+-	p = mch_getenv("PATH");
+-	newpath = alloc((unsigned)(STRLEN(p) + STRLEN(exe_name) + 2));
+-	if (newpath != NULL)
+-	{
+-	    STRCPY(newpath, p);
+-	    STRCAT(newpath, ";");
+-	    vim_strncpy(newpath + STRLEN(newpath), exe_name,
+-					    gettail_sep(exe_name) - exe_name);
+-	    vim_setenv((char_u *)"PATH", newpath);
+-	    vim_free(newpath);
++	exe_path = vim_strnsave(exe_name,
++				     (int)(gettail_sep(exe_name) - exe_name));
++	if (exe_path != NULL)
++	{
++	    /* Append our starting directory to $PATH, so that when doing
++	     * "!xxd" it's found in our starting directory.  Needed because
++	     * SearchPath() also looks there. */
++	    p = mch_getenv("PATH");
++	    if (p == NULL
++		       || STRLEN(p) + STRLEN(exe_path) + 2 < MAX_ENV_PATH_LEN)
++	    {
++		if (p == NULL || *p == NUL)
++		    temp[0] = NUL;
++		else
++		{
++		    STRCPY(temp, p);
++		    STRCAT(temp, ";");
++		}
++		STRCAT(temp, exe_path);
++		vim_setenv((char_u *)"PATH", temp);
++	    }
+ 	}
++    }
++}
++
++/*
++ * Load library "name".
++ */
++    HINSTANCE
++vimLoadLib(char *name)
++{
++    HINSTANCE dll = NULL;
++    char old_dir[MAXPATHL];
+ 
+-	did_set_PATH = TRUE;
++    if (exe_path == NULL)
++	get_exe_name();
++    if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK)
++    {
++	/* Change directory to where the executable is, both to make sure we
++	 * find a .dll there and to avoid looking for a .dll in the current
++	 * directory. */
++	mch_chdir(exe_path);
++	dll = LoadLibrary(name);
++	mch_chdir(old_dir);
+     }
++    return dll;
+ }
+ 
+ #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
+@@ -254,7 +283,7 @@
+ static char *null_libintl_bindtextdomain(const char *, const char *);
+ static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
+ 
+-static HINSTANCE hLibintlDLL = 0;
++static HINSTANCE hLibintlDLL = NULL;
+ char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
+ char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
+ char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
+@@ -282,26 +311,16 @@
+     if (hLibintlDLL)
+ 	return 1;
+     /* Load gettext library (libintl.dll) */
+-    hLibintlDLL = LoadLibrary(libname != NULL ? libname : GETTEXT_DLL);
++    hLibintlDLL = vimLoadLib(libname != NULL ? libname : GETTEXT_DLL);
+     if (!hLibintlDLL)
+     {
+-	char_u	    dirname[_MAX_PATH];
+-
+-	/* Try using the path from gvim.exe to find the .dll there. */
+-	get_exe_name();
+-	STRCPY(dirname, exe_name);
+-	STRCPY(gettail(dirname), GETTEXT_DLL);
+-	hLibintlDLL = LoadLibrary((char *)dirname);
+-	if (!hLibintlDLL)
++	if (p_verbose > 0)
+ 	{
+-	    if (p_verbose > 0)
+-	    {
+-		verbose_enter();
+-		EMSG2(_(e_loadlib), GETTEXT_DLL);
+-		verbose_leave();
+-	    }
+-	    return 0;
++	    verbose_enter();
++	    EMSG2(_(e_loadlib), GETTEXT_DLL);
++	    verbose_leave();
+ 	}
++	return 0;
+     }
+     for (i = 0; libintl_entry[i].name != NULL
+ 					 && libintl_entry[i].ptr != NULL; ++i)
+@@ -430,7 +449,7 @@
+ 	     * Seems like a lot of overhead to load/unload ADVAPI32.DLL each
+ 	     * time we verify security...
+ 	     */
+-	    advapi_lib = LoadLibrary("ADVAPI32.DLL");
++	    advapi_lib = vimLoadLib("ADVAPI32.DLL");
+ 	    if (advapi_lib != NULL)
+ 	    {
+ 		pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
+@@ -1615,6 +1634,35 @@
+     return TRUE;
+ }
+ 
++#if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
++        __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
++/*
++ * Bad parameter handler.
++ *
++ * Certain MS CRT functions will intentionally crash when passed invalid
++ * parameters to highlight possible security holes.  Setting this function as
++ * the bad parameter handler will prevent the crash.
++ *
++ * In debug builds the parameters contain CRT information that might help track
++ * down the source of a problem, but in non-debug builds the arguments are all
++ * NULL/0.  Debug builds will also produce assert dialogs from the CRT, it is
++ * worth allowing these to make debugging of issues easier.
++ */
++    static void
++bad_param_handler(const wchar_t *expression,
++    const wchar_t *function,
++    const wchar_t *file,
++    unsigned int line,
++    uintptr_t pReserved)
++{
++}
++
++# define SET_INVALID_PARAM_HANDLER \
++	((void)_set_invalid_parameter_handler(bad_param_handler))
++#else
++# define SET_INVALID_PARAM_HANDLER
++#endif
++
+ #ifdef FEAT_GUI_W32
+ 
+ /*
+@@ -1627,6 +1675,9 @@
+     extern int _fmode;
+ #endif
+ 
++    /* Silently handle invalid parameters to CRT functions */
++    SET_INVALID_PARAM_HANDLER;
++
+     /* Let critical errors result in a failure, not in a dialog box.  Required
+      * for the timestamp test to work on removed floppies. */
+     SetErrorMode(SEM_FAILCRITICALERRORS);
+@@ -1835,8 +1886,7 @@
+ 	cb->BufferSize.X = cb->Info.dwSize.X;
+ 	cb->BufferSize.Y = cb->Info.dwSize.Y;
+ 	NumCells = cb->BufferSize.X * cb->BufferSize.Y;
+-	if (cb->Buffer != NULL)
+-	    vim_free(cb->Buffer);
++	vim_free(cb->Buffer);
+ 	cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
+ 	if (cb->Buffer == NULL)
+ 	    return FALSE;
+@@ -2103,6 +2153,9 @@
+     extern int _fmode;
+ #endif
+ 
++    /* Silently handle invalid parameters to CRT functions */
++    SET_INVALID_PARAM_HANDLER;
++
+     /* Let critical errors result in a failure, not in a dialog box.  Required
+      * for the timestamp test to work on removed floppies. */
+     SetErrorMode(SEM_FAILCRITICALERRORS);
+@@ -2273,12 +2326,14 @@
+     int		len)
+ {
+     char		szTrueName[_MAX_PATH + 2];
++    char		szTrueNameTemp[_MAX_PATH + 2];
+     char		*ptrue, *ptruePrev;
+     char		*porig, *porigPrev;
+     int			flen;
+     WIN32_FIND_DATA	fb;
+     HANDLE		hFind;
+     int			c;
++    int			slen;
+ 
+     flen = (int)STRLEN(name);
+     if (flen == 0 || flen > _MAX_PATH)
+@@ -2323,12 +2378,19 @@
+ 	}
+ 	*ptrue = NUL;
+ 
++	/* To avoid a slow failure append "\*" when searching a directory,
++	 * server or network share. */
++	STRCPY(szTrueNameTemp, szTrueName);
++	slen = (int)strlen(szTrueNameTemp);
++	if (*porig == psepc && slen + 2 < _MAX_PATH)
++	    STRCPY(szTrueNameTemp + slen, "\\*");
++
+ 	/* Skip "", "." and "..". */
+ 	if (ptrue > ptruePrev
+ 		&& (ptruePrev[0] != '.'
+ 		    || (ptruePrev[1] != NUL
+ 			&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
+-		&& (hFind = FindFirstFile(szTrueName, &fb))
++		&& (hFind = FindFirstFile(szTrueNameTemp, &fb))
+ 						      != INVALID_HANDLE_VALUE)
+ 	{
+ 	    c = *porig;
+@@ -2578,30 +2640,73 @@
+ }
+ 
+ /*
++ * Create directory "name".
++ * Return 0 on success, -1 on error.
++ */
++    int
++mch_mkdir(char_u *name)
++{
++#ifdef FEAT_MBYTE
++    if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++    {
++	WCHAR	*p;
++	int	retval;
++
++	p = enc_to_utf16(name, NULL);
++	if (p == NULL)
++	    return -1;
++	retval = _wmkdir(p);
++	vim_free(p);
++	return retval;
++    }
++#endif
++    return _mkdir(name);
++}
++
++/*
+  * Return TRUE if file "fname" has more than one link.
+  */
+     int
+ mch_is_linked(char_u *fname)
+ {
++    BY_HANDLE_FILE_INFORMATION info;
++
++    return win32_fileinfo(fname, &info) == FILEINFO_OK
++						   && info.nNumberOfLinks > 1;
++}
++
++/*
++ * Get the by-handle-file-information for "fname".
++ * Returns FILEINFO_OK when OK.
++ * returns FILEINFO_ENC_FAIL when enc_to_utf16() failed.
++ * Returns FILEINFO_READ_FAIL when CreateFile() failed.
++ * Returns FILEINFO_INFO_FAIL when GetFileInformationByHandle() failed.
++ */
++    int
++win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
++{
+     HANDLE	hFile;
+-    int		res = 0;
+-    BY_HANDLE_FILE_INFORMATION inf;
++    int		res = FILEINFO_READ_FAIL;
+ #ifdef FEAT_MBYTE
+     WCHAR	*wn = NULL;
+ 
+     if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++    {
+ 	wn = enc_to_utf16(fname, NULL);
++	if (wn == NULL)
++	    res = FILEINFO_ENC_FAIL;
++    }
+     if (wn != NULL)
+     {
+ 	hFile = CreateFileW(wn,		/* file name */
+ 		    GENERIC_READ,	/* access mode */
+-		    0,			/* share mode */
++		    FILE_SHARE_READ | FILE_SHARE_WRITE,	/* share mode */
+ 		    NULL,		/* security descriptor */
+ 		    OPEN_EXISTING,	/* creation disposition */
+-		    0,			/* file attributes */
++		    FILE_FLAG_BACKUP_SEMANTICS,	/* file attributes */
+ 		    NULL);		/* handle to template file */
+ 	if (hFile == INVALID_HANDLE_VALUE
+-		&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
++			      && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ 	{
+ 	    /* Retry with non-wide function (for Windows 98). */
+ 	    vim_free(wn);
+@@ -2612,17 +2717,18 @@
+ #endif
+ 	hFile = CreateFile(fname,	/* file name */
+ 		    GENERIC_READ,	/* access mode */
+-		    0,			/* share mode */
++		    FILE_SHARE_READ | FILE_SHARE_WRITE,	/* share mode */
+ 		    NULL,		/* security descriptor */
+ 		    OPEN_EXISTING,	/* creation disposition */
+-		    0,			/* file attributes */
++		    FILE_FLAG_BACKUP_SEMANTICS,	/* file attributes */
+ 		    NULL);		/* handle to template file */
+ 
+     if (hFile != INVALID_HANDLE_VALUE)
+     {
+-	if (GetFileInformationByHandle(hFile, &inf) != 0
+-		&& inf.nNumberOfLinks > 1)
+-	    res = 1;
++	if (GetFileInformationByHandle(hFile, info) != 0)
++	    res = FILEINFO_OK;
++	else
++	    res = FILEINFO_INFO_FAIL;
+ 	CloseHandle(hFile);
+     }
+ 
+@@ -3120,9 +3226,10 @@
+      * It's nicer to run a filter command in a minimized window, but in
+      * Windows 95 this makes the command MUCH slower.  We can't do it under
+      * Win32s either as it stops the synchronous spawn workaround working.
++     * Don't activate the window to keep focus on Vim.
+      */
+     if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
+-	si.wShowWindow = SW_SHOWMINIMIZED;
++	si.wShowWindow = SW_SHOWMINNOACTIVE;
+     else
+ 	si.wShowWindow = SW_SHOWNORMAL;
+     si.cbReserved2 = 0;
+diff -Naur vim73.orig/src/os_win32.h vim73/src/os_win32.h
+--- vim73.orig/src/os_win32.h	2010-05-31 19:50:24.000000000 +0000
++++ vim73/src/os_win32.h	2011-05-17 09:39:06.774675671 +0000
+@@ -191,5 +191,5 @@
+ #ifdef __BORLANDC__
+ # define vim_mkdir(x, y) mkdir(x)
+ #else
+-# define vim_mkdir(x, y) _mkdir(x)
++# define vim_mkdir(x, y) mch_mkdir(x)
+ #endif
+diff -Naur vim73.orig/src/popupmnu.c vim73/src/popupmnu.c
+--- vim73.orig/src/popupmnu.c	2010-08-08 13:14:58.000000000 +0000
++++ vim73/src/popupmnu.c	2011-05-17 09:34:02.792414321 +0000
+@@ -558,8 +558,11 @@
+ 	    win_T	*curwin_save = curwin;
+ 	    int		res = OK;
+ 
+-	    /* Open a preview window.  3 lines by default. */
++	    /* Open a preview window.  3 lines by default.  Prefer
++	     * 'previewheight' if set and smaller. */
+ 	    g_do_tagpreview = 3;
++	    if (p_pvh > 0 && p_pvh < g_do_tagpreview)
++		g_do_tagpreview = p_pvh;
+ 	    resized = prepare_tagpreview(FALSE);
+ 	    g_do_tagpreview = 0;
+ 
+diff -Naur vim73.orig/src/proto/fileio.pro vim73/src/proto/fileio.pro
+--- vim73.orig/src/proto/fileio.pro	2010-08-15 12:30:28.000000000 +0000
++++ vim73/src/proto/fileio.pro	2011-05-17 09:35:31.702546091 +0000
+@@ -54,4 +54,6 @@
+ int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
+ int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
+ char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
++long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
++long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
+ /* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/getchar.pro vim73/src/proto/getchar.pro
+--- vim73.orig/src/proto/getchar.pro	2010-08-15 12:30:29.000000000 +0000
++++ vim73/src/proto/getchar.pro	2011-05-17 09:33:35.471446735 +0000
+@@ -51,6 +51,7 @@
+ int get_map_mode __ARGS((char_u **cmdp, int forceit));
+ void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
+ void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
++char_u *map_mode_to_chars __ARGS((int mode));
+ int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
+ int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
+ char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
+@@ -61,7 +62,7 @@
+ int makemap __ARGS((FILE *fd, buf_T *buf));
+ int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
+ void check_map_keycodes __ARGS((void));
+-char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
++char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr));
+ void init_mappings __ARGS((void));
+ void add_map __ARGS((char_u *map, int mode));
+ /* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/gui_athena.pro vim73/src/proto/gui_athena.pro
+--- vim73.orig/src/proto/gui_athena.pro	2010-08-15 12:31:06.000000000 +0000
++++ vim73/src/proto/gui_athena.pro	2011-05-17 09:36:14.489797147 +0000
+@@ -27,5 +27,5 @@
+ void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+ Window gui_x11_get_wid __ARGS((void));
+ char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+ /* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/gui_gtk.pro vim73/src/proto/gui_gtk.pro
+--- vim73.orig/src/proto/gui_gtk.pro	2010-08-15 12:31:03.000000000 +0000
++++ vim73/src/proto/gui_gtk.pro	2011-05-17 09:36:14.489797147 +0000
+@@ -13,7 +13,7 @@
+ void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+ char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+ char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield, int ex_cmd));
+ void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+ void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
+ void gui_mch_find_dialog __ARGS((exarg_T *eap));
+diff -Naur vim73.orig/src/proto/gui_mac.pro vim73/src/proto/gui_mac.pro
+--- vim73.orig/src/proto/gui_mac.pro	2010-08-14 19:40:45.000000000 +0000
++++ vim73/src/proto/gui_mac.pro	2011-05-17 09:36:14.493796703 +0000
+@@ -81,7 +81,7 @@
+ int gui_mch_get_mouse_y __ARGS((void));
+ void gui_mch_setmouse __ARGS((int x, int y));
+ void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+ char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+ void gui_mch_set_foreground __ARGS((void));
+ void gui_mch_show_tabline __ARGS((int showit));
+diff -Naur vim73.orig/src/proto/gui_motif.pro vim73/src/proto/gui_motif.pro
+--- vim73.orig/src/proto/gui_motif.pro	2010-08-15 12:31:04.000000000 +0000
++++ vim73/src/proto/gui_motif.pro	2011-05-17 09:36:14.493796703 +0000
+@@ -29,7 +29,7 @@
+ void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+ Window gui_x11_get_wid __ARGS((void));
+ char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield, int ex_cmd));
+ void gui_mch_enable_footer __ARGS((int showit));
+ void gui_mch_set_footer __ARGS((char_u *s));
+ void gui_mch_show_toolbar __ARGS((int showit));
+diff -Naur vim73.orig/src/proto/gui_photon.pro vim73/src/proto/gui_photon.pro
+--- vim73.orig/src/proto/gui_photon.pro	2010-08-15 12:31:10.000000000 +0000
++++ vim73/src/proto/gui_photon.pro	2011-05-17 09:36:14.493796703 +0000
+@@ -8,7 +8,7 @@
+ void gui_mch_update __ARGS((void));
+ int gui_mch_wait_for_chars __ARGS((int wtime));
+ char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield, int ex_cmd));
+ int gui_mch_get_winpos __ARGS((int *x, int *y));
+ void gui_mch_set_winpos __ARGS((int x, int y));
+ void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+diff -Naur vim73.orig/src/proto/gui_riscos.pro vim73/src/proto/gui_riscos.pro
+--- vim73.orig/src/proto/gui_riscos.pro	2010-05-15 11:04:08.000000000 +0000
++++ vim73/src/proto/gui_riscos.pro	1970-01-01 00:00:00.000000000 +0000
+@@ -1,66 +0,0 @@
+-/* Prototypes for gui_riscos.c
+- * Based on gui_x11_pro.h (10 March 2002 version)
+- */
+-void gui_mch_prepare __ARGS((int *argc, char **argv));
+-int gui_mch_init_check __ARGS((void));
+-int gui_mch_init __ARGS((void));
+-void gui_mch_uninit __ARGS((void));
+-void gui_mch_new_colors __ARGS((void));
+-int gui_mch_open __ARGS((void));
+-void gui_init_tooltip_font __ARGS((void));
+-void gui_init_menu_font __ARGS((void));void gui_mch_exit __ARGS((int rc));
+-int gui_mch_get_winpos __ARGS((int *x, int *y));
+-void gui_mch_set_winpos __ARGS((int x, int y));
+-void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+-void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+-int gui_mch_init_font __ARGS((char_u *font_name, int do_fontset));
+-GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
+-int gui_mch_adjust_charheight __ARGS((void));
+-void gui_mch_set_font __ARGS((GuiFont font));
+-void gui_mch_set_fontset __ARGS((GuiFontset fontset));
+-void gui_mch_free_font __ARGS((GuiFont font));
+-void gui_mch_free_fontset __ARGS((GuiFontset fontset));
+-GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int giveErrorIfMissing, int fixed_width));
+-guicolor_T gui_mch_get_color __ARGS((char_u *reqname));
+-void gui_mch_set_fg_color __ARGS((guicolor_T color));
+-void gui_mch_set_bg_color __ARGS((guicolor_T color));
+-void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+-int gui_mch_haskey __ARGS((char_u *name));
+-void gui_mch_beep __ARGS((void));
+-void gui_mch_flash __ARGS((int msec));
+-void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+-void gui_mch_iconify __ARGS((void));
+-void gui_mch_set_foreground __ARGS((void));
+-void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+-void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+-void gui_mch_update __ARGS((void));
+-int gui_mch_wait_for_chars __ARGS((long wtime));
+-void gui_mch_flush __ARGS((void));
+-void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+-void gui_mch_clear_all __ARGS((void));
+-void gui_mch_delete_lines __ARGS((int row, int num_lines));
+-void gui_mch_insert_lines __ARGS((int row, int num_lines));
+-void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
+-int clip_mch_own_selection __ARGS((VimClipboard *cbd));
+-void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+-void clip_mch_set_selection __ARGS((VimClipboard *cbd));
+-void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+-void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+-void gui_mch_draw_menubar __ARGS((void));
+-void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+-void gui_mch_stop_blink __ARGS((void));
+-void gui_mch_start_blink __ARGS((void));
+-void process_event __ARGS((int event, int *block));
+-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+-long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+-void gui_mch_getmouse __ARGS((int *x, int *y));
+-void gui_mch_setmouse __ARGS((int x, int y));
+-void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+-void gui_mch_destroy_sign __ARGS((XImage *sign));
+-void gui_mch_mousehide __ARGS((int hide));
+-void mch_set_mouse_shape __ARGS((int shape));
+-void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
+-
+-void ro_redraw_title __ARGS((int window));
+-int ro_ok_to_quit __ARGS((void));
+-/* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/gui_w16.pro vim73/src/proto/gui_w16.pro
+--- vim73.orig/src/proto/gui_w16.pro	2010-08-15 12:31:09.000000000 +0000
++++ vim73/src/proto/gui_w16.pro	2011-05-17 09:36:14.493796703 +0000
+@@ -74,6 +74,6 @@
+ void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+ void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+ void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+ void gui_mch_set_foreground __ARGS((void));
+ /* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/gui_w32.pro vim73/src/proto/gui_w32.pro
+--- vim73.orig/src/proto/gui_w32.pro	2010-08-15 12:31:09.000000000 +0000
++++ vim73/src/proto/gui_w32.pro	2011-05-17 09:36:14.493796703 +0000
+@@ -81,7 +81,7 @@
+ void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+ void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+ void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
++int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+ void gui_mch_set_foreground __ARGS((void));
+ void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+ void *gui_mch_register_sign __ARGS((char_u *signfile));
+diff -Naur vim73.orig/src/proto/message.pro vim73/src/proto/message.pro
+--- vim73.orig/src/proto/message.pro	2010-08-15 12:30:41.000000000 +0000
++++ vim73/src/proto/message.pro	2011-05-17 09:36:14.481798035 +0000
+@@ -33,6 +33,7 @@
+ int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
+ void msg_make __ARGS((char_u *arg));
+ int msg_outtrans_special __ARGS((char_u *strstart, int from));
++char_u *str2special_save __ARGS((char_u *str, int is_lhs));
+ char_u *str2special __ARGS((char_u **sp, int from));
+ void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
+ void msg_prt_line __ARGS((char_u *s, int list));
+@@ -63,7 +64,7 @@
+ int verbose_open __ARGS((void));
+ void give_warning __ARGS((char_u *message, int hl));
+ void msg_advance __ARGS((int col));
+-int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
++int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
+ void display_confirm_msg __ARGS((void));
+ int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
+ int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
+diff -Naur vim73.orig/src/proto/misc2.pro vim73/src/proto/misc2.pro
+--- vim73.orig/src/proto/misc2.pro	2010-08-15 12:30:42.000000000 +0000
++++ vim73/src/proto/misc2.pro	2011-05-17 09:38:27.323054258 +0000
+@@ -40,6 +40,7 @@
+ void copy_chars __ARGS((char_u *ptr, size_t count, int c));
+ void del_trailing_spaces __ARGS((char_u *ptr));
+ void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len));
++void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize));
+ int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars));
+ void vim_free __ARGS((void *x));
+ int vim_stricmp __ARGS((char *s1, char *s2));
+diff -Naur vim73.orig/src/proto/option.pro vim73/src/proto/option.pro
+--- vim73.orig/src/proto/option.pro	2010-08-15 12:30:46.000000000 +0000
++++ vim73/src/proto/option.pro	2011-05-17 09:36:16.709550779 +0000
+@@ -54,6 +54,6 @@
+ int option_was_set __ARGS((char_u *name));
+ int can_bs __ARGS((int what));
+ void save_file_ff __ARGS((buf_T *buf));
+-int file_ff_differs __ARGS((buf_T *buf));
++int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
+ int check_ff_value __ARGS((char_u *p));
+ /* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/os_riscos.pro vim73/src/proto/os_riscos.pro
+--- vim73.orig/src/proto/os_riscos.pro	2010-08-15 12:31:16.000000000 +0000
++++ vim73/src/proto/os_riscos.pro	1970-01-01 00:00:00.000000000 +0000
+@@ -1,49 +0,0 @@
+-/* os_riscos.c */
+-void mch_write __ARGS((char_u *s, int len));
+-int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+-int mch_char_avail __ARGS((void));
+-long_u mch_avail_mem __ARGS((int special));
+-void mch_delay __ARGS((long msec, int ignoreinput));
+-void mch_suspend __ARGS((void));
+-void mch_init __ARGS((void));
+-int mch_check_win __ARGS((int argc, char **argv));
+-int mch_input_isatty __ARGS((void));
+-int mch_can_restore_title __ARGS((void));
+-int mch_can_restore_icon __ARGS((void));
+-void mch_settitle __ARGS((char_u *title, char_u *icon));
+-void mch_restore_title __ARGS((int which));
+-int mch_get_user_name __ARGS((char_u *s, int len));
+-void mch_get_host_name __ARGS((char_u *s, int len));
+-long mch_get_pid __ARGS((void));
+-int mch_dirname __ARGS((char_u *buf, int len));
+-int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+-int mch_isFullName __ARGS((char_u *fname));
+-long mch_getperm __ARGS((char_u *name));
+-int mch_setperm __ARGS((char_u *name, long perm));
+-void mch_hide __ARGS((char_u *name));
+-int mch_isdir __ARGS((char_u *name));
+-int mch_can_exe __ARGS((char_u *name));
+-int mch_nodetype __ARGS((char_u *name));
+-void mch_early_init __ARGS((void));
+-void mch_exit __ARGS((int r));
+-void mch_settmode __ARGS((int tmode));
+-void mch_setmouse __ARGS((int on));
+-int mch_screenmode __ARGS((char_u *arg));
+-int mch_get_shellsize __ARGS((void));
+-void mch_set_shellsize __ARGS((void));
+-void mch_new_shellsize __ARGS((void));
+-int mch_call_shell __ARGS((char_u *cmd, int options));
+-void mch_breakcheck __ARGS((void));
+-int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+-int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
+-int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+-int mch_has_exp_wildcard __ARGS((char_u *p));
+-int mch_has_wildcard __ARGS((char_u *p));
+-int mch_remove __ARGS((char_u *file));
+-char_u *mch_munge_fname __ARGS((char_u *fname));
+-int ro_buflist_add __ARGS((char_u *old_name));
+-int mch_chdir __ARGS((char_u *dir));
+-void mch_read_filetype __ARGS((char_u *file));
+-void mch_set_filetype __ARGS((char_u *file, char_u *type));
+-int mch_check_filetype __ARGS((char_u *fname, char_u *type));
+-/* vim: set ft=c : */
+diff -Naur vim73.orig/src/proto/os_win32.pro vim73/src/proto/os_win32.pro
+--- vim73.orig/src/proto/os_win32.pro	2010-08-15 12:31:14.000000000 +0000
++++ vim73/src/proto/os_win32.pro	2011-05-17 09:39:06.774675671 +0000
+@@ -1,4 +1,5 @@
+ /* os_win32.c */
++HINSTANCE vimLoadLib __ARGS((char *name));
+ int dyn_libintl_init __ARGS((char *libname));
+ void dyn_libintl_end __ARGS((void));
+ void PlatformId __ARGS((void));
+@@ -19,7 +20,9 @@
+ int mch_setperm __ARGS((char_u *name, long perm));
+ void mch_hide __ARGS((char_u *name));
+ int mch_isdir __ARGS((char_u *name));
++int mch_mkdir __ARGS((char_u *name));
+ int mch_is_linked __ARGS((char_u *fname));
++int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
+ int mch_writable __ARGS((char_u *name));
+ int mch_can_exe __ARGS((char_u *name));
+ int mch_nodetype __ARGS((char_u *name));
+diff -Naur vim73.orig/src/proto.h vim73/src/proto.h
+--- vim73.orig/src/proto.h	2010-07-17 15:28:51.000000000 +0000
++++ vim73/src/proto.h	2011-05-17 09:39:31.619918205 +0000
+@@ -62,9 +62,6 @@
+ # ifdef __BEOS__
+ #  include "os_beos.pro"
+ # endif
+-# ifdef RISCOS
+-#  include "os_riscos.pro"
+-# endif
+ # ifdef __QNX__
+ #  include "os_qnx.pro"
+ # endif
+@@ -245,9 +242,6 @@
+ #  ifdef FEAT_GUI_X11
+ #   include "gui_x11.pro"
+ #  endif
+-#  ifdef RISCOS
+-#   include "gui_riscos.pro"
+-#  endif
+ #  ifdef FEAT_GUI_PHOTON
+ #   include "gui_photon.pro"
+ #  endif
+diff -Naur vim73.orig/src/pty.c vim73/src/pty.c
+--- vim73.orig/src/pty.c	2010-07-24 18:23:01.000000000 +0000
++++ vim73/src/pty.c	2011-05-17 09:38:17.780113397 +0000
+@@ -209,8 +209,8 @@
+ #ifdef _SEQUENT_
+     fvhangup(s);
+ #endif
+-    strncpy(PtyName, m, sizeof(PtyName));
+-    strncpy(TtyName, s, sizeof(TtyName));
++    vim_strncpy((char_u *)PtyName, (char_u *)m, sizeof(PtyName) - 1);
++    vim_strncpy((char_u *)TtyName, (char_u *)s, sizeof(TtyName) - 1);
+     initmaster(f);
+     *ttyn = TtyName;
+     return f;
+@@ -301,7 +301,7 @@
+ 	return -1;
+     }
+     signal(SIGCHLD, sigcld);
+-    strncpy(TtyName, m, sizeof(TtyName));
++    vim_strncpy((char_u *)TtyName, (char_u *)m, sizeof(TtyName) - 1);
+     initmaster(f);
+     *ttyn = TtyName;
+     return f;
+@@ -326,7 +326,7 @@
+     /* a dumb looking loop replaced by mycrofts code: */
+     if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
+ 	return -1;
+-    strncpy(TtyName, ttyname(f), sizeof(TtyName));
++    vim_strncpy((char_u *)TtyName, (char_u *)ttyname(f), sizeof(TtyName) - 1);
+     if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
+     {
+ 	close(f);
+diff -Naur vim73.orig/src/quickfix.c vim73/src/quickfix.c
+--- vim73.orig/src/quickfix.c	2010-08-09 20:12:14.000000000 +0000
++++ vim73/src/quickfix.c	2011-05-17 09:39:31.619918205 +0000
+@@ -1164,7 +1164,7 @@
+ 
+ 	/* When no valid entries are present in the list, qf_ptr points to
+ 	 * the first item in the list */
+-	if (to_qfl->qf_nonevalid == TRUE)
++	if (to_qfl->qf_nonevalid)
+ 	    to_qfl->qf_ptr = to_qfl->qf_start;
+     }
+ 
+@@ -1182,21 +1182,17 @@
+     if (fname == NULL || *fname == NUL)		/* no file name */
+ 	return 0;
+     {
+-#ifdef RISCOS
+-	/* Name is reported as `main.c', but file is `c.main' */
+-	return ro_buflist_add(fname);
+-#else
+ 	char_u	    *ptr;
+ 	int	    fnum;
+ 
+-# ifdef VMS
++#ifdef VMS
+ 	vms_remove_version(fname);
+-# endif
+-# ifdef BACKSLASH_IN_FILENAME
++#endif
++#ifdef BACKSLASH_IN_FILENAME
+ 	if (directory != NULL)
+ 	    slash_adjust(directory);
+ 	slash_adjust(fname);
+-# endif
++#endif
+ 	if (directory != NULL && !vim_isAbsName(fname)
+ 		&& (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
+ 	{
+@@ -1221,7 +1217,6 @@
+ 	    return fnum;
+ 	}
+ 	return buflist_add(fname, 0);
+-#endif
+     }
+ }
+ 
+@@ -1656,9 +1651,7 @@
+ 	    opened_window = TRUE;	/* close it when fail */
+ 	    p_swb = empty_option;	/* don't split again */
+ 	    swb_flags = 0;
+-# ifdef FEAT_SCROLLBIND
+-	    curwin->w_p_scb = FALSE;
+-# endif
++	    RESET_BINDING(curwin);
+ 	    if (ll_ref != NULL)
+ 	    {
+ 		/* The new window should use the location list from the
+@@ -2125,6 +2118,7 @@
+ 	--qi->qf_lists[idx].qf_count;
+     }
+     vim_free(qi->qf_lists[idx].qf_title);
++    qi->qf_lists[idx].qf_title = NULL;
+ }
+ 
+ /*
+@@ -2244,6 +2238,7 @@
+      * it if we have errors; otherwise, leave it closed.
+      */
+     if (qi->qf_lists[qi->qf_curlist].qf_nonevalid
++	    || qi->qf_lists[qi->qf_curlist].qf_count == 0
+ 	    || qi->qf_curlist >= qi->qf_listcount)
+     {
+ 	if (win != NULL)
+@@ -2333,9 +2328,7 @@
+ 	    win_goto(lastwin);
+ 	if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
+ 	    return;		/* not enough room for window */
+-#ifdef FEAT_SCROLLBIND
+-	curwin->w_p_scb = FALSE;
+-#endif
++	RESET_BINDING(curwin);
+ 
+ 	if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
+ 	{
+@@ -2362,6 +2355,7 @@
+ 	    set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
+ 								   OPT_LOCAL);
+ 	    set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
++	    RESET_BINDING(curwin);
+ #ifdef FEAT_DIFF
+ 	    curwin->w_p_diff = FALSE;
+ #endif
+@@ -2744,6 +2738,13 @@
+ #ifdef FEAT_AUTOCMD
+     char_u	*au_name = NULL;
+ 
++    /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
++    if (grep_internal(eap->cmdidx))
++    {
++	ex_vimgrep(eap);
++	return;
++    }
++
+     switch (eap->cmdidx)
+     {
+ 	case CMD_make:	    au_name = (char_u *)"make"; break;
+@@ -2765,13 +2766,6 @@
+     }
+ #endif
+ 
+-    /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
+-    if (grep_internal(eap->cmdidx))
+-    {
+-	ex_vimgrep(eap);
+-	return;
+-    }
+-
+     if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep
+ 	|| eap->cmdidx == CMD_lgrepadd)
+ 	wp = curwin;
+@@ -3051,18 +3045,22 @@
+     int		flags = 0;
+     colnr_T	col;
+     long	tomatch;
+-    char_u	dirname_start[MAXPATHL];
+-    char_u	dirname_now[MAXPATHL];
++    char_u	*dirname_start = NULL;
++    char_u	*dirname_now = NULL;
+     char_u	*target_dir = NULL;
+ #ifdef FEAT_AUTOCMD
+     char_u	*au_name =  NULL;
+ 
+     switch (eap->cmdidx)
+     {
+-	case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
+-	case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
+-	case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
++	case CMD_vimgrep:     au_name = (char_u *)"vimgrep"; break;
++	case CMD_lvimgrep:    au_name = (char_u *)"lvimgrep"; break;
++	case CMD_vimgrepadd:  au_name = (char_u *)"vimgrepadd"; break;
+ 	case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
++	case CMD_grep:	      au_name = (char_u *)"grep"; break;
++	case CMD_lgrep:	      au_name = (char_u *)"lgrep"; break;
++	case CMD_grepadd:     au_name = (char_u *)"grepadd"; break;
++	case CMD_lgrepadd:    au_name = (char_u *)"lgrepadd"; break;
+ 	default: break;
+     }
+     if (au_name != NULL)
+@@ -3130,6 +3128,11 @@
+ 	goto theend;
+     }
+ 
++    dirname_start = alloc(MAXPATHL);
++    dirname_now = alloc(MAXPATHL);
++    if (dirname_start == NULL || dirname_now == NULL)
++	goto theend;
++
+     /* Remember the current directory, because a BufRead autocommand that does
+      * ":lcd %:p:h" changes the meaning of short path names. */
+     mch_dirname(dirname_start, MAXPATHL);
+@@ -3366,6 +3369,8 @@
+     }
+ 
+ theend:
++    vim_free(dirname_now);
++    vim_free(dirname_start);
+     vim_free(target_dir);
+     vim_free(regmatch.regprog);
+ }
+@@ -3435,6 +3440,7 @@
+     char_u	*fname;
+ {
+     buf_T	*newbuf;
++    buf_T	*newbuf_to_wipe = NULL;
+     int		failed = TRUE;
+     aco_save_T	aco;
+ 
+@@ -3471,15 +3477,19 @@
+ 	    failed = FALSE;
+ 	    if (curbuf != newbuf)
+ 	    {
+-		/* Bloody autocommands changed the buffer! */
+-		if (buf_valid(newbuf))
+-		    wipe_buffer(newbuf, FALSE);
++		/* Bloody autocommands changed the buffer!  Can happen when
++		 * using netrw and editing a remote file.  Use the current
++		 * buffer instead, delete the dummy one after restoring the
++		 * window stuff. */
++		newbuf_to_wipe = newbuf;
+ 		newbuf = curbuf;
+ 	    }
+ 	}
+ 
+ 	/* restore curwin/curbuf and a few other things */
+ 	aucmd_restbuf(&aco);
++	if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
++	    wipe_buffer(newbuf_to_wipe, FALSE);
+     }
+ 
+     if (!buf_valid(newbuf))
+@@ -3697,7 +3707,7 @@
+     }
+ 
+     if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
+-	/* empty list or no valid entry */
++	/* no valid entry */
+ 	qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
+     else
+ 	qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+diff -Naur vim73.orig/src/regexp.c vim73/src/regexp.c
+--- vim73.orig/src/regexp.c	2010-07-12 20:41:48.000000000 +0000
++++ vim73/src/regexp.c	2011-05-17 09:32:31.202580142 +0000
+@@ -3538,6 +3538,7 @@
+ 
+     regline = line;
+     reglnum = 0;
++    reg_toolong = FALSE;
+ 
+     /* Simplest case: Anchored match need be tried only once. */
+     if (prog->reganch)
+diff -Naur vim73.orig/src/screen.c vim73/src/screen.c
+--- vim73.orig/src/screen.c	2010-08-13 13:21:27.000000000 +0000
++++ vim73/src/screen.c	2011-05-17 09:37:41.084186175 +0000
+@@ -2317,7 +2317,7 @@
+ 		num = (long)lnum;
+ 	    else
+ 		/* 'relativenumber', don't use negative numbers */
+-		num = (long)abs((int)get_cursor_rel_lnum(wp, lnum));
++		num = labs((long)get_cursor_rel_lnum(wp, lnum));
+ 
+ 	    sprintf((char *)buf, "%*ld ", w, num);
+ #ifdef FEAT_RIGHTLEFT
+@@ -3405,9 +3405,9 @@
+ # endif
+ 		   )
+ 		{
+-		    int_u	text_sign;
++		    int	text_sign;
+ # ifdef FEAT_SIGN_ICONS
+-		    int_u	icon_sign;
++		    int	icon_sign;
+ # endif
+ 
+ 		    /* Draw two cells with the sign value or blank. */
+@@ -3475,8 +3475,7 @@
+ 			    num = (long)lnum;
+ 			else
+ 			    /* 'relativenumber', don't use negative numbers */
+-			    num = (long)abs((int)get_cursor_rel_lnum(wp,
+-								    lnum));
++			    num = labs((long)get_cursor_rel_lnum(wp, lnum));
+ 
+ 			sprintf((char *)extra, "%*ld ",
+ 						number_width(wp), num);
+@@ -6436,6 +6435,8 @@
+     struct	stl_hlrec hltab[STL_MAX_ITEM];
+     struct	stl_hlrec tabtab[STL_MAX_ITEM];
+     int		use_sandbox = FALSE;
++    win_T	*ewp;
++    int		p_crb_save;
+ 
+     /* setup environment for the task at hand */
+     if (wp == NULL)
+@@ -6514,16 +6515,31 @@
+     if (maxwidth <= 0)
+ 	return;
+ 
++    /* Temporarily reset 'cursorbind', we don't want a side effect from moving
++     * the cursor away and back. */
++    ewp = wp == NULL ? curwin : wp;
++    p_crb_save = ewp->w_p_crb;
++    ewp->w_p_crb = FALSE;
++
+     /* Make a copy, because the statusline may include a function call that
+      * might change the option value and free the memory. */
+     stl = vim_strsave(stl);
+-    width = build_stl_str_hl(wp == NULL ? curwin : wp,
+-				buf, sizeof(buf),
++    width = build_stl_str_hl(ewp, buf, sizeof(buf),
+ 				stl, use_sandbox,
+ 				fillchar, maxwidth, hltab, tabtab);
+     vim_free(stl);
+-    len = (int)STRLEN(buf);
++    ewp->w_p_crb = p_crb_save;
++
++    /* Make all characters printable. */
++    p = transstr(buf);
++    if (p != NULL)
++    {
++	vim_strncpy(buf, p, sizeof(buf) - 1);
++	vim_free(p);
++    }
+ 
++    /* fill up with "fillchar" */
++    len = (int)STRLEN(buf);
+     while (width < maxwidth && len < (int)sizeof(buf) - 1)
+     {
+ #ifdef FEAT_MBYTE
+diff -Naur vim73.orig/src/search.c vim73/src/search.c
+--- vim73.orig/src/search.c	2010-07-14 14:49:41.000000000 +0000
++++ vim73/src/search.c	2011-05-17 09:39:31.623917761 +0000
+@@ -1161,12 +1161,20 @@
+ 	{
+ 	    if (spats[RE_SEARCH].pat == NULL)	    /* no previous pattern */
+ 	    {
+-		EMSG(_(e_noprevre));
+-		retval = 0;
+-		goto end_do_search;
++		pat = spats[RE_SUBST].pat;
++		if (pat == NULL)
++		{
++		    EMSG(_(e_noprevre));
++		    retval = 0;
++		    goto end_do_search;
++		}
++		searchstr = pat;
++	    }
++	    else
++	    {
++		/* make search_regcomp() use spats[RE_SEARCH].pat */
++		searchstr = (char_u *)"";
+ 	    }
+-	    /* make search_regcomp() use spats[RE_SEARCH].pat */
+-	    searchstr = (char_u *)"";
+ 	}
+ 
+ 	if (pat != NULL && *pat != NUL)	/* look for (new) offset */
+@@ -4527,7 +4535,7 @@
+ #if defined(FEAT_FIND_ID) || defined(PROTO)
+ /*
+  * Find identifiers or defines in included files.
+- * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
++ * If p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
+  */
+     void
+ find_pattern_in_path(ptr, dir, len, whole, skip_comments,
+@@ -4573,9 +4581,6 @@
+     char_u	*already = NULL;
+     char_u	*startp = NULL;
+     char_u	*inc_opt = NULL;
+-#ifdef RISCOS
+-    int		previous_munging = __riscosify_control;
+-#endif
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+     win_T	*curwin_save = NULL;
+ #endif
+@@ -4588,11 +4593,6 @@
+     if (file_line == NULL)
+ 	return;
+ 
+-#ifdef RISCOS
+-    /* UnixLib knows best how to munge c file names - turn munging back on. */
+-    int __riscosify_control = 0;
+-#endif
+-
+     if (type != CHECK_PATH && type != FIND_DEFINE
+ #ifdef FEAT_INS_EXPAND
+ 	/* when CONT_SOL is set compare "ptr" with the beginning of the line
+@@ -5075,9 +5075,7 @@
+ 			if (win_split(0, 0) == FAIL)
+ #endif
+ 			    break;
+-#ifdef FEAT_SCROLLBIND
+-			curwin->w_p_scb = FALSE;
+-#endif
++			RESET_BINDING(curwin);
+ 		    }
+ 		    if (depth == -1)
+ 		    {
+@@ -5222,11 +5220,6 @@
+     vim_free(regmatch.regprog);
+     vim_free(incl_regmatch.regprog);
+     vim_free(def_regmatch.regprog);
+-
+-#ifdef RISCOS
+-   /* Restore previous file munging state. */
+-    __riscosify_control = previous_munging;
+-#endif
+ }
+ 
+     static void
+diff -Naur vim73.orig/src/spell.c vim73/src/spell.c
+--- vim73.orig/src/spell.c	2010-08-01 13:43:01.000000000 +0000
++++ vim73/src/spell.c	2011-05-17 09:38:29.902767943 +0000
+@@ -303,10 +303,6 @@
+  *			    few bytes as possible, see offset2bytes())
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for lseek(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ #if defined(FEAT_SPELL) || defined(PROTO)
+@@ -327,6 +323,16 @@
+ typedef long idx_T;
+ #endif
+ 
++#ifdef VMS
++# define SPL_FNAME_TMPL  "%s_%s.spl"
++# define SPL_FNAME_ADD   "_add."
++# define SPL_FNAME_ASCII "_ascii."
++#else
++# define SPL_FNAME_TMPL  "%s.%s.spl"
++# define SPL_FNAME_ADD   ".add."
++# define SPL_FNAME_ASCII ".ascii."
++#endif
++
+ /* Flags used for a word.  Only the lowest byte can be used, the region byte
+  * comes above it. */
+ #define WF_REGION   0x01	/* region byte follows */
+@@ -2471,14 +2477,24 @@
+ 	 * Find the first spell file for "lang" in 'runtimepath' and load it.
+ 	 */
+ 	vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
+-					"spell/%s.%s.spl", lang, spell_enc());
++#ifdef VMS
++					"spell/%s_%s.spl",
++#else
++					"spell/%s.%s.spl",
++#endif
++							   lang, spell_enc());
+ 	r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
+ 
+ 	if (r == FAIL && *sl.sl_lang != NUL)
+ 	{
+ 	    /* Try loading the ASCII version. */
+ 	    vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
+-						  "spell/%s.ascii.spl", lang);
++#ifdef VMS
++						  "spell/%s_ascii.spl",
++#else
++						  "spell/%s.ascii.spl",
++#endif
++									lang);
+ 	    r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
+ 
+ #ifdef FEAT_AUTOCMD
+@@ -2496,7 +2512,12 @@
+ 
+     if (r == FAIL)
+     {
+-	smsg((char_u *)_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
++	smsg((char_u *)
++#ifdef VMS
++	_("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
++#else
++	_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
++#endif
+ 						     lang, spell_enc(), lang);
+     }
+     else if (sl.sl_slang != NULL)
+@@ -2530,7 +2551,7 @@
+ int_wordlist_spl(fname)
+     char_u	    *fname;
+ {
+-    vim_snprintf((char *)fname, MAXPATHL, "%s.%s.spl",
++    vim_snprintf((char *)fname, MAXPATHL, SPL_FNAME_TMPL,
+ 						  int_wordlist, spell_enc());
+ }
+ 
+@@ -2785,8 +2806,8 @@
+ 	if (lp->sl_fname == NULL)
+ 	    goto endFAIL;
+ 
+-	/* Check for .add.spl. */
+-	lp->sl_add = strstr((char *)gettail(fname), ".add.") != NULL;
++	/* Check for .add.spl (_add.spl for VMS). */
++	lp->sl_add = strstr((char *)gettail(fname), SPL_FNAME_ADD) != NULL;
+     }
+     else
+ 	lp = old_lp;
+@@ -3613,7 +3634,7 @@
+ 	}
+ 
+ 	/* Add all flags to "sl_compallflags". */
+-	if (vim_strchr((char_u *)"+*[]/", c) == NULL
++	if (vim_strchr((char_u *)"?*+[]/", c) == NULL
+ 		&& !byte_in_str(slang->sl_compallflags, c))
+ 	{
+ 	    *ap++ = c;
+@@ -3643,7 +3664,7 @@
+ 	/* Copy flag to "sl_comprules", unless we run into a wildcard. */
+ 	if (crp != NULL)
+ 	{
+-	    if (c == '+' || c == '*')
++	    if (c == '?' || c == '+' || c == '*')
+ 	    {
+ 		vim_free(slang->sl_comprules);
+ 		slang->sl_comprules = NULL;
+@@ -3661,8 +3682,8 @@
+ 	}
+ 	else		    /* normal char, "[abc]" and '*' are copied as-is */
+ 	{
+-	    if (c == '+' || c == '~')
+-		*pp++ = '\\';	    /* "a+" becomes "a\+" */
++	    if (c == '?' || c == '+' || c == '~')
++		*pp++ = '\\';	    /* "a?" becomes "a\?", "a+" becomes "a\+" */
+ #ifdef FEAT_MBYTE
+ 	    if (enc_utf8)
+ 		pp += mb_char2bytes(c, pp);
+@@ -4679,7 +4700,7 @@
+     buf_T	*buf;
+     char_u	fname[MAXPATHL];
+ 
+-    /* Go through all buffers and handle 'spelllang'. */ //<VN>
++    /* Go through all buffers and handle 'spelllang'. <VN> */
+     for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+ 	ga_clear(&buf->b_s.b_langp);
+ 
+@@ -4930,6 +4951,8 @@
+ 
+     sblock_T	*si_blocks;	/* memory blocks used */
+     long	si_blocks_cnt;	/* memory blocks allocated */
++    int		si_did_emsg;	/* TRUE when ran out of memory */
++
+     long	si_compress_cnt;    /* words to add before lowering
+ 				       compression limit */
+     wordnode_T	*si_first_free; /* List of nodes that have been freed during
+@@ -4951,7 +4974,7 @@
+     char_u	*si_info;	/* info text chars or NULL  */
+     int		si_region_count; /* number of regions supported (1 when there
+ 				    are no regions) */
+-    char_u	si_region_name[16]; /* region names; used only if
++    char_u	si_region_name[17]; /* region names; used only if
+ 				     * si_region_count > 1) */
+ 
+     garray_T	si_rep;		/* list of fromto_T entries from REP lines */
+@@ -5456,21 +5479,25 @@
+ 	    }
+ 	    else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
+ 	    {
+-		/* Concatenate this string to previously defined ones, using a
+-		 * slash to separate them. */
+-		l = (int)STRLEN(items[1]) + 1;
+-		if (compflags != NULL)
+-		    l += (int)STRLEN(compflags) + 1;
+-		p = getroom(spin, l, FALSE);
+-		if (p != NULL)
++		/* Don't use the first rule if it is a number. */
++		if (compflags != NULL || *skipdigits(items[1]) != NUL)
+ 		{
++		    /* Concatenate this string to previously defined ones,
++		     * using a slash to separate them. */
++		    l = (int)STRLEN(items[1]) + 1;
+ 		    if (compflags != NULL)
++			l += (int)STRLEN(compflags) + 1;
++		    p = getroom(spin, l, FALSE);
++		    if (p != NULL)
+ 		    {
+-			STRCPY(p, compflags);
+-			STRCAT(p, "/");
++			if (compflags != NULL)
++			{
++			    STRCPY(p, compflags);
++			    STRCAT(p, "/");
++			}
++			STRCAT(p, items[1]);
++			compflags = p;
+ 		    }
+-		    STRCAT(p, items[1]);
+-		    compflags = p;
+ 		}
+ 	    }
+ 	    else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
+@@ -6270,7 +6297,7 @@
+ 
+     for (p = compflags; *p != NUL; )
+     {
+-	if (vim_strchr((char_u *)"/*+[]", *p) != NULL)
++	if (vim_strchr((char_u *)"/?*+[]", *p) != NULL)
+ 	    /* Copy non-flag characters directly. */
+ 	    *tp++ = *p++;
+ 	else
+@@ -6299,7 +6326,7 @@
+ 		    {
+ 			check_renumber(spin);
+ 			id = spin->si_newcompID--;
+-		    } while (vim_strchr((char_u *)"/+*[]\\-^", id) != NULL);
++		    } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL);
+ 		    ci->ci_newID = id;
+ 		    hash_add(&aff->af_comp, ci->ci_key);
+ 		}
+@@ -6930,7 +6957,7 @@
+ 			    if (ae->ae_add == NULL)
+ 				*newword = NUL;
+ 			    else
+-				STRCPY(newword, ae->ae_add);
++				vim_strncpy(newword, ae->ae_add, MAXWLEN - 1);
+ 			    p = word;
+ 			    if (ae->ae_chop != NULL)
+ 			    {
+@@ -6951,7 +6978,7 @@
+ 			else
+ 			{
+ 			    /* suffix: chop/add at the end of the word */
+-			    STRCPY(newword, word);
++			    vim_strncpy(newword, word, MAXWLEN - 1);
+ 			    if (ae->ae_chop != NULL)
+ 			    {
+ 				/* Remove chop string. */
+@@ -7343,10 +7370,21 @@
+ 
+     if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
+     {
+-	/* Allocate a block of memory. This is not freed until much later. */
+-	bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
++	if (len >= SBLOCKSIZE)
++	    bl = NULL;
++	else
++	    /* Allocate a block of memory. It is not freed until much later. */
++	    bl = (sblock_T *)alloc_clear(
++				   (unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
+ 	if (bl == NULL)
++	{
++	    if (!spin->si_did_emsg)
++	    {
++		EMSG(_("E845: Insufficient memory, word list will be incomplete"));
++		spin->si_did_emsg = TRUE;
++	    }
+ 	    return NULL;
++	}
+ 	bl->sb_next = spin->si_blocks;
+ 	spin->si_blocks = bl;
+ 	bl->sb_used = 0;
+@@ -7361,6 +7399,7 @@
+ 
+ /*
+  * Make a copy of a string into memory allocated with getroom().
++ * Returns NULL when out of memory.
+  */
+     static char_u *
+ getroom_save(spin, s)
+@@ -7395,6 +7434,7 @@
+ 
+ /*
+  * Allocate the root of a word tree.
++ * Returns NULL when out of memory.
+  */
+     static wordnode_T *
+ wordtree_alloc(spin)
+@@ -7679,6 +7719,7 @@
+ /*
+  * Get a wordnode_T, either from the list of previously freed nodes or
+  * allocate a new one.
++ * Returns NULL when out of memory.
+  */
+     static wordnode_T *
+ get_wordnode(spin)
+@@ -7696,7 +7737,8 @@
+ 	--spin->si_free_count;
+     }
+ #ifdef SPELL_PRINTTREE
+-    n->wn_nr = ++spin->si_wordnode_nr;
++    if (n != NULL)
++	n->wn_nr = ++spin->si_wordnode_nr;
+ #endif
+     return n;
+ }
+@@ -8548,7 +8590,7 @@
+     spellinfo_T	*spin;
+     char_u	*wfname;
+ {
+-    char_u	fname[MAXPATHL];
++    char_u	*fname = NULL;
+     int		len;
+     slang_T	*slang;
+     int		free_slang = FALSE;
+@@ -8612,13 +8654,17 @@
+      * Write the .sug file.
+      * Make the file name by changing ".spl" to ".sug".
+      */
+-    STRCPY(fname, wfname);
++    fname = alloc(MAXPATHL);
++    if (fname == NULL)
++	goto theend;
++    vim_strncpy(fname, wfname, MAXPATHL - 1);
+     len = (int)STRLEN(fname);
+     fname[len - 2] = 'u';
+     fname[len - 1] = 'g';
+     sug_write(spin, fname);
+ 
+ theend:
++    vim_free(fname);
+     if (free_slang)
+ 	slang_free(slang);
+     free_blocks(spin->si_blocks);
+@@ -9064,8 +9110,8 @@
+     int		overwrite;	    /* overwrite existing output file */
+     int		added_word;	    /* invoked through "zg" */
+ {
+-    char_u	fname[MAXPATHL];
+-    char_u	wfname[MAXPATHL];
++    char_u	*fname = NULL;
++    char_u	*wfname;
+     char_u	**innames;
+     int		incount;
+     afffile_T	*(afile[8]);
+@@ -9093,6 +9139,10 @@
+     innames = &fnames[1];
+     incount = fcount - 1;
+ 
++    wfname = alloc(MAXPATHL);
++    if (wfname == NULL)
++	return;
++
+     if (fcount >= 1)
+     {
+ 	len = (int)STRLEN(fnames[0]);
+@@ -9102,32 +9152,32 @@
+ 	     * "path/en.latin1.add.spl". */
+ 	    innames = &fnames[0];
+ 	    incount = 1;
+-	    vim_snprintf((char *)wfname, sizeof(wfname), "%s.spl", fnames[0]);
++	    vim_snprintf((char *)wfname, MAXPATHL, "%s.spl", fnames[0]);
+ 	}
+ 	else if (fcount == 1)
+ 	{
+ 	    /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
+ 	    innames = &fnames[0];
+ 	    incount = 1;
+-	    vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
+-			     spin.si_ascii ? (char_u *)"ascii" : spell_enc());
++	    vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
++		  fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+ 	}
+ 	else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
+ 	{
+ 	    /* Name ends in ".spl", use as the file name. */
+-	    vim_strncpy(wfname, fnames[0], sizeof(wfname) - 1);
++	    vim_strncpy(wfname, fnames[0], MAXPATHL - 1);
+ 	}
+ 	else
+ 	    /* Name should be language, make the file name from it. */
+-	    vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
+-			     spin.si_ascii ? (char_u *)"ascii" : spell_enc());
++	    vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
++		  fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+ 
+ 	/* Check for .ascii.spl. */
+-	if (strstr((char *)gettail(wfname), ".ascii.") != NULL)
++	if (strstr((char *)gettail(wfname), SPL_FNAME_ASCII) != NULL)
+ 	    spin.si_ascii = TRUE;
+ 
+ 	/* Check for .add.spl. */
+-	if (strstr((char *)gettail(wfname), ".add.") != NULL)
++	if (strstr((char *)gettail(wfname), SPL_FNAME_ADD) != NULL)
+ 	    spin.si_add = TRUE;
+     }
+ 
+@@ -9144,14 +9194,18 @@
+ 	if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+ 	{
+ 	    EMSG(_(e_exists));
+-	    return;
++	    goto theend;
+ 	}
+ 	if (mch_isdir(wfname))
+ 	{
+ 	    EMSG2(_(e_isadir2), wfname);
+-	    return;
++	    goto theend;
+ 	}
+ 
++	fname = alloc(MAXPATHL);
++	if (fname == NULL)
++	    goto theend;
++
+ 	/*
+ 	 * Init the aff and dic pointers.
+ 	 * Get the region names if there are more than 2 arguments.
+@@ -9167,7 +9221,7 @@
+ 						|| innames[i][len - 3] != '_')
+ 		{
+ 		    EMSG2(_("E755: Invalid region in %s"), innames[i]);
+-		    return;
++		    goto theend;
+ 		}
+ 		spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+ 		spin.si_region_name[i * 2 + 1] =
+@@ -9184,7 +9238,7 @@
+ 		|| spin.si_prefroot == NULL)
+ 	{
+ 	    free_blocks(spin.si_blocks);
+-	    return;
++	    goto theend;
+ 	}
+ 
+ 	/* When not producing a .add.spl file clear the character table when
+@@ -9205,7 +9259,7 @@
+ 	    spin.si_conv.vc_type = CONV_NONE;
+ 	    spin.si_region = 1 << i;
+ 
+-	    vim_snprintf((char *)fname, sizeof(fname), "%s.aff", innames[i]);
++	    vim_snprintf((char *)fname, MAXPATHL, "%s.aff", innames[i]);
+ 	    if (mch_stat((char *)fname, &st) >= 0)
+ 	    {
+ 		/* Read the .aff file.  Will init "spin->si_conv" based on the
+@@ -9216,7 +9270,7 @@
+ 		else
+ 		{
+ 		    /* Read the .dic file and store the words in the trees. */
+-		    vim_snprintf((char *)fname, sizeof(fname), "%s.dic",
++		    vim_snprintf((char *)fname, MAXPATHL, "%s.dic",
+ 								  innames[i]);
+ 		    if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
+ 			error = TRUE;
+@@ -9298,6 +9352,10 @@
+ 	    spell_make_sugfile(&spin, wfname);
+ 
+     }
++
++theend:
++    vim_free(fname);
++    vim_free(wfname);
+ }
+ 
+ /*
+@@ -9350,7 +9408,7 @@
+     buf_T	*buf = NULL;
+     int		new_spf = FALSE;
+     char_u	*fname;
+-    char_u	fnamebuf[MAXPATHL];
++    char_u	*fnamebuf = NULL;
+     char_u	line[MAXWLEN * 2];
+     long	fpos, fpos_next = 0;
+     int		i;
+@@ -9380,6 +9438,9 @@
+ 	    EMSG2(_(e_notset), "spellfile");
+ 	    return;
+ 	}
++	fnamebuf = alloc(MAXPATHL);
++	if (fnamebuf == NULL)
++	    return;
+ 
+ 	for (spf = curwin->w_s->b_p_spf, i = 1; *spf != NUL; ++i)
+ 	{
+@@ -9389,6 +9450,7 @@
+ 	    if (*spf == NUL)
+ 	    {
+ 		EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
++		vim_free(fnamebuf);
+ 		return;
+ 	    }
+ 	}
+@@ -9400,6 +9462,7 @@
+ 	if (buf != NULL && bufIsChanged(buf))
+ 	{
+ 	    EMSG(_(e_bufloaded));
++	    vim_free(fnamebuf);
+ 	    return;
+ 	}
+ 
+@@ -9494,6 +9557,7 @@
+ 
+ 	redraw_all_later(SOME_VALID);
+     }
++    vim_free(fnamebuf);
+ }
+ 
+ /*
+@@ -9502,7 +9566,7 @@
+     static void
+ init_spellfile()
+ {
+-    char_u	buf[MAXPATHL];
++    char_u	*buf;
+     int		l;
+     char_u	*fname;
+     char_u	*rtp;
+@@ -9512,6 +9576,10 @@
+ 
+     if (*curwin->w_s->b_p_spl != NUL && curwin->w_s->b_langp.ga_len > 0)
+     {
++	buf = alloc(MAXPATHL);
++	if (buf == NULL)
++	    return;
++
+ 	/* Find the end of the language name.  Exclude the region.  If there
+ 	 * is a path separator remember the start of the tail. */
+ 	for (lend = curwin->w_s->b_p_spl; *lend != NUL
+@@ -9530,7 +9598,8 @@
+ 	    if (aspath)
+ 		/* Use directory of an entry with path, e.g., for
+ 		 * "/dir/lg.utf-8.spl" use "/dir". */
+-		vim_strncpy(buf, curbuf->b_s.b_p_spl, lstart - curbuf->b_s.b_p_spl - 1);
++		vim_strncpy(buf, curbuf->b_s.b_p_spl,
++					    lstart - curbuf->b_s.b_p_spl - 1);
+ 	    else
+ 		/* Copy the path from 'runtimepath' to buf[]. */
+ 		copy_option_part(&rtp, buf, MAXPATHL, ",");
+@@ -9539,13 +9608,14 @@
+ 		/* Use the first language name from 'spelllang' and the
+ 		 * encoding used in the first loaded .spl file. */
+ 		if (aspath)
+-		    vim_strncpy(buf, curbuf->b_s.b_p_spl, lend - curbuf->b_s.b_p_spl);
++		    vim_strncpy(buf, curbuf->b_s.b_p_spl,
++						  lend - curbuf->b_s.b_p_spl);
+ 		else
+ 		{
+ 		    /* Create the "spell" directory if it doesn't exist yet. */
+ 		    l = (int)STRLEN(buf);
+ 		    vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
+-		    if (!filewritable(buf) != 2)
++		    if (filewritable(buf) != 2)
+ 			vim_mkdir(buf, 0755);
+ 
+ 		    l = (int)STRLEN(buf);
+@@ -9553,7 +9623,8 @@
+ 				 "/%.*s", (int)(lend - lstart), lstart);
+ 		}
+ 		l = (int)STRLEN(buf);
+-		fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)->lp_slang->sl_fname;
++		fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)
++							 ->lp_slang->sl_fname;
+ 		vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
+ 			fname != NULL
+ 			  && strstr((char *)gettail(fname), ".ascii.") != NULL
+@@ -9563,6 +9634,8 @@
+ 	    }
+ 	    aspath = FALSE;
+ 	}
++
++	vim_free(buf);
+     }
+ }
+ 
+@@ -9837,10 +9910,7 @@
+ 	{
+ 	    /* be quick for ASCII */
+ 	    if (wp->w_s->b_spell_ismw[*p])
+-	    {
+ 		s = p + 1;		/* skip a mid-word character */
+-		l = MB_BYTE2LEN(*s);
+-	    }
+ 	}
+ 	else
+ 	{
+@@ -9848,10 +9918,7 @@
+ 	    if (c < 256 ? wp->w_s->b_spell_ismw[c]
+ 		    : (wp->w_s->b_spell_ismw_mb != NULL
+ 			   && vim_strchr(wp->w_s->b_spell_ismw_mb, c) != NULL))
+-	    {
+ 		s = p + l;
+-		l = MB_BYTE2LEN(*s);
+-	    }
+ 	}
+ 
+ 	c = mb_ptr2char(s);
+@@ -10223,7 +10290,7 @@
+ 
+ 	    /* The suggested word may replace only part of the bad word, add
+ 	     * the not replaced part. */
+-	    STRCPY(wcopy, stp->st_word);
++	    vim_strncpy(wcopy, stp->st_word, MAXWLEN);
+ 	    if (sug.su_badlen > stp->st_orglen)
+ 		vim_strncpy(wcopy + stp->st_wordlen,
+ 					       sug.su_badptr + stp->st_orglen,
+@@ -13124,7 +13191,7 @@
+ 	pbad = badsound2;
+     }
+ 
+-    if (lendiff > 0)
++    if (lendiff > 0 && stp->st_wordlen + lendiff < MAXWLEN)
+     {
+ 	/* Add part of the bad word to the good word, so that we soundfold
+ 	 * what replaces the bad word. */
+@@ -13811,11 +13878,8 @@
+ 		    su->su_sfmaxscore = cleanup_suggestions(gap,
+ 				      su->su_sfmaxscore, SUG_CLEAN_COUNT(su));
+ 		else
+-		{
+-		    i = su->su_maxscore;
+ 		    su->su_maxscore = cleanup_suggestions(gap,
+ 					su->su_maxscore, SUG_CLEAN_COUNT(su));
+-		}
+ 	    }
+ 	}
+     }
+@@ -13840,7 +13904,7 @@
+     for (i = gap->ga_len - 1; i >= 0; --i)
+     {
+ 	/* Need to append what follows to check for "the the". */
+-	STRCPY(longword, stp[i].st_word);
++	vim_strncpy(longword, stp[i].st_word, MAXWLEN);
+ 	len = stp[i].st_wordlen;
+ 	vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+ 							       MAXWLEN - len);
+@@ -14186,7 +14250,7 @@
+ 	*t = NUL;
+     }
+     else
+-	STRCPY(word, s);
++	vim_strncpy(word, s, MAXWLEN - 1);
+ 
+     smp = (salitem_T *)slang->sl_sal.ga_data;
+ 
+diff -Naur vim73.orig/src/structs.h vim73/src/structs.h
+--- vim73.orig/src/structs.h	2010-08-07 14:59:27.000000000 +0000
++++ vim73/src/structs.h	2011-05-17 09:39:31.623917761 +0000
+@@ -378,6 +378,35 @@
+ typedef long		    blocknr_T;
+ 
+ /*
++ * mf_hashtab_T is a chained hashtable with blocknr_T key and arbitrary
++ * structures as items.  This is an intrusive data structure: we require
++ * that items begin with mf_hashitem_T which contains the key and linked
++ * list pointers.  List of items in each bucket is doubly-linked.
++ */
++
++typedef struct mf_hashitem_S mf_hashitem_T;
++
++struct mf_hashitem_S
++{
++    mf_hashitem_T   *mhi_next;
++    mf_hashitem_T   *mhi_prev;
++    blocknr_T	    mhi_key;
++};
++
++#define MHT_INIT_SIZE   64
++
++typedef struct mf_hashtab_S
++{
++    long_u	    mht_mask;	    /* mask used for hash value (nr of items
++				     * in array is "mht_mask" + 1) */
++    long_u	    mht_count;	    /* nr of items inserted into hashtable */
++    mf_hashitem_T   **mht_buckets;  /* points to mht_small_buckets or
++				     *dynamically allocated array */
++    mf_hashitem_T   *mht_small_buckets[MHT_INIT_SIZE];   /* initial buckets */
++    char	    mht_fixed;	    /* non-zero value forbids growth */
++} mf_hashtab_T;
++
++/*
+  * for each (previously) used block in the memfile there is one block header.
+  *
+  * The block may be linked in the used list OR in the free list.
+@@ -394,11 +423,11 @@
+ 
+ struct block_hdr
+ {
++    mf_hashitem_T bh_hashitem;      /* header for hash table and key */
++#define bh_bnum bh_hashitem.mhi_key /* block number, part of bh_hashitem */
++
+     bhdr_T	*bh_next;	    /* next block_hdr in free or used list */
+     bhdr_T	*bh_prev;	    /* previous block_hdr in used list */
+-    bhdr_T	*bh_hash_next;	    /* next block_hdr in hash list */
+-    bhdr_T	*bh_hash_prev;	    /* previous block_hdr in hash list */
+-    blocknr_T	bh_bnum;	    /* block number */
+     char_u	*bh_data;	    /* pointer to memory (for used block) */
+     int		bh_page_count;	    /* number of pages in this block */
+ 
+@@ -417,9 +446,9 @@
+ 
+ struct nr_trans
+ {
+-    NR_TRANS	*nt_next;		/* next nr_trans in hash list */
+-    NR_TRANS	*nt_prev;		/* previous nr_trans in hash list */
+-    blocknr_T	nt_old_bnum;		/* old, negative, number */
++    mf_hashitem_T nt_hashitem;		/* header for hash table and key */
++#define nt_old_bnum nt_hashitem.mhi_key	/* old, negative, number */
++
+     blocknr_T	nt_new_bnum;		/* new, positive, number */
+ };
+ 
+@@ -499,12 +528,6 @@
+ 
+ typedef struct file_buffer buf_T;  /* forward declaration */
+ 
+-/*
+- * Simplistic hashing scheme to quickly locate the blocks in the used list.
+- * 64 blocks are found directly (64 * 4K = 256K, most files are smaller).
+- */
+-#define MEMHASHSIZE	64
+-#define MEMHASH(nr)	((nr) & (MEMHASHSIZE - 1))
+ #define MF_SEED_LEN	8
+ 
+ struct memfile
+@@ -517,8 +540,8 @@
+     bhdr_T	*mf_used_last;		/* lru block_hdr in used list */
+     unsigned	mf_used_count;		/* number of pages in used list */
+     unsigned	mf_used_count_max;	/* maximum number of pages in memory */
+-    bhdr_T	*mf_hash[MEMHASHSIZE];	/* array of hash lists */
+-    NR_TRANS	*mf_trans[MEMHASHSIZE];	/* array of trans lists */
++    mf_hashtab_T mf_hash;		/* hash lists */
++    mf_hashtab_T mf_trans;		/* trans lists */
+     blocknr_T	mf_blocknr_max;		/* highest positive block number + 1*/
+     blocknr_T	mf_blocknr_min;		/* lowest negative block number - 1 */
+     blocknr_T	mf_neg_count;		/* number of negative blocks numbers */
+@@ -979,9 +1002,10 @@
+ struct mapblock
+ {
+     mapblock_T	*m_next;	/* next mapblock in list */
+-    char_u	*m_keys;	/* mapped from */
++    char_u	*m_keys;	/* mapped from, lhs */
+     int		m_keylen;	/* strlen(m_keys) */
+-    char_u	*m_str;		/* mapped to */
++    char_u	*m_str;		/* mapped to, rhs */
++    char_u	*m_orig_str;	/* rhs as entered by the user */
+     int		m_mode;		/* valid mode */
+     int		m_noremap;	/* if non-zero no re-mapping for m_str */
+     char	m_silent;	/* <silent> used, don't echo commands */
+@@ -1563,6 +1587,9 @@
+ 
+     /* end of buffer options */
+ 
++    linenr_T	b_no_eol_lnum;	/* non-zero lnum when last line of next binary
++				 * write should not have an end-of-line */
++
+     int		b_start_eol;	/* last line had eol when it was read */
+     int		b_start_ffc;	/* first char of 'ff' when edit started */
+ #ifdef FEAT_MBYTE
+@@ -2339,11 +2366,6 @@
+     MenuHandle	menu_handle;
+     MenuHandle	submenu_handle;
+ #endif
+-#ifdef RISCOS
+-    int		*id;		    /* Not used, but gui.c needs it */
+-    int		greyed_out;	    /* Flag */
+-    int		hidden;
+-#endif
+ #ifdef FEAT_GUI_PHOTON
+     PtWidget_t	*id;
+     PtWidget_t	*submenu_id;
+diff -Naur vim73.orig/src/syntax.c vim73/src/syntax.c
+--- vim73.orig/src/syntax.c	2010-08-08 13:17:03.000000000 +0000
++++ vim73/src/syntax.c	2011-05-17 09:38:27.335052926 +0000
+@@ -68,6 +68,8 @@
+ 
+ #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
+ 
++#define MAX_HL_ID       20000	/* maximum value for a highlight ID. */
++
+ #ifdef FEAT_CMDL_COMPL
+ /* Flags to indicate an additional string for highlight name completion. */
+ static int include_none = 0;	/* when 1 include "None" */
+@@ -219,16 +221,19 @@
+ 
+ /*
+  * Syntax group IDs have different types:
+- *     0 -  9999  normal syntax groups
+- * 10000 - 14999  ALLBUT indicator (current_syn_inc_tag added)
+- * 15000 - 19999  TOP indicator (current_syn_inc_tag added)
+- * 20000 - 24999  CONTAINED indicator (current_syn_inc_tag added)
+- * >= 25000	  cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
+- */
+-#define SYNID_ALLBUT	10000	    /* syntax group ID for contains=ALLBUT */
+-#define SYNID_TOP	15000	    /* syntax group ID for contains=TOP */
+-#define SYNID_CONTAINED	20000	    /* syntax group ID for contains=CONTAINED */
+-#define SYNID_CLUSTER	25000	    /* first syntax group ID for clusters */
++ *     0 - 19999  normal syntax groups
++ * 20000 - 20999  ALLBUT indicator (current_syn_inc_tag added)
++ * 21000 - 21999  TOP indicator (current_syn_inc_tag added)
++ * 22000 - 22999  CONTAINED indicator (current_syn_inc_tag added)
++ * 23000 - 32767  cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
++ */
++#define SYNID_ALLBUT	MAX_HL_ID   /* syntax group ID for contains=ALLBUT */
++#define SYNID_TOP	21000	    /* syntax group ID for contains=TOP */
++#define SYNID_CONTAINED	22000	    /* syntax group ID for contains=CONTAINED */
++#define SYNID_CLUSTER	23000	    /* first syntax group ID for clusters */
++
++#define MAX_SYN_INC_TAG	999	    /* maximum before the above overflow */
++#define MAX_CLUSTER_ID  (32767 - SYNID_CLUSTER)
+ 
+ /*
+  * Annoying Hack(TM):  ":syn include" needs this pointer to pass to
+@@ -3442,6 +3447,9 @@
+     /* free the stored states */
+     syn_stack_free_all(block);
+     invalidate_current_state();
++
++    /* Reset the counter for ":syn include" */
++    running_syn_inc_tag = 0;
+ }
+ 
+ /*
+@@ -4537,6 +4545,13 @@
+ 		;
+ #endif
+ 	    }
++#ifdef FEAT_CONCEAL
++	    if (!vim_isprintc_strict(*conceal_char))
++	    {
++		EMSG(_("E844: invalid cchar value"));
++		return NULL;
++	    }
++#endif
+ 	    arg = skipwhite(arg + 7);
+ 	}
+ 	else
+@@ -4654,6 +4669,8 @@
+ 	    return;
+ 	}
+ 	sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
++	if (sgl_id == 0)
++	    return;
+ 	/* separate_nextcmd() and expand_filename() depend on this */
+ 	eap->arg = rest;
+     }
+@@ -4682,6 +4699,11 @@
+      * Save and restore the existing top-level grouplist id and ":syn
+      * include" tag around the actual inclusion.
+      */
++    if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
++    {
++	EMSG((char_u *)_("E847: Too many syntax includes"));
++	return;
++    }
+     prev_syn_inc_tag = current_syn_inc_tag;
+     current_syn_inc_tag = ++running_syn_inc_tag;
+     prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
+@@ -4705,7 +4727,7 @@
+     char_u	*group_name_end;
+     int		syn_id;
+     char_u	*rest;
+-    char_u	*keyword_copy;
++    char_u	*keyword_copy = NULL;
+     char_u	*p;
+     char_u	*kw;
+     syn_opt_arg_T syn_opt_arg;
+@@ -4717,9 +4739,9 @@
+     if (rest != NULL)
+     {
+ 	syn_id = syn_check_group(arg, (int)(group_name_end - arg));
+-
+-	/* allocate a buffer, for removing the backslashes in the keyword */
+-	keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
++	if (syn_id != 0)
++	    /* allocate a buffer, for removing backslashes in the keyword */
++	    keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
+ 	if (keyword_copy != NULL)
+ 	{
+ 	    syn_opt_arg.flags = 0;
+@@ -5126,7 +5148,8 @@
+ 			    (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
+ 		    SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
+ 		    SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
+-		    SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag = current_syn_inc_tag;
++		    SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag =
++							  current_syn_inc_tag;
+ 		    SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
+ 							ppp->pp_matchgroup_id;
+ #ifdef FEAT_CONCEAL
+@@ -5419,6 +5442,14 @@
+ 	curwin->w_s->b_syn_clusters.ga_growsize = 10;
+     }
+ 
++    len = curwin->w_s->b_syn_clusters.ga_len;
++    if (len >= MAX_CLUSTER_ID)
++    {
++	EMSG((char_u *)_("E848: Too many syntax clusters"));
++	vim_free(name);
++	return 0;
++    }
++
+     /*
+      * Make room for at least one other cluster entry.
+      */
+@@ -5427,7 +5458,6 @@
+ 	vim_free(name);
+ 	return 0;
+     }
+-    len = curwin->w_s->b_syn_clusters.ga_len;
+ 
+     vim_memset(&(SYN_CLSTR(curwin->w_s)[len]), 0, sizeof(syn_cluster_T));
+     SYN_CLSTR(curwin->w_s)[len].scl_name = name;
+@@ -5469,8 +5499,10 @@
+ 
+     if (rest != NULL)
+     {
+-	scl_id = syn_check_cluster(arg, (int)(group_name_end - arg))
+-							      - SYNID_CLUSTER;
++	scl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
++	if (scl_id == 0)
++	    return;
++	scl_id -= SYNID_CLUSTER;
+ 
+ 	for (;;)
+ 	{
+@@ -5509,7 +5541,7 @@
+ 	if (got_clstr)
+ 	{
+ 	    redraw_curbuf_later(SOME_VALID);
+-	    syn_stack_free_all(curwin->w_s);	/* Need to recompute all syntax. */
++	    syn_stack_free_all(curwin->w_s);	/* Need to recompute all. */
+ 	}
+     }
+ 
+@@ -6431,7 +6463,6 @@
+ 
+ #endif /* FEAT_SYN_HL */
+ 
+-
+ /**************************************
+  *  Highlighting stuff		      *
+  **************************************/
+@@ -7600,10 +7631,10 @@
+ 		/*
+ 		 * Copy characters from arg[] to buf[], translating <> codes.
+ 		 */
+-		for (p = arg, off = 0; off < 100 && *p; )
++		for (p = arg, off = 0; off < 100 - 6 && *p; )
+ 		{
+ 		    len = trans_special(&p, buf + off, FALSE);
+-		    if (len)		    /* recognized special char */
++		    if (len > 0)	    /* recognized special char */
+ 			off += len;
+ 		    else		    /* copy as normal char */
+ 			buf[off++] = *p++;
+@@ -8545,8 +8576,8 @@
+ 		if (iarg & hl_attr_table[i])
+ 		{
+ 		    if (buf[0] != NUL)
+-			STRCAT(buf, ",");
+-		    STRCAT(buf, hl_name_table[i]);
++			vim_strcat(buf, (char_u *)",", 100);
++		    vim_strcat(buf, (char_u *)hl_name_table[i], 100);
+ 		    iarg &= ~hl_attr_table[i];	    /* don't want "inverse" */
+ 		}
+ 	    }
+@@ -8965,6 +8996,13 @@
+ 	highlight_ga.ga_growsize = 10;
+     }
+ 
++    if (highlight_ga.ga_len >= MAX_HL_ID)
++    {
++	EMSG(_("E849: Too many highlight and syntax groups"));
++	vim_free(name);
++	return 0;
++    }
++
+     /*
+      * Make room for at least one other syntax_highlight entry.
+      */
+diff -Naur vim73.orig/src/tag.c vim73/src/tag.c
+--- vim73.orig/src/tag.c	2010-08-10 07:25:22.000000000 +0000
++++ vim73/src/tag.c	2011-05-17 09:38:29.902767943 +0000
+@@ -11,10 +11,6 @@
+  * Code to handle tags and the tag stack
+  */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for lseek(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ /*
+@@ -208,7 +204,7 @@
+     else
+     {
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	if (g_do_tagpreview)
++	if (g_do_tagpreview != 0)
+ 	    use_tagstack = FALSE;
+ 	else
+ #endif
+@@ -226,7 +222,7 @@
+ 		    ))
+ 	{
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	    if (g_do_tagpreview)
++	    if (g_do_tagpreview != 0)
+ 	    {
+ 		if (ptag_entry.tagname != NULL
+ 			&& STRCMP(ptag_entry.tagname, tag) == 0)
+@@ -282,7 +278,7 @@
+ 	{
+ 	    if (
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-		    g_do_tagpreview ? ptag_entry.tagname == NULL :
++		    g_do_tagpreview != 0 ? ptag_entry.tagname == NULL :
+ #endif
+ 		    tagstacklen == 0)
+ 	    {
+@@ -365,7 +361,7 @@
+ 	       )
+ 	    {
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-		if (g_do_tagpreview)
++		if (g_do_tagpreview != 0)
+ 		{
+ 		    cur_match = ptag_entry.cur_match;
+ 		    cur_fnum = ptag_entry.cur_fnum;
+@@ -403,7 +399,7 @@
+ 		prevtagstackidx = tagstackidx;
+ 
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-		if (g_do_tagpreview)
++		if (g_do_tagpreview != 0)
+ 		{
+ 		    cur_match = ptag_entry.cur_match;
+ 		    cur_fnum = ptag_entry.cur_fnum;
+@@ -441,7 +437,7 @@
+ 	}
+ 
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	if (g_do_tagpreview)
++	if (g_do_tagpreview != 0)
+ 	{
+ 	    if (type != DT_SELECT && type != DT_JUMP)
+ 	    {
+@@ -496,7 +492,7 @@
+ 	if (use_tagstack)
+ 	    name = tagstack[tagstackidx].tagname;
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	else if (g_do_tagpreview)
++	else if (g_do_tagpreview != 0)
+ 	    name = ptag_entry.tagname;
+ #endif
+ 	else
+@@ -624,7 +620,7 @@
+ 		    parse_match(matches[i], &tagp);
+ 		    if (!new_tag && (
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-				(g_do_tagpreview
++				(g_do_tagpreview != 0
+ 				 && i == ptag_entry.cur_match) ||
+ #endif
+ 				(use_tagstack
+@@ -779,17 +775,25 @@
+ 	    {
+ 		list_T	*list;
+ 		char_u	tag_name[128 + 1];
+-		char_u	fname[MAXPATHL + 1];
+-		char_u	cmd[CMDBUFFSIZE + 1];
++		char_u	*fname;
++		char_u	*cmd;
+ 
+ 		/*
+ 		 * Add the matching tags to the location list for the current
+ 		 * window.
+ 		 */
+ 
++		fname = alloc(MAXPATHL + 1);
++		cmd = alloc(CMDBUFFSIZE + 1);
+ 		list = list_alloc();
+-		if (list == NULL)
++		if (list == NULL || fname == NULL || cmd == NULL)
++		{
++		    vim_free(cmd);
++		    vim_free(fname);
++		    if (list != NULL)
++			list_free(list, TRUE);
+ 		    goto end_do_tag;
++		}
+ 
+ 		for (i = 0; i < num_matches; ++i)
+ 		{
+@@ -810,7 +814,7 @@
+ 		    p = tag_full_fname(&tagp);
+ 		    if (p == NULL)
+ 			continue;
+-		    STRCPY(fname, p);
++		    vim_strncpy(fname, p, MAXPATHL);
+ 		    vim_free(p);
+ 
+ 		    /*
+@@ -915,6 +919,8 @@
+ 		set_errorlist(curwin, list, ' ', IObuff);
+ 
+ 		list_free(list, TRUE);
++		vim_free(fname);
++		vim_free(cmd);
+ 
+ 		cur_match = 0;		/* Jump to the first tag */
+ 	    }
+@@ -966,7 +972,7 @@
+ 		++tagstackidx;
+ 	    }
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	    else if (g_do_tagpreview)
++	    else if (g_do_tagpreview != 0)
+ 	    {
+ 		ptag_entry.cur_match = cur_match;
+ 		ptag_entry.cur_fnum = cur_fnum;
+@@ -3114,7 +3120,7 @@
+ #endif
+ 
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-    if (g_do_tagpreview)
++    if (g_do_tagpreview != 0)
+     {
+ 	postponed_split = 0;	/* don't split again below */
+ 	curwin_save = curwin;	/* Save current window */
+@@ -3143,9 +3149,7 @@
+     {
+ 	win_split(postponed_split > 0 ? postponed_split : 0,
+ 						       postponed_split_flags);
+-# ifdef FEAT_SCROLLBIND
+-	curwin->w_p_scb = FALSE;
+-# endif
++	RESET_BINDING(curwin);
+     }
+ #endif
+ 
+@@ -3154,7 +3158,7 @@
+ 	/* A :ta from a help file will keep the b_help flag set.  For ":ptag"
+ 	 * we need to use the flag from the window where we came from. */
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	if (g_do_tagpreview)
++	if (g_do_tagpreview != 0)
+ 	    keep_help_flag = curwin_save->w_buffer->b_help;
+ 	else
+ #endif
+@@ -3328,7 +3332,8 @@
+ 	}
+ 
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+-	if (g_do_tagpreview && curwin != curwin_save && win_valid(curwin_save))
++	if (g_do_tagpreview != 0
++			   && curwin != curwin_save && win_valid(curwin_save))
+ 	{
+ 	    /* Return cursor to where we were */
+ 	    validate_cursor();
+@@ -3782,8 +3787,9 @@
+     char_u  *start;		/* start of the value */
+     char_u  *end;		/* after the value; can be NULL */
+ {
+-    char_u	buf[MAXPATHL];
++    char_u	*buf;
+     int		len = 0;
++    int		retval;
+ 
+     /* check that the field name doesn't exist yet */
+     if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+@@ -3796,6 +3802,9 @@
+ 	}
+ 	return FAIL;
+     }
++    buf = alloc(MAXPATHL);
++    if (buf == NULL)
++	return FAIL;
+     if (start != NULL)
+     {
+ 	if (end == NULL)
+@@ -3805,12 +3814,14 @@
+ 		--end;
+ 	}
+ 	len = (int)(end - start);
+-	if (len > (int)sizeof(buf) - 1)
+-	    len = sizeof(buf) - 1;
++	if (len > MAXPATHL - 1)
++	    len = MAXPATHL - 1;
+ 	vim_strncpy(buf, start, len);
+     }
+     buf[len] = NUL;
+-    return dict_add_nr_str(dict, field_name, 0L, buf);
++    retval = dict_add_nr_str(dict, field_name, 0L, buf);
++    vim_free(buf);
++    return retval;
+ }
+ 
+ /*
+diff -Naur vim73.orig/src/term.c vim73/src/term.c
+--- vim73.orig/src/term.c	2010-07-25 13:30:31.000000000 +0000
++++ vim73/src/term.c	2011-05-17 09:39:31.623917761 +0000
+@@ -52,7 +52,7 @@
+ 
+ /*
+  * Here are the builtin termcap entries.  They are not stored as complete
+- * Tcarr structures, as such a structure is too big.
++ * structures with all entries, as such a structure is too big.
+  *
+  * The entries are compact, therefore they normally are included even when
+  * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
+@@ -199,71 +199,6 @@
+ #endif
+ 
+ #ifndef NO_BUILTIN_TCAPS
+-# if defined(RISCOS) || defined(ALL_BUILTIN_TCAPS)
+-/*
+- * Default for the Acorn.
+- */
+-    {(int)KS_NAME,	"riscos"},
+-    {(int)KS_CL,	"\014"},		/* Cls and Home Cursor */
+-    {(int)KS_CM,	"\001%d\001%d\002"},	/* Position cursor */
+-
+-    {(int)KS_CCO,	"16"},			/* Allow 16 colors */
+-
+-    {(int)KS_CAF,	"\001%d\021"},		/* Set foreground colour */
+-    {(int)KS_CAB,	"\001%d\022"},		/* Set background colour */
+-
+-
+-    {(int)KS_ME,	"\004"},		/* Normal mode */
+-    {(int)KS_MR,	"\005"},		/* Reverse */
+-
+-    {(int)KS_VI,	"\016"},		/* Cursor invisible */
+-    {(int)KS_VE,	"\017"},		/* Cursor visible */
+-    {(int)KS_VS,	"\020"},		/* Cursor very visible */
+-
+-    {(int)KS_CS,	"\001%d\001%d\003"},	/* Set scroll region */
+-    {(int)KS_SR,	"\023"},		/* Scroll text down */
+-    {K_UP,		"\217"},
+-    {K_DOWN,		"\216"},
+-    {K_LEFT,		"\214"},
+-    {K_RIGHT,		"\215"},
+-    {K_S_UP,		"\237"},
+-    {K_S_DOWN,		"\236"},
+-    {K_S_LEFT,		"\234"},
+-    {K_S_RIGHT,		"\235"},
+-
+-    {K_F1,		"\201"},
+-    {K_F2,		"\202"},
+-    {K_F3,		"\203"},
+-    {K_F4,		"\204"},
+-    {K_F5,		"\205"},
+-    {K_F6,		"\206"},
+-    {K_F7,		"\207"},
+-    {K_F8,		"\210"},
+-    {K_F9,		"\211"},
+-    {K_F10,		"\312"},
+-    {K_F11,		"\313"},
+-    {K_F12,		"\314"},
+-    {K_S_F1,		"\221"},
+-    {K_S_F2,		"\222"},
+-    {K_S_F3,		"\223"},
+-    {K_S_F4,		"\224"},
+-    {K_S_F5,		"\225"},
+-    {K_S_F6,		"\226"},
+-    {K_S_F7,		"\227"},
+-    {K_S_F8,		"\230"},
+-    {K_S_F9,		"\231"},
+-    {K_S_F10,		"\332"},
+-    {K_S_F11,		"\333"},
+-    {K_S_F12,		"\334"},
+-    {K_BS,		"\010"},
+-    {K_INS,		"\315"},
+-    {K_DEL,		"\177"},
+-    {K_HOME,		"\036"},
+-    {K_END,		"\213"},
+-    {K_PAGEUP,		"\237"},
+-    {K_PAGEDOWN,	"\236"},
+-# endif	/* Acorn terminal */
+-
+ 
+ # if defined(AMIGA) || defined(ALL_BUILTIN_TCAPS)
+ /*
+@@ -1399,10 +1334,6 @@
+ /*
+  * DEFAULT_TERM is used, when no terminal is specified with -T option or $TERM.
+  */
+-#ifdef RISCOS
+-# define DEFAULT_TERM	(char_u *)"riscos"
+-#endif
+-
+ #ifdef AMIGA
+ # define DEFAULT_TERM	(char_u *)"amiga"
+ #endif
+@@ -3053,10 +2984,13 @@
+     int		old_Rows = Rows;
+     int		old_Columns = Columns;
+ 
+-    (void)ui_get_shellsize();
+-    check_shellsize();
+-    if (old_Rows != Rows || old_Columns != Columns)
+-	shell_resized();
++    if (!exiting)
++    {
++	(void)ui_get_shellsize();
++	check_shellsize();
++	if (old_Rows != Rows || old_Columns != Columns)
++	    shell_resized();
++    }
+ }
+ 
+ /*
+@@ -3828,6 +3762,7 @@
+  * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
+  * + max_offset].
+  * Return 0 for no match, -1 for partial match, > 0 for full match.
++ * Return KEYLEN_REMOVED when a key code was deleted.
+  * With a match, the match is removed, the replacement code is inserted in
+  * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+  * returned.
+@@ -3845,6 +3780,7 @@
+     int		slen = 0;	/* init for GCC */
+     int		modslen;
+     int		len;
++    int		retval = 0;
+     int		offset;
+     char_u	key_name[2];
+     int		modifiers;
+@@ -4940,6 +4876,13 @@
+ #endif
+ 		string[new_slen++] = key_name[1];
+ 	}
++	else if (new_slen == 0 && key_name[0] == KS_EXTRA
++						  && key_name[1] == KE_IGNORE)
++	{
++	    /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
++	     * to indicate what happened. */
++	    retval = KEYLEN_REMOVED;
++	}
+ 	else
+ 	{
+ 	    string[new_slen++] = K_SPECIAL;
+@@ -4976,7 +4919,7 @@
+ 						   (size_t)(buflen - offset));
+ 	    mch_memmove(buf + offset, string, (size_t)new_slen);
+ 	}
+-	return (len + extra + offset);
++	return retval == 0 ? (len + extra + offset) : retval;
+     }
+ 
+     return 0;			    /* no match found */
+diff -Naur vim73.orig/src/termlib.c vim73/src/termlib.c
+--- vim73.orig/src/termlib.c	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/termlib.c	2011-05-17 09:39:31.627917317 +0000
+@@ -13,7 +13,7 @@
+ #include "vim.h"
+ #include "termlib.pro"
+ 
+-#if !defined(AMIGA) && !defined(VMS) && !defined(MACOS) && !defined(RISCOS)
++#if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
+ # include <sgtty.h>
+ #endif
+ 
+diff -Naur vim73.orig/src/testdir/Make_amiga.mak vim73/src/testdir/Make_amiga.mak
+--- vim73.orig/src/testdir/Make_amiga.mak	2010-08-04 14:34:34.000000000 +0000
++++ vim73/src/testdir/Make_amiga.mak	2011-05-17 09:37:47.947424441 +0000
+@@ -27,7 +27,8 @@
+ 		test56.out test57.out test58.out test59.out test60.out \
+ 		test61.out test62.out test63.out test64.out test65.out \
+ 		test66.out test67.out test68.out test69.out test70.out \
+-		test71.out test72.out test73.out
++		test71.out test72.out test73.out test74.out test75.out \
++		test76.out test77.out
+ 
+ .SUFFIXES: .in .out
+ 
+@@ -120,3 +121,7 @@
+ test71.out: test71.in
+ test72.out: test72.in
+ test73.out: test73.in
++test74.out: test74.in
++test75.out: test75.in
++test76.out: test76.in
++test77.out: test77.in
+diff -Naur vim73.orig/src/testdir/Make_dos.mak vim73/src/testdir/Make_dos.mak
+--- vim73.orig/src/testdir/Make_dos.mak	2010-08-13 16:27:19.000000000 +0000
++++ vim73/src/testdir/Make_dos.mak	2011-05-17 09:37:47.947424441 +0000
+@@ -27,7 +27,8 @@
+ 		test30.out test31.out test32.out test33.out test34.out \
+ 		test37.out test38.out test39.out test40.out test41.out \
+ 		test42.out test52.out test65.out test66.out test67.out \
+-		test68.out test69.out test71.out test72.out test73.out
++		test68.out test69.out test71.out test72.out test73.out \
++		test74.out test75.out test76.out test77.out
+ 
+ SCRIPTS32 =	test50.out test70.out
+ 
+diff -Naur vim73.orig/src/testdir/Make_ming.mak vim73/src/testdir/Make_ming.mak
+--- vim73.orig/src/testdir/Make_ming.mak	2010-08-04 14:34:47.000000000 +0000
++++ vim73/src/testdir/Make_ming.mak	2011-05-17 09:37:47.947424441 +0000
+@@ -47,7 +47,8 @@
+ 		test30.out test31.out test32.out test33.out test34.out \
+ 		test37.out test38.out test39.out test40.out test41.out \
+ 		test42.out test52.out test65.out test66.out test67.out \
+-		test68.out test69.out test71.out test72.out test72.out
++		test68.out test69.out test71.out test72.out test73.out \
++		test74.out test75.out test76.out test77.out
+ 
+ SCRIPTS32 =	test50.out test70.out
+ 
+diff -Naur vim73.orig/src/testdir/Make_os2.mak vim73/src/testdir/Make_os2.mak
+--- vim73.orig/src/testdir/Make_os2.mak	2010-08-04 14:34:55.000000000 +0000
++++ vim73/src/testdir/Make_os2.mak	2011-05-17 09:37:47.947424441 +0000
+@@ -27,7 +27,8 @@
+ 		test56.out test57.out test58.out test59.out test60.out \
+ 		test61.out test62.out test63.out test64.out test65.out \
+ 		test66.out test67.out test68.out test69.out test70.out \
+-		test71.out test72.out test73.out
++		test71.out test72.out test73.out test74.out test75.out \
++		test76.out test77.out
+ 
+ .SUFFIXES: .in .out
+ 
+diff -Naur vim73.orig/src/testdir/Make_vms.mms vim73/src/testdir/Make_vms.mms
+--- vim73.orig/src/testdir/Make_vms.mms	2010-08-04 14:35:46.000000000 +0000
++++ vim73/src/testdir/Make_vms.mms	2011-05-17 09:38:50.816446812 +0000
+@@ -4,7 +4,7 @@
+ # Authors:	Zoltan Arpadffy, <arpadffy@polarhome.com>
+ #		Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
+ #
+-# Last change:  2010 Aug 04
++# Last change:  2011 Mar 03
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+@@ -74,7 +74,8 @@
+ 	 test56.out test57.out test60.out \
+ 	 test61.out test62.out test63.out test64.out test65.out \
+ 	 test66.out test67.out test68.out test69.out \
+-	 test71.out test72.out
++	 test71.out test72.out test74.out test75.out test76.out \
++	 test77.out
+ 
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+diff -Naur vim73.orig/src/testdir/Makefile vim73/src/testdir/Makefile
+--- vim73.orig/src/testdir/Makefile	2010-08-15 12:56:30.000000000 +0000
++++ vim73/src/testdir/Makefile	2011-05-17 09:37:47.947424441 +0000
+@@ -10,6 +10,7 @@
+ #   This will make testing about 10 times as slow.
+ # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
+ 
++
+ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
+ 		test7.out test8.out test9.out test10.out test11.out \
+ 		test12.out  test13.out test14.out test15.out test17.out \
+@@ -23,7 +24,8 @@
+ 		test54.out test55.out test56.out test57.out test58.out \
+ 		test59.out test60.out test61.out test62.out test63.out \
+ 		test64.out test65.out test66.out test67.out test68.out \
+-		test69.out test70.out test71.out test72.out test73.out
++		test69.out test70.out test71.out test72.out test73.out \
++		test74.out test75.out test76.out test77.out
+ 
+ SCRIPTS_GUI = test16.out
+ 
+@@ -44,7 +46,7 @@
+ $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
+ 
+ clean:
+-	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
++	-rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
+ 
+ test1.out: test1.in
+ 	-rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
+@@ -69,7 +71,7 @@
+ 		  fi \
+ 		else echo $* NO OUTPUT >>test.log; \
+ 		fi"
+-	-rm -rf X* test.ok viminfo
++#	-rm -rf X* test.ok viminfo
+ 
+ test49.out: test49.vim
+ 
+diff -Naur vim73.orig/src/testdir/main.aap vim73/src/testdir/main.aap
+--- vim73.orig/src/testdir/main.aap	2010-07-30 20:03:23.000000000 +0000
++++ vim73/src/testdir/main.aap	2011-05-17 09:33:30.879956357 +0000
+@@ -13,7 +13,7 @@
+ 		test33.out test34.out test35.out test36.out test37.out
+ 		test38.out test39.out test40.out test41.out test42.out
+ 		test43.out test44.out test45.out test46.out test47.out
+-		test48.out test49.out
++		test48.out test49.out test74.out
+ 
+ ScriptsGUI = test16.out
+ 
+diff -Naur vim73.orig/src/testdir/test3.in vim73/src/testdir/test3.in
+--- vim73.orig/src/testdir/test3.in	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test3.in	2011-05-17 09:39:13.657911728 +0000
+@@ -1315,6 +1315,76 @@
+ }
+ 
+ STARTTEST
++:set cino=(0,ts
++2kdd=][
++ENDTEST
++
++void func(int a
++#if defined(FOO)
++		  , int b
++		  , int c
++#endif
++		 )
++{
++}
++
++STARTTEST
++:set cino=(0
++2kdd=][
++ENDTEST
++
++void
++func(int a
++#if defined(FOO)
++		  , int b
++		  , int c
++#endif
++		 )
++{
++}
++
++STARTTEST
++:set cino&
++2kdd=][
++ENDTEST
++
++void func(void)
++{
++	if(x==y)
++		if(y==z)
++			foo=1;
++		else { bar=1;
++			baz=2;
++		}
++	printf("Foo!\n");
++}
++
++STARTTEST
++:set cino&
++2kdd=][
++ENDTEST
++
++void func(void)
++{
++	cout << "a"
++	<< "b"
++	<< ") :"
++	<< "c";
++}
++
++STARTTEST
++:set com=s1:/*,m:*,ex:*/
++]]3jofoo();
++ENDTEST
++
++void func(void)
++{
++	/*
++	 * This is a comment.
++	 */
++}
++
++STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+diff -Naur vim73.orig/src/testdir/test3.ok vim73/src/testdir/test3.ok
+--- vim73.orig/src/testdir/test3.ok	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test3.ok	2011-05-17 09:39:13.657911728 +0000
+@@ -1183,3 +1183,54 @@
+ 		foo;
+ }
+ 
++
++void func(int a
++#if defined(FOO)
++		  , int b
++		  , int c
++#endif
++		 )
++{
++}
++
++
++	void
++func(int a
++#if defined(FOO)
++	 , int b
++	 , int c
++#endif
++	)
++{
++}
++
++
++void func(void)
++{
++	if(x==y)
++		if(y==z)
++			foo=1;
++		else { bar=1;
++			baz=2;
++		}
++	printf("Foo!\n");
++}
++
++
++void func(void)
++{
++	cout << "a"
++		<< "b"
++		<< ") :"
++		<< "c";
++}
++
++
++void func(void)
++{
++	/*
++	 * This is a comment.
++	 */
++	foo();
++}
++
+diff -Naur vim73.orig/src/testdir/test49.vim vim73/src/testdir/test49.vim
+--- vim73.orig/src/testdir/test49.vim	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test49.vim	2011-05-17 09:32:57.239690189 +0000
+@@ -1,6 +1,6 @@
+ " Vim script language tests
+ " Author:	Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
+-" Last Change:	2006 Apr 28
++" Last Change:	2010 Sep 29
+ 
+ "-------------------------------------------------------------------------------
+ " Test environment							    {{{1
+@@ -8711,7 +8711,7 @@
+ 		endif
+ 	    else
+ 		if cmd == "let"
+-		    let match = MATCH(0, thrmsg, 'E106', "Unknown variable")
++		    let match = MATCH(0, thrmsg, 'E121', "Undefined variable")
+ 		elseif cmd == "unlet"
+ 		    let match = MATCH(0, thrmsg, 'E108', "No such variable")
+ 		endif
+diff -Naur vim73.orig/src/testdir/test55.in vim73/src/testdir/test55.in
+--- vim73.orig/src/testdir/test55.in	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test55.in	2011-05-17 09:34:28.453566145 +0000
+@@ -342,7 +342,18 @@
+ :$put =(d == d)
+ :$put =(l != deepcopy(l))
+ :$put =(d != deepcopy(d))
++:"
++:" compare complex recursively linked list and dict
++:let l = []
++:call add(l, l)
++:let dict4 = {"l": l}
++:call add(dict4.l, dict4)
++:let lcopy = deepcopy(l)
++:let dict4copy = deepcopy(dict4)
++:$put =(l == lcopy)
++:$put =(dict4 == dict4copy)
+ :endfun
++:"
+ :call Test(1, 2, [3, 4], {5: 6})  " This may take a while
+ :"
+ :delfunc Test
+diff -Naur vim73.orig/src/testdir/test55.ok vim73/src/testdir/test55.ok
+--- vim73.orig/src/testdir/test55.ok	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test55.ok	2011-05-17 09:34:28.457565701 +0000
+@@ -109,3 +109,5 @@
+ 1
+ 0
+ 0
++1
++1
+diff -Naur vim73.orig/src/testdir/test57.in vim73/src/testdir/test57.in
+--- vim73.orig/src/testdir/test57.in	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test57.in	2011-05-17 09:33:28.676200957 +0000
+@@ -53,15 +53,19 @@
+ t02: numeric
+ abc
+ ab
+-a
+ a321
+ a123
+ a122
++a
++x-22
+ b321
+ b123
++
+ c123d
++-24
+  123b
+ c321d
++0
+ b322b
+ b321
+ b321b
+diff -Naur vim73.orig/src/testdir/test57.ok vim73/src/testdir/test57.ok
+--- vim73.orig/src/testdir/test57.ok	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test57.ok	2011-05-17 09:33:28.676200957 +0000
+@@ -21,6 +21,10 @@
+ a
+ 
+ 
++
++-24
++x-22
++0
+ a122
+ a123
+ b123
+diff -Naur vim73.orig/src/testdir/test61.in vim73/src/testdir/test61.in
+--- vim73.orig/src/testdir/test61.in	2010-06-27 03:07:58.000000000 +0000
++++ vim73/src/testdir/test61.in	2011-05-17 09:32:33.558318670 +0000
+@@ -4,6 +4,10 @@
+ Also tests :earlier and :later.
+ 
+ STARTTEST
++:echo undotree().entries
++ENDTEST
++
++STARTTEST
+ :" Delete three characters and undo
+ Gx:set ul=100
+ x:set ul=100
+diff -Naur vim73.orig/src/testdir/test68.in vim73/src/testdir/test68.in
+--- vim73.orig/src/testdir/test68.in	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test68.in	2011-05-17 09:33:08.538436105 +0000
+@@ -51,6 +51,17 @@
+ }
+ 
+ STARTTEST
++/^{/+2
++:set tw& fo=a
++I^^
++ENDTEST
++
++{
++   1aa
++   2bb
++}
++
++STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/^Results/,$wq! test.out
+ ENDTEST
+diff -Naur vim73.orig/src/testdir/test68.ok vim73/src/testdir/test68.ok
+--- vim73.orig/src/testdir/test68.ok	2010-05-15 11:04:10.000000000 +0000
++++ vim73/src/testdir/test68.ok	2011-05-17 09:33:08.538436105 +0000
+@@ -33,3 +33,6 @@
+ #a b
+ }
+ 
++
++{ 1aa ^^2bb }
++
+diff -Naur vim73.orig/src/testdir/test74.in vim73/src/testdir/test74.in
+--- vim73.orig/src/testdir/test74.in	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test74.in	2011-05-17 09:33:30.879956357 +0000
+@@ -0,0 +1,36 @@
++" Tests for storing global variables in the .viminfo file vim: set ft=vim:
++
++STARTTEST
++:so small.vim
++:" Do all test in a separate window to avoid E211 when we recursively
++:" delete the Xfind directory during cleanup
++:"
++:" This will cause a few errors, do it silently.
++:set visualbell
++:set nocp viminfo+=!,nviminfo
++:let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}
++:" store a really long list, so line wrapping will occur in viminfo file
++:let MY_GLOBAL_LIST=range(1,100)
++:wv! Xviminfo
++:unlet MY_GLOBAL_DICT
++:unlet MY_GLOBAL_LIST
++:rv! Xviminfo
++:call delete('Xviminfo')
++:if exists("MY_GLOBAL_DICT")
++:redir >> test.out
++:echo MY_GLOBAL_DICT
++:redir end
++:endif
++:if exists("MY_GLOBAL_LIST")
++:redir >> test.out
++:echo MY_GLOBAL_LIST
++:redir end
++:endif
++:redir >> test.out
++:echo "foobar"
++:redir end
++:endif
++:qa!
++ENDTEST
++
++eof
+diff -Naur vim73.orig/src/testdir/test74.ok vim73/src/testdir/test74.ok
+--- vim73.orig/src/testdir/test74.ok	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test74.ok	2011-05-17 09:33:30.879956357 +0000
+@@ -0,0 +1,5 @@
++
++{'foo': 1, 'longvarible': 1000, 'bar': 0}
++[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
++
++foobar
+diff -Naur vim73.orig/src/testdir/test75.in vim73/src/testdir/test75.in
+--- vim73.orig/src/testdir/test75.in	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test75.in	2011-05-17 09:33:35.471446735 +0000
+@@ -0,0 +1,16 @@
++" Tests for functions.
++
++STARTTEST
++:so small.vim
++:" Test maparg() with a string result
++:map foo<C-V> is<F4>foo
++:vnoremap <script> <buffer> <expr> <silent> bar isbar
++:call append('$', maparg('foo<C-V>'))
++:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
++:call append('$', string(maparg('bar', '', 0, 1)))
++:"
++:/^eof/+1,$w! test.out
++:qa!
++ENDTEST
++
++eof
+diff -Naur vim73.orig/src/testdir/test75.ok vim73/src/testdir/test75.ok
+--- vim73.orig/src/testdir/test75.ok	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test75.ok	2011-05-17 09:33:35.471446735 +0000
+@@ -0,0 +1,3 @@
++is<F4>foo
++{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
++{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
+diff -Naur vim73.orig/src/testdir/test76.in vim73/src/testdir/test76.in
+--- vim73.orig/src/testdir/test76.in	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test76.in	2011-05-17 09:34:21.862297719 +0000
+@@ -0,0 +1,46 @@
++Tests for completefunc/omnifunc. vim: set ft=vim :
++
++STARTTEST
++:"Test that nothing happens if the 'completefunc' opens
++:"a new window (no completion, no crash)
++:so small.vim
++:function! DummyCompleteOne(findstart, base)
++:  if a:findstart
++:    return 0
++:  else
++:    wincmd n
++:    return ['onedef', 'oneDEF']
++:  endif
++:endfunction
++:setlocal completefunc=DummyCompleteOne
++/^one
++A:q!
++:function! DummyCompleteTwo(findstart, base)
++:  if a:findstart
++:    wincmd n
++:    return 0
++:  else
++:    return ['twodef', 'twoDEF']
++:  endif
++:endfunction
++:setlocal completefunc=DummyCompleteTwo
++/^two
++A:q!
++:"Test that 'completefunc' works when it's OK.
++:function! DummyCompleteThree(findstart, base)
++:  if a:findstart
++:    return 0
++:  else
++:    return ['threedef', 'threeDEF']
++:  endif
++:endfunction
++:setlocal completefunc=DummyCompleteThree
++/^three
++A:/^+++/,/^three/w! test.out
++:qa!
++ENDTEST
++
+++++
++one
++two
++three
+diff -Naur vim73.orig/src/testdir/test76.ok vim73/src/testdir/test76.ok
+--- vim73.orig/src/testdir/test76.ok	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test76.ok	2011-05-17 09:34:21.862297719 +0000
+@@ -0,0 +1,4 @@
+++++
++
++two
++threeDEF
+diff -Naur vim73.orig/src/testdir/test77.in vim73/src/testdir/test77.in
+--- vim73.orig/src/testdir/test77.in	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test77.in	2011-05-17 09:37:47.947424441 +0000
+@@ -0,0 +1,27 @@
++Inserts 2 million lines with consecutive integers starting from 1
++(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
++and writes its cksum to test.out.
++
++We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
++up the lines the checksum would differ.
++
++cksum is part of POSIX and so should be available on most Unixes.
++If it isn't available then the test will be skipped.
++
++STARTTEST
++:so small.vim
++:if !executable("cksum")
++: e! test.ok
++: w! test.out
++: qa!
++:endif
++:set fileformat=unix undolevels=-1
++ggdG
++:let i = 1
++:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
++ggdd
++:w! Xtest
++:!cksum Xtest > test.out
++:qa!
++ENDTEST
++
+diff -Naur vim73.orig/src/testdir/test77.ok vim73/src/testdir/test77.ok
+--- vim73.orig/src/testdir/test77.ok	1970-01-01 00:00:00.000000000 +0000
++++ vim73/src/testdir/test77.ok	2011-05-17 09:37:47.947424441 +0000
+@@ -0,0 +1 @@
++3678979763 14888896 Xtest
+diff -Naur vim73.orig/src/ui.c vim73/src/ui.c
+--- vim73.orig/src/ui.c	2010-08-08 13:17:30.000000000 +0000
++++ vim73/src/ui.c	2011-05-17 09:32:48.052709885 +0000
+@@ -469,7 +469,7 @@
+      */
+ #ifdef FEAT_X11
+     /* Always own the selection, we might have lost it without being
+-     * notified. */
++     * notified, e.g. during a ":sh" command. */
+     if (cbd->available)
+     {
+ 	int was_owned = cbd->owned;
+@@ -1944,10 +1944,9 @@
+  */
+ 
+ static Boolean	clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
+-
+ static void  clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
+-
+ static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
++static void  clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
+ 
+ /*
+  * Property callback to get a timestamp for XtOwnSelection.
+@@ -1985,8 +1984,17 @@
+ 	return;
+ 
+     /* Get the selection, using the event timestamp. */
+-    XtOwnSelection(w, xproperty->atom, xproperty->time,
+-	    clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb, NULL);
++    if (XtOwnSelection(w, xproperty->atom, xproperty->time,
++	    clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
++	    NULL) == OK)
++    {
++	/* Set the "owned" flag now, there may have been a call to
++	 * lose_ownership_cb in between. */
++	if (xproperty->atom == clip_plus.sel_atom)
++	    clip_plus.owned = TRUE;
++	else
++	    clip_star.owned = TRUE;
++    }
+ }
+ 
+     void
+@@ -1997,8 +2005,6 @@
+ 	    /*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
+ }
+ 
+-static void  clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
+-
+     static void
+ clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
+ 			      format)
+@@ -2336,7 +2342,7 @@
+ 
+     void
+ clip_x11_lose_selection(myShell, cbd)
+-    Widget	myShell;
++    Widget		myShell;
+     VimClipboard	*cbd;
+ {
+     XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
+@@ -2344,14 +2350,29 @@
+ 
+     int
+ clip_x11_own_selection(myShell, cbd)
+-    Widget	myShell;
++    Widget		myShell;
+     VimClipboard	*cbd;
+ {
+-    /* Get the time by a zero-length append, clip_x11_timestamp_cb will be
+-     * called with the current timestamp.  */
+-    if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell), cbd->sel_atom,
+-	    timestamp_atom, 32, PropModeAppend, NULL, 0))
++    /* When using the GUI we have proper timestamps, use the one of the last
++     * event.  When in the console we don't get events (the terminal gets
++     * them), Get the time by a zero-length append, clip_x11_timestamp_cb will
++     * be called with the current timestamp.  */
++#ifdef FEAT_GUI
++    if (gui.in_use)
++    {
++	if (XtOwnSelection(myShell, cbd->sel_atom,
++	       XtLastTimestampProcessed(XtDisplay(myShell)),
++	       clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
++	       NULL) == False)
+ 	return FAIL;
++    }
++    else
++#endif
++    {
++	if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
++		  cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
++	return FAIL;
++    }
+     /* Flush is required in a terminal as nothing else is doing it. */
+     XFlush(XtDisplay(myShell));
+     return OK;
+diff -Naur vim73.orig/src/undo.c vim73/src/undo.c
+--- vim73.orig/src/undo.c	2010-08-07 10:48:15.000000000 +0000
++++ vim73/src/undo.c	2011-05-17 09:36:25.592564861 +0000
+@@ -81,10 +81,6 @@
+ #define UH_MAGIC 0x18dade	/* value for uh_magic when in use */
+ #define UE_MAGIC 0xabc123	/* value for ue_magic when in use */
+ 
+-#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
+-# include "vimio.h"	/* for vim_read(), must be before vim.h */
+-#endif
+-
+ #include "vim.h"
+ 
+ static void u_unch_branch __ARGS((u_header_T *uhp));
+@@ -1386,7 +1382,7 @@
+ 		char_u	mbuf[UF_START_MAGIC_LEN];
+ 		int	len;
+ 
+-		len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
++		len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
+ 		close(fd);
+ 		if (len < UF_START_MAGIC_LEN
+ 		      || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
+@@ -1861,6 +1857,7 @@
+     curbuf->b_u_seq_cur = seq_cur;
+     curbuf->b_u_time_cur = seq_time;
+     curbuf->b_u_save_nr_last = last_save_nr;
++    curbuf->b_u_save_nr_cur = last_save_nr;
+ 
+     curbuf->b_u_synced = TRUE;
+     vim_free(uhp_table);
+@@ -2794,7 +2791,7 @@
+ 								uhp->uh_time);
+ 	    if (uhp->uh_save_nr > 0)
+ 	    {
+-		while (STRLEN(IObuff) < 32)
++		while (STRLEN(IObuff) < 33)
+ 		    STRCAT(IObuff, " ");
+ 		vim_snprintf_add((char *)IObuff, IOSIZE,
+ 						   "  %3ld", uhp->uh_save_nr);
+@@ -2849,7 +2846,7 @@
+ 	sort_strings((char_u **)ga.ga_data, ga.ga_len);
+ 
+ 	msg_start();
+-	msg_puts_attr((char_u *)_("number changes  time            saved"),
++	msg_puts_attr((char_u *)_("number changes  when               saved"),
+ 							      hl_attr(HLF_T));
+ 	for (i = 0; i < ga.ga_len && !got_int; ++i)
+ 	{
+@@ -2879,7 +2876,15 @@
+     if (time(NULL) - tt >= 100)
+     {
+ 	curtime = localtime(&tt);
+-	(void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
++	if (time(NULL) - tt < (60L * 60L * 12L))
++	    /* within 12 hours */
++	    (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
++	else if (time(NULL) - tt < (60L * 60L * 24L * 180L))
++	    /* within 6 months */
++	    (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
++	else
++	    /* long ago */
++	    (void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
+     }
+     else
+ #endif
+@@ -3299,7 +3304,7 @@
+ #ifdef FEAT_QUICKFIX
+ 	    !bt_dontwrite(buf) &&
+ #endif
+-	    (buf->b_changed || file_ff_differs(buf));
++	    (buf->b_changed || file_ff_differs(buf, TRUE));
+ }
+ 
+     int
+@@ -3309,7 +3314,7 @@
+ #ifdef FEAT_QUICKFIX
+ 	!bt_dontwrite(curbuf) &&
+ #endif
+-	(curbuf->b_changed || file_ff_differs(curbuf));
++	(curbuf->b_changed || file_ff_differs(curbuf, TRUE));
+ }
+ 
+ #if defined(FEAT_EVAL) || defined(PROTO)
+diff -Naur vim73.orig/src/version.c vim73/src/version.c
+--- vim73.orig/src/version.c	2010-08-01 13:45:48.000000000 +0000
++++ vim73/src/version.c	2011-05-17 09:39:36.371390862 +0000
+@@ -715,6 +715,384 @@
+ static int included_patches[] =
+ {   /* Add new patch number below this line */
+ /**/
++    189,
++/**/
++    188,
++/**/
++    187,
++/**/
++    186,
++/**/
++    185,
++/**/
++    184,
++/**/
++    183,
++/**/
++    182,
++/**/
++    181,
++/**/
++    180,
++/**/
++    179,
++/**/
++    178,
++/**/
++    177,
++/**/
++    176,
++/**/
++    175,
++/**/
++    174,
++/**/
++    173,
++/**/
++    172,
++/**/
++    171,
++/**/
++    170,
++/**/
++    169,
++/**/
++    168,
++/**/
++    167,
++/**/
++    166,
++/**/
++    165,
++/**/
++    164,
++/**/
++    163,
++/**/
++    162,
++/**/
++    161,
++/**/
++    160,
++/**/
++    159,
++/**/
++    158,
++/**/
++    157,
++/**/
++    156,
++/**/
++    155,
++/**/
++    154,
++/**/
++    153,
++/**/
++    152,
++/**/
++    151,
++/**/
++    150,
++/**/
++    149,
++/**/
++    148,
++/**/
++    147,
++/**/
++    146,
++/**/
++    145,
++/**/
++    144,
++/**/
++    143,
++/**/
++    142,
++/**/
++    141,
++/**/
++    140,
++/**/
++    139,
++/**/
++    138,
++/**/
++    137,
++/**/
++    136,
++/**/
++    135,
++/**/
++    134,
++/**/
++    133,
++/**/
++    132,
++/**/
++    131,
++/**/
++    130,
++/**/
++    129,
++/**/
++    128,
++/**/
++    127,
++/**/
++    126,
++/**/
++    125,
++/**/
++    124,
++/**/
++    123,
++/**/
++    122,
++/**/
++    121,
++/**/
++    120,
++/**/
++    119,
++/**/
++    118,
++/**/
++    117,
++/**/
++    116,
++/**/
++    115,
++/**/
++    114,
++/**/
++    113,
++/**/
++    112,
++/**/
++    111,
++/**/
++    110,
++/**/
++    109,
++/**/
++    108,
++/**/
++    107,
++/**/
++    106,
++/**/
++    105,
++/**/
++    104,
++/**/
++    103,
++/**/
++    102,
++/**/
++    101,
++/**/
++    100,
++/**/
++    99,
++/**/
++    98,
++/**/
++    97,
++/**/
++    96,
++/**/
++    95,
++/**/
++    94,
++/**/
++    93,
++/**/
++    92,
++/**/
++    91,
++/**/
++    90,
++/**/
++    89,
++/**/
++    88,
++/**/
++    87,
++/**/
++    86,
++/**/
++    85,
++/**/
++    84,
++/**/
++    83,
++/**/
++    82,
++/**/
++    81,
++/**/
++    80,
++/**/
++    79,
++/**/
++    78,
++/**/
++    77,
++/**/
++    76,
++/**/
++    75,
++/**/
++    74,
++/**/
++    73,
++/**/
++    72,
++/**/
++    71,
++/**/
++    70,
++/**/
++    69,
++/**/
++    68,
++/**/
++    67,
++/**/
++    66,
++/**/
++    65,
++/**/
++    64,
++/**/
++    63,
++/**/
++    62,
++/**/
++    61,
++/**/
++    60,
++/**/
++    59,
++/**/
++    58,
++/**/
++    57,
++/**/
++    56,
++/**/
++    55,
++/**/
++    54,
++/**/
++    53,
++/**/
++    52,
++/**/
++    51,
++/**/
++    50,
++/**/
++    49,
++/**/
++    48,
++/**/
++    47,
++/**/
++    46,
++/**/
++    45,
++/**/
++    44,
++/**/
++    43,
++/**/
++    42,
++/**/
++    41,
++/**/
++    40,
++/**/
++    39,
++/**/
++    38,
++/**/
++    37,
++/**/
++    36,
++/**/
++    35,
++/**/
++    34,
++/**/
++    33,
++/**/
++    32,
++/**/
++    31,
++/**/
++    30,
++/**/
++    29,
++/**/
++    28,
++/**/
++    27,
++/**/
++    26,
++/**/
++    25,
++/**/
++    24,
++/**/
++    23,
++/**/
++    22,
++/**/
++    21,
++/**/
++    20,
++/**/
++    19,
++/**/
++    18,
++/**/
++    17,
++/**/
++    16,
++/**/
++    15,
++/**/
++    14,
++/**/
++    13,
++/**/
++    12,
++/**/
++    11,
++/**/
++    10,
++/**/
++    9,
++/**/
++    8,
++/**/
++    7,
++/**/
++    6,
++/**/
++    5,
++/**/
++    4,
++/**/
++    3,
++/**/
++    2,
++/**/
++    1,
++/**/
+     0
+ };
+ 
+@@ -833,9 +1211,6 @@
+ # endif
+ #endif
+ 
+-#ifdef RISCOS
+-    MSG_PUTS(_("\nRISC OS version"));
+-#endif
+ #ifdef VMS
+     MSG_PUTS(_("\nOpenVMS version"));
+ # ifdef HAVE_PATHDEF
+@@ -1262,9 +1637,9 @@
+ 	if (highest_patch())
+ 	{
+ 	    /* Check for 9.9x or 9.9xx, alpha/beta version */
+-	    if (isalpha((int)mediumVersion[3]))
++	    if (isalpha((int)vers[3]))
+ 	    {
+-		if (isalpha((int)mediumVersion[4]))
++		if (isalpha((int)vers[4]))
+ 		    sprintf((char *)vers + 5, ".%d%s", highest_patch(),
+ 							   mediumVersion + 5);
+ 		else
+diff -Naur vim73.orig/src/vim.h vim73/src/vim.h
+--- vim73.orig/src/vim.h	2010-07-29 18:46:39.000000000 +0000
++++ vim73/src/vim.h	2011-05-17 09:39:31.627917317 +0000
+@@ -27,6 +27,11 @@
+ # endif
+ #endif
+ 
++#if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64) \
++	|| defined(__EMX__)
++# include "vimio.h"
++#endif
++
+ /* ============ the header file puzzle (ca. 50-100 pieces) ========= */
+ 
+ #ifdef HAVE_CONFIG_H	/* GNU autoconf (or something else) was here */
+@@ -179,9 +184,6 @@
+ #  define SIZEOF_INT 2
+ # endif
+ #endif
+-#ifdef RISCOS
+-# define SIZEOF_INT 4
+-#endif
+ 
+ 
+ #include "feature.h"	/* #defines for optionals and features */
+@@ -192,8 +194,8 @@
+ #endif
+ 
+ #ifdef NO_X11_INCLUDES
+-    /* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
+-     * Disable all X11 related things to avoid conflicts. */
++    /* In os_mac_conv.c and os_macosx.m NO_X11_INCLUDES is defined to avoid
++     * X11 headers.  Disable all X11 related things to avoid conflicts. */
+ # ifdef FEAT_X11
+ #  undef FEAT_X11
+ # endif
+@@ -335,10 +337,6 @@
+ # include "os_mac.h"
+ #endif
+ 
+-#ifdef RISCOS
+-# include "os_riscos.h"
+-#endif
+-
+ #ifdef __QNX__
+ # include "os_qnx.h"
+ #endif
+@@ -475,6 +473,11 @@
+ # include <sys/stat.h>
+ #endif
+ 
++#if defined(HAVE_ERRNO_H) || defined(DJGPP) || defined(WIN16) \
++	|| defined(WIN32) || defined(_WIN64) || defined(__EMX__)
++# include <errno.h>
++#endif
++
+ /*
+  * Allow other (non-unix) systems to configure themselves now
+  * These are also in os_unix.h, because osdef.sh needs them there.
+@@ -798,6 +801,7 @@
+ #define WILD_KEEP_ALL		32
+ #define WILD_SILENT		64
+ #define WILD_ESCAPE		128
++#define WILD_ICASE		256
+ 
+ /* Flags for expand_wildcards() */
+ #define EW_DIR		0x01	/* include directory names */
+@@ -808,6 +812,7 @@
+ #define EW_SILENT	0x20	/* don't print "1 returned" from shell */
+ #define EW_EXEC		0x40	/* executable files */
+ #define EW_PATH		0x80	/* search in 'path' too */
++#define EW_ICASE	0x100	/* ignore case */
+ /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+  * is used when executing commands and EW_SILENT for interactive expanding. */
+ 
+@@ -1423,6 +1428,8 @@
+ 
+ #define IOSIZE	   (1024+1)	/* file i/o and sprintf buffer size */
+ 
++#define DIALOG_MSG_SIZE 1000	/* buffer size for dialog_msg() */
++
+ #ifdef FEAT_MBYTE
+ # define MSG_BUF_LEN 480	/* length of buffer for small messages */
+ # define MSG_BUF_CLEN  (MSG_BUF_LEN / 6)    /* cell length (worst case: utf-8
+@@ -1640,6 +1647,11 @@
+ # define USE_INPUT_BUF
+ #endif
+ 
++#ifndef EINTR
++# define read_eintr(fd, buf, count) vim_read((fd), (buf), (count))
++# define write_eintr(fd, buf, count) vim_write((fd), (buf), (count))
++#endif
++
+ #ifdef MSWIN
+ /* On MS-Windows the third argument isn't size_t.  This matters for Win64,
+  * where sizeof(size_t)==8, not 4 */
+@@ -1842,7 +1854,8 @@
+ #define VV_OP		52
+ #define VV_SEARCHFORWARD 53
+ #define VV_OLDFILES	54
+-#define VV_LEN		55	/* number of v: vars */
++#define VV_WINDOWID	55
++#define VV_LEN		56	/* number of v: vars */
+ 
+ #ifdef FEAT_CLIPBOARD
+ 
+@@ -2193,4 +2206,14 @@
+ #define MSCR_LEFT	-1
+ #define MSCR_RIGHT	-2
+ 
++#define KEYLEN_PART_KEY -1	/* keylen value for incomplete key-code */
++#define KEYLEN_PART_MAP -2	/* keylen value for incomplete mapping */
++#define KEYLEN_REMOVED  9999	/* keylen value for removed sequence */
++
++/* Return values from win32_fileinfo(). */
++#define FILEINFO_OK	     0
++#define FILEINFO_ENC_FAIL    1	/* enc_to_utf16() failed */
++#define FILEINFO_READ_FAIL   2	/* CreateFile() failed */
++#define FILEINFO_INFO_FAIL   3	/* GetFileInformationByHandle() failed */
++
+ #endif /* VIM__H */
+diff -Naur vim73.orig/src/window.c vim73/src/window.c
+--- vim73.orig/src/window.c	2010-07-20 20:23:49.000000000 +0000
++++ vim73/src/window.c	2011-05-17 09:36:07.634558005 +0000
+@@ -70,7 +70,8 @@
+ #endif /* FEAT_WINDOWS */
+ 
+ static win_T *win_alloc __ARGS((win_T *after, int hidden));
+-static void win_new_height __ARGS((win_T *, int));
++static void set_fraction __ARGS((win_T *wp));
++static void win_new_height __ARGS((win_T *wp, int height));
+ 
+ #define URL_SLASH	1		/* path_is_url() has found "://" */
+ #define URL_BACKSLASH	2		/* path_is_url() has found ":\\" */
+@@ -525,9 +526,7 @@
+ 		    setpcmark();
+ 		    if (win_split(0, 0) == OK)
+ 		    {
+-# ifdef FEAT_SCROLLBIND
+-			curwin->w_p_scb = FALSE;
+-# endif
++			RESET_BINDING(curwin);
+ 			(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
+ 							   ECMD_HIDE, NULL);
+ 			if (nchar == 'F' && lnum >= 0)
+@@ -985,10 +984,17 @@
+     else
+ 	frame_append(curfrp, frp);
+ 
++    /* Set w_fraction now so that the cursor keeps the same relative
++     * vertical position. */
++    if (oldwin->w_height > 0)
++	set_fraction(oldwin);
++    wp->w_fraction = oldwin->w_fraction;
++
+ #ifdef FEAT_VERTSPLIT
+     if (flags & WSP_VERT)
+     {
+ 	wp->w_p_scr = curwin->w_p_scr;
++
+ 	if (need_status)
+ 	{
+ 	    win_new_height(oldwin, oldwin->w_height - 1);
+@@ -3277,9 +3283,7 @@
+     if (aucmd_win != NULL)
+     {
+ 	win_init_some(aucmd_win, curwin);
+-# ifdef FEAT_SCROLLBIND
+-	aucmd_win->w_p_scb = FALSE;
+-# endif
++	RESET_BINDING(aucmd_win);
+ 	new_frame(aucmd_win);
+     }
+ }
+@@ -3320,10 +3324,8 @@
+ 	/* First window in new tab page, initialize it from "oldwin". */
+ 	win_init(curwin, oldwin, 0);
+ 
+-# ifdef FEAT_SCROLLBIND
+-	/* We don't want scroll-binding in the first window. */
+-	curwin->w_p_scb = FALSE;
+-# endif
++	/* We don't want cursor- and scroll-binding in the first window. */
++	RESET_BINDING(curwin);
+     }
+ #endif
+ 
+@@ -5459,6 +5461,19 @@
+ 
+ #endif /* FEAT_WINDOWS */
+ 
++#define FRACTION_MULT	16384L
++
++/*
++ * Set wp->w_fraction for the current w_wrow and w_height.
++ */
++    static void
++set_fraction(wp)
++    win_T	*wp;
++{
++    wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
++				    + FRACTION_MULT / 2) / (long)wp->w_height;
++}
++
+ /*
+  * Set the height of a window.
+  * This takes care of the things inside the window, not what happens to the
+@@ -5471,7 +5486,6 @@
+ {
+     linenr_T	lnum;
+     int		sline, line_size;
+-#define FRACTION_MULT	16384L
+ 
+     /* Don't want a negative height.  Happens when splitting a tiny window.
+      * Will equalize heights soon to fix it. */
+@@ -5481,8 +5495,7 @@
+ 	return;	    /* nothing to do */
+ 
+     if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
+-	wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
+-				    + FRACTION_MULT / 2) / (long)wp->w_height;
++	set_fraction(wp);
+ 
+     wp->w_height = height;
+     wp->w_skipcol = 0;
+diff -Naur vim73.orig/src/workshop.c vim73/src/workshop.c
+--- vim73.orig/src/workshop.c	2010-08-08 13:18:24.000000000 +0000
++++ vim73/src/workshop.c	2011-05-17 09:35:40.557563272 +0000
+@@ -16,7 +16,6 @@
+ #include <sys/types.h>
+ #include <netdb.h>
+ #include <netinet/in.h>
+-#include <errno.h>
+ #include <sys/socket.h>
+ #ifdef HAVE_LIBGEN_H
+ # include <libgen.h>
+diff -Naur vim73.orig/src/xxd/xxd.c vim73/src/xxd/xxd.c
+--- vim73.orig/src/xxd/xxd.c	2010-05-15 11:04:06.000000000 +0000
++++ vim73/src/xxd/xxd.c	2011-05-17 09:38:29.902767943 +0000
+@@ -49,6 +49,8 @@
+  *	    option -b added: 01000101 binary output in normal format.
+  * 16.05.00 Added VAXC changes by Stephen P. Wall
+  * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
++ * 2011 March  Better error handling by Florian Zumbiehl.
++ * 2011 April  Formatting by Bram Moolenaar
+  *
+  * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
+  *
+@@ -207,8 +209,9 @@
+ 
+ /* Let's collect some prototypes */
+ /* CodeWarrior is really picky about missing prototypes */
+-static void exit_with_usage __P((char *));
+-static int huntype __P((FILE *, FILE *, FILE *, char *, int, int, long));
++static void exit_with_usage __P((void));
++static void die __P((int));
++static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
+ static void xxdline __P((FILE *, char *, int));
+ 
+ #define TRY_SEEK	/* attempt to use lseek, or skip forward by reading */
+@@ -223,9 +226,10 @@
+ #define HEX_CINCLUDE 2
+ #define HEX_BITS 3		/* not hex a dump, but bits: 01111001 */
+ 
+-static void
+-exit_with_usage(pname)
+-char *pname;
++static char *pname;
++
++  static void
++exit_with_usage()
+ {
+   fprintf(stderr, "Usage:\n       %s [options] [infile [outfile]]\n", pname);
+   fprintf(stderr, "    or\n       %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
+@@ -252,6 +256,15 @@
+   exit(1);
+ }
+ 
++  static void
++die(ret)
++  int ret;
++{
++  fprintf(stderr, "%s: ", pname);
++  perror(NULL);
++  exit(ret);
++}
++
+ /*
+  * Max. cols binary characters are decoded from the input stream per line.
+  * Two adjacent garbage characters after evaluated data delimit valid data.
+@@ -259,12 +272,11 @@
+  *
+  * The name is historic and came from 'undo type opt h'.
+  */
+-static int
+-huntype(fpi, fpo, fperr, pname, cols, hextype, base_off)
+-FILE *fpi, *fpo, *fperr;
+-char *pname;
+-int cols, hextype;
+-long base_off;
++  static int
++huntype(fpi, fpo, fperr, cols, hextype, base_off)
++  FILE *fpi, *fpo, *fperr;
++  int cols, hextype;
++  long base_off;
+ {
+   int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
+   long have_off = 0, want_off = 0;
+@@ -318,7 +330,8 @@
+ 
+       if (base_off + want_off != have_off)
+ 	{
+-	  fflush(fpo);
++	  if (fflush(fpo) != 0)
++	    die(3);
+ #ifdef TRY_SEEK
+ 	  c = fseek(fpo, base_off + want_off - have_off, 1);
+ 	  if (c >= 0)
+@@ -330,12 +343,14 @@
+ 	      return 5;
+ 	    }
+ 	  for (; have_off < base_off + want_off; have_off++)
+-	    putc(0, fpo);
++	    if (putc(0, fpo) == EOF)
++	      die(3);
+ 	}
+ 
+       if (n2 >= 0 && n1 >= 0)
+ 	{
+-	  putc((n2 << 4) | n1, fpo);
++	  if (putc((n2 << 4) | n1, fpo) == EOF)
++	    die(3);
+ 	  have_off++;
+ 	  want_off++;
+ 	  n1 = -1;
+@@ -345,6 +360,8 @@
+ 	      want_off = 0;
+ 	      while ((c = getc(fpi)) != '\n' && c != EOF)
+ 		;
++	      if (c == EOF && ferror(fpi))
++		die(2);
+ 	      ign_garb = 1;
+ 	    }
+ 	}
+@@ -355,15 +372,20 @@
+ 	    want_off = 0;
+ 	  while ((c = getc(fpi)) != '\n' && c != EOF)
+ 	    ;
++	  if (c == EOF && ferror(fpi))
++	    die(2);
+ 	  ign_garb = 1;
+ 	}
+     }
+-  fflush(fpo);
++  if (fflush(fpo) != 0)
++    die(3);
+ #ifdef TRY_SEEK
+   fseek(fpo, 0L, 2);
+ #endif
+-  fclose(fpo);
+-  fclose(fpi);
++  if (fclose(fpo) != 0)
++    die(3);
++  if (fclose(fpi) != 0)
++    die(2);
+   return 0;
+ }
+ 
+@@ -379,11 +401,11 @@
+  *
+  * If nz is always positive, lines are never suppressed.
+  */
+-static void
++  static void
+ xxdline(fp, l, nz)
+-FILE *fp;
+-char *l;
+-int nz;
++  FILE *fp;
++  char *l;
++  int nz;
+ {
+   static char z[LLEN+1];
+   static int zero_seen = 0;
+@@ -398,12 +420,15 @@
+ 	  if (nz < 0)
+ 	    zero_seen--;
+ 	  if (zero_seen == 2)
+-	    fputs(z, fp);
++	    if (fputs(z, fp) == EOF)
++	      die(3);
+ 	  if (zero_seen > 2)
+-	    fputs("*\n", fp);
++	    if (fputs("*\n", fp) == EOF)
++	      die(3);
+ 	}
+       if (nz >= 0 || zero_seen > 0)
+-	fputs(l, fp);
++	if (fputs(l, fp) == EOF)
++	  die(3);
+       if (nz)
+ 	zero_seen = 0;
+     }
+@@ -439,10 +464,10 @@
+     0070,0071,0372,0373,0374,0375,0376,0377
+ };
+ 
+-int
++  int
+ main(argc, argv)
+-int argc;
+-char *argv[];
++  int argc;
++  char *argv[];
+ {
+   FILE *fp, *fpo;
+   int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
+@@ -451,8 +476,8 @@
+   int octspergrp = -1;	/* number of octets grouped in output */
+   int grplen;		/* total chars per octet group */
+   long length = -1, n = 0, seekoff = 0;
+-  char l[LLEN+1];
+-  char *pname, *pp;
++  static char l[LLEN+1];  /* static because it may be too big for stack */
++  char *pp;
+ 
+ #ifdef AMIGA
+   /* This program doesn't work when started from the Workbench */
+@@ -495,7 +520,7 @@
+ 	  else
+ 	    {
+ 	      if (!argv[2])
+-		exit_with_usage(pname);
++		exit_with_usage();
+ 	      cols = (int)strtol(argv[2], NULL, 0);
+ 	      argv++;
+ 	      argc--;
+@@ -508,7 +533,7 @@
+ 	  else
+ 	    {
+ 	      if (!argv[2])
+-		exit_with_usage(pname);
++		exit_with_usage();
+ 	      octspergrp = (int)strtol(argv[2], NULL, 0);
+ 	      argv++;
+ 	      argc--;
+@@ -531,7 +556,7 @@
+ 	  else
+ 	    {
+ 	      if (!argv[2])
+-		exit_with_usage(pname);
++		exit_with_usage();
+ #ifdef TRY_SEEK
+ 	      if (argv[2][0] == '+')
+ 		relseek++;
+@@ -550,7 +575,7 @@
+ 	  else
+ 	    {
+ 	      if (!argv[2])
+-		exit_with_usage(pname);
++		exit_with_usage();
+ 	      length = strtol(argv[2], (char **)NULL, 0);
+ 	      argv++;
+ 	      argc--;
+@@ -563,7 +588,7 @@
+ 	  break;
+ 	}
+       else if (pp[0] == '-' && pp[1])	/* unknown option */
+-	exit_with_usage(pname);
++	exit_with_usage();
+       else
+ 	break;				/* not an option */
+ 
+@@ -602,7 +627,7 @@
+     octspergrp = cols;
+ 
+   if (argc > 3)
+-    exit_with_usage(pname);
++    exit_with_usage();
+ 
+   if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
+     BIN_ASSIGN(fp = stdin, !revert);
+@@ -640,7 +665,7 @@
+ 	  fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
+ 	  return -1;
+ 	}
+-      return huntype(fp, fpo, stderr, pname, cols, hextype,
++      return huntype(fp, fpo, stderr, cols, hextype,
+ 		negseek ? -seekoff : seekoff);
+     }
+ 
+@@ -664,7 +689,18 @@
+ 	  long s = seekoff;
+ 
+ 	  while (s--)
+-	    (void)getc(fp);
++	    if (getc(fp) == EOF)
++	    {
++	      if (ferror(fp))
++		{
++		  die(2);
++		}
++	      else
++		{
++		  fprintf(stderr, "%s: sorry cannot seek.\n", pname);
++		  return 4;
++		}
++	    }
+ 	}
+     }
+ 
+@@ -672,54 +708,75 @@
+     {
+       if (fp != stdin)
+ 	{
+-	  fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "");
++	  if (fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
++	    die(3);
+ 	  for (e = 0; (c = argv[1][e]) != 0; e++)
+-	    putc(isalnum(c) ? c : '_', fpo);
+-	  fputs("[] = {\n", fpo);
++	    if (putc(isalnum(c) ? c : '_', fpo) == EOF)
++	      die(3);
++	  if (fputs("[] = {\n", fpo) == EOF)
++	    die(3);
+ 	}
+ 
+       p = 0;
++      c = 0;
+       while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
+ 	{
+-	  fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
+-	    (p % cols) ? ", " : ",\n  "+2*!p,  c);
++	  if (fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
++		(p % cols) ? ", " : ",\n  "+2*!p,  c) < 0)
++	    die(3);
+ 	  p++;
+ 	}
++      if (c == EOF && ferror(fp))
++	die(2);
+ 
+       if (p)
+-	fputs("\n};\n"+3*(fp == stdin), fpo);
++	if (fputs("\n};\n" + 3 * (fp == stdin), fpo) == EOF)
++	  die(3);
+ 
+       if (fp != stdin)
+ 	{
+-	  fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "");
++	  if (fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
++	    die(3);
+ 	  for (e = 0; (c = argv[1][e]) != 0; e++)
+-	    putc(isalnum(c) ? c : '_', fpo);
+-	  fprintf(fpo, "_len = %d;\n", p);
++	    if (putc(isalnum(c) ? c : '_', fpo) == EOF)
++	      die(3);
++	  if (fprintf(fpo, "_len = %d;\n", p) < 0)
++	    die(3);
+ 	}
+ 
+-      fclose(fp);
+-      fclose(fpo);
++      if (fclose(fp))
++	die(2);
++      if (fclose(fpo))
++	die(3);
+       return 0;
+     }
+ 
+   if (hextype == HEX_POSTSCRIPT)
+     {
+       p = cols;
++      e = 0;
+       while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
+ 	{
+-	  putchar(hexx[(e >> 4) & 0xf]);
+-	  putchar(hexx[(e     ) & 0xf]);
++	  if (putc(hexx[(e >> 4) & 0xf], fpo) == EOF
++		  || putc(hexx[e & 0xf], fpo) == EOF)
++	    die(3);
+ 	  n++;
+ 	  if (!--p)
+ 	    {
+-	      putchar('\n');
++	      if (putc('\n', fpo) == EOF)
++		die(3);
+ 	      p = cols;
+ 	    }
+ 	}
++      if (e == EOF && ferror(fp))
++	die(2);
+       if (p < cols)
+-	putchar('\n');
+-      fclose(fp);
+-      fclose(fpo);
++	if (putc('\n', fpo) == EOF)
++	  die(3);
++      if (fclose(fp))
++	die(2);
++      if (fclose(fpo))
++	die(3);
+       return 0;
+     }
+ 
+@@ -730,6 +787,7 @@
+   else	/* hextype == HEX_BITS */
+     grplen = 8 * octspergrp + 1;
+ 
++  e = 0;
+   while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
+     {
+       if (p == 0)
+@@ -771,6 +829,8 @@
+ 	  p = 0;
+ 	}
+     }
++  if (e == EOF && ferror(fp))
++    die(2);
+   if (p)
+     {
+       l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
+@@ -779,7 +839,11 @@
+   else if (autoskip)
+     xxdline(fpo, l, -1);	/* last chance to flush out suppressed lines */
+ 
+-  fclose(fp);
+-  fclose(fpo);
++  if (fclose(fp))
++    die(2);
++  if (fclose(fpo))
++    die(3);
+   return 0;
+ }
++
++/* vi:set ts=8 sw=4 sts=2 cino+={2 cino+=n-2 : */
