This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[v3] Reformat a few headers


Hi,

boring but long overdue work. Regtested x86-linux (+ some
additional snippets from Josuttis).

Committing to mainline.

Paolo.

/////////////
2004-01-31  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algo.h: Wrap overlong lines, constify
	a few variables, reformat according to the coding standards.
	* include/bits/stl_algobase.h: Likewise.
	* include/bits/stl_heap.h: Likewise.
diff -urN libstdc++-v3-orig/include/bits/stl_algo.h libstdc++-v3/include/bits/stl_algo.h
--- libstdc++-v3-orig/include/bits/stl_algo.h	2003-12-04 20:37:15.000000000 +0100
+++ libstdc++-v3/include/bits/stl_algo.h	2004-01-31 22:05:29.000000000 +0100
@@ -202,37 +202,46 @@
 	 const _Tp& __val,
 	 random_access_iterator_tag)
     {
-      typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count
-	= (__last - __first) >> 2;
+      typename iterator_traits<_RandomAccessIterator>::difference_type
+	__trip_count = (__last - __first) >> 2;
 
-      for ( ; __trip_count > 0 ; --__trip_count) {
-	if (*__first == __val) return __first;
-	++__first;
-
-	if (*__first == __val) return __first;
-	++__first;
+      for ( ; __trip_count > 0 ; --__trip_count)
+	{
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
 
-	if (*__first == __val) return __first;
-	++__first;
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
+	  
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
 
-	if (*__first == __val) return __first;
-	++__first;
-      }
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
+	}
 
-      switch(__last - __first) {
-      case 3:
-	if (*__first == __val) return __first;
-	++__first;
-      case 2:
-	if (*__first == __val) return __first;
-	++__first;
-      case 1:
-	if (*__first == __val) return __first;
-	++__first;
-      case 0:
-      default:
-	return __last;
-      }
+      switch (__last - __first)
+	{
+	case 3:
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
+	case 2:
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
+	case 1:
+	  if (*__first == __val)
+	    return __first;
+	  ++__first;
+	case 0:
+	default:
+	  return __last;
+	}
     }
 
   /**
@@ -246,37 +255,46 @@
 	    _Predicate __pred,
 	    random_access_iterator_tag)
     {
-      typename iterator_traits<_RandomAccessIterator>::difference_type __trip_count
-	= (__last - __first) >> 2;
+      typename iterator_traits<_RandomAccessIterator>::difference_type
+	__trip_count = (__last - __first) >> 2;
 
-      for ( ; __trip_count > 0 ; --__trip_count) {
-	if (__pred(*__first)) return __first;
-	++__first;
+      for ( ; __trip_count > 0 ; --__trip_count)
+	{
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
 
-	if (__pred(*__first)) return __first;
-	++__first;
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
 
-	if (__pred(*__first)) return __first;
-	++__first;
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
 
-	if (__pred(*__first)) return __first;
-	++__first;
-      }
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
+	}
 
-      switch(__last - __first) {
-      case 3:
-	if (__pred(*__first)) return __first;
-	++__first;
-      case 2:
-	if (__pred(*__first)) return __first;
-	++__first;
-      case 1:
-	if (__pred(*__first)) return __first;
-	++__first;
-      case 0:
-      default:
-	return __last;
-      }
+      switch (__last - __first)
+	{
+	case 3:
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
+	case 2:
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
+	case 1:
+	  if (__pred(*__first))
+	    return __first;
+	  ++__first;
+	case 0:
+	default:
+	  return __last;
+	}
     }
 
   /**
@@ -297,7 +315,8 @@
       __glibcxx_function_requires(_EqualOpConcept<
 		typename iterator_traits<_InputIterator>::value_type, _Tp>)
       __glibcxx_requires_valid_range(__first, __last);
-      return std::find(__first, __last, __val, std::__iterator_category(__first));
+      return std::find(__first, __last, __val,
+		       std::__iterator_category(__first));
     }
 
   /**
@@ -318,7 +337,8 @@
       __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
 	      typename iterator_traits<_InputIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
-      return std::find_if(__first, __last, __pred, std::__iterator_category(__first));
+      return std::find_if(__first, __last, __pred,
+			  std::__iterator_category(__first));
     }
 
   /**
@@ -341,11 +361,12 @@
       if (__first == __last)
 	return __last;
       _ForwardIterator __next = __first;
-      while(++__next != __last) {
-	if (*__first == *__next)
-	  return __first;
-	__first = __next;
-      }
+      while(++__next != __last)
+	{
+	  if (*__first == *__next)
+	    return __first;
+	  __first = __next;
+	}
       return __last;
     }
 
@@ -373,11 +394,12 @@
       if (__first == __last)
 	return __last;
       _ForwardIterator __next = __first;
-      while(++__next != __last) {
-	if (__binary_pred(*__first, *__next))
-	  return __first;
-	__first = __next;
-      }
+      while(++__next != __last)
+	{
+	  if (__binary_pred(*__first, *__next))
+	    return __first;
+	  __first = __next;
+	}
       return __last;
     }
 
@@ -430,7 +452,6 @@
       return __n;
     }
 
-
   /**
    *  @brief Search a sequence for a matching sub-sequence.
    *  @param  first1  A forward iterator.
@@ -478,32 +499,30 @@
 	return std::find(__first1, __last1, *__first2);
 
       // General case.
-
       _ForwardIterator2 __p1, __p;
-
       __p1 = __first2; ++__p1;
-
       _ForwardIterator1 __current = __first1;
 
-      while (__first1 != __last1) {
-	__first1 = std::find(__first1, __last1, *__first2);
-	if (__first1 == __last1)
-	  return __last1;
-
-	__p = __p1;
-	__current = __first1;
-	if (++__current == __last1)
-	  return __last1;
+      while (__first1 != __last1)
+	{
+	  __first1 = std::find(__first1, __last1, *__first2);
+	  if (__first1 == __last1)
+	    return __last1;
 
-	while (*__current == *__p) {
-	  if (++__p == __last2)
-	    return __first1;
+	  __p = __p1;
+	  __current = __first1;
 	  if (++__current == __last1)
 	    return __last1;
-	}
 
-	++__first1;
-      }
+	  while (*__current == *__p)
+	    {
+	      if (++__p == __last2)
+		return __first1;
+	      if (++__current == __last1)
+		return __last1;
+	    }
+	  ++__first1;
+	}
       return __first1;
     }
 
@@ -527,7 +546,8 @@
    *
    *  @see search(_ForwardIter1, _ForwardIter1, _ForwardIter2, _ForwardIter2)
   */
-  template<typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate>
+  template<typename _ForwardIterator1, typename _ForwardIterator2,
+	   typename _BinaryPredicate>
     _ForwardIterator1
     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
 	   _ForwardIterator2 __first2, _ForwardIterator2 __last2,
@@ -549,44 +569,45 @@
       // Test for a pattern of length 1.
       _ForwardIterator2 __tmp(__first2);
       ++__tmp;
-      if (__tmp == __last2) {
-	while (__first1 != __last1 && !__predicate(*__first1, *__first2))
-	  ++__first1;
-	return __first1;
-      }
+      if (__tmp == __last2)
+	{
+	  while (__first1 != __last1 && !__predicate(*__first1, *__first2))
+	    ++__first1;
+	  return __first1;
+	}
 
       // General case.
-
       _ForwardIterator2 __p1, __p;
-
       __p1 = __first2; ++__p1;
-
       _ForwardIterator1 __current = __first1;
 
-      while (__first1 != __last1) {
-	while (__first1 != __last1) {
-	  if (__predicate(*__first1, *__first2))
-	    break;
-	  ++__first1;
-	}
-	while (__first1 != __last1 && !__predicate(*__first1, *__first2))
-	  ++__first1;
-	if (__first1 == __last1)
-	  return __last1;
-
-	__p = __p1;
-	__current = __first1;
-	if (++__current == __last1) return __last1;
+      while (__first1 != __last1)
+	{
+	  while (__first1 != __last1)
+	    {
+	      if (__predicate(*__first1, *__first2))
+		break;
+	      ++__first1;
+	    }
+	  while (__first1 != __last1 && !__predicate(*__first1, *__first2))
+	    ++__first1;
+	  if (__first1 == __last1)
+	    return __last1;
 
-	while (__predicate(*__current, *__p)) {
-	  if (++__p == __last2)
-	    return __first1;
+	  __p = __p1;
+	  __current = __first1;
 	  if (++__current == __last1)
 	    return __last1;
-	}
 
-	++__first1;
-      }
+	  while (__predicate(*__current, *__p))
+	    {
+	      if (++__p == __last2)
+		return __first1;
+	      if (++__current == __last1)
+		return __last1;
+	    }
+	  ++__first1;
+	}
       return __first1;
     }
 
@@ -617,23 +638,27 @@
 
       if (__count <= 0)
 	return __first;
-      else {
-	__first = std::find(__first, __last, __val);
-	while (__first != __last) {
-	  typename iterator_traits<_ForwardIterator>::difference_type __n = __count;
-	  _ForwardIterator __i = __first;
-	  ++__i;
-	  while (__i != __last && __n != 1 && *__i == __val) {
-	    ++__i;
-	    --__n;
-	  }
-	  if (__n == 1)
-	    return __first;
-	  else
-	    __first = std::find(__i, __last, __val);
+      else
+	{
+	  __first = std::find(__first, __last, __val);
+	  while (__first != __last)
+	    {
+	      typename iterator_traits<_ForwardIterator>::difference_type
+		__n = __count;
+	      _ForwardIterator __i = __first;
+	      ++__i;
+	      while (__i != __last && __n != 1 && *__i == __val)
+		{
+		  ++__i;
+		  --__n;
+		}
+	      if (__n == 1)
+		return __first;
+	      else
+		__first = std::find(__i, __last, __val);
+	    }
+	  return __last;
 	}
-	return __last;
-      }
     }
 
   /**
@@ -666,33 +691,40 @@
 
       if (__count <= 0)
 	return __first;
-      else {
-	while (__first != __last) {
-	  if (__binary_pred(*__first, __val))
-	    break;
-	  ++__first;
-	}
-	while (__first != __last) {
-	  typename iterator_traits<_ForwardIterator>::difference_type __n = __count;
-	  _ForwardIterator __i = __first;
-	  ++__i;
-	  while (__i != __last && __n != 1 && __binary_pred(*__i, __val)) {
-	    ++__i;
-	    --__n;
-	  }
-	  if (__n == 1)
-	    return __first;
-	  else {
-	    while (__i != __last) {
-	      if (__binary_pred(*__i, __val))
+      else
+	{
+	  while (__first != __last)
+	    {
+	      if (__binary_pred(*__first, __val))
 		break;
+	      ++__first;
+	    }
+	  while (__first != __last)
+	    {
+	      typename iterator_traits<_ForwardIterator>::difference_type
+		__n = __count;
+	      _ForwardIterator __i = __first;
 	      ++__i;
+	      while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
+		{
+		  ++__i;
+		  --__n;
+		}
+	      if (__n == 1)
+		return __first;
+	      else
+		{
+		  while (__i != __last)
+		    {
+		      if (__binary_pred(*__i, __val))
+			break;
+		      ++__i;
+		    }
+		  __first = __i;
+		}
 	    }
-	    __first = __i;
-	  }
+	  return __last;
 	}
-	return __last;
-      }
     }
 
   /**
@@ -712,8 +744,10 @@
 		_ForwardIterator2 __first2)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator1>)
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator2>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator1>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator2>)
       __glibcxx_function_requires(_ConvertibleConcept<
 	    typename iterator_traits<_ForwardIterator1>::value_type,
 	    typename iterator_traits<_ForwardIterator2>::value_type>)
@@ -742,7 +776,8 @@
    *
    *  @p unary_op must not alter its argument.
   */
-  template<typename _InputIterator, typename _OutputIterator, typename _UnaryOperation>
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _UnaryOperation>
     _OutputIterator
     transform(_InputIterator __first, _InputIterator __last,
 	      _OutputIterator __result, _UnaryOperation __unary_op)
@@ -776,8 +811,8 @@
    *
    *  @p binary_op must not alter either of its arguments.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _BinaryOperation>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _BinaryOperation>
     _OutputIterator
     transform(_InputIterator1 __first1, _InputIterator1 __last1,
 	      _InputIterator2 __first2, _OutputIterator __result,
@@ -814,7 +849,8 @@
 	    const _Tp& __old_value, const _Tp& __new_value)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_EqualOpConcept<
 	    typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
       __glibcxx_function_requires(_ConvertibleConcept<_Tp,
@@ -844,7 +880,8 @@
 	       _Predicate __pred, const _Tp& __new_value)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_ConvertibleConcept<_Tp,
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
@@ -903,8 +940,8 @@
    *  @p [result,result+(last-first)) replacing elements for which
    *  @p pred returns true with @p new_value.
   */
-  template<typename _InputIterator, typename _OutputIterator, typename _Predicate,
-           typename _Tp>
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _Predicate, typename _Tp>
     _OutputIterator
     replace_copy_if(_InputIterator __first, _InputIterator __last,
 		    _OutputIterator __result,
@@ -936,7 +973,8 @@
   */
   template<typename _ForwardIterator, typename _Generator>
     void
-    generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)
+    generate(_ForwardIterator __first, _ForwardIterator __last,
+	     _Generator __gen)
     {
       // concept requirements
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
@@ -1000,10 +1038,11 @@
       __glibcxx_requires_valid_range(__first, __last);
 
       for ( ; __first != __last; ++__first)
-	if (!(*__first == __value)) {
-	  *__result = *__first;
-	  ++__result;
-	}
+	if (!(*__first == __value))
+	  {
+	    *__result = *__first;
+	    ++__result;
+	  }
       return __result;
     }
 
@@ -1021,7 +1060,8 @@
    *  remove_copy_if() is stable, so the relative order of elements that are
    *  copied is unchanged.
   */
-  template<typename _InputIterator, typename _OutputIterator, typename _Predicate>
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _Predicate>
     _OutputIterator
     remove_copy_if(_InputIterator __first, _InputIterator __last,
 		   _OutputIterator __result, _Predicate __pred)
@@ -1035,10 +1075,11 @@
       __glibcxx_requires_valid_range(__first, __last);
 
       for ( ; __first != __last; ++__first)
-	if (!__pred(*__first)) {
-	  *__result = *__first;
-	  ++__result;
-	}
+	if (!__pred(*__first))
+	  {
+	    *__result = *__first;
+	    ++__result;
+	  }
       return __result;
     }
 
@@ -1064,7 +1105,8 @@
 	   const _Tp& __value)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_ConvertibleConcept<_Tp,
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_function_requires(_EqualOpConcept<
@@ -1074,7 +1116,8 @@
       __first = std::find(__first, __last, __value);
       _ForwardIterator __i = __first;
       return __first == __last ? __first
-			       : std::remove_copy(++__i, __last, __first, __value);
+			       : std::remove_copy(++__i, __last,
+						  __first, __value);
     }
 
   /**
@@ -1099,7 +1142,8 @@
 	      _Predicate __pred)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
@@ -1107,12 +1151,14 @@
       __first = std::find_if(__first, __last, __pred);
       _ForwardIterator __i = __first;
       return __first == __last ? __first
-			       : std::remove_copy_if(++__i, __last, __first, __pred);
+			       : std::remove_copy_if(++__i, __last,
+						     __first, __pred);
     }
 
   /**
    *  @if maint
-   *  This is an uglified unique_copy(_InputIterator, _InputIterator, _OutputIterator)
+   *  This is an uglified unique_copy(_InputIterator, _InputIterator,
+   *                                  _OutputIterator)
    *  overloaded for output iterators.
    *  @endif
   */
@@ -1126,16 +1172,18 @@
       typename iterator_traits<_InputIterator>::value_type __value = *__first;
       *__result = __value;
       while (++__first != __last)
-	if (!(__value == *__first)) {
-	  __value = *__first;
-	  *++__result = __value;
-	}
+	if (!(__value == *__first))
+	  {
+	    __value = *__first;
+	    *++__result = __value;
+	  }
       return ++__result;
     }
 
   /**
    *  @if maint
-   *  This is an uglified unique_copy(_InputIterator, _InputIterator, _OutputIterator)
+   *  This is an uglified unique_copy(_InputIterator, _InputIterator,
+   *                                  _OutputIterator)
    *  overloaded for forward iterators.
    *  @endif
   */
@@ -1156,11 +1204,13 @@
   /**
    *  @if maint
    *  This is an uglified
-   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator, _BinaryPredicate)
+   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
+   *              _BinaryPredicate)
    *  overloaded for output iterators.
    *  @endif
   */
-  template<typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate>
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _BinaryPredicate>
     _OutputIterator
     __unique_copy(_InputIterator __first, _InputIterator __last,
 		  _OutputIterator __result,
@@ -1175,21 +1225,24 @@
       typename iterator_traits<_InputIterator>::value_type __value = *__first;
       *__result = __value;
       while (++__first != __last)
-	if (!__binary_pred(__value, *__first)) {
-	  __value = *__first;
-	  *++__result = __value;
-	}
+	if (!__binary_pred(__value, *__first))
+	  {
+	    __value = *__first;
+	    *++__result = __value;
+	  }
       return ++__result;
     }
 
   /**
    *  @if maint
    *  This is an uglified
-   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator, _BinaryPredicate)
+   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
+   *              _BinaryPredicate)
    *  overloaded for forward iterators.
    *  @endif
   */
-  template<typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate>
+  template<typename _InputIterator, typename _ForwardIterator,
+	   typename _BinaryPredicate>
     _ForwardIterator
     __unique_copy(_InputIterator __first, _InputIterator __last,
 		  _ForwardIterator __result,
@@ -1233,7 +1286,8 @@
 	    typename iterator_traits<_InputIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      typedef typename iterator_traits<_OutputIterator>::iterator_category _IterType;
+      typedef typename iterator_traits<_OutputIterator>::iterator_category
+	_IterType;
 
       if (__first == __last) return __result;
       return std::__unique_copy(__first, __last, __result, _IterType());
@@ -1254,7 +1308,8 @@
    *  unique_copy() is stable, so the relative order of elements that are
    *  copied is unchanged.
   */
-  template<typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate>
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _BinaryPredicate>
     inline _OutputIterator
     unique_copy(_InputIterator __first, _InputIterator __last,
 		_OutputIterator __result,
@@ -1266,10 +1321,12 @@
 	    typename iterator_traits<_InputIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      typedef typename iterator_traits<_OutputIterator>::iterator_category _IterType;
+      typedef typename iterator_traits<_OutputIterator>::iterator_category
+	_IterType;
 
       if (__first == __last) return __result;
-      return std::__unique_copy(__first, __last, __result, __binary_pred, _IterType());
+      return std::__unique_copy(__first, __last, __result,
+				__binary_pred, _IterType());
     }
 
   /**
@@ -1290,7 +1347,8 @@
     unique(_ForwardIterator __first, _ForwardIterator __last)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_EqualityComparableConcept<
 		     typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
@@ -1329,7 +1387,8 @@
            _BinaryPredicate __binary_pred)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
 		typename iterator_traits<_ForwardIterator>::value_type,
 		typename iterator_traits<_ForwardIterator>::value_type>)
@@ -1351,7 +1410,8 @@
 
   /**
    *  @if maint
-   *  This is an uglified reverse(_BidirectionalIterator, _BidirectionalIterator)
+   *  This is an uglified reverse(_BidirectionalIterator,
+   *                              _BidirectionalIterator)
    *  overloaded for bidirectional iterators.
    *  @endif
   */
@@ -1369,7 +1429,8 @@
 
   /**
    *  @if maint
-   *  This is an uglified reverse(_BidirectionalIterator, _BidirectionalIterator)
+   *  This is an uglified reverse(_BidirectionalIterator,
+   *                              _BidirectionalIterator)
    *  overloaded for bidirectional iterators.
    *  @endif
   */
@@ -1425,16 +1486,18 @@
 			     _OutputIterator __result)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
 		typename iterator_traits<_BidirectionalIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      while (__first != __last) {
-	--__last;
-	*__result = *__last;
-	++__result;
-      }
+      while (__first != __last)
+	{
+	  --__last;
+	  *__result = *__last;
+	  ++__result;
+	}
       return __result;
     }
 
@@ -1449,11 +1512,12 @@
     _EuclideanRingElement
     __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
     {
-      while (__n != 0) {
-	_EuclideanRingElement __t = __m % __n;
-	__m = __n;
-	__n = __t;
-      }
+      while (__n != 0)
+	{
+	  _EuclideanRingElement __t = __m % __n;
+	  __m = __n;
+	  __n = __t;
+	}
       return __m;
     }
 
@@ -1473,21 +1537,24 @@
 	return;
 
       _ForwardIterator __first2 = __middle;
-      do {
-	swap(*__first++, *__first2++);
-	if (__first == __middle)
-	  __middle = __first2;
-      } while (__first2 != __last);
+      do
+	{
+	  swap(*__first++, *__first2++);
+	  if (__first == __middle)
+	    __middle = __first2;
+	}
+      while (__first2 != __last);
 
       __first2 = __middle;
 
-      while (__first2 != __last) {
-	swap(*__first++, *__first2++);
-	if (__first == __middle)
-	  __middle = __first2;
-	else if (__first2 == __last)
-	  __first2 = __middle;
-      }
+      while (__first2 != __last)
+	{
+	  swap(*__first++, *__first2++);
+	  if (__first == __middle)
+	    __middle = __first2;
+	  else if (__first2 == __last)
+	    __first2 = __middle;
+	}
     }
 
   /**
@@ -1515,12 +1582,10 @@
       while (__first != __middle && __middle != __last)
 	swap(*__first++, *--__last);
 
-      if (__first == __middle) {
+      if (__first == __middle)
 	std::__reverse(__middle, __last,   bidirectional_iterator_tag());
-      }
-      else {
+      else
 	std::__reverse(__first,  __middle, bidirectional_iterator_tag());
-      }
     }
 
   /**
@@ -1542,51 +1607,59 @@
       if ((__first == __middle) || (__last  == __middle))
 	return;
 
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance;
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
-
-      _Distance __n = __last   - __first;
-      _Distance __k = __middle - __first;
-      _Distance __l = __n - __k;
-
-      if (__k == __l) {
-	std::swap_ranges(__first, __middle, __middle);
-	return;
-      }
-
-      _Distance __d = __gcd(__n, __k);
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      const _Distance __n = __last   - __first;
+      const _Distance __k = __middle - __first;
+      const _Distance __l = __n - __k;
+
+      if (__k == __l)
+	{
+	  std::swap_ranges(__first, __middle, __middle);
+	  return;
+	}
 
-      for (_Distance __i = 0; __i < __d; __i++) {
-	_ValueType __tmp = *__first;
-	_RandomAccessIterator __p = __first;
+      const _Distance __d = __gcd(__n, __k);
 
-	if (__k < __l) {
-	  for (_Distance __j = 0; __j < __l/__d; __j++) {
-	    if (__p > __first + __l) {
-	      *__p = *(__p - __l);
-	      __p -= __l;
+      for (_Distance __i = 0; __i < __d; __i++)
+	{
+	  const _ValueType __tmp = *__first;
+	  _RandomAccessIterator __p = __first;
+	  
+	  if (__k < __l)
+	    {
+	      for (_Distance __j = 0; __j < __l / __d; __j++)
+		{
+		  if (__p > __first + __l)
+		    {
+		      *__p = *(__p - __l);
+		      __p -= __l;
+		    }
+
+		  *__p = *(__p + __k);
+		  __p += __k;
+		}
 	    }
-
-	    *__p = *(__p + __k);
-	    __p += __k;
-	  }
-	}
-
-	else {
-	  for (_Distance __j = 0; __j < __k/__d - 1; __j ++) {
-	    if (__p < __last - __k) {
-	      *__p = *(__p + __k);
-	      __p += __k;
+	  else
+	    {
+	      for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
+		{
+		  if (__p < __last - __k)
+		    {
+		      *__p = *(__p + __k);
+		      __p += __k;
+		    }
+		  *__p = * (__p - __l);
+		  __p -= __l;
+		}
 	    }
-
-	    *__p = * (__p - __l);
-	    __p -= __l;
-	  }
+	  
+	  *__p = __tmp;
+	  ++__first;
 	}
-
-	*__p = __tmp;
-	++__first;
-      }
     }
 
   /**
@@ -1609,14 +1682,17 @@
   */
   template<typename _ForwardIterator>
     inline void
-    rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)
+    rotate(_ForwardIterator __first, _ForwardIterator __middle,
+	   _ForwardIterator __last)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_requires_valid_range(__first, __middle);
       __glibcxx_requires_valid_range(__middle, __last);
 
-      typedef typename iterator_traits<_ForwardIterator>::iterator_category _IterType;
+      typedef typename iterator_traits<_ForwardIterator>::iterator_category
+	_IterType;
       std::__rotate(__first, __middle, __last, _IterType());
     }
 
@@ -1699,7 +1775,8 @@
 	    _RandomAccessIterator>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first == __last) return;
+      if (__first == __last)
+	return;
       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
 	std::iter_swap(__i, __first + __rand((__i - __first) + 1));
     }
@@ -1713,21 +1790,24 @@
   template<typename _ForwardIterator, typename _Predicate>
     _ForwardIterator
     __partition(_ForwardIterator __first, _ForwardIterator __last,
-		_Predicate   __pred,
+		_Predicate __pred,
 		forward_iterator_tag)
     {
-      if (__first == __last) return __first;
+      if (__first == __last)
+	return __first;
 
       while (__pred(*__first))
-	if (++__first == __last) return __first;
+	if (++__first == __last)
+	  return __first;
 
       _ForwardIterator __next = __first;
 
       while (++__next != __last)
-	if (__pred(*__next)) {
-	  swap(*__first, *__next);
-	  ++__first;
-	}
+	if (__pred(*__next))
+	  {
+	    swap(*__first, *__next);
+	    ++__first;
+	  }
 
       return __first;
     }
@@ -1743,25 +1823,26 @@
 		_Predicate __pred,
 		bidirectional_iterator_tag)
     {
-      while (true) {
-	while (true)
-	  if (__first == __last)
-	    return __first;
-	  else if (__pred(*__first))
-	    ++__first;
-	  else
-	    break;
-	--__last;
-	while (true)
-	  if (__first == __last)
-	    return __first;
-	  else if (!__pred(*__last))
-	    --__last;
-	  else
-	    break;
-	std::iter_swap(__first, __last);
-	++__first;
-      }
+      while (true)
+	{
+	  while (true)
+	    if (__first == __last)
+	      return __first;
+	    else if (__pred(*__first))
+	      ++__first;
+	    else
+	      break;
+	  --__last;
+	  while (true)
+	    if (__first == __last)
+	      return __first;
+	    else if (!__pred(*__last))
+	      --__last;
+	    else
+	      break;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
     }
 
   /**
@@ -1784,12 +1865,14 @@
 	      _Predicate   __pred)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      return std::__partition(__first, __last, __pred, std::__iterator_category(__first));
+      return std::__partition(__first, __last, __pred,
+			      std::__iterator_category(__first));
     }
 
 
@@ -1800,19 +1883,22 @@
   */
   template<typename _ForwardIterator, typename _Predicate, typename _Distance>
     _ForwardIterator
-    __inplace_stable_partition(_ForwardIterator __first, _ForwardIterator __last,
+    __inplace_stable_partition(_ForwardIterator __first,
+			       _ForwardIterator __last,
 			       _Predicate __pred, _Distance __len)
     {
       if (__len == 1)
 	return __pred(*__first) ? __last : __first;
       _ForwardIterator __middle = __first;
       std::advance(__middle, __len / 2);
-      _ForwardIterator __begin = std::__inplace_stable_partition(__first, __middle,
+      _ForwardIterator __begin = std::__inplace_stable_partition(__first,
+								 __middle,
 								 __pred,
 								 __len / 2);
       _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
 							       __pred,
-							       __len - __len / 2);
+							       __len
+							       - __len / 2);
       std::rotate(__begin, __middle, __end);
       std::advance(__begin, std::distance(__middle, __end));
       return __begin;
@@ -1826,41 +1912,46 @@
   template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
 	   typename _Distance>
     _ForwardIterator
-    __stable_partition_adaptive(_ForwardIterator __first, _ForwardIterator __last,
+    __stable_partition_adaptive(_ForwardIterator __first,
+				_ForwardIterator __last,
 				_Predicate __pred, _Distance __len,
 				_Pointer __buffer,
 				_Distance __buffer_size)
     {
-      if (__len <= __buffer_size) {
-	_ForwardIterator __result1 = __first;
-	_Pointer __result2 = __buffer;
-	for ( ; __first != __last ; ++__first)
-	  if (__pred(*__first)) {
-	    *__result1 = *__first;
-	    ++__result1;
-	  }
-	  else {
-	    *__result2 = *__first;
-	    ++__result2;
-	  }
-	std::copy(__buffer, __result2, __result1);
-	return __result1;
-      }
-      else {
-	_ForwardIterator __middle = __first;
-	std::advance(__middle, __len / 2);
-	_ForwardIterator __begin = std::__stable_partition_adaptive(__first, __middle,
-								    __pred,
-								    __len / 2,
-								    __buffer, __buffer_size);
-	_ForwardIterator __end = std::__stable_partition_adaptive( __middle, __last,
-								   __pred,
-								   __len - __len / 2,
-								   __buffer, __buffer_size);
-	std::rotate(__begin, __middle, __end);
-	std::advance(__begin, std::distance(__middle, __end));
-	return __begin;
-      }
+      if (__len <= __buffer_size)
+	{
+	  _ForwardIterator __result1 = __first;
+	  _Pointer __result2 = __buffer;
+	  for ( ; __first != __last ; ++__first)
+	    if (__pred(*__first))
+	      {
+		*__result1 = *__first;
+		++__result1;
+	      }
+	    else
+	      {
+		*__result2 = *__first;
+		++__result2;
+	      }
+	  std::copy(__buffer, __result2, __result1);
+	  return __result1;
+	}
+      else
+	{
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __len / 2);
+	  _ForwardIterator __begin =
+	    std::__stable_partition_adaptive(__first, __middle, __pred,
+					     __len / 2, __buffer,
+					     __buffer_size);
+	  _ForwardIterator __end =
+	    std::__stable_partition_adaptive(__middle, __last, __pred,
+					     __len - __len / 2,
+					     __buffer, __buffer_size);
+	  std::rotate(__begin, __middle, __end);
+	  std::advance(__begin, std::distance(__middle, __end));
+	  return __begin;
+	}
     }
 
   /**
@@ -1885,7 +1976,8 @@
 		     _Predicate __pred)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
@@ -1893,19 +1985,24 @@
       if (__first == __last)
 	return __first;
       else
-      {
-	typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-	typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+	{
+	  typedef typename iterator_traits<_ForwardIterator>::value_type
+	    _ValueType;
+	  typedef typename iterator_traits<_ForwardIterator>::difference_type
+	    _DistanceType;
 
-	_Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, __last);
+	  _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
+								__last);
 	if (__buf.size() > 0)
-	  return std::__stable_partition_adaptive(__first, __last, __pred,
-						  _DistanceType(__buf.requested_size()),
-						  __buf.begin(), __buf.size());
+	  return
+	    std::__stable_partition_adaptive(__first, __last, __pred,
+					  _DistanceType(__buf.requested_size()),
+					  __buf.begin(), __buf.size());
 	else
-	  return std::__inplace_stable_partition(__first, __last, __pred,
-						 _DistanceType(__buf.requested_size()));
-      }
+	  return
+	    std::__inplace_stable_partition(__first, __last, __pred,
+					 _DistanceType(__buf.requested_size()));
+	}
     }
 
   /**
@@ -1915,20 +2012,21 @@
   */
   template<typename _RandomAccessIterator, typename _Tp>
     _RandomAccessIterator
-    __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last,
-			  _Tp __pivot)
+    __unguarded_partition(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last, _Tp __pivot)
     {
-      while (true) {
-	while (*__first < __pivot)
-	  ++__first;
-	--__last;
-	while (__pivot < *__last)
+      while (true)
+	{
+	  while (*__first < __pivot)
+	    ++__first;
 	  --__last;
-	if (!(__first < __last))
-	  return __first;
-	std::iter_swap(__first, __last);
-	++__first;
-      }
+	  while (__pivot < *__last)
+	    --__last;
+	  if (!(__first < __last))
+	    return __first;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
     }
 
   /**
@@ -1938,23 +2036,24 @@
   */
   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
     _RandomAccessIterator
-    __unguarded_partition(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __unguarded_partition(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last,
 			  _Tp __pivot, _Compare __comp)
     {
-      while (true) {
-	while (__comp(*__first, __pivot))
-	  ++__first;
-	--__last;
-	while (__comp(__pivot, *__last))
+      while (true)
+	{
+	  while (__comp(*__first, __pivot))
+	    ++__first;
 	  --__last;
-	if (!(__first < __last))
-	  return __first;
-	std::iter_swap(__first, __last);
-	++__first;
-      }
+	  while (__comp(__pivot, *__last))
+	    --__last;
+	  if (!(__first < __last))
+	    return __first;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
     }
 
-
   /**
    *  @if maint
    *  @doctodo
@@ -1974,11 +2073,12 @@
     {
       _RandomAccessIterator __next = __last;
       --__next;
-      while (__val < *__next) {
-	*__last = *__next;
-	__last = __next;
-	--__next;
-      }
+      while (__val < *__next)
+	{
+	  *__last = *__next;
+	  __last = __next;
+	  --__next;
+	}
       *__last = __val;
     }
 
@@ -1989,15 +2089,17 @@
   */
   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
     void
-    __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val, _Compare __comp)
+    __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
+			      _Compare __comp)
     {
       _RandomAccessIterator __next = __last;
       --__next;
-      while (__comp(__val, *__next)) {
-	*__last = *__next;
-	__last = __next;
-	--__next;
-      }
+      while (__comp(__val, *__next))
+	{
+	  *__last = *__next;
+	  __last = __next;
+	  --__next;
+	}
       *__last = __val;
     }
 
@@ -2008,17 +2110,21 @@
   */
   template<typename _RandomAccessIterator>
     void
-    __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    __insertion_sort(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last)
     {
-      if (__first == __last) return;
+      if (__first == __last)
+	return;
 
       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
       {
-	typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
-	if (__val < *__first) {
-	  std::copy_backward(__first, __i, __i + 1);
-	  *__first = __val;
-	}
+	typename iterator_traits<_RandomAccessIterator>::value_type
+	  __val = *__i;
+	if (__val < *__first)
+	  {
+	    std::copy_backward(__first, __i, __i + 1);
+	    *__first = __val;
+	  }
 	else
 	  std::__unguarded_linear_insert(__i, __val);
       }
@@ -2031,18 +2137,20 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     void
-    __insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
-		     _Compare __comp)
+    __insertion_sort(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last, _Compare __comp)
     {
       if (__first == __last) return;
 
       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
       {
-	typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
-	if (__comp(__val, *__first)) {
-	  std::copy_backward(__first, __i, __i + 1);
-	  *__first = __val;
-	}
+	typename iterator_traits<_RandomAccessIterator>::value_type
+	  __val = *__i;
+	if (__comp(__val, *__first))
+	  {
+	    std::copy_backward(__first, __i, __i + 1);
+	    *__first = __val;
+	  }
 	else
 	  std::__unguarded_linear_insert(__i, __val, __comp);
       }
@@ -2055,9 +2163,11 @@
   */
   template<typename _RandomAccessIterator>
     inline void
-    __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    __unguarded_insertion_sort(_RandomAccessIterator __first,
+			       _RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
 	std::__unguarded_linear_insert(__i, _ValueType(*__i));
@@ -2070,10 +2180,11 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     inline void
-    __unguarded_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
-			       _Compare __comp)
+    __unguarded_insertion_sort(_RandomAccessIterator __first,
+			       _RandomAccessIterator __last, _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
 	std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
@@ -2086,12 +2197,14 @@
   */
   template<typename _RandomAccessIterator>
     void
-    __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    __final_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last)
     {
-      if (__last - __first > _S_threshold) {
-	std::__insertion_sort(__first, __first + _S_threshold);
-	std::__unguarded_insertion_sort(__first + _S_threshold, __last);
-      }
+      if (__last - __first > _S_threshold)
+	{
+	  std::__insertion_sort(__first, __first + _S_threshold);
+	  std::__unguarded_insertion_sort(__first + _S_threshold, __last);
+	}
       else
 	std::__insertion_sort(__first, __last);
     }
@@ -2103,13 +2216,15 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     void
-    __final_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
-			   _Compare __comp)
+    __final_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last, _Compare __comp)
     {
-      if (__last - __first > _S_threshold) {
-	std::__insertion_sort(__first, __first + _S_threshold, __comp);
-	std::__unguarded_insertion_sort(__first + _S_threshold, __last, __comp);
-      }
+      if (__last - __first > _S_threshold)
+	{
+	  std::__insertion_sort(__first, __first + _S_threshold, __comp);
+	  std::__unguarded_insertion_sort(__first + _S_threshold, __last,
+					  __comp);
+	}
       else
 	std::__insertion_sort(__first, __last, __comp);
     }
@@ -2124,7 +2239,8 @@
     __lg(_Size __n)
     {
       _Size __k;
-      for (__k = 0; __n != 1; __n >>= 1) ++__k;
+      for (__k = 0; __n != 1; __n >>= 1)
+	++__k;
       return __k;
     }
 
@@ -2149,7 +2265,8 @@
 		 _RandomAccessIterator __middle,
 		 _RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
@@ -2190,13 +2307,14 @@
 		 _RandomAccessIterator __last,
 		 _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
 	    _RandomAccessIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-							  _ValueType, _ValueType>)
+				  _ValueType, _ValueType>)
       __glibcxx_requires_valid_range(__first, __middle);
       __glibcxx_requires_valid_range(__middle, __last);
 
@@ -2230,33 +2348,41 @@
 		      _RandomAccessIterator __result_first,
 		      _RandomAccessIterator __result_last)
     {
-      typedef typename iterator_traits<_InputIterator>::value_type _InputValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_InputIterator>::value_type
+	_InputValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_OutputValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
-      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, _OutputValueType>)
+      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
+				  _OutputValueType>)
       __glibcxx_function_requires(_LessThanComparableConcept<_OutputValueType>)
       __glibcxx_function_requires(_LessThanComparableConcept<_InputValueType>)
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_valid_range(__result_first, __result_last);
 
-      if (__result_first == __result_last) return __result_last;
+      if (__result_first == __result_last)
+	return __result_last;
       _RandomAccessIterator __result_real_last = __result_first;
-      while(__first != __last && __result_real_last != __result_last) {
-	*__result_real_last = *__first;
-	++__result_real_last;
-	++__first;
-      }
+      while(__first != __last && __result_real_last != __result_last)
+	{
+	  *__result_real_last = *__first;
+	  ++__result_real_last;
+	  ++__first;
+	}
       std::make_heap(__result_first, __result_real_last);
-      while (__first != __last) {
-	if (*__first < *__result_first)
-	  std::__adjust_heap(__result_first, _DistanceType(0),
-			     _DistanceType(__result_real_last - __result_first),
-			     _InputValueType(*__first));
-	++__first;
-      }
+      while (__first != __last)
+	{
+	  if (*__first < *__result_first)
+	    std::__adjust_heap(__result_first, _DistanceType(0),
+			       _DistanceType(__result_real_last
+					     - __result_first),
+			       _InputValueType(*__first));
+	  ++__first;
+	}
       std::sort_heap(__result_first, __result_real_last);
       return __result_real_last;
     }
@@ -2287,35 +2413,44 @@
 		      _RandomAccessIterator __result_last,
 		      _Compare __comp)
     {
-      typedef typename iterator_traits<_InputIterator>::value_type _InputValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _OutputValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_InputIterator>::value_type
+	_InputValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_OutputValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
-      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIterator>)
-      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, _OutputValueType>)
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
+      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
+				  _OutputValueType>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
 				  _OutputValueType, _OutputValueType>)
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_valid_range(__result_first, __result_last);
 
-      if (__result_first == __result_last) return __result_last;
+      if (__result_first == __result_last)
+	return __result_last;
       _RandomAccessIterator __result_real_last = __result_first;
-      while(__first != __last && __result_real_last != __result_last) {
-	*__result_real_last = *__first;
-	++__result_real_last;
-	++__first;
-      }
+      while(__first != __last && __result_real_last != __result_last)
+	{
+	  *__result_real_last = *__first;
+	  ++__result_real_last;
+	  ++__first;
+	}
       std::make_heap(__result_first, __result_real_last, __comp);
-      while (__first != __last) {
-	if (__comp(*__first, *__result_first))
-	  std::__adjust_heap(__result_first, _DistanceType(0),
-			     _DistanceType(__result_real_last - __result_first),
-			     _InputValueType(*__first),
-			     __comp);
-	++__first;
-      }
+      while (__first != __last)
+	{
+	  if (__comp(*__first, *__result_first))
+	    std::__adjust_heap(__result_first, _DistanceType(0),
+			       _DistanceType(__result_real_last
+					     - __result_first),
+			       _InputValueType(*__first),
+			       __comp);
+	  ++__first;
+	}
       std::sort_heap(__result_first, __result_real_last, __comp);
       return __result_real_last;
     }
@@ -2327,25 +2462,33 @@
   */
   template<typename _RandomAccessIterator, typename _Size>
     void
-    __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __introsort_loop(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last,
 		     _Size __depth_limit)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
-      while (__last - __first > _S_threshold) {
-	if (__depth_limit == 0) {
-	  std::partial_sort(__first, __last, __last);
-	  return;
+      while (__last - __first > _S_threshold)
+	{
+	  if (__depth_limit == 0)
+	    {
+	      std::partial_sort(__first, __last, __last);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition(__first, __last,
+				       _ValueType(std::__median(*__first,
+								*(__first
+								  + (__last 
+								     - __first) 
+								  / 2),
+								*(__last 
+								  - 1))));
+	  std::__introsort_loop(__cut, __last, __depth_limit);
+	  __last = __cut;
 	}
-	--__depth_limit;
-	_RandomAccessIterator __cut =
-	  std::__unguarded_partition(__first, __last,
-				     _ValueType(std::__median(*__first,
-							      *(__first + (__last - __first)/2),
-							      *(__last - 1))));
-	std::__introsort_loop(__cut, __last, __depth_limit);
-	__last = __cut;
-      }
     }
 
   /**
@@ -2355,25 +2498,34 @@
   */
   template<typename _RandomAccessIterator, typename _Size, typename _Compare>
     void
-    __introsort_loop(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __introsort_loop(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last,
 		     _Size __depth_limit, _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
-      while (__last - __first > _S_threshold) {
-	if (__depth_limit == 0) {
-	  std::partial_sort(__first, __last, __last, __comp);
-	  return;
+      while (__last - __first > _S_threshold)
+	{
+	  if (__depth_limit == 0)
+	    {
+	      std::partial_sort(__first, __last, __last, __comp);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition(__first, __last,
+				       _ValueType(std::__median(*__first,
+								*(__first
+								  + (__last
+								     - __first)
+								  / 2),
+								*(__last - 1),
+								__comp)),
+				       __comp);
+	  std::__introsort_loop(__cut, __last, __depth_limit, __comp);
+	  __last = __cut;
 	}
-	--__depth_limit;
-	_RandomAccessIterator __cut =
-	  std::__unguarded_partition(__first, __last,
-				     _ValueType(std::__median(*__first,
-							      *(__first + (__last - __first)/2),
-							      *(__last - 1), __comp)), __comp);
-	std::__introsort_loop(__cut, __last, __depth_limit, __comp);
-	__last = __cut;
-      }
     }
 
   /**
@@ -2393,7 +2545,8 @@
     inline void
     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
@@ -2401,10 +2554,11 @@
       __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first != __last) {
-	std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
-	std::__final_insertion_sort(__first, __last);
-      }
+      if (__first != __last)
+	{
+	  std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
+	  std::__final_insertion_sort(__first, __last);
+	}
     }
 
   /**
@@ -2423,20 +2577,25 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     inline void
-    sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
+    sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	 _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
 	    _RandomAccessIterator>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _ValueType, _ValueType>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _ValueType,
+				  _ValueType>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first != __last) {
-	std::__introsort_loop(__first, __last, __lg(__last - __first) * 2, __comp);
-	std::__final_insertion_sort(__first, __last, __comp);
-      }
+      if (__first != __last)
+	{
+	  std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
+				__comp);
+	  std::__final_insertion_sort(__first, __last, __comp);
+	}
     }
 
   /**
@@ -2451,10 +2610,13 @@
   */
   template<typename _ForwardIterator, typename _Tp>
     _ForwardIterator
-    lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val)
+    lower_bound(_ForwardIterator __first, _ForwardIterator __last,
+		const _Tp& __val)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       // Note that these are slightly stricter than those of the 4-argument
@@ -2470,18 +2632,20 @@
       _DistanceType __half;
       _ForwardIterator __middle;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (*__middle < __val) {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (*__middle < __val)
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else
+	    __len = __half;
 	}
-	else
-	  __len = __half;
-      }
       return __first;
     }
 
@@ -2504,30 +2668,35 @@
     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
 		const _Tp& __val, _Compare __comp)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _ValueType, _Tp>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType, _Tp>)
       __glibcxx_requires_partitioned_pred(__first, __last, __val, __comp);
 
       _DistanceType __len = std::distance(__first, __last);
       _DistanceType __half;
       _ForwardIterator __middle;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (__comp(*__middle, __val)) {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__comp(*__middle, __val))
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else
+	    __len = __half;
 	}
-	else
-	  __len = __half;
-      }
       return __first;
     }
 
@@ -2543,10 +2712,13 @@
   */
   template<typename _ForwardIterator, typename _Tp>
     _ForwardIterator
-    upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val)
+    upper_bound(_ForwardIterator __first, _ForwardIterator __last,
+		const _Tp& __val)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       // See comments on lower_bound.
@@ -2559,18 +2731,20 @@
       _DistanceType __half;
       _ForwardIterator __middle;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (__val < *__middle)
-	  __len = __half;
-	else {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__val < *__middle)
+	    __len = __half;
+	  else
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
 	}
-      }
       return __first;
     }
 
@@ -2593,30 +2767,35 @@
     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
 		const _Tp& __val, _Compare __comp)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _ValueType>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _Tp, _ValueType>)
       __glibcxx_requires_partitioned_pred(__first, __last, __val, __comp);
 
       _DistanceType __len = std::distance(__first, __last);
       _DistanceType __half;
       _ForwardIterator __middle;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (__comp(__val, *__middle))
-	  __len = __half;
-	else {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__comp(__val, *__middle))
+	    __len = __half;
+	  else
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
 	}
-      }
       return __first;
     }
 
@@ -2634,27 +2813,30 @@
     {
       if (__len1 == 0 || __len2 == 0)
 	return;
-      if (__len1 + __len2 == 2) {
-	if (*__middle < *__first)
-	  std::iter_swap(__first, __middle);
-	return;
-      }
+      if (__len1 + __len2 == 2)
+	{
+	  if (*__middle < *__first)
+	    std::iter_swap(__first, __middle);
+	  return;
+	}
       _BidirectionalIterator __first_cut = __first;
       _BidirectionalIterator __second_cut = __middle;
       _Distance __len11 = 0;
       _Distance __len22 = 0;
-      if (__len1 > __len2) {
-	__len11 = __len1 / 2;
-	std::advance(__first_cut, __len11);
-	__second_cut = std::lower_bound(__middle, __last, *__first_cut);
-	__len22 = std::distance(__middle, __second_cut);
-      }
-      else {
-	__len22 = __len2 / 2;
-	std::advance(__second_cut, __len22);
-	__first_cut = std::upper_bound(__first, __middle, *__second_cut);
-	__len11 = std::distance(__first, __first_cut);
-      }
+      if (__len1 > __len2)
+	{
+	  __len11 = __len1 / 2;
+	  std::advance(__first_cut, __len11);
+	  __second_cut = std::lower_bound(__middle, __last, *__first_cut);
+	  __len22 = std::distance(__middle, __second_cut);
+	}
+      else
+	{
+	  __len22 = __len2 / 2;
+	  std::advance(__second_cut, __len22);
+	  __first_cut = std::upper_bound(__first, __middle, *__second_cut);
+	  __len11 = std::distance(__first, __first_cut);
+	}
       std::rotate(__first_cut, __middle, __second_cut);
       _BidirectionalIterator __new_middle = __first_cut;
       std::advance(__new_middle, std::distance(__middle, __second_cut));
@@ -2669,7 +2851,8 @@
    *  This is a helper function for the merge routines.
    *  @endif
   */
-  template<typename _BidirectionalIterator, typename _Distance, typename _Compare>
+  template<typename _BidirectionalIterator, typename _Distance,
+	   typename _Compare>
     void
     __merge_without_buffer(_BidirectionalIterator __first,
                            _BidirectionalIterator __middle,
@@ -2679,27 +2862,32 @@
     {
       if (__len1 == 0 || __len2 == 0)
 	return;
-      if (__len1 + __len2 == 2) {
-	if (__comp(*__middle, *__first))
-	  std::iter_swap(__first, __middle);
-	return;
-      }
+      if (__len1 + __len2 == 2)
+	{
+	  if (__comp(*__middle, *__first))
+	    std::iter_swap(__first, __middle);
+	  return;
+	}
       _BidirectionalIterator __first_cut = __first;
       _BidirectionalIterator __second_cut = __middle;
       _Distance __len11 = 0;
       _Distance __len22 = 0;
-      if (__len1 > __len2) {
-	__len11 = __len1 / 2;
-	std::advance(__first_cut, __len11);
-	__second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp);
-	__len22 = std::distance(__middle, __second_cut);
-      }
-      else {
-	__len22 = __len2 / 2;
-	std::advance(__second_cut, __len22);
-	__first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp);
-	__len11 = std::distance(__first, __first_cut);
-      }
+      if (__len1 > __len2)
+	{
+	  __len11 = __len1 / 2;
+	  std::advance(__first_cut, __len11);
+	  __second_cut = std::lower_bound(__middle, __last, *__first_cut,
+					  __comp);
+	  __len22 = std::distance(__middle, __second_cut);
+	}
+      else
+	{
+	  __len22 = __len2 / 2;
+	  std::advance(__second_cut, __len22);
+	  __first_cut = std::upper_bound(__first, __middle, *__second_cut,
+					 __comp);
+	  __len11 = std::distance(__first, __first_cut);
+	}
       std::rotate(__first_cut, __middle, __second_cut);
       _BidirectionalIterator __new_middle = __first_cut;
       std::advance(__new_middle, std::distance(__middle, __second_cut));
@@ -2716,12 +2904,14 @@
   */
   template<typename _RandomAccessIterator>
     void
-    __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    __inplace_stable_sort(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last)
     {
-      if (__last - __first < 15) {
-	std::__insertion_sort(__first, __last);
-	return;
-      }
+      if (__last - __first < 15)
+	{
+	  std::__insertion_sort(__first, __last);
+	  return;
+	}
       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
       std::__inplace_stable_sort(__first, __middle);
       std::__inplace_stable_sort(__middle, __last);
@@ -2737,13 +2927,14 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     void
-    __inplace_stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
-			  _Compare __comp)
+    __inplace_stable_sort(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last, _Compare __comp)
     {
-      if (__last - __first < 15) {
-	std::__insertion_sort(__first, __last, __comp);
-	return;
-      }
+      if (__last - __first < 15)
+	{
+	  std::__insertion_sort(__first, __last, __comp);
+	  return;
+	}
       _RandomAccessIterator __middle = __first + (__last - __first) / 2;
       std::__inplace_stable_sort(__first, __middle, __comp);
       std::__inplace_stable_sort(__middle, __last, __comp);
@@ -2769,7 +2960,8 @@
    *  elements in the two ranges, elements from the first range will always
    *  come before elements from the second.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
     _OutputIterator
     merge(_InputIterator1 __first1, _InputIterator1 __last1,
 	  _InputIterator2 __first2, _InputIterator2 __last2,
@@ -2788,18 +2980,22 @@
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
-      while (__first1 != __last1 && __first2 != __last2) {
-	if (*__first2 < *__first1) {
-	  *__result = *__first2;
-	  ++__first2;
-	}
-	else {
-	  *__result = *__first1;
-	  ++__first1;
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first2 < *__first1)
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  ++__result;
 	}
-	++__result;
-      }
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
     }
 
   /**
@@ -2822,8 +3018,8 @@
    *  The comparison function should have the same effects on ordering as
    *  the function used for the initial sort.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
     _OutputIterator
     merge(_InputIterator1 __first1, _InputIterator1 __last1,
 	  _InputIterator2 __first2, _InputIterator2 __last2,
@@ -2843,34 +3039,41 @@
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
-      while (__first1 != __last1 && __first2 != __last2) {
-	if (__comp(*__first2, *__first1)) {
-	  *__result = *__first2;
-	  ++__first2;
-	}
-	else {
-	  *__result = *__first1;
-	  ++__first1;
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (__comp(*__first2, *__first1))
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  ++__result;
 	}
-	++__result;
-      }
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
     }
 
   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
 	   typename _Distance>
     void
-    __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last,
-		      _RandomAccessIterator2 __result, _Distance __step_size)
-    {
-      _Distance __two_step = 2 * __step_size;
-
-      while (__last - __first >= __two_step) {
-	__result = std::merge(__first, __first + __step_size,
-			      __first + __step_size, __first + __two_step,
-			      __result);
-	__first += __two_step;
-      }
+    __merge_sort_loop(_RandomAccessIterator1 __first,
+		      _RandomAccessIterator1 __last,
+		      _RandomAccessIterator2 __result,
+		      _Distance __step_size)
+    {
+      const _Distance __two_step = 2 * __step_size;
+
+      while (__last - __first >= __two_step)
+	{
+	  __result = std::merge(__first, __first + __step_size,
+				__first + __step_size, __first + __two_step,
+				__result);
+	  __first += __two_step;
+	}
 
       __step_size = std::min(_Distance(__last - __first), __step_size);
       std::merge(__first, __first + __step_size, __first + __step_size, __last,
@@ -2880,21 +3083,23 @@
   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
 	   typename _Distance, typename _Compare>
     void
-    __merge_sort_loop(_RandomAccessIterator1 __first, _RandomAccessIterator1 __last,
+    __merge_sort_loop(_RandomAccessIterator1 __first,
+		      _RandomAccessIterator1 __last,
 		      _RandomAccessIterator2 __result, _Distance __step_size,
 		      _Compare __comp)
     {
-      _Distance __two_step = 2 * __step_size;
+      const _Distance __two_step = 2 * __step_size;
 
-      while (__last - __first >= __two_step) {
-	__result = std::merge(__first, __first + __step_size,
-			      __first + __step_size, __first + __two_step,
-			      __result,
-			      __comp);
-	__first += __two_step;
-      }
+      while (__last - __first >= __two_step)
+	{
+	  __result = std::merge(__first, __first + __step_size,
+				__first + __step_size, __first + __two_step,
+				__result,
+				__comp);
+	  __first += __two_step;
+	}
       __step_size = std::min(_Distance(__last - __first), __step_size);
-
+      
       std::merge(__first, __first + __step_size,
 		 __first + __step_size, __last,
 		 __result,
@@ -2905,68 +3110,80 @@
 
   template<typename _RandomAccessIterator, typename _Distance>
     void
-    __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __chunk_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
 			   _Distance __chunk_size)
     {
-      while (__last - __first >= __chunk_size) {
-	std::__insertion_sort(__first, __first + __chunk_size);
-	__first += __chunk_size;
-      }
+      while (__last - __first >= __chunk_size)
+	{
+	  std::__insertion_sort(__first, __first + __chunk_size);
+	  __first += __chunk_size;
+	}
       std::__insertion_sort(__first, __last);
     }
 
   template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
     void
-    __chunk_insertion_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __chunk_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
 			   _Distance __chunk_size, _Compare __comp)
     {
-      while (__last - __first >= __chunk_size) {
-	std::__insertion_sort(__first, __first + __chunk_size, __comp);
-	__first += __chunk_size;
-      }
+      while (__last - __first >= __chunk_size)
+	{
+	  std::__insertion_sort(__first, __first + __chunk_size, __comp);
+	  __first += __chunk_size;
+	}
       std::__insertion_sort(__first, __last, __comp);
     }
 
   template<typename _RandomAccessIterator, typename _Pointer>
     void
-    __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __merge_sort_with_buffer(_RandomAccessIterator __first,
+			     _RandomAccessIterator __last,
                              _Pointer __buffer)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
 
-      _Distance __len = __last - __first;
-      _Pointer __buffer_last = __buffer + __len;
+      const _Distance __len = __last - __first;
+      const _Pointer __buffer_last = __buffer + __len;
 
       _Distance __step_size = _S_chunk_size;
       std::__chunk_insertion_sort(__first, __last, __step_size);
 
-      while (__step_size < __len) {
-	std::__merge_sort_loop(__first, __last, __buffer, __step_size);
-	__step_size *= 2;
-	std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
-	__step_size *= 2;
-      }
+      while (__step_size < __len)
+	{
+	  std::__merge_sort_loop(__first, __last, __buffer, __step_size);
+	  __step_size *= 2;
+	  std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
+	  __step_size *= 2;
+	}
     }
 
   template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
     void
-    __merge_sort_with_buffer(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __merge_sort_with_buffer(_RandomAccessIterator __first,
+			     _RandomAccessIterator __last,
                              _Pointer __buffer, _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
 
-      _Distance __len = __last - __first;
-      _Pointer __buffer_last = __buffer + __len;
+      const _Distance __len = __last - __first;
+      const _Pointer __buffer_last = __buffer + __len;
 
       _Distance __step_size = _S_chunk_size;
       std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
 
-      while (__step_size < __len) {
-	std::__merge_sort_loop(__first, __last, __buffer, __step_size, __comp);
-	__step_size *= 2;
-	std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp);
-	__step_size *= 2;
-      }
+      while (__step_size < __len)
+	{
+	  std::__merge_sort_loop(__first, __last, __buffer,
+				 __step_size, __comp);
+	  __step_size *= 2;
+	  std::__merge_sort_loop(__buffer, __buffer_last, __first,
+				 __step_size, __comp);
+	  __step_size *= 2;
+	}
     }
 
   /**
@@ -2977,8 +3194,10 @@
   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
 	   typename _BidirectionalIterator3>
     _BidirectionalIterator3
-    __merge_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,
-		     _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2,
+    __merge_backward(_BidirectionalIterator1 __first1,
+		     _BidirectionalIterator1 __last1,
+		     _BidirectionalIterator2 __first2,
+		     _BidirectionalIterator2 __last2,
 		     _BidirectionalIterator3 __result)
     {
       if (__first1 == __last1)
@@ -2987,20 +3206,23 @@
 	return std::copy_backward(__first1, __last1, __result);
       --__last1;
       --__last2;
-      while (true) {
-	if (*__last2 < *__last1) {
-	  *--__result = *__last1;
-	  if (__first1 == __last1)
-	    return std::copy_backward(__first2, ++__last2, __result);
-	  --__last1;
-	}
-	else {
-	  *--__result = *__last2;
-	  if (__first2 == __last2)
-	    return std::copy_backward(__first1, ++__last1, __result);
-	  --__last2;
+      while (true)
+	{
+	  if (*__last2 < *__last1)
+	    {
+	      *--__result = *__last1;
+	      if (__first1 == __last1)
+		return std::copy_backward(__first2, ++__last2, __result);
+	      --__last1;
+	    }
+	  else
+	    {
+	      *--__result = *__last2;
+	      if (__first2 == __last2)
+		return std::copy_backward(__first1, ++__last1, __result);
+	      --__last2;
+	    }
 	}
-      }
     }
 
   /**
@@ -3011,8 +3233,10 @@
   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
 	   typename _BidirectionalIterator3, typename _Compare>
     _BidirectionalIterator3
-    __merge_backward(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,
-		     _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2,
+    __merge_backward(_BidirectionalIterator1 __first1,
+		     _BidirectionalIterator1 __last1,
+		     _BidirectionalIterator2 __first2,
+		     _BidirectionalIterator2 __last2,
 		     _BidirectionalIterator3 __result,
 		     _Compare __comp)
     {
@@ -3022,20 +3246,23 @@
 	return std::copy_backward(__first1, __last1, __result);
       --__last1;
       --__last2;
-      while (true) {
-	if (__comp(*__last2, *__last1)) {
-	  *--__result = *__last1;
-	  if (__first1 == __last1)
-	    return std::copy_backward(__first2, ++__last2, __result);
-	  --__last1;
-	}
-	else {
-	  *--__result = *__last2;
-	  if (__first2 == __last2)
-	    return std::copy_backward(__first1, ++__last1, __result);
-	  --__last2;
+      while (true)
+	{
+	  if (__comp(*__last2, *__last1))
+	    {
+	      *--__result = *__last1;
+	      if (__first1 == __last1)
+		return std::copy_backward(__first2, ++__last2, __result);
+	      --__last1;
+	    }
+	  else
+	    {
+	      *--__result = *__last2;
+	      if (__first2 == __last2)
+		return std::copy_backward(__first1, ++__last1, __result);
+	      --__last2;
+	    }
 	}
-      }
     }
 
   /**
@@ -3054,21 +3281,24 @@
 		      _Distance __buffer_size)
     {
       _BidirectionalIterator2 __buffer_end;
-      if (__len1 > __len2 && __len2 <= __buffer_size) {
-	__buffer_end = std::copy(__middle, __last, __buffer);
-	std::copy_backward(__first, __middle, __last);
-	return std::copy(__buffer, __buffer_end, __first);
-      }
-      else if (__len1 <= __buffer_size) {
-	__buffer_end = std::copy(__first, __middle, __buffer);
-	std::copy(__middle, __last, __first);
-	return std::copy_backward(__buffer, __buffer_end, __last);
-      }
-      else {
-	std::rotate(__first, __middle, __last);
-	std::advance(__first, std::distance(__middle, __last));
-	return __first;
-      }
+      if (__len1 > __len2 && __len2 <= __buffer_size)
+	{
+	  __buffer_end = std::copy(__middle, __last, __buffer);
+	  std::copy_backward(__first, __middle, __last);
+	  return std::copy(__buffer, __buffer_end, __first);
+	}
+      else if (__len1 <= __buffer_size)
+	{
+	  __buffer_end = std::copy(__first, __middle, __buffer);
+	  std::copy(__middle, __last, __first);
+	  return std::copy_backward(__buffer, __buffer_end, __last);
+	}
+      else
+	{
+	  std::rotate(__first, __middle, __last);
+	  std::advance(__first, std::distance(__middle, __last));
+	  return __first;
+	}
     }
 
   /**
@@ -3076,7 +3306,8 @@
    *  This is a helper function for the merge routines.
    *  @endif
   */
-  template<typename _BidirectionalIterator, typename _Distance, typename _Pointer>
+  template<typename _BidirectionalIterator, typename _Distance,
+	   typename _Pointer>
     void
     __merge_adaptive(_BidirectionalIterator __first,
                      _BidirectionalIterator __middle,
@@ -3084,40 +3315,49 @@
 		     _Distance __len1, _Distance __len2,
 		     _Pointer __buffer, _Distance __buffer_size)
     {
-	  if (__len1 <= __len2 && __len1 <= __buffer_size) {
-	    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
-	    std::merge(__buffer, __buffer_end, __middle, __last, __first);
-	  }
-	  else if (__len2 <= __buffer_size) {
-	    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
-	    std::__merge_backward(__first, __middle, __buffer, __buffer_end, __last);
-	  }
-	  else {
-	    _BidirectionalIterator __first_cut = __first;
-	    _BidirectionalIterator __second_cut = __middle;
-	    _Distance __len11 = 0;
-	    _Distance __len22 = 0;
-	    if (__len1 > __len2) {
-		  __len11 = __len1 / 2;
-		  std::advance(__first_cut, __len11);
-		  __second_cut = std::lower_bound(__middle, __last, *__first_cut);
-		  __len22 = std::distance(__middle, __second_cut);
-	    }
-	    else {
-		  __len22 = __len2 / 2;
-		  std::advance(__second_cut, __len22);
-		  __first_cut = std::upper_bound(__first, __middle, *__second_cut);
-		  __len11 = std::distance(__first, __first_cut);
-	    }
-	    _BidirectionalIterator __new_middle =
-		  std::__rotate_adaptive(__first_cut, __middle, __second_cut,
-					 __len1 - __len11, __len22, __buffer,
-					 __buffer_size);
-	    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
-				  __len22, __buffer, __buffer_size);
-	    std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11,
-				  __len2 - __len22, __buffer, __buffer_size);
-	  }
+      if (__len1 <= __len2 && __len1 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
+	  std::merge(__buffer, __buffer_end, __middle, __last, __first);
+	}
+      else if (__len2 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
+	  std::__merge_backward(__first, __middle, __buffer,
+				__buffer_end, __last);
+	}
+      else
+	{
+	  _BidirectionalIterator __first_cut = __first;
+	  _BidirectionalIterator __second_cut = __middle;
+	  _Distance __len11 = 0;
+	  _Distance __len22 = 0;
+	  if (__len1 > __len2)
+	    {
+	      __len11 = __len1 / 2;
+	      std::advance(__first_cut, __len11);
+	      __second_cut = std::lower_bound(__middle, __last,
+					      *__first_cut);
+	      __len22 = std::distance(__middle, __second_cut);
+	    }
+	  else
+	    {
+	      __len22 = __len2 / 2;
+	      std::advance(__second_cut, __len22);
+	      __first_cut = std::upper_bound(__first, __middle,
+					     *__second_cut);
+	      __len11 = std::distance(__first, __first_cut);
+	    }
+	  _BidirectionalIterator __new_middle =
+	    std::__rotate_adaptive(__first_cut, __middle, __second_cut,
+				   __len1 - __len11, __len22, __buffer,
+				   __buffer_size);
+	  std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
+				__len22, __buffer, __buffer_size);
+	  std::__merge_adaptive(__new_middle, __second_cut, __last,
+				__len1 - __len11,
+				__len2 - __len22, __buffer, __buffer_size);
+	}
     }
 
   /**
@@ -3135,41 +3375,50 @@
 		     _Pointer __buffer, _Distance __buffer_size,
 		     _Compare __comp)
     {
-	  if (__len1 <= __len2 && __len1 <= __buffer_size) {
-	    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
-	    std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
-	  }
-	  else if (__len2 <= __buffer_size) {
-	    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
-	    std::__merge_backward(__first, __middle, __buffer, __buffer_end, __last,
-				  __comp);
-	  }
-	  else {
-	    _BidirectionalIterator __first_cut = __first;
-	    _BidirectionalIterator __second_cut = __middle;
-	    _Distance __len11 = 0;
-	    _Distance __len22 = 0;
-	    if (__len1 > __len2) {
-		  __len11 = __len1 / 2;
-		  std::advance(__first_cut, __len11);
-		  __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp);
-		  __len22 = std::distance(__middle, __second_cut);
-	    }
-	    else {
-		  __len22 = __len2 / 2;
-		  std::advance(__second_cut, __len22);
-		  __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp);
-		  __len11 = std::distance(__first, __first_cut);
-	    }
-	    _BidirectionalIterator __new_middle =
-		  std::__rotate_adaptive(__first_cut, __middle, __second_cut,
-					 __len1 - __len11, __len22, __buffer,
-					 __buffer_size);
-	    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
-				  __len22, __buffer, __buffer_size, __comp);
-	    std::__merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11,
-				  __len2 - __len22, __buffer, __buffer_size, __comp);
-	  }
+      if (__len1 <= __len2 && __len1 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
+	  std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
+	}
+      else if (__len2 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
+	  std::__merge_backward(__first, __middle, __buffer, __buffer_end,
+				__last, __comp);
+	}
+      else
+	{
+	  _BidirectionalIterator __first_cut = __first;
+	  _BidirectionalIterator __second_cut = __middle;
+	  _Distance __len11 = 0;
+	  _Distance __len22 = 0;
+	  if (__len1 > __len2)
+	    {
+	      __len11 = __len1 / 2;
+	      std::advance(__first_cut, __len11);
+	      __second_cut = std::lower_bound(__middle, __last, *__first_cut,
+					      __comp);
+	      __len22 = std::distance(__middle, __second_cut);
+	    }
+	  else
+	    {
+	      __len22 = __len2 / 2;
+	      std::advance(__second_cut, __len22);
+	      __first_cut = std::upper_bound(__first, __middle, *__second_cut,
+					     __comp);
+	      __len11 = std::distance(__first, __first_cut);
+	    }
+	  _BidirectionalIterator __new_middle =
+	    std::__rotate_adaptive(__first_cut, __middle, __second_cut,
+				   __len1 - __len11, __len22, __buffer,
+				   __buffer_size);
+	  std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
+				__len22, __buffer, __buffer_size, __comp);
+	  std::__merge_adaptive(__new_middle, __second_cut, __last,
+				__len1 - __len11,
+				__len2 - __len22, __buffer,
+				__buffer_size, __comp);
+	}
     }
 
   /**
@@ -3213,7 +3462,8 @@
       _DistanceType __len1 = std::distance(__first, __middle);
       _DistanceType __len2 = std::distance(__middle, __last);
 
-      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last);
+      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
+								  __last);
       if (__buf.begin() == 0)
 	std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
       else
@@ -3265,58 +3515,73 @@
       if (__first == __middle || __middle == __last)
 	return;
 
-      _DistanceType __len1 = std::distance(__first, __middle);
-      _DistanceType __len2 = std::distance(__middle, __last);
+      const _DistanceType __len1 = std::distance(__first, __middle);
+      const _DistanceType __len2 = std::distance(__middle, __last);
 
-      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, __last);
+      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
+								  __last);
       if (__buf.begin() == 0)
-	std::__merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp);
+	std::__merge_without_buffer(__first, __middle, __last, __len1,
+				    __len2, __comp);
       else
 	std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
 			      __buf.begin(), _DistanceType(__buf.size()),
 			      __comp);
     }
 
-  template<typename _RandomAccessIterator, typename _Pointer, typename _Distance>
+  template<typename _RandomAccessIterator, typename _Pointer,
+	   typename _Distance>
     void
-    __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __stable_sort_adaptive(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
                            _Pointer __buffer, _Distance __buffer_size)
     {
-      _Distance __len = (__last - __first + 1) / 2;
-      _RandomAccessIterator __middle = __first + __len;
-      if (__len > __buffer_size) {
-	std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size);
-	std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size);
-      }
-      else {
-	std::__merge_sort_with_buffer(__first, __middle, __buffer);
-	std::__merge_sort_with_buffer(__middle, __last, __buffer);
-      }
-      std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first),
-			    _Distance(__last - __middle), __buffer, __buffer_size);
+      const _Distance __len = (__last - __first + 1) / 2;
+      const _RandomAccessIterator __middle = __first + __len;
+      if (__len > __buffer_size)
+	{
+	  std::__stable_sort_adaptive(__first, __middle,
+				      __buffer, __buffer_size);
+	  std::__stable_sort_adaptive(__middle, __last,
+				      __buffer, __buffer_size);
+	}
+      else
+	{
+	  std::__merge_sort_with_buffer(__first, __middle, __buffer);
+	  std::__merge_sort_with_buffer(__middle, __last, __buffer);
+	}
+      std::__merge_adaptive(__first, __middle, __last,
+			    _Distance(__middle - __first),
+			    _Distance(__last - __middle),
+			    __buffer, __buffer_size);
     }
 
-  template<typename _RandomAccessIterator, typename _Pointer, typename _Distance,
-           typename _Compare>
+  template<typename _RandomAccessIterator, typename _Pointer,
+	   typename _Distance, typename _Compare>
     void
-    __stable_sort_adaptive(_RandomAccessIterator __first, _RandomAccessIterator __last,
+    __stable_sort_adaptive(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
                            _Pointer __buffer, _Distance __buffer_size,
                            _Compare __comp)
     {
-      _Distance __len = (__last - __first + 1) / 2;
-      _RandomAccessIterator __middle = __first + __len;
-      if (__len > __buffer_size) {
-	std::__stable_sort_adaptive(__first, __middle, __buffer, __buffer_size,
-				    __comp);
-	std::__stable_sort_adaptive(__middle, __last, __buffer, __buffer_size,
-				    __comp);
-      }
-      else {
-	std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
-	std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
-      }
-      std::__merge_adaptive(__first, __middle, __last, _Distance(__middle - __first),
-			    _Distance(__last - __middle), __buffer, __buffer_size,
+      const _Distance __len = (__last - __first + 1) / 2;
+      const _RandomAccessIterator __middle = __first + __len;
+      if (__len > __buffer_size)
+	{
+	  std::__stable_sort_adaptive(__first, __middle, __buffer,
+				      __buffer_size, __comp);
+	  std::__stable_sort_adaptive(__middle, __last, __buffer,
+				      __buffer_size, __comp);
+	}
+      else
+	{
+	  std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
+	  std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
+	}
+      std::__merge_adaptive(__first, __middle, __last,
+			    _Distance(__middle - __first),
+			    _Distance(__last - __middle),
+			    __buffer, __buffer_size,
 			    __comp);
     }
 
@@ -3340,8 +3605,10 @@
     inline void
     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
@@ -3349,11 +3616,13 @@
       __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
+      _Temporary_buffer<_RandomAccessIterator, _ValueType>
+	buf(__first, __last);
       if (buf.begin() == 0)
 	std::__inplace_stable_sort(__first, __last);
       else
-	std::__stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size()));
+	std::__stable_sort_adaptive(__first, __last, buf.begin(),
+				    _DistanceType(buf.size()));
     }
 
   /**
@@ -3375,24 +3644,28 @@
   */
   template<typename _RandomAccessIterator, typename _Compare>
     inline void
-    stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
+    stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+		_Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
 	    _RandomAccessIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-							  _ValueType, _ValueType>)
+				  _ValueType,
+				  _ValueType>)
       __glibcxx_requires_valid_range(__first, __last);
 
       _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
       if (buf.begin() == 0)
 	std::__inplace_stable_sort(__first, __last, __comp);
       else
-	std::__stable_sort_adaptive(__first, __last, buf.begin(), _DistanceType(buf.size()),
-				    __comp);
+	std::__stable_sort_adaptive(__first, __last, buf.begin(),
+				    _DistanceType(buf.size()), __comp);
     }
 
   /**
@@ -3416,25 +3689,32 @@
 		_RandomAccessIterator __nth,
 		_RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
-      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIterator>)
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
       __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
       __glibcxx_requires_valid_range(__first, __nth);
       __glibcxx_requires_valid_range(__nth, __last);
 
-      while (__last - __first > 3) {
-	_RandomAccessIterator __cut =
-	  std::__unguarded_partition(__first, __last,
-				     _ValueType(std::__median(*__first,
-							      *(__first + (__last - __first)/2),
-							      *(__last - 1))));
-	if (__cut <= __nth)
-	  __first = __cut;
-	else
-	  __last = __cut;
-      }
+      while (__last - __first > 3)
+	{
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition(__first, __last,
+				       _ValueType(std::__median(*__first,
+								*(__first
+								  + (__last
+								     - __first)
+								  / 2),
+								*(__last
+								  - 1))));
+	  if (__cut <= __nth)
+	    __first = __cut;
+	  else
+	    __last = __cut;
+	}
       std::__insertion_sort(__first, __last);
     }
 
@@ -3461,27 +3741,33 @@
 		_RandomAccessIterator __last,
 			    _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
-      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<_RandomAccessIterator>)
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
 				  _ValueType, _ValueType>)
       __glibcxx_requires_valid_range(__first, __nth);
       __glibcxx_requires_valid_range(__nth, __last);
 
-      while (__last - __first > 3) {
-	_RandomAccessIterator __cut =
-	  std::__unguarded_partition(__first, __last,
-				     _ValueType(std::__median(*__first,
-							      *(__first + (__last - __first)/2),
-							      *(__last - 1),
+      while (__last - __first > 3)
+	{
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition(__first, __last,
+				       _ValueType(std::__median(*__first,
+								*(__first 
+								  + (__last
+								     - __first) 
+								  / 2),
+								*(__last - 1),
 							      __comp)), __comp);
-	if (__cut <= __nth)
-	  __first = __cut;
-	else
-	  __last = __cut;
-      }
+	  if (__cut <= __nth)
+	    __first = __cut;
+	  else
+	    __last = __cut;
+	}
       std::__insertion_sort(__first, __last, __comp);
     }
 
@@ -3503,10 +3789,13 @@
   */
   template<typename _ForwardIterator, typename _Tp>
     pair<_ForwardIterator, _ForwardIterator>
-    equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val)
+    equal_range(_ForwardIterator __first, _ForwardIterator __last,
+		const _Tp& __val)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       // See comments on lower_bound.
@@ -3519,24 +3808,27 @@
       _DistanceType __half;
       _ForwardIterator __middle, __left, __right;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (*__middle < __val) {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
-	}
-	else if (__val < *__middle)
-	  __len = __half;
-	else {
-	  __left = std::lower_bound(__first, __middle, __val);
-	  std::advance(__first, __len);
-	  __right = std::upper_bound(++__middle, __first, __val);
-	  return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (*__middle < __val)
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else if (__val < *__middle)
+	    __len = __half;
+	  else
+	    {
+	      __left = std::lower_bound(__first, __middle, __val);
+	      std::advance(__first, __len);
+	      __right = std::upper_bound(++__middle, __first, __val);
+	      return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+	    }
 	}
-      }
       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
     }
 
@@ -3559,40 +3851,48 @@
   */
   template<typename _ForwardIterator, typename _Tp, typename _Compare>
     pair<_ForwardIterator, _ForwardIterator>
-    equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __val,
+    equal_range(_ForwardIterator __first, _ForwardIterator __last,
+		const _Tp& __val,
 		_Compare __comp)
     {
-      typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
-      typedef typename iterator_traits<_ForwardIterator>::difference_type _DistanceType;
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
 
       // concept requirements
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _ValueType, _Tp>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _Tp, _ValueType>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType, _Tp>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _Tp, _ValueType>)
       __glibcxx_requires_partitioned_pred(__first, __last, __val, __comp);
 
       _DistanceType __len = std::distance(__first, __last);
       _DistanceType __half;
       _ForwardIterator __middle, __left, __right;
 
-      while (__len > 0) {
-	__half = __len >> 1;
-	__middle = __first;
-	std::advance(__middle, __half);
-	if (__comp(*__middle, __val)) {
-	  __first = __middle;
-	  ++__first;
-	  __len = __len - __half - 1;
-	}
-	else if (__comp(__val, *__middle))
-	  __len = __half;
-	else {
-	  __left = std::lower_bound(__first, __middle, __val, __comp);
-	  std::advance(__first, __len);
-	  __right = std::upper_bound(++__middle, __first, __val, __comp);
-	  return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__comp(*__middle, __val))
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else if (__comp(__val, *__middle))
+	    __len = __half;
+	  else
+	    {
+	      __left = std::lower_bound(__first, __middle, __val, __comp);
+	      std::advance(__first, __len);
+	      __right = std::upper_bound(++__middle, __first, __val, __comp);
+	      return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+	    }
 	}
-      }
       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
     }
 
@@ -3723,7 +4023,8 @@
    *  in [first2,last2) is not found before the search iterator reaches @a
    *  last2, false is returned.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _Compare>
     bool
     includes(_InputIterator1 __first1, _InputIterator1 __last1,
 	     _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
@@ -3768,7 +4069,8 @@
    *  both ranges advance.  The output range may not overlap either input
    *  range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
     _OutputIterator
     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
 	      _InputIterator2 __first2, _InputIterator2 __last2,
@@ -3787,23 +4089,28 @@
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
-      while (__first1 != __last1 && __first2 != __last2) {
-	if (*__first1 < *__first2) {
-	  *__result = *__first1;
-	  ++__first1;
-	}
-	else if (*__first2 < *__first1) {
-	  *__result = *__first2;
-	  ++__first2;
-	}
-	else {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__first2;
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first1 < *__first2)
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  else if (*__first2 < *__first1)
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	      ++__first2;
+	    }
+	  ++__result;
 	}
-	++__result;
-      }
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
     }
 
   /**
@@ -3824,8 +4131,8 @@
    *  ranges, the element from the first range is copied and both ranges
    *  advance.  The output range may not overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
     _OutputIterator
     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
 	      _InputIterator2 __first2, _InputIterator2 __last2,
@@ -3845,23 +4152,28 @@
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
-      while (__first1 != __last1 && __first2 != __last2) {
-	if (__comp(*__first1, *__first2)) {
-	  *__result = *__first1;
-	  ++__first1;
-	}
-	else if (__comp(*__first2, *__first1)) {
-	  *__result = *__first2;
-	  ++__first2;
-	}
-	else {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__first2;
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (__comp(*__first1, *__first2))
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  else if (__comp(*__first2, *__first1))
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else 
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	      ++__first2;
+	    }
+	  ++__result;
 	}
-	++__result;
-      }
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+      return std::copy(__first2, __last2, std::copy(__first1, __last1, 
+						    __result));
     }
 
   /**
@@ -3880,7 +4192,8 @@
    *  element from the first range is copied and both ranges advance.  The
    *  output range may not overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
     _OutputIterator
     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
 		     _InputIterator2 __first2, _InputIterator2 __last2,
@@ -3904,12 +4217,13 @@
 	  ++__first1;
 	else if (*__first2 < *__first1)
 	  ++__first2;
-	else {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__first2;
-	  ++__result;
-	}
+	else
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__first2;
+	    ++__result;
+	  }
       return __result;
     }
 
@@ -3932,8 +4246,8 @@
    *  first range is copied and both ranges advance.  The output range may not
    *  overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
     _OutputIterator
     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
 		     _InputIterator2 __first2, _InputIterator2 __last2,
@@ -3958,12 +4272,13 @@
 	  ++__first1;
 	else if (__comp(*__first2, *__first1))
 	  ++__first2;
-	else {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__first2;
-	  ++__result;
-	}
+	else
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__first2;
+	    ++__result;
+	  }
       return __result;
     }
 
@@ -3985,7 +4300,8 @@
    *  contained in both ranges, no elements are copied and both ranges
    *  advance.  The output range may not overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
     _OutputIterator
     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
 		   _InputIterator2 __first2, _InputIterator2 __last2,
@@ -4005,17 +4321,19 @@
       __glibcxx_requires_sorted(__first2, __last2);
 
       while (__first1 != __last1 && __first2 != __last2)
-	if (*__first1 < *__first2) {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__result;
-	}
+	if (*__first1 < *__first2)
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
 	else if (*__first2 < *__first1)
 	  ++__first2;
-	else {
-	  ++__first1;
-	  ++__first2;
-	}
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
       return std::copy(__first1, __last1, __result);
     }
 
@@ -4040,8 +4358,8 @@
    *  elements are copied and both ranges advance.  The output range may not
    *  overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
     _OutputIterator
     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
 		   _InputIterator2 __first2, _InputIterator2 __last2,
@@ -4062,17 +4380,19 @@
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
       while (__first1 != __last1 && __first2 != __last2)
-	if (__comp(*__first1, *__first2)) {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__result;
-	}
+	if (__comp(*__first1, *__first2))
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
 	else if (__comp(*__first2, *__first1))
 	  ++__first2;
-	else {
-	  ++__first1;
-	  ++__first2;
-	}
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
       return std::copy(__first1, __last1, __result);
     }
 
@@ -4092,7 +4412,8 @@
    *  element is contained in both ranges, no elements are copied and both
    *  ranges advance.  The output range may not overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
     _OutputIterator
     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
 			     _InputIterator2 __first2, _InputIterator2 __last2,
@@ -4112,21 +4433,25 @@
       __glibcxx_requires_sorted(__first2, __last2);
 
       while (__first1 != __last1 && __first2 != __last2)
-	if (*__first1 < *__first2) {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__result;
-	}
-	else if (*__first2 < *__first1) {
-	  *__result = *__first2;
-	  ++__first2;
-	  ++__result;
-	}
-	else {
-	  ++__first1;
-	  ++__first2;
-	}
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+	if (*__first1 < *__first2)
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
+	else if (*__first2 < *__first1)
+	  {
+	    *__result = *__first2;
+	    ++__first2;
+	    ++__result;
+	  }
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
+      return std::copy(__first2, __last2, std::copy(__first1, 
+						    __last1, __result));
     }
 
   /**
@@ -4148,8 +4473,8 @@
    *  to @a comp, no elements are copied and both ranges advance.  The output
    *  range may not overlap either input range.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
-	   typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
     _OutputIterator
     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
 			     _InputIterator2 __first2, _InputIterator2 __last2,
@@ -4171,21 +4496,25 @@
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
       while (__first1 != __last1 && __first2 != __last2)
-	if (__comp(*__first1, *__first2)) {
-	  *__result = *__first1;
-	  ++__first1;
-	  ++__result;
-	}
-	else if (__comp(*__first2, *__first1)) {
-	  *__result = *__first2;
-	  ++__first2;
-	  ++__result;
-	}
-	else {
-	  ++__first1;
-	  ++__first2;
-	}
-      return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
+	if (__comp(*__first1, *__first2))
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
+	else if (__comp(*__first2, *__first1))
+	  {
+	    *__result = *__first2;
+	    ++__first2;
+	    ++__result;
+	  }
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
+      return std::copy(__first2, __last2, std::copy(__first1,
+						    __last1, __result));
     }
 
   // min_element and max_element, with and without an explicitly supplied
@@ -4207,7 +4536,8 @@
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first == __last) return __first;
+      if (__first == __last)
+	return __first;
       _ForwardIterator __result = __first;
       while (++__first != __last)
 	if (*__result < *__first)
@@ -4258,7 +4588,8 @@
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first == __last) return __first;
+      if (__first == __last)
+	return __first;
       _ForwardIterator __result = __first;
       while (++__first != __last)
 	if (*__first < *__result)
@@ -4286,7 +4617,8 @@
 	    typename iterator_traits<_ForwardIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__first == __last) return __first;
+      if (__first == __last)
+	return __first;
       _ForwardIterator __result = __first;
       while (++__first != __last)
 	if (__comp(*__first, *__result))
@@ -4310,10 +4642,12 @@
   */
   template<typename _BidirectionalIterator>
     bool
-    next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last)
+    next_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
       __glibcxx_function_requires(_LessThanComparableConcept<
 	    typename iterator_traits<_BidirectionalIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
@@ -4327,22 +4661,25 @@
       __i = __last;
       --__i;
 
-      for(;;) {
-	_BidirectionalIterator __ii = __i;
-	--__i;
-	if (*__i < *__ii) {
-	  _BidirectionalIterator __j = __last;
-	  while (!(*__i < *--__j))
-	    {}
-	  std::iter_swap(__i, __j);
-	  std::reverse(__ii, __last);
-	  return true;
-	}
-	if (__i == __first) {
-	  std::reverse(__first, __last);
-	  return false;
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (*__i < *__ii)
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!(*__i < *--__j))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
 	}
-      }
     }
 
   /**
@@ -4361,11 +4698,12 @@
   */
   template<typename _BidirectionalIterator, typename _Compare>
     bool
-    next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last,
-		     _Compare __comp)
+    next_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last, _Compare __comp)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
 	    typename iterator_traits<_BidirectionalIterator>::value_type,
 	    typename iterator_traits<_BidirectionalIterator>::value_type>)
@@ -4380,22 +4718,25 @@
       __i = __last;
       --__i;
 
-      for(;;) {
-	_BidirectionalIterator __ii = __i;
-	--__i;
-	if (__comp(*__i, *__ii)) {
-	  _BidirectionalIterator __j = __last;
-	  while (!__comp(*__i, *--__j))
-	    {}
-	  std::iter_swap(__i, __j);
-	  std::reverse(__ii, __last);
-	  return true;
-	}
-	if (__i == __first) {
-	  std::reverse(__first, __last);
-	  return false;
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (__comp(*__i, *__ii))
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!__comp(*__i, *--__j))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
 	}
-      }
     }
 
   /**
@@ -4412,10 +4753,12 @@
   */
   template<typename _BidirectionalIterator>
     bool
-    prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last)
+    prev_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
       __glibcxx_function_requires(_LessThanComparableConcept<
 	    typename iterator_traits<_BidirectionalIterator>::value_type>)
       __glibcxx_requires_valid_range(__first, __last);
@@ -4429,22 +4772,25 @@
       __i = __last;
       --__i;
 
-      for(;;) {
-	_BidirectionalIterator __ii = __i;
-	--__i;
-	if (*__ii < *__i) {
-	  _BidirectionalIterator __j = __last;
-	  while (!(*--__j < *__i))
-	    {}
-	  std::iter_swap(__i, __j);
-	  std::reverse(__ii, __last);
-	  return true;
-	}
-	if (__i == __first) {
-	  std::reverse(__first, __last);
-	  return false;
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (*__ii < *__i)
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!(*--__j < *__i))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
 	}
-      }
     }
 
   /**
@@ -4463,11 +4809,12 @@
   */
   template<typename _BidirectionalIterator, typename _Compare>
     bool
-    prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last,
-		     _Compare __comp)
+    prev_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last, _Compare __comp)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
 	    typename iterator_traits<_BidirectionalIterator>::value_type,
 	    typename iterator_traits<_BidirectionalIterator>::value_type>)
@@ -4482,22 +4829,25 @@
       __i = __last;
       --__i;
 
-      for(;;) {
-	_BidirectionalIterator __ii = __i;
-	--__i;
-	if (__comp(*__ii, *__i)) {
-	  _BidirectionalIterator __j = __last;
-	  while (!__comp(*--__j, *__i))
-	    {}
-	  std::iter_swap(__i, __j);
-	  std::reverse(__ii, __last);
-	  return true;
-	}
-	if (__i == __first) {
-	  std::reverse(__first, __last);
-	  return false;
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (__comp(*__ii, *__i))
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!__comp(*--__j, *__i))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
 	}
-      }
     }
 
   // find_first_of, with and without an explicitly supplied comparison function.
@@ -4552,7 +4902,8 @@
    *  some element in the range [first2,last2).  If found, returns an iterator in
    *  the range [first1,last1), otherwise returns @p last1.
   */
-  template<typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate>
+  template<typename _InputIterator, typename _ForwardIterator,
+	   typename _BinaryPredicate>
     _InputIterator
     find_first_of(_InputIterator __first1, _InputIterator __last1,
 		  _ForwardIterator __first2, _ForwardIterator __last2,
@@ -4592,20 +4943,23 @@
     {
       if (__first2 == __last2)
 	return __last1;
-      else {
-	_ForwardIterator1 __result = __last1;
-	while (1) {
-	  _ForwardIterator1 __new_result
-	    = std::search(__first1, __last1, __first2, __last2);
-	  if (__new_result == __last1)
-	    return __result;
-	  else {
-	    __result = __new_result;
-	    __first1 = __new_result;
-	    ++__first1;
-	  }
+      else
+	{
+	  _ForwardIterator1 __result = __last1;
+	  while (1)
+	    {
+	      _ForwardIterator1 __new_result
+		= std::search(__first1, __last1, __first2, __last2);
+	      if (__new_result == __last1)
+		return __result;
+	      else
+		{
+		  __result = __new_result;
+		  __first1 = __new_result;
+		  ++__first1;
+		}
+	    }
 	}
-      }
     }
 
   template<typename _ForwardIterator1, typename _ForwardIterator2,
@@ -4618,32 +4972,39 @@
     {
       if (__first2 == __last2)
 	return __last1;
-      else {
-	_ForwardIterator1 __result = __last1;
-	while (1) {
-	  _ForwardIterator1 __new_result
-	    = std::search(__first1, __last1, __first2, __last2, __comp);
-	  if (__new_result == __last1)
-	    return __result;
-	  else {
-	    __result = __new_result;
-	    __first1 = __new_result;
-	    ++__first1;
-	  }
+      else
+	{
+	  _ForwardIterator1 __result = __last1;
+	  while (1)
+	    {
+	      _ForwardIterator1 __new_result
+		= std::search(__first1, __last1, __first2, __last2, __comp);
+	      if (__new_result == __last1)
+		return __result;
+	      else
+		{
+		  __result = __new_result;
+		  __first1 = __new_result;
+		  ++__first1;
+		}
+	    }
 	}
-      }
     }
 
   // find_end for bidirectional iterators.  Requires partial specialization.
   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
     _BidirectionalIterator1
-    __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,
-	       _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2,
+    __find_end(_BidirectionalIterator1 __first1,
+	       _BidirectionalIterator1 __last1,
+	       _BidirectionalIterator2 __first2,
+	       _BidirectionalIterator2 __last2,
 	       bidirectional_iterator_tag, bidirectional_iterator_tag)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator1>)
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator2>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator1>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator2>)
 
       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
@@ -4655,24 +5016,29 @@
 
       if (__rresult == __rlast1)
 	return __last1;
-      else {
-	_BidirectionalIterator1 __result = __rresult.base();
-	std::advance(__result, -std::distance(__first2, __last2));
-	return __result;
-      }
+      else
+	{
+	  _BidirectionalIterator1 __result = __rresult.base();
+	  std::advance(__result, -std::distance(__first2, __last2));
+	  return __result;
+	}
     }
 
   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
 	   typename _BinaryPredicate>
     _BidirectionalIterator1
-    __find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,
-	       _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2,
+    __find_end(_BidirectionalIterator1 __first1, 
+	       _BidirectionalIterator1 __last1,
+	       _BidirectionalIterator2 __first2, 
+	       _BidirectionalIterator2 __last2,
 	       bidirectional_iterator_tag, bidirectional_iterator_tag,
 	       _BinaryPredicate __comp)
     {
       // concept requirements
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator1>)
-      __glibcxx_function_requires(_BidirectionalIteratorConcept<_BidirectionalIterator2>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator1>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator2>)
 
       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
@@ -4685,11 +5051,12 @@
 
       if (__rresult == __rlast1)
 	return __last1;
-      else {
-	_BidirectionalIterator1 __result = __rresult.base();
-	std::advance(__result, -std::distance(__first2, __last2));
-	return __result;
-      }
+      else
+	{
+	  _BidirectionalIterator1 __result = __rresult.base();
+	  std::advance(__result, -std::distance(__first2, __last2));
+	  return __result;
+	}
     }
 
   // Dispatching functions for find_end.
@@ -4788,4 +5155,3 @@
 } // namespace std
 
 #endif /* _ALGO_H */
-
diff -urN libstdc++-v3-orig/include/bits/stl_algobase.h libstdc++-v3/include/bits/stl_algobase.h
--- libstdc++-v3-orig/include/bits/stl_algobase.h	2003-11-11 21:09:08.000000000 +0100
+++ libstdc++-v3/include/bits/stl_algobase.h	2004-01-31 22:01:12.000000000 +0100
@@ -91,16 +91,22 @@
     inline void
     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
     {
-      typedef typename iterator_traits<_ForwardIterator1>::value_type _ValueType1;
-      typedef typename iterator_traits<_ForwardIterator2>::value_type _ValueType2;
+      typedef typename iterator_traits<_ForwardIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_ForwardIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator1>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator2>)
+      __glibcxx_function_requires(_ConvertibleConcept<_ValueType1,
+				  _ValueType2>)
+      __glibcxx_function_requires(_ConvertibleConcept<_ValueType2,
+				  _ValueType1>)
 
-      // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator1>)
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator2>)
-      __glibcxx_function_requires(_ConvertibleConcept<_ValueType1, _ValueType2>)
-      __glibcxx_function_requires(_ConvertibleConcept<_ValueType2, _ValueType1>)
-
-      _ValueType1 __tmp = *__a;
+      const _ValueType1 __tmp = *__a;
       *__a = *__b;
       *__b = __tmp;
     }
@@ -121,7 +127,7 @@
       // concept requirements
       __glibcxx_function_requires(_SGIAssignableConcept<_Tp>)
       
-      _Tp __tmp = __a;
+      const _Tp __tmp = __a;
       __a = __b;
       __b = __tmp;
     }
@@ -146,7 +152,9 @@
       // concept requirements
       __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
       //return __b < __a ? __b : __a;
-      if (__b < __a) return __b; return __a;
+      if (__b < __a)
+	return __b;
+      return __a;
     }
 
   /**
@@ -166,7 +174,9 @@
       // concept requirements
       __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
       //return  __a < __b ? __b : __a;
-      if (__a < __b) return __b; return __a;
+      if (__a < __b)
+	return __b;
+      return __a;
     }
 
   /**
@@ -184,7 +194,9 @@
     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
     {
       //return __comp(__b, __a) ? __b : __a;
-      if (__comp(__b, __a)) return __b; return __a;
+      if (__comp(__b, __a))
+	return __b;
+      return __a;
     }
 
   /**
@@ -202,7 +214,9 @@
     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
     {
       //return __comp(__a, __b) ? __b : __a;
-      if (__comp(__a, __b)) return __b; return __a;
+      if (__comp(__a, __b))
+	return __b;
+      return __a;
     }
 
   // All of these auxiliary functions serve two purposes.  (1) Replace
@@ -249,13 +263,15 @@
     inline _OutputIterator
     __copy_aux2(_InputIterator __first, _InputIterator __last,
 		_OutputIterator __result, __false_type)
-    { return std::__copy(__first, __last, __result, std::__iterator_category(__first)); }
+    { return std::__copy(__first, __last, __result,
+			 std::__iterator_category(__first)); }
 
   template<typename _InputIterator, typename _OutputIterator>
     inline _OutputIterator
     __copy_aux2(_InputIterator __first, _InputIterator __last,
 		_OutputIterator __result, __true_type)
-    { return std::__copy(__first, __last, __result, std::__iterator_category(__first)); }
+    { return std::__copy(__first, __last, __result,
+			 std::__iterator_category(__first)); }
 
   template<typename _Tp>
     inline _Tp*
@@ -274,9 +290,9 @@
 	       _OutputIterator __result, __true_type)
     {
       typedef typename iterator_traits<_InputIterator>::value_type
-	  _ValueType;
-      typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator
-	  _Trivial;
+	_ValueType;
+      typedef typename __type_traits<
+	_ValueType>::has_trivial_assignment_operator _Trivial;
       return _OutputIterator(std::__copy_aux2(__first, __last, __result.base(),
 					      _Trivial()));
     }
@@ -287,8 +303,8 @@
 	       _OutputIterator __result, __false_type)
     {
       typedef typename iterator_traits<_InputIterator>::value_type _ValueType;
-      typedef typename __type_traits<_ValueType>::has_trivial_assignment_operator
-          _Trivial;
+      typedef typename __type_traits<
+	_ValueType>::has_trivial_assignment_operator _Trivial;
       return std::__copy_aux2(__first, __last, __result, _Trivial());
     }
 
@@ -298,7 +314,8 @@
 	       _OutputIterator __result, __true_type)
     {
       typedef typename _Is_normal_iterator<_OutputIterator>::_Normal __Normal;
-      return std::__copy_ni2(__first.base(), __last.base(), __result, __Normal());
+      return std::__copy_ni2(__first.base(), __last.base(),
+			     __result, __Normal());
     }
 
   template<typename _InputIterator, typename _OutputIterator>
@@ -328,7 +345,8 @@
   */
   template<typename _InputIterator, typename _OutputIterator>
     inline _OutputIterator
-    copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result)
+    copy(_InputIterator __first, _InputIterator __last,
+	 _OutputIterator __result)
     {
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
@@ -342,8 +360,10 @@
 
   template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
     inline _BidirectionalIterator2
-    __copy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, 
-		    _BidirectionalIterator2 __result, bidirectional_iterator_tag)
+    __copy_backward(_BidirectionalIterator1 __first,
+		    _BidirectionalIterator1 __last, 
+		    _BidirectionalIterator2 __result,
+		    bidirectional_iterator_tag)
     {
       while (__first != __last)
         *--__result = *--__last;
@@ -373,10 +393,8 @@
       static _BidirectionalIterator2
       copy(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, 
 	   _BidirectionalIterator2 __result)
-      {
-        return std::__copy_backward(__first, __last, __result, 
-				    std::__iterator_category(__first));
-      }
+      { return std::__copy_backward(__first, __last, __result, 
+				    std::__iterator_category(__first)); }
     };
 
   template<typename _Tp>
@@ -408,9 +426,10 @@
     {
       typedef typename __type_traits<typename iterator_traits<_BI2>::value_type>
 			    ::has_trivial_assignment_operator _Trivial;
-      return std::__copy_backward_dispatch<_BI1, _BI2, _Trivial>::copy(__first, 
-								       __last, 
-								       __result);
+      return
+	std::__copy_backward_dispatch<_BI1, _BI2, _Trivial>::copy(__first, 
+								  __last, 
+								  __result);
     }
 
   template <typename _BI1, typename _BI2>
@@ -432,8 +451,8 @@
     {
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
       return std::__copy_backward_output_normal_iterator(__first.base(),
-							 __last.base(), __result, 
-							 __Normal());
+							 __last.base(),
+							 __result, __Normal());
     }
 
   template <typename _BI1, typename _BI2>
@@ -442,8 +461,8 @@
 					  _BI2 __result, __false_type)
     {
       typedef typename _Is_normal_iterator<_BI2>::_Normal __Normal;
-      return std::__copy_backward_output_normal_iterator(__first, __last, __result,
-							 __Normal());
+      return std::__copy_backward_output_normal_iterator(__first, __last,
+							 __result, __Normal());
     }
 
   /**
@@ -476,8 +495,8 @@
       __glibcxx_requires_valid_range(__first, __last);
 
       typedef typename _Is_normal_iterator<_BI1>::_Normal __Normal;
-      return std::__copy_backward_input_normal_iterator(__first, __last, __result,
-							__Normal());
+      return std::__copy_backward_input_normal_iterator(__first, __last,
+							__result, __Normal());
     }
 
 
@@ -497,7 +516,8 @@
     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
     {
       // concept requirements
-      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
       __glibcxx_requires_valid_range(__first, __last);
 
       for ( ; __first != __last; ++__first)
@@ -532,7 +552,7 @@
   fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
   {
     __glibcxx_requires_valid_range(__first, __last);
-    unsigned char __tmp = __c;
+    const unsigned char __tmp = __c;
     std::memset(__first, __tmp, __last - __first);
   }
 
@@ -540,7 +560,7 @@
   fill(signed char* __first, signed char* __last, const signed char& __c)
   {
     __glibcxx_requires_valid_range(__first, __last);
-    signed char __tmp = __c;
+    const signed char __tmp = __c;
     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
   }
 
@@ -548,7 +568,7 @@
   fill(char* __first, char* __last, const char& __c)
   {
     __glibcxx_requires_valid_range(__first, __last);
-    char __tmp = __c;
+    const char __tmp = __c;
     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
   }
 
@@ -625,7 +645,8 @@
    *  second iterator points into the second range, and the elements pointed
    *  to by the iterators are not equal.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _BinaryPredicate>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _BinaryPredicate>
     pair<_InputIterator1, _InputIterator2>
     mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
 	     _InputIterator2 __first2, _BinaryPredicate __binary_pred)
@@ -656,7 +677,8 @@
   */
   template<typename _InputIterator1, typename _InputIterator2>
     inline bool
-    equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2)
+    equal(_InputIterator1 __first1, _InputIterator1 __last1,
+	  _InputIterator2 __first2)
     {
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
@@ -685,7 +707,8 @@
    *  false depending on whether all of the corresponding elements of the
    *  ranges are equal.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _BinaryPredicate>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _BinaryPredicate>
     inline bool
     equal(_InputIterator1 __first1, _InputIterator1 __last1,
 	  _InputIterator2 __first2,
@@ -753,7 +776,8 @@
    *  The same as the four-parameter @c lexigraphical_compare, but uses the
    *  comp parameter instead of @c <.
   */
-  template<typename _InputIterator1, typename _InputIterator2, typename _Compare>
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _Compare>
     bool
     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
 			    _InputIterator2 __first2, _InputIterator2 __last2,
@@ -787,7 +811,8 @@
 
     const size_t __len1 = __last1 - __first1;
     const size_t __len2 = __last2 - __first2;
-    const int __result = std::memcmp(__first1, __first2, std::min(__len1, __len2));
+    const int __result = std::memcmp(__first1, __first2,
+				     std::min(__len1, __len2));
     return __result != 0 ? __result < 0 : __len1 < __len2;
   }
 
diff -urN libstdc++-v3-orig/include/bits/stl_heap.h libstdc++-v3/include/bits/stl_heap.h
--- libstdc++-v3-orig/include/bits/stl_heap.h	2003-11-11 21:09:08.000000000 +0100
+++ libstdc++-v3/include/bits/stl_heap.h	2004-01-31 19:34:28.000000000 +0100
@@ -1,6 +1,6 @@
 // Heap implementation -*- C++ -*-
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -72,12 +72,13 @@
     __is_heap(_RandomAccessIterator __first, _Distance __n)
     {
       _Distance __parent = 0;
-      for (_Distance __child = 1; __child < __n; ++__child) {
-	if (__first[__parent] < __first[__child]) 
-	  return false;
-	if ((__child & 1) == 0)
-	  ++__parent;
-      }
+      for (_Distance __child = 1; __child < __n; ++__child)
+	{
+	  if (__first[__parent] < __first[__child]) 
+	    return false;
+	  if ((__child & 1) == 0)
+	    ++__parent;
+	}
       return true;
     }
 
@@ -88,12 +89,13 @@
 	      _Distance __n)
     {
       _Distance __parent = 0;
-      for (_Distance __child = 1; __child < __n; ++__child) {
-	if (__comp(__first[__parent], __first[__child]))
-	  return false;
-	if ((__child & 1) == 0)
-	  ++__parent;
-      }
+      for (_Distance __child = 1; __child < __n; ++__child)
+	{
+	  if (__comp(__first[__parent], __first[__child]))
+	    return false;
+	  if ((__child & 1) == 0)
+	    ++__parent;
+	}
       return true;
     }
 
@@ -116,11 +118,12 @@
 		_Distance __holeIndex, _Distance __topIndex, _Tp __value)
     {
       _Distance __parent = (__holeIndex - 1) / 2;
-      while (__holeIndex > __topIndex && *(__first + __parent) < __value) {
-	*(__first + __holeIndex) = *(__first + __parent);
-	__holeIndex = __parent;
-	__parent = (__holeIndex - 1) / 2;
-      }    
+      while (__holeIndex > __topIndex && *(__first + __parent) < __value)
+	{
+	  *(__first + __holeIndex) = *(__first + __parent);
+	  __holeIndex = __parent;
+	  __parent = (__holeIndex - 1) / 2;
+	}
       *(__first + __holeIndex) = __value;
     }
 
@@ -149,8 +152,8 @@
       __glibcxx_requires_valid_range(__first, __last);
       //      __glibcxx_requires_heap(__first, __last - 1);
 
-      std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), 
-		       _ValueType(*(__last - 1)));
+      std::__push_heap(__first, _DistanceType((__last - __first) - 1),
+		       _DistanceType(0), _ValueType(*(__last - 1)));
     }
 
   template<typename _RandomAccessIterator, typename _Distance, typename _Tp, 
@@ -160,11 +163,13 @@
 		_Distance __topIndex, _Tp __value, _Compare __comp)
     {
       _Distance __parent = (__holeIndex - 1) / 2;
-      while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value)) {
-	*(__first + __holeIndex) = *(__first + __parent);
-	__holeIndex = __parent;
-	__parent = (__holeIndex - 1) / 2;
-      }
+      while (__holeIndex > __topIndex
+	     && __comp(*(__first + __parent), __value))
+	{
+	  *(__first + __holeIndex) = *(__first + __parent);
+	  __holeIndex = __parent;
+	  __parent = (__holeIndex - 1) / 2;
+	}
       *(__first + __holeIndex) = __value;
     }
 
@@ -195,8 +200,8 @@
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_heap_pred(__first, __last - 1, __comp);
 
-      std::__push_heap(__first, _DistanceType((__last - __first) - 1), _DistanceType(0), 
-		       _ValueType(*(__last - 1)), __comp);
+      std::__push_heap(__first, _DistanceType((__last - __first) - 1),
+		       _DistanceType(0), _ValueType(*(__last - 1)), __comp);
     }
 
   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
@@ -204,19 +209,21 @@
     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
 		  _Distance __len, _Tp __value)
     {
-      _Distance __topIndex = __holeIndex;
+      const _Distance __topIndex = __holeIndex;
       _Distance __secondChild = 2 * __holeIndex + 2;
-      while (__secondChild < __len) {
-	if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
-	  __secondChild--;
-	*(__first + __holeIndex) = *(__first + __secondChild);
-	__holeIndex = __secondChild;
-	__secondChild = 2 * (__secondChild + 1);
-      }
-      if (__secondChild == __len) {
-	*(__first + __holeIndex) = *(__first + (__secondChild - 1));
-	__holeIndex = __secondChild - 1;
-      }
+      while (__secondChild < __len)
+	{
+	  if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
+	    __secondChild--;
+	  *(__first + __holeIndex) = *(__first + __secondChild);
+	  __holeIndex = __secondChild;
+	  __secondChild = 2 * (__secondChild + 1);
+	}
+      if (__secondChild == __len)
+	{
+	  *(__first + __holeIndex) = *(__first + (__secondChild - 1));
+	  __holeIndex = __secondChild - 1;
+	}
       std::__push_heap(__first, __holeIndex, __topIndex, __value);
     }
 
@@ -225,9 +232,11 @@
     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
 	       _RandomAccessIterator __result, _Tp __value)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
       *__result = *__first;
-      std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first), __value);
+      std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
+			 __value);
     }
 
   /**
@@ -243,7 +252,8 @@
     inline void
     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
 
       // concept requirements
       __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
@@ -252,7 +262,8 @@
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_heap(__first, __last);
 
-      std::__pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1)));
+      std::__pop_heap(__first, __last - 1, __last - 1,
+		      _ValueType(*(__last - 1)));
     }
 
   template<typename _RandomAccessIterator, typename _Distance,
@@ -261,19 +272,22 @@
     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
 		  _Distance __len, _Tp __value, _Compare __comp)
     {
-      _Distance __topIndex = __holeIndex;
+      const _Distance __topIndex = __holeIndex;
       _Distance __secondChild = 2 * __holeIndex + 2;
-      while (__secondChild < __len) {
-	if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1))))
-	  __secondChild--;
-	*(__first + __holeIndex) = *(__first + __secondChild);
-	__holeIndex = __secondChild;
-	__secondChild = 2 * (__secondChild + 1);
-      }
-      if (__secondChild == __len) {
-	*(__first + __holeIndex) = *(__first + (__secondChild - 1));
-	__holeIndex = __secondChild - 1;
-      }
+      while (__secondChild < __len)
+	{
+	  if (__comp(*(__first + __secondChild),
+		     *(__first + (__secondChild - 1))))
+	    __secondChild--;
+	  *(__first + __holeIndex) = *(__first + __secondChild);
+	  __holeIndex = __secondChild;
+	  __secondChild = 2 * (__secondChild + 1);
+	}
+      if (__secondChild == __len)
+	{
+	  *(__first + __holeIndex) = *(__first + (__secondChild - 1));
+	  __holeIndex = __secondChild - 1;
+	}
       std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
     }
 
@@ -282,9 +296,10 @@
     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
 	       _RandomAccessIterator __result, _Tp __value, _Compare __comp)
     {
-      typedef typename iterator_traits<_RandomAccessIterator>::difference_type _Distance;
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
       *__result = *__first;
-      std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first), 
+      std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
 			 __value, __comp);
     }
 
@@ -310,8 +325,10 @@
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_heap_pred(__first, __last, __comp);
 
-      typedef typename iterator_traits<_RandomAccessIterator>::value_type _ValueType;
-      std::__pop_heap(__first, __last - 1, __last - 1, _ValueType(*(__last - 1)), __comp);
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+      std::__pop_heap(__first, __last - 1, __last - 1,
+		      _ValueType(*(__last - 1)), __comp);
     }
 
   /**
@@ -337,15 +354,19 @@
       __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
       __glibcxx_requires_valid_range(__first, __last);
 
-      if (__last - __first < 2) return;
-      _DistanceType __len = __last - __first;
-      _DistanceType __parent = (__len - 2)/2;
-	
-      while (true) {
-	std::__adjust_heap(__first, __parent, __len, _ValueType(*(__first + __parent)));
-	if (__parent == 0) return;
-	__parent--;
-      }
+      if (__last - __first < 2)
+	return;
+
+      const _DistanceType __len = __last - __first;    
+      _DistanceType __parent = (__len - 2) / 2;
+      while (true)
+	{
+	  std::__adjust_heap(__first, __parent, __len,
+			     _ValueType(*(__first + __parent)));
+	  if (__parent == 0)
+	    return;
+	  __parent--;
+	}
     }
 
   /**
@@ -373,16 +394,19 @@
 	    _RandomAccessIterator>)
       __glibcxx_requires_valid_range(__first, __last);
       
-      if (__last - __first < 2) return;
-      _DistanceType __len = __last - __first;
-      _DistanceType __parent = (__len - 2)/2;
-	
-      while (true) {
-	std::__adjust_heap(__first, __parent, __len,
-			   _ValueType(*(__first + __parent)), __comp);
-	if (__parent == 0) return;
-	__parent--;
-      }
+      if (__last - __first < 2)
+	return;
+
+      const _DistanceType __len = __last - __first;
+      _DistanceType __parent = (__len - 2) / 2;
+      while (true)
+	{
+	  std::__adjust_heap(__first, __parent, __len,
+			     _ValueType(*(__first + __parent)), __comp);
+	  if (__parent == 0)
+	    return;
+	  __parent--;
+	}
     }
 
   /**

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]