changeset 18019:6762a6d23010 classdef

maint: Periodic merge of default to classdef.
author John W. Eaton <jwe@octave.org>
date Tue, 26 Nov 2013 12:38:46 -0500
parents 97e49b588f5d (current diff) 9acd7b0f0639 (diff)
children 4502d6d577d5
files libgui/languages/pt_BR.ts libgui/src/news-dock-widget.cc libgui/src/news-dock-widget.h libgui/src/octave-main-thread.cc libgui/src/octave-main-thread.h libinterp/corefcn/ls-mat5.cc libinterp/corefcn/symtab.cc libinterp/octave-value/module.mk libinterp/octave-value/ov-fcn-handle.cc libinterp/parse-tree/lex.ll src/Makefile.am
diffstat 175 files changed, 17177 insertions(+), 5252 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.am	Tue Nov 05 12:27:42 2013 -0500
+++ b/Makefile.am	Tue Nov 26 12:38:46 2013 -0500
@@ -44,6 +44,7 @@
   build-aux/mk-opts.pl \
   build-aux/move-if-change \
   build-aux/OctJavaQry.class \
+  build-aux/stl_algo.h-fixed \
   etc/NEWS.1 \
   etc/NEWS.2 \
   etc/NEWS.3 \
@@ -92,6 +93,12 @@
 
 BUILT_SOURCES = run-octave
 
+if AMCOND_HAVE_BROKEN_STL_ALGO_H
+  BUILT_SOURCES += bits/stl_algo.h
+else
+  BUILT_SOURCES += nonexistent-file
+endif
+
 noinst_SCRIPTS = run-octave
 
 INFO_FILES = \
@@ -128,6 +135,17 @@
 	@$(do_subst_script_vals)
 	chmod a+rx "$@"
 
+bits/stl_algo.h: build-aux/stl_algo.h-fixed
+	$(MKDIR_P) bits
+	$(INSTALL_HEADER) $< $@
+
+## If we aren't trying to fix stl_algo.h, then try to ensure that
+## there isn't a stray copy sitting in the build tree.
+
+nonexistent-file:
+	rm -f bits/stl_algo.h
+.PHONY: nonexistent-file
+
 .gdbinit: etc/gdbinit
 	@$(gdbinit_install_rule)
 
--- a/NEWS	Tue Nov 05 12:27:42 2013 -0500
+++ b/NEWS	Tue Nov 26 12:38:46 2013 -0500
@@ -269,10 +269,16 @@
  ** The kurtosis function has changed definition to be compatible with 
     Matlab.  It now returns the base kurtosis instead of the "excess kurtosis".
     The old behavior can be had by changing scripts to normalize with -3.
+
                "excess kurtosis" = kurtosis (x) - 3
 
+ ** The moment function has changed definition to be compatible with 
+    Matlab.  It now returns the central moment instead of the raw moment.
+    The old behavior can be had by passing the type argument "r" for raw.
+
  ** The default name of the Octave crash dump file is now 
-    "octave-workspace" instead of "octave-core".
+    "octave-workspace" instead of "octave-core".  The exact name can
+    always be customized with the octave_core_file_name function.
 
  ** A citation command has been added to display information on how to
     cite Octave and packages in publications.  The package system will
--- a/bootstrap.conf	Tue Nov 05 12:27:42 2013 -0500
+++ b/bootstrap.conf	Tue Nov 26 12:38:46 2013 -0500
@@ -92,6 +92,7 @@
   tmpfile
   trunc
   truncf
+  uname
   unistd
   unlink
   vasprintf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build-aux/stl_algo.h-fixed	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,6324 @@
+// Algorithm implementation -*- C++ -*-
+
+// Copyright (C) 2001-2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/*
+ *
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.  Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ *
+ *
+ * Copyright (c) 1996
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.  Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ */
+
+/** @file bits/stl_algo.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{algorithm}
+ */
+
+#ifndef _STL_ALGO_H
+#define _STL_ALGO_H 1
+
+#include <cstdlib>             // for rand
+#include <bits/algorithmfwd.h>
+#include <bits/stl_heap.h>
+#include <bits/stl_tempbuf.h>  // for _Temporary_buffer
+
+#if __cplusplus >= 201103L
+#include <random>     // for std::uniform_int_distribution
+#include <functional> // for std::bind
+#endif
+
+// See concept_check.h for the __glibcxx_*_requires macros.
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+  /// Swaps the median value of *__a, *__b and *__c to *__result
+  template<typename _Iterator>
+    void
+    __move_median_to_first(_Iterator __result, _Iterator __a,
+			   _Iterator __b, _Iterator __c)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_Iterator>::value_type>)
+
+      if (*__a < *__b)
+	{
+	  if (*__b < *__c)
+	    std::iter_swap(__result, __b);
+	  else if (*__a < *__c)
+	    std::iter_swap(__result, __c);
+	  else
+	    std::iter_swap(__result, __a);
+	}
+      else if (*__a < *__c)
+      	std::iter_swap(__result, __a);
+      else if (*__b < *__c)
+	std::iter_swap(__result, __c);
+      else
+	std::iter_swap(__result, __b);
+    }
+
+  /// Swaps the median value of *__a, *__b and *__c under __comp to *__result
+  template<typename _Iterator, typename _Compare>
+    void
+    __move_median_to_first(_Iterator __result, _Iterator __a,
+			   _Iterator __b, _Iterator __c,
+			   _Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BinaryFunctionConcept<_Compare, bool,
+	    typename iterator_traits<_Iterator>::value_type,
+	    typename iterator_traits<_Iterator>::value_type>)
+
+      if (__comp(*__a, *__b))
+	{
+	  if (__comp(*__b, *__c))
+	    std::iter_swap(__result, __b);
+	  else if (__comp(*__a, *__c))
+	    std::iter_swap(__result, __c);
+	  else
+	    std::iter_swap(__result, __a);
+	}
+      else if (__comp(*__a, *__c))
+	std::iter_swap(__result, __a);
+      else if (__comp(*__b, *__c))
+	std::iter_swap(__result, __c);
+      else
+	std::iter_swap(__result, __b);
+    }
+
+  // for_each
+
+  /// This is an overload used by find() for the Input Iterator case.
+  template<typename _InputIterator, typename _Tp>
+    inline _InputIterator
+    __find(_InputIterator __first, _InputIterator __last,
+	   const _Tp& __val, input_iterator_tag)
+    {
+      while (__first != __last && !(*__first == __val))
+	++__first;
+      return __first;
+    }
+
+  /// This is an overload used by find_if() for the Input Iterator case.
+  template<typename _InputIterator, typename _Predicate>
+    inline _InputIterator
+    __find_if(_InputIterator __first, _InputIterator __last,
+	      _Predicate __pred, input_iterator_tag)
+    {
+      while (__first != __last && !bool(__pred(*__first)))
+	++__first;
+      return __first;
+    }
+
+  /// This is an overload used by find() for the RAI case.
+  template<typename _RandomAccessIterator, typename _Tp>
+    _RandomAccessIterator
+    __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	   const _Tp& __val, random_access_iterator_tag)
+    {
+      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;
+
+	  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;
+	}
+    }
+
+  /// This is an overload used by find_if() for the RAI case.
+  template<typename _RandomAccessIterator, typename _Predicate>
+    _RandomAccessIterator
+    __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	      _Predicate __pred, random_access_iterator_tag)
+    {
+      typename iterator_traits<_RandomAccessIterator>::difference_type
+	__trip_count = (__last - __first) >> 2;
+
+      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;
+	}
+
+      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;
+	}
+    }
+
+  /// This is an overload used by find_if_not() for the Input Iterator case.
+  template<typename _InputIterator, typename _Predicate>
+    inline _InputIterator
+    __find_if_not(_InputIterator __first, _InputIterator __last,
+		  _Predicate __pred, input_iterator_tag)
+    {
+      while (__first != __last && bool(__pred(*__first)))
+	++__first;
+      return __first;
+    }
+
+  /// This is an overload used by find_if_not() for the RAI case.
+  template<typename _RandomAccessIterator, typename _Predicate>
+    _RandomAccessIterator
+    __find_if_not(_RandomAccessIterator __first, _RandomAccessIterator __last,
+		  _Predicate __pred, random_access_iterator_tag)
+    {
+      typename iterator_traits<_RandomAccessIterator>::difference_type
+	__trip_count = (__last - __first) >> 2;
+
+      for (; __trip_count > 0; --__trip_count)
+	{
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+	}
+
+      switch (__last - __first)
+	{
+	case 3:
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+	case 2:
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+	case 1:
+	  if (!bool(__pred(*__first)))
+	    return __first;
+	  ++__first;
+	case 0:
+	default:
+	  return __last;
+	}
+    }
+
+  /// Provided for stable_partition to use.
+  template<typename _InputIterator, typename _Predicate>
+    inline _InputIterator
+    __find_if_not(_InputIterator __first, _InputIterator __last,
+		  _Predicate __pred)
+    {
+      return std::__find_if_not(__first, __last, __pred,
+				std::__iterator_category(__first));
+    }
+
+  /// Like find_if_not(), but uses and updates a count of the
+  /// remaining range length instead of comparing against an end
+  /// iterator.
+  template<typename _InputIterator, typename _Predicate, typename _Distance>
+    _InputIterator
+    __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred)
+    {
+      for (; __len; --__len, ++__first)
+	if (!bool(__pred(*__first)))
+	  break;
+      return __first;
+    }
+
+  // set_difference
+  // set_intersection
+  // set_symmetric_difference
+  // set_union
+  // for_each
+  // find
+  // find_if
+  // find_first_of
+  // adjacent_find
+  // count
+  // count_if
+  // search
+
+  /**
+   *  This is an uglified
+   *  search_n(_ForwardIterator, _ForwardIterator, _Integer, const _Tp&)
+   *  overloaded for forward iterators.
+  */
+  template<typename _ForwardIterator, typename _Integer, typename _Tp>
+    _ForwardIterator
+    __search_n(_ForwardIterator __first, _ForwardIterator __last,
+	       _Integer __count, const _Tp& __val,
+	       std::forward_iterator_tag)
+    {
+      __first = _GLIBCXX_STD_A::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;
+	  if (__i == __last)
+	    return __last;
+	  __first = _GLIBCXX_STD_A::find(++__i, __last, __val);
+	}
+      return __last;
+    }
+
+  /**
+   *  This is an uglified
+   *  search_n(_ForwardIterator, _ForwardIterator, _Integer, const _Tp&)
+   *  overloaded for random access iterators.
+  */
+  template<typename _RandomAccessIter, typename _Integer, typename _Tp>
+    _RandomAccessIter
+    __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
+	       _Integer __count, const _Tp& __val, 
+	       std::random_access_iterator_tag)
+    {
+      
+      typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
+	_DistanceType;
+
+      _DistanceType __tailSize = __last - __first;
+      _DistanceType __remainder = __count;
+
+      while (__remainder <= __tailSize) // the main loop...
+	{
+	  __first += __remainder;
+	  __tailSize -= __remainder;
+	  // __first here is always pointing to one past the last element of
+	  // next possible match.
+	  _RandomAccessIter __backTrack = __first; 
+	  while (*--__backTrack == __val)
+	    {
+	      if (--__remainder == 0)
+	        return (__first - __count); // Success
+	    }
+	  __remainder = __count + 1 - (__first - __backTrack);
+	}
+      return __last; // Failure
+    }
+
+  // search_n
+
+  /**
+   *  This is an uglified
+   *  search_n(_ForwardIterator, _ForwardIterator, _Integer, const _Tp&,
+   *	       _BinaryPredicate)
+   *  overloaded for forward iterators.
+  */
+  template<typename _ForwardIterator, typename _Integer, typename _Tp,
+           typename _BinaryPredicate>
+    _ForwardIterator
+    __search_n(_ForwardIterator __first, _ForwardIterator __last,
+	       _Integer __count, const _Tp& __val,
+	       _BinaryPredicate __binary_pred, std::forward_iterator_tag)
+    {
+      while (__first != __last && !bool(__binary_pred(*__first, __val)))
+        ++__first;
+
+      while (__first != __last)
+	{
+	  typename iterator_traits<_ForwardIterator>::difference_type
+	    __n = __count;
+	  _ForwardIterator __i = __first;
+	  ++__i;
+	  while (__i != __last && __n != 1 && bool(__binary_pred(*__i, __val)))
+	    {
+	      ++__i;
+	      --__n;
+	    }
+	  if (__n == 1)
+	    return __first;
+	  if (__i == __last)
+	    return __last;
+	  __first = ++__i;
+	  while (__first != __last
+		 && !bool(__binary_pred(*__first, __val)))
+	    ++__first;
+	}
+      return __last;
+    }
+
+  /**
+   *  This is an uglified
+   *  search_n(_ForwardIterator, _ForwardIterator, _Integer, const _Tp&,
+   *	       _BinaryPredicate)
+   *  overloaded for random access iterators.
+  */
+  template<typename _RandomAccessIter, typename _Integer, typename _Tp,
+	   typename _BinaryPredicate>
+    _RandomAccessIter
+    __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
+	       _Integer __count, const _Tp& __val,
+	       _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
+    {
+      
+      typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
+	_DistanceType;
+
+      _DistanceType __tailSize = __last - __first;
+      _DistanceType __remainder = __count;
+
+      while (__remainder <= __tailSize) // the main loop...
+	{
+	  __first += __remainder;
+	  __tailSize -= __remainder;
+	  // __first here is always pointing to one past the last element of
+	  // next possible match.
+	  _RandomAccessIter __backTrack = __first; 
+	  while (__binary_pred(*--__backTrack, __val))
+	    {
+	      if (--__remainder == 0)
+	        return (__first - __count); // Success
+	    }
+	  __remainder = __count + 1 - (__first - __backTrack);
+	}
+      return __last; // Failure
+    }
+
+  // find_end for forward iterators.
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    _ForwardIterator1
+    __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	       _ForwardIterator2 __first2, _ForwardIterator2 __last2,
+	       forward_iterator_tag, forward_iterator_tag)
+    {
+      if (__first2 == __last2)
+	return __last1;
+      else
+	{
+	  _ForwardIterator1 __result = __last1;
+	  while (1)
+	    {
+	      _ForwardIterator1 __new_result
+		= _GLIBCXX_STD_A::search(__first1, __last1, __first2, __last2);
+	      if (__new_result == __last1)
+		return __result;
+	      else
+		{
+		  __result = __new_result;
+		  __first1 = __new_result;
+		  ++__first1;
+		}
+	    }
+	}
+    }
+
+  template<typename _ForwardIterator1, typename _ForwardIterator2,
+	   typename _BinaryPredicate>
+    _ForwardIterator1
+    __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	       _ForwardIterator2 __first2, _ForwardIterator2 __last2,
+	       forward_iterator_tag, forward_iterator_tag,
+	       _BinaryPredicate __comp)
+    {
+      if (__first2 == __last2)
+	return __last1;
+      else
+	{
+	  _ForwardIterator1 __result = __last1;
+	  while (1)
+	    {
+	      _ForwardIterator1 __new_result
+		= _GLIBCXX_STD_A::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 (much faster).
+  template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
+    _BidirectionalIterator1
+    __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>)
+
+      typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
+      typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
+
+      _RevIterator1 __rlast1(__first1);
+      _RevIterator2 __rlast2(__first2);
+      _RevIterator1 __rresult = _GLIBCXX_STD_A::search(_RevIterator1(__last1),
+						       __rlast1,
+						       _RevIterator2(__last2),
+						       __rlast2);
+
+      if (__rresult == __rlast1)
+	return __last1;
+      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,
+	       bidirectional_iterator_tag, bidirectional_iterator_tag,
+	       _BinaryPredicate __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator1>)
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator2>)
+
+      typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
+      typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
+
+      _RevIterator1 __rlast1(__first1);
+      _RevIterator2 __rlast2(__first2);
+      _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
+					    _RevIterator2(__last2), __rlast2,
+					    __comp);
+
+      if (__rresult == __rlast1)
+	return __last1;
+      else
+	{
+	  _BidirectionalIterator1 __result = __rresult.base();
+	  std::advance(__result, -std::distance(__first2, __last2));
+	  return __result;
+	}
+    }
+
+  /**
+   *  @brief  Find last matching subsequence in a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of range to search.
+   *  @param  __last1   End of range to search.
+   *  @param  __first2  Start of sequence to match.
+   *  @param  __last2   End of sequence to match.
+   *  @return   The last iterator @c i in the range
+   *  @p [__first1,__last1-(__last2-__first2)) such that @c *(i+N) ==
+   *  @p *(__first2+N) for each @c N in the range @p
+   *  [0,__last2-__first2), or @p __last1 if no such iterator exists.
+   *
+   *  Searches the range @p [__first1,__last1) for a sub-sequence that
+   *  compares equal value-by-value with the sequence given by @p
+   *  [__first2,__last2) and returns an iterator to the __first
+   *  element of the sub-sequence, or @p __last1 if the sub-sequence
+   *  is not found.  The sub-sequence will be the last such
+   *  subsequence contained in [__first,__last1).
+   *
+   *  Because the sub-sequence must lie completely within the range @p
+   *  [__first1,__last1) it must start at a position less than @p
+   *  __last1-(__last2-__first2) where @p __last2-__first2 is the
+   *  length of the sub-sequence.  This means that the returned
+   *  iterator @c i will be in the range @p
+   *  [__first1,__last1-(__last2-__first2))
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    inline _ForwardIterator1
+    find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator1>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator2>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_ForwardIterator1>::value_type,
+	    typename iterator_traits<_ForwardIterator2>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      return std::__find_end(__first1, __last1, __first2, __last2,
+			     std::__iterator_category(__first1),
+			     std::__iterator_category(__first2));
+    }
+
+  /**
+   *  @brief  Find last matching subsequence in a sequence using a predicate.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of range to search.
+   *  @param  __last1   End of range to search.
+   *  @param  __first2  Start of sequence to match.
+   *  @param  __last2   End of sequence to match.
+   *  @param  __comp    The predicate to use.
+   *  @return The last iterator @c i in the range @p
+   *  [__first1,__last1-(__last2-__first2)) such that @c
+   *  predicate(*(i+N), @p (__first2+N)) is true for each @c N in the
+   *  range @p [0,__last2-__first2), or @p __last1 if no such iterator
+   *  exists.
+   *
+   *  Searches the range @p [__first1,__last1) for a sub-sequence that
+   *  compares equal value-by-value with the sequence given by @p
+   *  [__first2,__last2) using comp as a predicate and returns an
+   *  iterator to the first element of the sub-sequence, or @p __last1
+   *  if the sub-sequence is not found.  The sub-sequence will be the
+   *  last such subsequence contained in [__first,__last1).
+   *
+   *  Because the sub-sequence must lie completely within the range @p
+   *  [__first1,__last1) it must start at a position less than @p
+   *  __last1-(__last2-__first2) where @p __last2-__first2 is the
+   *  length of the sub-sequence.  This means that the returned
+   *  iterator @c i will be in the range @p
+   *  [__first1,__last1-(__last2-__first2))
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2,
+	   typename _BinaryPredicate>
+    inline _ForwardIterator1
+    find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
+	     _BinaryPredicate __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator1>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	    typename iterator_traits<_ForwardIterator1>::value_type,
+	    typename iterator_traits<_ForwardIterator2>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      return std::__find_end(__first1, __last1, __first2, __last2,
+			     std::__iterator_category(__first1),
+			     std::__iterator_category(__first2),
+			     __comp);
+    }
+
+#if __cplusplus >= 201103L
+  /**
+   *  @brief  Checks that a predicate is true for all the elements
+   *          of a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __pred    A predicate.
+   *  @return  True if the check is true, false otherwise.
+   *
+   *  Returns true if @p __pred is true for each element in the range
+   *  @p [__first,__last), and false otherwise.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline bool
+    all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)
+    { return __last == std::find_if_not(__first, __last, __pred); }
+
+  /**
+   *  @brief  Checks that a predicate is false for all the elements
+   *          of a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __pred    A predicate.
+   *  @return  True if the check is true, false otherwise.
+   *
+   *  Returns true if @p __pred is false for each element in the range
+   *  @p [__first,__last), and false otherwise.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline bool
+    none_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)
+    { return __last == _GLIBCXX_STD_A::find_if(__first, __last, __pred); }
+
+  /**
+   *  @brief  Checks that a predicate is false for at least an element
+   *          of a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __pred    A predicate.
+   *  @return  True if the check is true, false otherwise.
+   *
+   *  Returns true if an element exists in the range @p
+   *  [__first,__last) such that @p __pred is true, and false
+   *  otherwise.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline bool
+    any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)
+    { return !std::none_of(__first, __last, __pred); }
+
+  /**
+   *  @brief  Find the first element in a sequence for which a
+   *          predicate is false.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __pred   A predicate.
+   *  @return   The first iterator @c i in the range @p [__first,__last)
+   *  such that @p __pred(*i) is false, or @p __last if no such iterator exists.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline _InputIterator
+    find_if_not(_InputIterator __first, _InputIterator __last,
+		_Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	      typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+      return std::__find_if_not(__first, __last, __pred);
+    }
+
+  /**
+   *  @brief  Checks whether the sequence is partitioned.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __pred   A predicate.
+   *  @return  True if the range @p [__first,__last) is partioned by @p __pred,
+   *  i.e. if all elements that satisfy @p __pred appear before those that
+   *  do not.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline bool
+    is_partitioned(_InputIterator __first, _InputIterator __last,
+		   _Predicate __pred)
+    {
+      __first = std::find_if_not(__first, __last, __pred);
+      return std::none_of(__first, __last, __pred);
+    }
+
+  /**
+   *  @brief  Find the partition point of a partitioned range.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __pred    A predicate.
+   *  @return  An iterator @p mid such that @p all_of(__first, mid, __pred)
+   *           and @p none_of(mid, __last, __pred) are both true.
+  */
+  template<typename _ForwardIterator, typename _Predicate>
+    _ForwardIterator
+    partition_point(_ForwardIterator __first, _ForwardIterator __last,
+		    _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	      typename iterator_traits<_ForwardIterator>::value_type>)
+
+      // A specific debug-mode test will be necessary...
+      __glibcxx_requires_valid_range(__first, __last);
+
+      typedef typename iterator_traits<_ForwardIterator>::difference_type
+	_DistanceType;
+
+      _DistanceType __len = std::distance(__first, __last);
+      _DistanceType __half;
+      _ForwardIterator __middle;
+
+      while (__len > 0)
+	{
+	  __half = __len >> 1;
+	  __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__pred(*__middle))
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else
+	    __len = __half;
+	}
+      return __first;
+    }
+#endif
+
+
+  /**
+   *  @brief Copy a sequence, removing elements of a given value.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __result  An output iterator.
+   *  @param  __value   The value to be removed.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies each element in the range @p [__first,__last) not equal
+   *  to @p __value to the range beginning at @p __result.
+   *  remove_copy() is stable, so the relative order of elements that
+   *  are copied is unchanged.
+  */
+  template<typename _InputIterator, typename _OutputIterator, typename _Tp>
+    _OutputIterator
+    remove_copy(_InputIterator __first, _InputIterator __last,
+		_OutputIterator __result, const _Tp& __value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_InputIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	if (!(*__first == __value))
+	  {
+	    *__result = *__first;
+	    ++__result;
+	  }
+      return __result;
+    }
+
+  /**
+   *  @brief Copy a sequence, removing elements for which a predicate is true.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __result  An output iterator.
+   *  @param  __pred    A predicate.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies each element in the range @p [__first,__last) for which
+   *  @p __pred returns false to the range beginning at @p __result.
+   *
+   *  remove_copy_if() is stable, so the relative order of elements that are
+   *  copied is unchanged.
+  */
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _Predicate>
+    _OutputIterator
+    remove_copy_if(_InputIterator __first, _InputIterator __last,
+		   _OutputIterator __result, _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	if (!bool(__pred(*__first)))
+	  {
+	    *__result = *__first;
+	    ++__result;
+	  }
+      return __result;
+    }
+
+#if __cplusplus >= 201103L
+  /**
+   *  @brief Copy the elements of a sequence for which a predicate is true.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __result  An output iterator.
+   *  @param  __pred    A predicate.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies each element in the range @p [__first,__last) for which
+   *  @p __pred returns true to the range beginning at @p __result.
+   *
+   *  copy_if() is stable, so the relative order of elements that are
+   *  copied is unchanged.
+  */
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _Predicate>
+    _OutputIterator
+    copy_if(_InputIterator __first, _InputIterator __last,
+	    _OutputIterator __result, _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	if (__pred(*__first))
+	  {
+	    *__result = *__first;
+	    ++__result;
+	  }
+      return __result;
+    }
+
+
+  template<typename _InputIterator, typename _Size, typename _OutputIterator>
+    _OutputIterator
+    __copy_n(_InputIterator __first, _Size __n,
+	     _OutputIterator __result, input_iterator_tag)
+    {
+      if (__n > 0)
+	{
+	  while (true)
+	    {
+	      *__result = *__first;
+	      ++__result;
+	      if (--__n > 0)
+		++__first;
+	      else
+		break;
+	    }
+	}
+      return __result;
+    }
+
+  template<typename _RandomAccessIterator, typename _Size,
+	   typename _OutputIterator>
+    inline _OutputIterator
+    __copy_n(_RandomAccessIterator __first, _Size __n,
+	     _OutputIterator __result, random_access_iterator_tag)
+    { return std::copy(__first, __first + __n, __result); }
+
+  /**
+   *  @brief Copies the range [first,first+n) into [result,result+n).
+   *  @ingroup mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __n      The number of elements to copy.
+   *  @param  __result An output iterator.
+   *  @return  result+n.
+   *
+   *  This inline function will boil down to a call to @c memmove whenever
+   *  possible.  Failing that, if random access iterators are passed, then the
+   *  loop count will be known (and therefore a candidate for compiler
+   *  optimizations such as unrolling).
+  */
+  template<typename _InputIterator, typename _Size, typename _OutputIterator>
+    inline _OutputIterator
+    copy_n(_InputIterator __first, _Size __n, _OutputIterator __result)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+
+      return std::__copy_n(__first, __n, __result,
+			   std::__iterator_category(__first));
+    }
+
+  /**
+   *  @brief Copy the elements of a sequence to separate output sequences
+   *         depending on the truth value of a predicate.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __out_true   An output iterator.
+   *  @param  __out_false  An output iterator.
+   *  @param  __pred    A predicate.
+   *  @return   A pair designating the ends of the resulting sequences.
+   *
+   *  Copies each element in the range @p [__first,__last) for which
+   *  @p __pred returns true to the range beginning at @p out_true
+   *  and each element for which @p __pred returns false to @p __out_false.
+  */
+  template<typename _InputIterator, typename _OutputIterator1,
+	   typename _OutputIterator2, typename _Predicate>
+    pair<_OutputIterator1, _OutputIterator2>
+    partition_copy(_InputIterator __first, _InputIterator __last,
+		   _OutputIterator1 __out_true, _OutputIterator2 __out_false,
+		   _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator1,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator2,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+      
+      for (; __first != __last; ++__first)
+	if (__pred(*__first))
+	  {
+	    *__out_true = *__first;
+	    ++__out_true;
+	  }
+	else
+	  {
+	    *__out_false = *__first;
+	    ++__out_false;
+	  }
+
+      return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false);
+    }
+#endif
+
+  /**
+   *  @brief Remove elements from a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __value  The value to be removed.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  All elements equal to @p __value are removed from the range
+   *  @p [__first,__last).
+   *
+   *  remove() is stable, so the relative order of elements that are
+   *  not removed is unchanged.
+   *
+   *  Elements between the end of the resulting sequence and @p __last
+   *  are still present, but their value is unspecified.
+  */
+  template<typename _ForwardIterator, typename _Tp>
+    _ForwardIterator
+    remove(_ForwardIterator __first, _ForwardIterator __last,
+	   const _Tp& __value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      __first = _GLIBCXX_STD_A::find(__first, __last, __value);
+      if(__first == __last)
+        return __first;
+      _ForwardIterator __result = __first;
+      ++__first;
+      for(; __first != __last; ++__first)
+        if(!(*__first == __value))
+          {
+            *__result = _GLIBCXX_MOVE(*__first);
+            ++__result;
+          }
+      return __result;
+    }
+
+  /**
+   *  @brief Remove elements from a sequence using a predicate.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __last   A forward iterator.
+   *  @param  __pred   A predicate.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  All elements for which @p __pred returns true are removed from the range
+   *  @p [__first,__last).
+   *
+   *  remove_if() is stable, so the relative order of elements that are
+   *  not removed is unchanged.
+   *
+   *  Elements between the end of the resulting sequence and @p __last
+   *  are still present, but their value is unspecified.
+  */
+  template<typename _ForwardIterator, typename _Predicate>
+    _ForwardIterator
+    remove_if(_ForwardIterator __first, _ForwardIterator __last,
+	      _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      __first = _GLIBCXX_STD_A::find_if(__first, __last, __pred);
+      if(__first == __last)
+        return __first;
+      _ForwardIterator __result = __first;
+      ++__first;
+      for(; __first != __last; ++__first)
+        if(!bool(__pred(*__first)))
+          {
+            *__result = _GLIBCXX_MOVE(*__first);
+            ++__result;
+          }
+      return __result;
+    }
+
+  /**
+   *  @brief Remove consecutive duplicate values from a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __last   A forward iterator.
+   *  @return  An iterator designating the end of the resulting sequence.
+   *
+   *  Removes all but the first element from each group of consecutive
+   *  values that compare equal.
+   *  unique() is stable, so the relative order of elements that are
+   *  not removed is unchanged.
+   *  Elements between the end of the resulting sequence and @p __last
+   *  are still present, but their value is unspecified.
+  */
+  template<typename _ForwardIterator>
+    _ForwardIterator
+    unique(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_EqualityComparableConcept<
+		     typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      // Skip the beginning, if already unique.
+      __first = _GLIBCXX_STD_A::adjacent_find(__first, __last);
+      if (__first == __last)
+	return __last;
+
+      // Do the real copy work.
+      _ForwardIterator __dest = __first;
+      ++__first;
+      while (++__first != __last)
+	if (!(*__dest == *__first))
+	  *++__dest = _GLIBCXX_MOVE(*__first);
+      return ++__dest;
+    }
+
+  /**
+   *  @brief Remove consecutive values from a sequence using a predicate.
+   *  @ingroup mutating_algorithms
+   *  @param  __first        A forward iterator.
+   *  @param  __last         A forward iterator.
+   *  @param  __binary_pred  A binary predicate.
+   *  @return  An iterator designating the end of the resulting sequence.
+   *
+   *  Removes all but the first element from each group of consecutive
+   *  values for which @p __binary_pred returns true.
+   *  unique() is stable, so the relative order of elements that are
+   *  not removed is unchanged.
+   *  Elements between the end of the resulting sequence and @p __last
+   *  are still present, but their value is unspecified.
+  */
+  template<typename _ForwardIterator, typename _BinaryPredicate>
+    _ForwardIterator
+    unique(_ForwardIterator __first, _ForwardIterator __last,
+           _BinaryPredicate __binary_pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+		typename iterator_traits<_ForwardIterator>::value_type,
+		typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      // Skip the beginning, if already unique.
+      __first = _GLIBCXX_STD_A::adjacent_find(__first, __last, __binary_pred);
+      if (__first == __last)
+	return __last;
+
+      // Do the real copy work.
+      _ForwardIterator __dest = __first;
+      ++__first;
+      while (++__first != __last)
+	if (!bool(__binary_pred(*__dest, *__first)))
+	  *++__dest = _GLIBCXX_MOVE(*__first);
+      return ++__dest;
+    }
+
+  /**
+   *  This is an uglified unique_copy(_InputIterator, _InputIterator,
+   *                                  _OutputIterator)
+   *  overloaded for forward iterators and output iterator as result.
+  */
+  template<typename _ForwardIterator, typename _OutputIterator>
+    _OutputIterator
+    __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
+		  _OutputIterator __result,
+		  forward_iterator_tag, output_iterator_tag)
+    {
+      // concept requirements -- taken care of in dispatching function
+      _ForwardIterator __next = __first;
+      *__result = *__first;
+      while (++__next != __last)
+	if (!(*__first == *__next))
+	  {
+	    __first = __next;
+	    *++__result = *__first;
+	  }
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified unique_copy(_InputIterator, _InputIterator,
+   *                                  _OutputIterator)
+   *  overloaded for input iterators and output iterator as result.
+  */
+  template<typename _InputIterator, typename _OutputIterator>
+    _OutputIterator
+    __unique_copy(_InputIterator __first, _InputIterator __last,
+		  _OutputIterator __result,
+		  input_iterator_tag, output_iterator_tag)
+    {
+      // concept requirements -- taken care of in dispatching function
+      typename iterator_traits<_InputIterator>::value_type __value = *__first;
+      *__result = __value;
+      while (++__first != __last)
+	if (!(__value == *__first))
+	  {
+	    __value = *__first;
+	    *++__result = __value;
+	  }
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified unique_copy(_InputIterator, _InputIterator,
+   *                                  _OutputIterator)
+   *  overloaded for input iterators and forward iterator as result.
+  */
+  template<typename _InputIterator, typename _ForwardIterator>
+    _ForwardIterator
+    __unique_copy(_InputIterator __first, _InputIterator __last,
+		  _ForwardIterator __result,
+		  input_iterator_tag, forward_iterator_tag)
+    {
+      // concept requirements -- taken care of in dispatching function
+      *__result = *__first;
+      while (++__first != __last)
+	if (!(*__result == *__first))
+	  *++__result = *__first;
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified
+   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
+   *              _BinaryPredicate)
+   *  overloaded for forward iterators and output iterator as result.
+  */
+  template<typename _ForwardIterator, typename _OutputIterator,
+	   typename _BinaryPredicate>
+    _OutputIterator
+    __unique_copy(_ForwardIterator __first, _ForwardIterator __last,
+		  _OutputIterator __result, _BinaryPredicate __binary_pred,
+		  forward_iterator_tag, output_iterator_tag)
+    {
+      // concept requirements -- iterators already checked
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	  typename iterator_traits<_ForwardIterator>::value_type,
+	  typename iterator_traits<_ForwardIterator>::value_type>)
+
+      _ForwardIterator __next = __first;
+      *__result = *__first;
+      while (++__next != __last)
+	if (!bool(__binary_pred(*__first, *__next)))
+	  {
+	    __first = __next;
+	    *++__result = *__first;
+	  }
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified
+   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
+   *              _BinaryPredicate)
+   *  overloaded for input iterators and output iterator as result.
+  */
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _BinaryPredicate>
+    _OutputIterator
+    __unique_copy(_InputIterator __first, _InputIterator __last,
+		  _OutputIterator __result, _BinaryPredicate __binary_pred,
+		  input_iterator_tag, output_iterator_tag)
+    {
+      // concept requirements -- iterators already checked
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	  typename iterator_traits<_InputIterator>::value_type,
+	  typename iterator_traits<_InputIterator>::value_type>)
+
+      typename iterator_traits<_InputIterator>::value_type __value = *__first;
+      *__result = __value;
+      while (++__first != __last)
+	if (!bool(__binary_pred(__value, *__first)))
+	  {
+	    __value = *__first;
+	    *++__result = __value;
+	  }
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified
+   *  unique_copy(_InputIterator, _InputIterator, _OutputIterator,
+   *              _BinaryPredicate)
+   *  overloaded for input iterators and forward iterator as result.
+  */
+  template<typename _InputIterator, typename _ForwardIterator,
+	   typename _BinaryPredicate>
+    _ForwardIterator
+    __unique_copy(_InputIterator __first, _InputIterator __last,
+		  _ForwardIterator __result, _BinaryPredicate __binary_pred,
+		  input_iterator_tag, forward_iterator_tag)
+    {
+      // concept requirements -- iterators already checked
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	  typename iterator_traits<_ForwardIterator>::value_type,
+	  typename iterator_traits<_InputIterator>::value_type>)
+
+      *__result = *__first;
+      while (++__first != __last)
+	if (!bool(__binary_pred(*__result, *__first)))
+	  *++__result = *__first;
+      return ++__result;
+    }
+
+  /**
+   *  This is an uglified reverse(_BidirectionalIterator,
+   *                              _BidirectionalIterator)
+   *  overloaded for bidirectional iterators.
+  */
+  template<typename _BidirectionalIterator>
+    void
+    __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
+	      bidirectional_iterator_tag)
+    {
+      while (true)
+	if (__first == __last || __first == --__last)
+	  return;
+	else
+	  {
+	    std::iter_swap(__first, __last);
+	    ++__first;
+	  }
+    }
+
+  /**
+   *  This is an uglified reverse(_BidirectionalIterator,
+   *                              _BidirectionalIterator)
+   *  overloaded for random access iterators.
+  */
+  template<typename _RandomAccessIterator>
+    void
+    __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	      random_access_iterator_tag)
+    {
+      if (__first == __last)
+	return;
+      --__last;
+      while (__first < __last)
+	{
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	  --__last;
+	}
+    }
+
+  /**
+   *  @brief Reverse a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  A bidirectional iterator.
+   *  @param  __last   A bidirectional iterator.
+   *  @return   reverse() returns no value.
+   *
+   *  Reverses the order of the elements in the range @p [__first,__last),
+   *  so that the first element becomes the last etc.
+   *  For every @c i such that @p 0<=i<=(__last-__first)/2), @p reverse()
+   *  swaps @p *(__first+i) and @p *(__last-(i+1))
+  */
+  template<typename _BidirectionalIterator>
+    inline void
+    reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+      __glibcxx_requires_valid_range(__first, __last);
+      std::__reverse(__first, __last, std::__iterator_category(__first));
+    }
+
+  /**
+   *  @brief Copy a sequence, reversing its elements.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A bidirectional iterator.
+   *  @param  __last    A bidirectional iterator.
+   *  @param  __result  An output iterator.
+   *  @return  An iterator designating the end of the resulting sequence.
+   *
+   *  Copies the elements in the range @p [__first,__last) to the
+   *  range @p [__result,__result+(__last-__first)) such that the
+   *  order of the elements is reversed.  For every @c i such that @p
+   *  0<=i<=(__last-__first), @p reverse_copy() performs the
+   *  assignment @p *(__result+(__last-__first)-1-i) = *(__first+i).
+   *  The ranges @p [__first,__last) and @p
+   *  [__result,__result+(__last-__first)) must not overlap.
+  */
+  template<typename _BidirectionalIterator, typename _OutputIterator>
+    _OutputIterator
+    reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
+		 _OutputIterator __result)
+    {
+      // concept requirements
+      __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;
+	}
+      return __result;
+    }
+
+  /**
+   *  This is a helper function for the rotate algorithm specialized on RAIs.
+   *  It returns the greatest common divisor of two integer values.
+  */
+  template<typename _EuclideanRingElement>
+    _EuclideanRingElement
+    __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
+    {
+      while (__n != 0)
+	{
+	  _EuclideanRingElement __t = __m % __n;
+	  __m = __n;
+	  __n = __t;
+	}
+      return __m;
+    }
+
+  /// This is a helper function for the rotate algorithm.
+  template<typename _ForwardIterator>
+    void
+    __rotate(_ForwardIterator __first,
+	     _ForwardIterator __middle,
+	     _ForwardIterator __last,
+	     forward_iterator_tag)
+    {
+      if (__first == __middle || __last  == __middle)
+	return;
+
+      _ForwardIterator __first2 = __middle;
+      do
+	{
+	  std::iter_swap(__first, __first2);
+	  ++__first;
+	  ++__first2;
+	  if (__first == __middle)
+	    __middle = __first2;
+	}
+      while (__first2 != __last);
+
+      __first2 = __middle;
+
+      while (__first2 != __last)
+	{
+	  std::iter_swap(__first, __first2);
+	  ++__first;
+	  ++__first2;
+	  if (__first == __middle)
+	    __middle = __first2;
+	  else if (__first2 == __last)
+	    __first2 = __middle;
+	}
+    }
+
+   /// This is a helper function for the rotate algorithm.
+  template<typename _BidirectionalIterator>
+    void
+    __rotate(_BidirectionalIterator __first,
+	     _BidirectionalIterator __middle,
+	     _BidirectionalIterator __last,
+	      bidirectional_iterator_tag)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+
+      if (__first == __middle || __last  == __middle)
+	return;
+
+      std::__reverse(__first,  __middle, bidirectional_iterator_tag());
+      std::__reverse(__middle, __last,   bidirectional_iterator_tag());
+
+      while (__first != __middle && __middle != __last)
+	{
+	  std::iter_swap(__first, --__last);
+	  ++__first;
+	}
+
+      if (__first == __middle)
+	std::__reverse(__middle, __last,   bidirectional_iterator_tag());
+      else
+	std::__reverse(__first,  __middle, bidirectional_iterator_tag());
+    }
+
+  /// This is a helper function for the rotate algorithm.
+  template<typename _RandomAccessIterator>
+    void
+    __rotate(_RandomAccessIterator __first,
+	     _RandomAccessIterator __middle,
+	     _RandomAccessIterator __last,
+	     random_access_iterator_tag)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
+
+      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;
+
+      if (__k == __n - __k)
+	{
+	  std::swap_ranges(__first, __middle, __middle);
+	  return;
+	}
+
+      _RandomAccessIterator __p = __first;
+
+      for (;;)
+	{
+	  if (__k < __n - __k)
+	    {
+	      if (__is_pod(_ValueType) && __k == 1)
+		{
+		  _ValueType __t = _GLIBCXX_MOVE(*__p);
+		  _GLIBCXX_MOVE3(__p + 1, __p + __n, __p);
+		  *(__p + __n - 1) = _GLIBCXX_MOVE(__t);
+		  return;
+		}
+	      _RandomAccessIterator __q = __p + __k;
+	      for (_Distance __i = 0; __i < __n - __k; ++ __i)
+		{
+		  std::iter_swap(__p, __q);
+		  ++__p;
+		  ++__q;
+		}
+	      __n %= __k;
+	      if (__n == 0)
+		return;
+	      std::swap(__n, __k);
+	      __k = __n - __k;
+	    }
+	  else
+	    {
+	      __k = __n - __k;
+	      if (__is_pod(_ValueType) && __k == 1)
+		{
+		  _ValueType __t = _GLIBCXX_MOVE(*(__p + __n - 1));
+		  _GLIBCXX_MOVE_BACKWARD3(__p, __p + __n - 1, __p + __n);
+		  *__p = _GLIBCXX_MOVE(__t);
+		  return;
+		}
+	      _RandomAccessIterator __q = __p + __n;
+	      __p = __q - __k;
+	      for (_Distance __i = 0; __i < __n - __k; ++ __i)
+		{
+		  --__p;
+		  --__q;
+		  std::iter_swap(__p, __q);
+		}
+	      __n %= __k;
+	      if (__n == 0)
+		return;
+	      std::swap(__n, __k);
+	    }
+	}
+    }
+
+  /**
+   *  @brief Rotate the elements of a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __middle  A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @return  Nothing.
+   *
+   *  Rotates the elements of the range @p [__first,__last) by 
+   *  @p (__middle - __first) positions so that the element at @p __middle
+   *  is moved to @p __first, the element at @p __middle+1 is moved to
+   *  @p __first+1 and so on for each element in the range
+   *  @p [__first,__last).
+   *
+   *  This effectively swaps the ranges @p [__first,__middle) and
+   *  @p [__middle,__last).
+   *
+   *  Performs
+   *   @p *(__first+(n+(__last-__middle))%(__last-__first))=*(__first+n)
+   *  for each @p n in the range @p [0,__last-__first).
+  */
+  template<typename _ForwardIterator>
+    inline void
+    rotate(_ForwardIterator __first, _ForwardIterator __middle,
+	   _ForwardIterator __last)
+    {
+      // concept requirements
+      __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;
+      std::__rotate(__first, __middle, __last, _IterType());
+    }
+
+  /**
+   *  @brief Copy a sequence, rotating its elements.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __middle  A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @param  __result  An output iterator.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies the elements of the range @p [__first,__last) to the
+   *  range beginning at @result, rotating the copied elements by 
+   *  @p (__middle-__first) positions so that the element at @p __middle
+   *  is moved to @p __result, the element at @p __middle+1 is moved
+   *  to @p __result+1 and so on for each element in the range @p
+   *  [__first,__last).
+   *
+   *  Performs 
+   *  @p *(__result+(n+(__last-__middle))%(__last-__first))=*(__first+n)
+   *  for each @p n in the range @p [0,__last-__first).
+  */
+  template<typename _ForwardIterator, typename _OutputIterator>
+    _OutputIterator
+    rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
+                _ForwardIterator __last, _OutputIterator __result)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+		typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __middle);
+      __glibcxx_requires_valid_range(__middle, __last);
+
+      return std::copy(__first, __middle,
+                       std::copy(__middle, __last, __result));
+    }
+
+  /// This is a helper function...
+  template<typename _ForwardIterator, typename _Predicate>
+    _ForwardIterator
+    __partition(_ForwardIterator __first, _ForwardIterator __last,
+		_Predicate __pred, forward_iterator_tag)
+    {
+      if (__first == __last)
+	return __first;
+
+      while (__pred(*__first))
+	if (++__first == __last)
+	  return __first;
+
+      _ForwardIterator __next = __first;
+
+      while (++__next != __last)
+	if (__pred(*__next))
+	  {
+	    std::iter_swap(__first, __next);
+	    ++__first;
+	  }
+
+      return __first;
+    }
+
+  /// This is a helper function...
+  template<typename _BidirectionalIterator, typename _Predicate>
+    _BidirectionalIterator
+    __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
+		_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 (!bool(__pred(*__last)))
+	      --__last;
+	    else
+	      break;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
+    }
+
+  // partition
+
+  /// This is a helper function...
+  /// Requires __len != 0 and !__pred(*__first),
+  /// same as __stable_partition_adaptive.
+  template<typename _ForwardIterator, typename _Predicate, typename _Distance>
+    _ForwardIterator
+    __inplace_stable_partition(_ForwardIterator __first,
+			       _Predicate __pred, _Distance __len)
+    {
+      if (__len == 1)
+	return __first;
+      _ForwardIterator __middle = __first;
+      std::advance(__middle, __len / 2);
+      _ForwardIterator __left_split =
+	std::__inplace_stable_partition(__first, __pred, __len / 2);
+      // Advance past true-predicate values to satisfy this
+      // function's preconditions.
+      _Distance __right_len = __len - __len / 2;
+      _ForwardIterator __right_split =
+	std::__find_if_not_n(__middle, __right_len, __pred);
+      if (__right_len)
+	__right_split = std::__inplace_stable_partition(__middle,
+							__pred,
+							__right_len);
+      std::rotate(__left_split, __middle, __right_split);
+      std::advance(__left_split, std::distance(__middle, __right_split));
+      return __left_split;
+    }
+
+  /// This is a helper function...
+  /// Requires __first != __last and !__pred(*__first)
+  /// and __len == distance(__first, __last).
+  ///
+  /// !__pred(*__first) allows us to guarantee that we don't
+  /// move-assign an element onto itself.
+  template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
+	   typename _Distance>
+    _ForwardIterator
+    __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;
+	  // The precondition guarantees that !__pred(*__first), so
+	  // move that element to the buffer before starting the loop.
+	  // This ensures that we only call __pred once per element.
+	  *__result2 = _GLIBCXX_MOVE(*__first);
+	  ++__result2;
+	  ++__first;
+	  for (; __first != __last; ++__first)
+	    if (__pred(*__first))
+	      {
+		*__result1 = _GLIBCXX_MOVE(*__first);
+		++__result1;
+	      }
+	    else
+	      {
+		*__result2 = _GLIBCXX_MOVE(*__first);
+		++__result2;
+	      }
+	  _GLIBCXX_MOVE3(__buffer, __result2, __result1);
+	  return __result1;
+	}
+      else
+	{
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __len / 2);
+	  _ForwardIterator __left_split =
+	    std::__stable_partition_adaptive(__first, __middle, __pred,
+					     __len / 2, __buffer,
+					     __buffer_size);
+	  // Advance past true-predicate values to satisfy this
+	  // function's preconditions.
+	  _Distance __right_len = __len - __len / 2;
+	  _ForwardIterator __right_split =
+	    std::__find_if_not_n(__middle, __right_len, __pred);
+	  if (__right_len)
+	    __right_split =
+	      std::__stable_partition_adaptive(__right_split, __last, __pred,
+					       __right_len,
+					       __buffer, __buffer_size);
+	  std::rotate(__left_split, __middle, __right_split);
+	  std::advance(__left_split, std::distance(__middle, __right_split));
+	  return __left_split;
+	}
+    }
+
+  /**
+   *  @brief Move elements for which a predicate is true to the beginning
+   *         of a sequence, preserving relative ordering.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @param  __pred    A predicate functor.
+   *  @return  An iterator @p middle such that @p __pred(i) is true for each
+   *  iterator @p i in the range @p [first,middle) and false for each @p i
+   *  in the range @p [middle,last).
+   *
+   *  Performs the same function as @p partition() with the additional
+   *  guarantee that the relative ordering of elements in each group is
+   *  preserved, so any two elements @p x and @p y in the range
+   *  @p [__first,__last) such that @p __pred(x)==__pred(y) will have the same
+   *  relative ordering after calling @p stable_partition().
+  */
+  template<typename _ForwardIterator, typename _Predicate>
+    _ForwardIterator
+    stable_partition(_ForwardIterator __first, _ForwardIterator __last,
+		     _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      __first = std::__find_if_not(__first, __last, __pred);
+
+      if (__first == __last)
+	return __first;
+      else
+	{
+	  typedef typename iterator_traits<_ForwardIterator>::value_type
+	    _ValueType;
+	  typedef typename iterator_traits<_ForwardIterator>::difference_type
+	    _DistanceType;
+
+	  _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(),
+					  _DistanceType(__buf.size()));
+	else
+	  return
+	    std::__inplace_stable_partition(__first, __pred,
+					 _DistanceType(__buf.requested_size()));
+	}
+    }
+
+  /// This is a helper function for the sort routines.
+  template<typename _RandomAccessIterator>
+    void
+    __heap_select(_RandomAccessIterator __first,
+		  _RandomAccessIterator __middle,
+		  _RandomAccessIterator __last)
+    {
+      std::make_heap(__first, __middle);
+      for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
+	if (*__i < *__first)
+	  std::__pop_heap(__first, __middle, __i);
+    }
+
+  /// This is a helper function for the sort routines.
+  template<typename _RandomAccessIterator, typename _Compare>
+    void
+    __heap_select(_RandomAccessIterator __first,
+		  _RandomAccessIterator __middle,
+		  _RandomAccessIterator __last, _Compare __comp)
+    {
+      std::make_heap(__first, __middle, __comp);
+      for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
+	if (__comp(*__i, *__first))
+	  std::__pop_heap(__first, __middle, __i, __comp);
+    }
+
+  // partial_sort
+
+  /**
+   *  @brief Copy the smallest elements of a sequence.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __result_first   A random-access iterator.
+   *  @param  __result_last    Another random-access iterator.
+   *  @return   An iterator indicating the end of the resulting sequence.
+   *
+   *  Copies and sorts the smallest N values from the range @p [__first,__last)
+   *  to the range beginning at @p __result_first, where the number of
+   *  elements to be copied, @p N, is the smaller of @p (__last-__first) and
+   *  @p (__result_last-__result_first).
+   *  After the sort if @e i and @e j are iterators in the range
+   *  @p [__result_first,__result_first+N) such that i precedes j then
+   *  *j<*i is false.
+   *  The value returned is @p __result_first+N.
+  */
+  template<typename _InputIterator, typename _RandomAccessIterator>
+    _RandomAccessIterator
+    partial_sort_copy(_InputIterator __first, _InputIterator __last,
+		      _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;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
+				  _OutputValueType>)
+      __glibcxx_function_requires(_LessThanOpConcept<_InputValueType,
+				                     _OutputValueType>)
+      __glibcxx_function_requires(_LessThanComparableConcept<_OutputValueType>)
+      __glibcxx_requires_valid_range(__first, __last);
+      __glibcxx_requires_valid_range(__result_first, __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;
+	}
+      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;
+	}
+      std::sort_heap(__result_first, __result_real_last);
+      return __result_real_last;
+    }
+
+  /**
+   *  @brief Copy the smallest elements of a sequence using a predicate for
+   *         comparison.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    Another input iterator.
+   *  @param  __result_first   A random-access iterator.
+   *  @param  __result_last    Another random-access iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return   An iterator indicating the end of the resulting sequence.
+   *
+   *  Copies and sorts the smallest N values from the range @p [__first,__last)
+   *  to the range beginning at @p result_first, where the number of
+   *  elements to be copied, @p N, is the smaller of @p (__last-__first) and
+   *  @p (__result_last-__result_first).
+   *  After the sort if @e i and @e j are iterators in the range
+   *  @p [__result_first,__result_first+N) such that i precedes j then
+   *  @p __comp(*j,*i) is false.
+   *  The value returned is @p __result_first+N.
+  */
+  template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
+    _RandomAccessIterator
+    partial_sort_copy(_InputIterator __first, _InputIterator __last,
+		      _RandomAccessIterator __result_first,
+		      _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;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
+      __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
+				  _OutputValueType>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _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;
+      _RandomAccessIterator __result_real_last = __result_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;
+	}
+      std::sort_heap(__result_first, __result_real_last, __comp);
+      return __result_real_last;
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator>
+    void
+    __unguarded_linear_insert(_RandomAccessIterator __last)
+    {
+      typename iterator_traits<_RandomAccessIterator>::value_type
+	__val = _GLIBCXX_MOVE(*__last);
+      _RandomAccessIterator __next = __last;
+      --__next;
+      while (__val < *__next)
+	{
+	  *__last = _GLIBCXX_MOVE(*__next);
+	  __last = __next;
+	  --__next;
+	}
+      *__last = _GLIBCXX_MOVE(__val);
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Compare>
+    void
+    __unguarded_linear_insert(_RandomAccessIterator __last,
+			      _Compare __comp)
+    {
+      typename iterator_traits<_RandomAccessIterator>::value_type
+	__val = _GLIBCXX_MOVE(*__last);
+      _RandomAccessIterator __next = __last;
+      --__next;
+      while (__comp(__val, *__next))
+	{
+	  *__last = _GLIBCXX_MOVE(*__next);
+	  __last = __next;
+	  --__next;
+	}
+      *__last = _GLIBCXX_MOVE(__val);
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator>
+    void
+    __insertion_sort(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last)
+    {
+      if (__first == __last)
+	return;
+
+      for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
+	{
+	  if (*__i < *__first)
+	    {
+	      typename iterator_traits<_RandomAccessIterator>::value_type
+		__val = _GLIBCXX_MOVE(*__i);
+	      _GLIBCXX_MOVE_BACKWARD3(__first, __i, __i + 1);
+	      *__first = _GLIBCXX_MOVE(__val);
+	    }
+	  else
+	    std::__unguarded_linear_insert(__i);
+	}
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Compare>
+    void
+    __insertion_sort(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last, _Compare __comp)
+    {
+      if (__first == __last) return;
+
+      for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
+	{
+	  if (__comp(*__i, *__first))
+	    {
+	      typename iterator_traits<_RandomAccessIterator>::value_type
+		__val = _GLIBCXX_MOVE(*__i);
+	      _GLIBCXX_MOVE_BACKWARD3(__first, __i, __i + 1);
+	      *__first = _GLIBCXX_MOVE(__val);
+	    }
+	  else
+	    std::__unguarded_linear_insert(__i, __comp);
+	}
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator>
+    inline void
+    __unguarded_insertion_sort(_RandomAccessIterator __first,
+			       _RandomAccessIterator __last)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
+	std::__unguarded_linear_insert(__i);
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline void
+    __unguarded_insertion_sort(_RandomAccessIterator __first,
+			       _RandomAccessIterator __last, _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
+	std::__unguarded_linear_insert(__i, __comp);
+    }
+
+  /**
+   *  @doctodo
+   *  This controls some aspect of the sort routines.
+  */
+  enum { _S_threshold = 16 };
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator>
+    void
+    __final_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last)
+    {
+      if (__last - __first > int(_S_threshold))
+	{
+	  std::__insertion_sort(__first, __first + int(_S_threshold));
+	  std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
+	}
+      else
+	std::__insertion_sort(__first, __last);
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Compare>
+    void
+    __final_insertion_sort(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last, _Compare __comp)
+    {
+      if (__last - __first > int(_S_threshold))
+	{
+	  std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
+	  std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
+					  __comp);
+	}
+      else
+	std::__insertion_sort(__first, __last, __comp);
+    }
+
+  /// This is a helper function...
+  template<typename _RandomAccessIterator, typename _Tp>
+    _RandomAccessIterator
+    __unguarded_partition(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last, const _Tp& __pivot)
+    {
+      while (true)
+	{
+	  while (*__first < __pivot)
+	    ++__first;
+	  --__last;
+	  while (__pivot < *__last)
+	    --__last;
+	  if (!(__first < __last))
+	    return __first;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
+    }
+
+  /// This is a helper function...
+  template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
+    _RandomAccessIterator
+    __unguarded_partition(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last,
+			  const _Tp& __pivot, _Compare __comp)
+    {
+      while (true)
+	{
+	  while (__comp(*__first, __pivot))
+	    ++__first;
+	  --__last;
+	  while (__comp(__pivot, *__last))
+	    --__last;
+	  if (!(__first < __last))
+	    return __first;
+	  std::iter_swap(__first, __last);
+	  ++__first;
+	}
+    }
+
+  /// This is a helper function...
+  template<typename _RandomAccessIterator>
+    inline _RandomAccessIterator
+    __unguarded_partition_pivot(_RandomAccessIterator __first,
+				_RandomAccessIterator __last)
+    {
+      _RandomAccessIterator __mid = __first + (__last - __first) / 2;
+      std::__move_median_to_first(__first, __first + 1, __mid, __last - 1);
+      return std::__unguarded_partition(__first + 1, __last, *__first);
+    }
+
+
+  /// This is a helper function...
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline _RandomAccessIterator
+    __unguarded_partition_pivot(_RandomAccessIterator __first,
+				_RandomAccessIterator __last, _Compare __comp)
+    {
+      _RandomAccessIterator __mid = __first + (__last - __first) / 2;
+      std::__move_median_to_first(__first, __first + 1, __mid, __last - 1,
+				  __comp);
+      return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Size>
+    void
+    __introsort_loop(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last,
+		     _Size __depth_limit)
+    {
+      while (__last - __first > int(_S_threshold))
+	{
+	  if (__depth_limit == 0)
+	    {
+	      _GLIBCXX_STD_A::partial_sort(__first, __last, __last);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition_pivot(__first, __last);
+	  std::__introsort_loop(__cut, __last, __depth_limit);
+	  __last = __cut;
+	}
+    }
+
+  /// This is a helper function for the sort routine.
+  template<typename _RandomAccessIterator, typename _Size, typename _Compare>
+    void
+    __introsort_loop(_RandomAccessIterator __first,
+		     _RandomAccessIterator __last,
+		     _Size __depth_limit, _Compare __comp)
+    {
+      while (__last - __first > int(_S_threshold))
+	{
+	  if (__depth_limit == 0)
+	    {
+	      _GLIBCXX_STD_A::partial_sort(__first, __last, __last, __comp);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition_pivot(__first, __last, __comp);
+	  std::__introsort_loop(__cut, __last, __depth_limit, __comp);
+	  __last = __cut;
+	}
+    }
+
+  // sort
+
+  template<typename _RandomAccessIterator, typename _Size>
+    void
+    __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
+		  _RandomAccessIterator __last, _Size __depth_limit)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      while (__last - __first > 3)
+	{
+	  if (__depth_limit == 0)
+	    {
+	      std::__heap_select(__first, __nth + 1, __last);
+
+	      // Place the nth largest element in its final position.
+	      std::iter_swap(__first, __nth);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition_pivot(__first, __last);
+	  if (__cut <= __nth)
+	    __first = __cut;
+	  else
+	    __last = __cut;
+	}
+      std::__insertion_sort(__first, __last);
+    }
+
+  template<typename _RandomAccessIterator, typename _Size, typename _Compare>
+    void
+    __introselect(_RandomAccessIterator __first, _RandomAccessIterator __nth,
+		  _RandomAccessIterator __last, _Size __depth_limit,
+		  _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      while (__last - __first > 3)
+	{
+	  if (__depth_limit == 0)
+	    {
+	      std::__heap_select(__first, __nth + 1, __last, __comp);
+	      // Place the nth largest element in its final position.
+	      std::iter_swap(__first, __nth);
+	      return;
+	    }
+	  --__depth_limit;
+	  _RandomAccessIterator __cut =
+	    std::__unguarded_partition_pivot(__first, __last, __comp);
+	  if (__cut <= __nth)
+	    __first = __cut;
+	  else
+	    __last = __cut;
+	}
+      std::__insertion_sort(__first, __last, __comp);
+    }
+
+  // nth_element
+
+  // lower_bound moved to stl_algobase.h
+
+  /**
+   *  @brief Finds the first position in which @p __val could be inserted
+   *         without changing the ordering.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return An iterator pointing to the first element <em>not less
+   *           than</em> @p __val, or end() if every element is less
+   *           than @p __val.
+   *  @ingroup binary_search_algorithms
+   *
+   *  The comparison function should have the same effects on ordering as
+   *  the function used for the initial sort.
+  */
+  template<typename _ForwardIterator, typename _Tp, typename _Compare>
+    _ForwardIterator
+    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;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType, _Tp>)
+      __glibcxx_requires_partitioned_lower_pred(__first, __last,
+						__val, __comp);
+
+      _DistanceType __len = std::distance(__first, __last);
+
+      while (__len > 0)
+	{
+	  _DistanceType __half = __len >> 1;
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__comp(*__middle, __val))
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else
+	    __len = __half;
+	}
+      return __first;
+    }
+
+  /**
+   *  @brief Finds the last position in which @p __val could be inserted
+   *         without changing the ordering.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @return  An iterator pointing to the first element greater than @p __val,
+   *           or end() if no elements are greater than @p __val.
+   *  @ingroup binary_search_algorithms
+  */
+  template<typename _ForwardIterator, typename _Tp>
+    _ForwardIterator
+    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;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>)
+      __glibcxx_requires_partitioned_upper(__first, __last, __val);
+
+      _DistanceType __len = std::distance(__first, __last);
+
+      while (__len > 0)
+	{
+	  _DistanceType __half = __len >> 1;
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__val < *__middle)
+	    __len = __half;
+	  else
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	}
+      return __first;
+    }
+
+  /**
+   *  @brief Finds the last position in which @p __val could be inserted
+   *         without changing the ordering.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return  An iterator pointing to the first element greater than @p __val,
+   *           or end() if no elements are greater than @p __val.
+   *  @ingroup binary_search_algorithms
+   *
+   *  The comparison function should have the same effects on ordering as
+   *  the function used for the initial sort.
+  */
+  template<typename _ForwardIterator, typename _Tp, typename _Compare>
+    _ForwardIterator
+    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;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _Tp, _ValueType>)
+      __glibcxx_requires_partitioned_upper_pred(__first, __last,
+						__val, __comp);
+
+      _DistanceType __len = std::distance(__first, __last);
+
+      while (__len > 0)
+	{
+	  _DistanceType __half = __len >> 1;
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __half);
+	  if (__comp(__val, *__middle))
+	    __len = __half;
+	  else
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	}
+      return __first;
+    }
+
+  /**
+   *  @brief Finds the largest subrange in which @p __val could be inserted
+   *         at any place in it without changing the ordering.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @return  An pair of iterators defining the subrange.
+   *  @ingroup binary_search_algorithms
+   *
+   *  This is equivalent to
+   *  @code
+   *    std::make_pair(lower_bound(__first, __last, __val),
+   *                   upper_bound(__first, __last, __val))
+   *  @endcode
+   *  but does not actually call those functions.
+  */
+  template<typename _ForwardIterator, typename _Tp>
+    pair<_ForwardIterator, _ForwardIterator>
+    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;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType, _Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>)	
+      __glibcxx_requires_partitioned_lower(__first, __last, __val);
+      __glibcxx_requires_partitioned_upper(__first, __last, __val);      
+
+      _DistanceType __len = std::distance(__first, __last);
+ 
+      while (__len > 0)
+	{
+	  _DistanceType __half = __len >> 1;
+	  _ForwardIterator __middle = __first;
+	  std::advance(__middle, __half);
+	  if (*__middle < __val)
+	    {
+	      __first = __middle;
+	      ++__first;
+	      __len = __len - __half - 1;
+	    }
+	  else if (__val < *__middle)
+	    __len = __half;
+	  else
+	    {
+	      _ForwardIterator __left = std::lower_bound(__first, __middle,
+							 __val);
+	      std::advance(__first, __len);
+	      _ForwardIterator __right = std::upper_bound(++__middle, __first,
+							  __val);
+	      return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+	    }
+	}
+      return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
+    }
+
+  /**
+   *  @brief Finds the largest subrange in which @p __val could be inserted
+   *         at any place in it without changing the ordering.
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return  An pair of iterators defining the subrange.
+   *  @ingroup binary_search_algorithms
+   *
+   *  This is equivalent to
+   *  @code
+   *    std::make_pair(lower_bound(__first, __last, __val, __comp),
+   *                   upper_bound(__first, __last, __val, __comp))
+   *  @endcode
+   *  but does not actually call those functions.
+  */
+  template<typename _ForwardIterator, typename _Tp, typename _Compare>
+    pair<_ForwardIterator, _ForwardIterator>
+    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;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType, _Tp>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _Tp, _ValueType>)
+      __glibcxx_requires_partitioned_lower_pred(__first, __last,
+						__val, __comp);
+      __glibcxx_requires_partitioned_upper_pred(__first, __last,
+						__val, __comp);
+
+      _DistanceType __len = std::distance(__first, __last);
+
+      while (__len > 0)
+	{
+	  _DistanceType __half = __len >> 1;
+	  _ForwardIterator __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
+	    {
+	      _ForwardIterator __left = std::lower_bound(__first, __middle,
+							 __val, __comp);
+	      std::advance(__first, __len);
+	      _ForwardIterator __right = std::upper_bound(++__middle, __first,
+							  __val, __comp);
+	      return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
+	    }
+	}
+      return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
+    }
+
+  /**
+   *  @brief Determines whether an element exists in a range.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @return True if @p __val (or its equivalent) is in [@p
+   *  __first,@p __last ].
+   *
+   *  Note that this does not actually return an iterator to @p __val.  For
+   *  that, use std::find or a container's specialized find member functions.
+  */
+  template<typename _ForwardIterator, typename _Tp>
+    bool
+    binary_search(_ForwardIterator __first, _ForwardIterator __last,
+                  const _Tp& __val)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>)
+      __glibcxx_requires_partitioned_lower(__first, __last, __val);
+      __glibcxx_requires_partitioned_upper(__first, __last, __val);
+
+      _ForwardIterator __i = std::lower_bound(__first, __last, __val);
+      return __i != __last && !(__val < *__i);
+    }
+
+  /**
+   *  @brief Determines whether an element exists in a range.
+   *  @ingroup binary_search_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __val     The search term.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return  True if @p __val (or its equivalent) is in @p [__first,__last].
+   *
+   *  Note that this does not actually return an iterator to @p __val.  For
+   *  that, use std::find or a container's specialized find member functions.
+   *
+   *  The comparison function should have the same effects on ordering as
+   *  the function used for the initial sort.
+  */
+  template<typename _ForwardIterator, typename _Tp, typename _Compare>
+    bool
+    binary_search(_ForwardIterator __first, _ForwardIterator __last,
+                  const _Tp& __val, _Compare __comp)
+    {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _Tp, _ValueType>)
+      __glibcxx_requires_partitioned_lower_pred(__first, __last,
+						__val, __comp);
+      __glibcxx_requires_partitioned_upper_pred(__first, __last,
+						__val, __comp);
+
+      _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
+      return __i != __last && !bool(__comp(__val, *__i));
+    }
+
+  // merge
+
+  /// This is a helper function for the __merge_adaptive routines.
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
+    void
+    __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1,
+			  _InputIterator2 __first2, _InputIterator2 __last2,
+			  _OutputIterator __result)
+    {
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first2 < *__first1)
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first2);
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first1);
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      if (__first1 != __last1)
+	_GLIBCXX_MOVE3(__first1, __last1, __result);
+    }
+
+  /// This is a helper function for the __merge_adaptive routines.
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
+    void
+    __move_merge_adaptive(_InputIterator1 __first1, _InputIterator1 __last1,
+			  _InputIterator2 __first2, _InputIterator2 __last2,
+			  _OutputIterator __result, _Compare __comp)
+    {
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (__comp(*__first2, *__first1))
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first2);
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first1);
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      if (__first1 != __last1)
+	_GLIBCXX_MOVE3(__first1, __last1, __result);
+    }
+
+  /// This is a helper function for the __merge_adaptive routines.
+  template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
+	   typename _BidirectionalIterator3>
+    void
+    __move_merge_adaptive_backward(_BidirectionalIterator1 __first1,
+				   _BidirectionalIterator1 __last1,
+				   _BidirectionalIterator2 __first2,
+				   _BidirectionalIterator2 __last2,
+				   _BidirectionalIterator3 __result)
+    {
+      if (__first1 == __last1)
+	{
+	  _GLIBCXX_MOVE_BACKWARD3(__first2, __last2, __result);
+	  return;
+	}
+      else if (__first2 == __last2)
+	return;
+
+      --__last1;
+      --__last2;
+      while (true)
+	{
+	  if (*__last2 < *__last1)
+	    {
+	      *--__result = _GLIBCXX_MOVE(*__last1);
+	      if (__first1 == __last1)
+		{
+		  _GLIBCXX_MOVE_BACKWARD3(__first2, ++__last2, __result);
+		  return;
+		}
+	      --__last1;
+	    }
+	  else
+	    {
+	      *--__result = _GLIBCXX_MOVE(*__last2);
+	      if (__first2 == __last2)
+		return;
+	      --__last2;
+	    }
+	}
+    }
+
+  /// This is a helper function for the __merge_adaptive routines.
+  template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
+	   typename _BidirectionalIterator3, typename _Compare>
+    void
+    __move_merge_adaptive_backward(_BidirectionalIterator1 __first1,
+				   _BidirectionalIterator1 __last1,
+				   _BidirectionalIterator2 __first2,
+				   _BidirectionalIterator2 __last2,
+				   _BidirectionalIterator3 __result,
+				   _Compare __comp)
+    {
+      if (__first1 == __last1)
+	{
+	  _GLIBCXX_MOVE_BACKWARD3(__first2, __last2, __result);
+	  return;
+	}
+      else if (__first2 == __last2)
+	return;
+
+      --__last1;
+      --__last2;
+      while (true)
+	{
+	  if (__comp(*__last2, *__last1))
+	    {
+	      *--__result = _GLIBCXX_MOVE(*__last1);
+	      if (__first1 == __last1)
+		{
+		  _GLIBCXX_MOVE_BACKWARD3(__first2, ++__last2, __result);
+		  return;
+		}
+	      --__last1;
+	    }
+	  else
+	    {
+	      *--__result = _GLIBCXX_MOVE(*__last2);
+	      if (__first2 == __last2)
+		return;
+	      --__last2;
+	    }
+	}
+    }
+
+  /// This is a helper function for the merge routines.
+  template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
+	   typename _Distance>
+    _BidirectionalIterator1
+    __rotate_adaptive(_BidirectionalIterator1 __first,
+		      _BidirectionalIterator1 __middle,
+		      _BidirectionalIterator1 __last,
+		      _Distance __len1, _Distance __len2,
+		      _BidirectionalIterator2 __buffer,
+		      _Distance __buffer_size)
+    {
+      _BidirectionalIterator2 __buffer_end;
+      if (__len1 > __len2 && __len2 <= __buffer_size)
+	{
+	  if (__len2)
+	    {
+	      __buffer_end = _GLIBCXX_MOVE3(__middle, __last, __buffer);
+	      _GLIBCXX_MOVE_BACKWARD3(__first, __middle, __last);
+	      return _GLIBCXX_MOVE3(__buffer, __buffer_end, __first);
+	    }
+	  else
+	    return __first;
+	}
+      else if (__len1 <= __buffer_size)
+	{
+	  if (__len1)
+	    {
+	      __buffer_end = _GLIBCXX_MOVE3(__first, __middle, __buffer);
+	      _GLIBCXX_MOVE3(__middle, __last, __first);
+	      return _GLIBCXX_MOVE_BACKWARD3(__buffer, __buffer_end, __last);
+	    }
+	  else
+	    return __last;
+	}
+      else
+	{
+	  std::rotate(__first, __middle, __last);
+	  std::advance(__first, std::distance(__middle, __last));
+	  return __first;
+	}
+    }
+
+  /// This is a helper function for the merge routines.
+  template<typename _BidirectionalIterator, typename _Distance,
+	   typename _Pointer>
+    void
+    __merge_adaptive(_BidirectionalIterator __first,
+                     _BidirectionalIterator __middle,
+		     _BidirectionalIterator __last,
+		     _Distance __len1, _Distance __len2,
+		     _Pointer __buffer, _Distance __buffer_size)
+    {
+      if (__len1 <= __len2 && __len1 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = _GLIBCXX_MOVE3(__first, __middle, __buffer);
+	  std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last,
+				     __first);
+	}
+      else if (__len2 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = _GLIBCXX_MOVE3(__middle, __last, __buffer);
+	  std::__move_merge_adaptive_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);
+	}
+    }
+
+  /// This is a helper function for the merge routines.
+  template<typename _BidirectionalIterator, typename _Distance, 
+	   typename _Pointer, typename _Compare>
+    void
+    __merge_adaptive(_BidirectionalIterator __first,
+                     _BidirectionalIterator __middle,
+		     _BidirectionalIterator __last,
+		     _Distance __len1, _Distance __len2,
+		     _Pointer __buffer, _Distance __buffer_size,
+		     _Compare __comp)
+    {
+      if (__len1 <= __len2 && __len1 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = _GLIBCXX_MOVE3(__first, __middle, __buffer);
+	  std::__move_merge_adaptive(__buffer, __buffer_end, __middle, __last,
+				     __first, __comp);
+	}
+      else if (__len2 <= __buffer_size)
+	{
+	  _Pointer __buffer_end = _GLIBCXX_MOVE3(__middle, __last, __buffer);
+	  std::__move_merge_adaptive_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);
+	}
+    }
+
+  /// This is a helper function for the merge routines.
+  template<typename _BidirectionalIterator, typename _Distance>
+    void
+    __merge_without_buffer(_BidirectionalIterator __first,
+			   _BidirectionalIterator __middle,
+			   _BidirectionalIterator __last,
+			   _Distance __len1, _Distance __len2)
+    {
+      if (__len1 == 0 || __len2 == 0)
+	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);
+	}
+      std::rotate(__first_cut, __middle, __second_cut);
+      _BidirectionalIterator __new_middle = __first_cut;
+      std::advance(__new_middle, std::distance(__middle, __second_cut));
+      std::__merge_without_buffer(__first, __first_cut, __new_middle,
+				  __len11, __len22);
+      std::__merge_without_buffer(__new_middle, __second_cut, __last,
+				  __len1 - __len11, __len2 - __len22);
+    }
+
+  /// This is a helper function for the merge routines.
+  template<typename _BidirectionalIterator, typename _Distance,
+	   typename _Compare>
+    void
+    __merge_without_buffer(_BidirectionalIterator __first,
+                           _BidirectionalIterator __middle,
+			   _BidirectionalIterator __last,
+			   _Distance __len1, _Distance __len2,
+			   _Compare __comp)
+    {
+      if (__len1 == 0 || __len2 == 0)
+	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);
+	}
+      std::rotate(__first_cut, __middle, __second_cut);
+      _BidirectionalIterator __new_middle = __first_cut;
+      std::advance(__new_middle, std::distance(__middle, __second_cut));
+      std::__merge_without_buffer(__first, __first_cut, __new_middle,
+				  __len11, __len22, __comp);
+      std::__merge_without_buffer(__new_middle, __second_cut, __last,
+				  __len1 - __len11, __len2 - __len22, __comp);
+    }
+
+  /**
+   *  @brief Merges two sorted ranges in place.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __middle  Another iterator.
+   *  @param  __last    Another iterator.
+   *  @return  Nothing.
+   *
+   *  Merges two sorted and consecutive ranges, [__first,__middle) and
+   *  [__middle,__last), and puts the result in [__first,__last).  The
+   *  output will be sorted.  The sort is @e stable, that is, for
+   *  equivalent elements in the two ranges, elements from the first
+   *  range will always come before elements from the second.
+   *
+   *  If enough additional memory is available, this takes (__last-__first)-1
+   *  comparisons.  Otherwise an NlogN algorithm is used, where N is
+   *  distance(__first,__last).
+  */
+  template<typename _BidirectionalIterator>
+    void
+    inplace_merge(_BidirectionalIterator __first,
+		  _BidirectionalIterator __middle,
+		  _BidirectionalIterator __last)
+    {
+      typedef typename iterator_traits<_BidirectionalIterator>::value_type
+          _ValueType;
+      typedef typename iterator_traits<_BidirectionalIterator>::difference_type
+          _DistanceType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<
+	    _BidirectionalIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
+      __glibcxx_requires_sorted(__first, __middle);
+      __glibcxx_requires_sorted(__middle, __last);
+
+      if (__first == __middle || __middle == __last)
+	return;
+
+      _DistanceType __len1 = std::distance(__first, __middle);
+      _DistanceType __len2 = std::distance(__middle, __last);
+
+      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
+								  __last);
+      if (__buf.begin() == 0)
+	std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
+      else
+	std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
+			      __buf.begin(), _DistanceType(__buf.size()));
+    }
+
+  /**
+   *  @brief Merges two sorted ranges in place.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __middle  Another iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return  Nothing.
+   *
+   *  Merges two sorted and consecutive ranges, [__first,__middle) and
+   *  [middle,last), and puts the result in [__first,__last).  The output will
+   *  be sorted.  The sort is @e stable, that is, for equivalent
+   *  elements in the two ranges, elements from the first range will always
+   *  come before elements from the second.
+   *
+   *  If enough additional memory is available, this takes (__last-__first)-1
+   *  comparisons.  Otherwise an NlogN algorithm is used, where N is
+   *  distance(__first,__last).
+   *
+   *  The comparison function should have the same effects on ordering as
+   *  the function used for the initial sort.
+  */
+  template<typename _BidirectionalIterator, typename _Compare>
+    void
+    inplace_merge(_BidirectionalIterator __first,
+		  _BidirectionalIterator __middle,
+		  _BidirectionalIterator __last,
+		  _Compare __comp)
+    {
+      typedef typename iterator_traits<_BidirectionalIterator>::value_type
+          _ValueType;
+      typedef typename iterator_traits<_BidirectionalIterator>::difference_type
+          _DistanceType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_BidirectionalIteratorConcept<
+	    _BidirectionalIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    _ValueType, _ValueType>)
+      __glibcxx_requires_sorted_pred(__first, __middle, __comp);
+      __glibcxx_requires_sorted_pred(__middle, __last, __comp);
+
+      if (__first == __middle || __middle == __last)
+	return;
+
+      const _DistanceType __len1 = std::distance(__first, __middle);
+      const _DistanceType __len2 = std::distance(__middle, __last);
+
+      _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
+								  __last);
+      if (__buf.begin() == 0)
+	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);
+    }
+
+
+  /// This is a helper function for the __merge_sort_loop routines.
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator>
+    _OutputIterator
+    __move_merge(_InputIterator1 __first1, _InputIterator1 __last1,
+		 _InputIterator2 __first2, _InputIterator2 __last2,
+		 _OutputIterator __result)
+    {
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first2 < *__first1)
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first2);
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first1);
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      return _GLIBCXX_MOVE3(__first2, __last2,
+			    _GLIBCXX_MOVE3(__first1, __last1,
+					   __result));
+    }
+
+  /// This is a helper function for the __merge_sort_loop routines.
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _Compare>
+    _OutputIterator
+    __move_merge(_InputIterator1 __first1, _InputIterator1 __last1,
+		 _InputIterator2 __first2, _InputIterator2 __last2,
+		 _OutputIterator __result, _Compare __comp)
+    {
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (__comp(*__first2, *__first1))
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first2);
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = _GLIBCXX_MOVE(*__first1);
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      return _GLIBCXX_MOVE3(__first2, __last2,
+			    _GLIBCXX_MOVE3(__first1, __last1,
+					   __result));
+    }
+
+  template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
+	   typename _Distance>
+    void
+    __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::__move_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::__move_merge(__first, __first + __step_size,
+			__first + __step_size, __last, __result);
+    }
+
+  template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
+	   typename _Distance, typename _Compare>
+    void
+    __merge_sort_loop(_RandomAccessIterator1 __first,
+		      _RandomAccessIterator1 __last,
+		      _RandomAccessIterator2 __result, _Distance __step_size,
+		      _Compare __comp)
+    {
+      const _Distance __two_step = 2 * __step_size;
+
+      while (__last - __first >= __two_step)
+	{
+	  __result = std::__move_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::__move_merge(__first,__first + __step_size,
+			__first + __step_size, __last, __result, __comp);
+    }
+
+  template<typename _RandomAccessIterator, typename _Distance>
+    void
+    __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;
+	}
+      std::__insertion_sort(__first, __last);
+    }
+
+  template<typename _RandomAccessIterator, typename _Distance,
+	   typename _Compare>
+    void
+    __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;
+	}
+      std::__insertion_sort(__first, __last, __comp);
+    }
+
+  enum { _S_chunk_size = 7 };
+
+  template<typename _RandomAccessIterator, typename _Pointer>
+    void
+    __merge_sort_with_buffer(_RandomAccessIterator __first,
+			     _RandomAccessIterator __last,
+                             _Pointer __buffer)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
+
+      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;
+	}
+    }
+
+  template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
+    void
+    __merge_sort_with_buffer(_RandomAccessIterator __first,
+			     _RandomAccessIterator __last,
+                             _Pointer __buffer, _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_Distance;
+
+      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;
+	}
+    }
+
+  template<typename _RandomAccessIterator, typename _Pointer,
+	   typename _Distance>
+    void
+    __stable_sort_adaptive(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
+                           _Pointer __buffer, _Distance __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>
+    void
+    __stable_sort_adaptive(_RandomAccessIterator __first,
+			   _RandomAccessIterator __last,
+                           _Pointer __buffer, _Distance __buffer_size,
+                           _Compare __comp)
+    {
+      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);
+    }
+
+  /// This is a helper function for the stable sorting routines.
+  template<typename _RandomAccessIterator>
+    void
+    __inplace_stable_sort(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last)
+    {
+      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);
+      std::__merge_without_buffer(__first, __middle, __last,
+				  __middle - __first,
+				  __last - __middle);
+    }
+
+  /// This is a helper function for the stable sorting routines.
+  template<typename _RandomAccessIterator, typename _Compare>
+    void
+    __inplace_stable_sort(_RandomAccessIterator __first,
+			  _RandomAccessIterator __last, _Compare __comp)
+    {
+      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);
+      std::__merge_without_buffer(__first, __middle, __last,
+				  __middle - __first,
+				  __last - __middle,
+				  __comp);
+    }
+
+  // stable_sort
+
+  // Set algorithms: includes, set_union, set_intersection, set_difference,
+  // set_symmetric_difference.  All of these algorithms have the precondition
+  // that their input ranges are sorted and the postcondition that their output
+  // ranges are sorted.
+
+  /**
+   *  @brief Determines whether all elements of a sequence exists in a range.
+   *  @param  __first1  Start of search range.
+   *  @param  __last1   End of search range.
+   *  @param  __first2  Start of sequence
+   *  @param  __last2   End of sequence.
+   *  @return  True if each element in [__first2,__last2) is contained in order
+   *  within [__first1,__last1).  False otherwise.
+   *  @ingroup set_algorithms
+   *
+   *  This operation expects both [__first1,__last1) and
+   *  [__first2,__last2) to be sorted.  Searches for the presence of
+   *  each element in [__first2,__last2) within [__first1,__last1).
+   *  The iterators over each range only move forward, so this is a
+   *  linear algorithm.  If an element in [__first2,__last2) is not
+   *  found before the search iterator reaches @p __last2, false is
+   *  returned.
+  */
+  template<typename _InputIterator1, typename _InputIterator2>
+    bool
+    includes(_InputIterator1 __first1, _InputIterator1 __last1,
+	     _InputIterator2 __first2, _InputIterator2 __last2)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (*__first2 < *__first1)
+	  return false;
+	else if(*__first1 < *__first2)
+	  ++__first1;
+	else
+	  ++__first1, ++__first2;
+
+      return __first2 == __last2;
+    }
+
+  /**
+   *  @brief Determines whether all elements of a sequence exists in a range
+   *  using comparison.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of search range.
+   *  @param  __last1   End of search range.
+   *  @param  __first2  Start of sequence
+   *  @param  __last2   End of sequence.
+   *  @param  __comp    Comparison function to use.
+   *  @return True if each element in [__first2,__last2) is contained
+   *  in order within [__first1,__last1) according to comp.  False
+   *  otherwise.  @ingroup set_algorithms
+   *
+   *  This operation expects both [__first1,__last1) and
+   *  [__first2,__last2) to be sorted.  Searches for the presence of
+   *  each element in [__first2,__last2) within [__first1,__last1),
+   *  using comp to decide.  The iterators over each range only move
+   *  forward, so this is a linear algorithm.  If an element in
+   *  [__first2,__last2) is not found before the search iterator
+   *  reaches @p __last2, false is returned.
+  */
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _Compare>
+    bool
+    includes(_InputIterator1 __first1, _InputIterator1 __last1,
+	     _InputIterator2 __first2, _InputIterator2 __last2,
+	     _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __comp);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (__comp(*__first2, *__first1))
+	  return false;
+	else if(__comp(*__first1, *__first2))
+	  ++__first1;
+	else
+	  ++__first1, ++__first2;
+
+      return __first2 == __last2;
+    }
+
+  // nth_element
+  // merge
+  // set_difference
+  // set_intersection
+  // set_union
+  // stable_sort
+  // set_symmetric_difference
+  // min_element
+  // max_element
+
+  /**
+   *  @brief  Permute range into the next @e dictionary ordering.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @return  False if wrapped to first permutation, true otherwise.
+   *
+   *  Treats all permutations of the range as a set of @e dictionary sorted
+   *  sequences.  Permutes the current sequence into the next one of this set.
+   *  Returns true if there are more sequences to generate.  If the sequence
+   *  is the largest of the set, the smallest is generated and false returned.
+  */
+  template<typename _BidirectionalIterator>
+    bool
+    next_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_BidirectionalIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return false;
+      _BidirectionalIterator __i = __first;
+      ++__i;
+      if (__i == __last)
+	return false;
+      __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;
+	    }
+	}
+    }
+
+  /**
+   *  @brief  Permute range into the next @e dictionary ordering using
+   *          comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @param  __comp   A comparison functor.
+   *  @return  False if wrapped to first permutation, true otherwise.
+   *
+   *  Treats all permutations of the range [__first,__last) as a set of
+   *  @e dictionary sorted sequences ordered by @p __comp.  Permutes the current
+   *  sequence into the next one of this set.  Returns true if there are more
+   *  sequences to generate.  If the sequence is the largest of the set, the
+   *  smallest is generated and false returned.
+  */
+  template<typename _BidirectionalIterator, typename _Compare>
+    bool
+    next_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last, _Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_BidirectionalIterator>::value_type,
+	    typename iterator_traits<_BidirectionalIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return false;
+      _BidirectionalIterator __i = __first;
+      ++__i;
+      if (__i == __last)
+	return false;
+      __i = __last;
+      --__i;
+
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (__comp(*__i, *__ii))
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!bool(__comp(*__i, *--__j)))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
+	}
+    }
+
+  /**
+   *  @brief  Permute range into the previous @e dictionary ordering.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @return  False if wrapped to last permutation, true otherwise.
+   *
+   *  Treats all permutations of the range as a set of @e dictionary sorted
+   *  sequences.  Permutes the current sequence into the previous one of this
+   *  set.  Returns true if there are more sequences to generate.  If the
+   *  sequence is the smallest of the set, the largest is generated and false
+   *  returned.
+  */
+  template<typename _BidirectionalIterator>
+    bool
+    prev_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_BidirectionalIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return false;
+      _BidirectionalIterator __i = __first;
+      ++__i;
+      if (__i == __last)
+	return false;
+      __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;
+	    }
+	}
+    }
+
+  /**
+   *  @brief  Permute range into the previous @e dictionary ordering using
+   *          comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @param  __comp   A comparison functor.
+   *  @return  False if wrapped to last permutation, true otherwise.
+   *
+   *  Treats all permutations of the range [__first,__last) as a set of
+   *  @e dictionary sorted sequences ordered by @p __comp.  Permutes the current
+   *  sequence into the previous one of this set.  Returns true if there are
+   *  more sequences to generate.  If the sequence is the smallest of the set,
+   *  the largest is generated and false returned.
+  */
+  template<typename _BidirectionalIterator, typename _Compare>
+    bool
+    prev_permutation(_BidirectionalIterator __first,
+		     _BidirectionalIterator __last, _Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_BidirectionalIteratorConcept<
+				  _BidirectionalIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_BidirectionalIterator>::value_type,
+	    typename iterator_traits<_BidirectionalIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return false;
+      _BidirectionalIterator __i = __first;
+      ++__i;
+      if (__i == __last)
+	return false;
+      __i = __last;
+      --__i;
+
+      for(;;)
+	{
+	  _BidirectionalIterator __ii = __i;
+	  --__i;
+	  if (__comp(*__ii, *__i))
+	    {
+	      _BidirectionalIterator __j = __last;
+	      while (!bool(__comp(*--__j, *__i)))
+		{}
+	      std::iter_swap(__i, __j);
+	      std::reverse(__ii, __last);
+	      return true;
+	    }
+	  if (__i == __first)
+	    {
+	      std::reverse(__first, __last);
+	      return false;
+	    }
+	}
+    }
+
+  // replace
+  // replace_if
+
+  /**
+   *  @brief Copy a sequence, replacing each element of one value with another
+   *         value.
+   *  @param  __first      An input iterator.
+   *  @param  __last       An input iterator.
+   *  @param  __result     An output iterator.
+   *  @param  __old_value  The value to be replaced.
+   *  @param  __new_value  The replacement value.
+   *  @return   The end of the output sequence, @p result+(last-first).
+   *
+   *  Copies each element in the input range @p [__first,__last) to the
+   *  output range @p [__result,__result+(__last-__first)) replacing elements
+   *  equal to @p __old_value with @p __new_value.
+  */
+  template<typename _InputIterator, typename _OutputIterator, typename _Tp>
+    _OutputIterator
+    replace_copy(_InputIterator __first, _InputIterator __last,
+		 _OutputIterator __result,
+		 const _Tp& __old_value, const _Tp& __new_value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_InputIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first, ++__result)
+	if (*__first == __old_value)
+	  *__result = __new_value;
+	else
+	  *__result = *__first;
+      return __result;
+    }
+
+  /**
+   *  @brief Copy a sequence, replacing each value for which a predicate
+   *         returns true with another value.
+   *  @ingroup mutating_algorithms
+   *  @param  __first      An input iterator.
+   *  @param  __last       An input iterator.
+   *  @param  __result     An output iterator.
+   *  @param  __pred       A predicate.
+   *  @param  __new_value  The replacement value.
+   *  @return   The end of the output sequence, @p __result+(__last-__first).
+   *
+   *  Copies each element in the range @p [__first,__last) to the range
+   *  @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>
+    _OutputIterator
+    replace_copy_if(_InputIterator __first, _InputIterator __last,
+		    _OutputIterator __result,
+		    _Predicate __pred, const _Tp& __new_value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first, ++__result)
+	if (__pred(*__first))
+	  *__result = __new_value;
+	else
+	  *__result = *__first;
+      return __result;
+    }
+
+#if __cplusplus >= 201103L
+  /**
+   *  @brief  Determines whether the elements of a sequence are sorted.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @return  True if the elements are sorted, false otherwise.
+  */
+  template<typename _ForwardIterator>
+    inline bool
+    is_sorted(_ForwardIterator __first, _ForwardIterator __last)
+    { return std::is_sorted_until(__first, __last) == __last; }
+
+  /**
+   *  @brief  Determines whether the elements of a sequence are sorted
+   *          according to a comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  True if the elements are sorted, false otherwise.
+  */
+  template<typename _ForwardIterator, typename _Compare>
+    inline bool
+    is_sorted(_ForwardIterator __first, _ForwardIterator __last,
+	      _Compare __comp)
+    { return std::is_sorted_until(__first, __last, __comp) == __last; }
+
+  /**
+   *  @brief  Determines the end of a sorted sequence.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @return  An iterator pointing to the last iterator i in [__first, __last)
+   *           for which the range [__first, i) is sorted.
+  */
+  template<typename _ForwardIterator>
+    _ForwardIterator
+    is_sorted_until(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __last;
+
+      _ForwardIterator __next = __first;
+      for (++__next; __next != __last; __first = __next, ++__next)
+	if (*__next < *__first)
+	  return __next;
+      return __next;
+    }
+
+  /**
+   *  @brief  Determines the end of a sorted sequence using comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  An iterator pointing to the last iterator i in [__first, __last)
+   *           for which the range [__first, i) is sorted.
+  */
+  template<typename _ForwardIterator, typename _Compare>
+    _ForwardIterator
+    is_sorted_until(_ForwardIterator __first, _ForwardIterator __last,
+		    _Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_ForwardIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __last;
+
+      _ForwardIterator __next = __first;
+      for (++__next; __next != __last; __first = __next, ++__next)
+	if (__comp(*__next, *__first))
+	  return __next;
+      return __next;
+    }
+
+  /**
+   *  @brief  Determines min and max at once as an ordered pair.
+   *  @ingroup sorting_algorithms
+   *  @param  __a  A thing of arbitrary type.
+   *  @param  __b  Another thing of arbitrary type.
+   *  @return A pair(__b, __a) if __b is smaller than __a, pair(__a,
+   *  __b) otherwise.
+  */
+  template<typename _Tp>
+    inline pair<const _Tp&, const _Tp&>
+    minmax(const _Tp& __a, const _Tp& __b)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
+
+      return __b < __a ? pair<const _Tp&, const _Tp&>(__b, __a)
+	               : pair<const _Tp&, const _Tp&>(__a, __b);
+    }
+
+  /**
+   *  @brief  Determines min and max at once as an ordered pair.
+   *  @ingroup sorting_algorithms
+   *  @param  __a  A thing of arbitrary type.
+   *  @param  __b  Another thing of arbitrary type.
+   *  @param  __comp  A @link comparison_functors comparison functor @endlink.
+   *  @return A pair(__b, __a) if __b is smaller than __a, pair(__a,
+   *  __b) otherwise.
+  */
+  template<typename _Tp, typename _Compare>
+    inline pair<const _Tp&, const _Tp&>
+    minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
+    {
+      return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a)
+	                      : pair<const _Tp&, const _Tp&>(__a, __b);
+    }
+
+  /**
+   *  @brief  Return a pair of iterators pointing to the minimum and maximum
+   *          elements in a range.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @return  make_pair(m, M), where m is the first iterator i in 
+   *           [__first, __last) such that no other element in the range is
+   *           smaller, and where M is the last iterator i in [__first, __last)
+   *           such that no other element in the range is larger.
+  */
+  template<typename _ForwardIterator>
+    pair<_ForwardIterator, _ForwardIterator>
+    minmax_element(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      _ForwardIterator __next = __first;
+      if (__first == __last
+	  || ++__next == __last)
+	return std::make_pair(__first, __first);
+
+      _ForwardIterator __min, __max;
+      if (*__next < *__first)
+	{
+	  __min = __next;
+	  __max = __first;
+	}
+      else
+	{
+	  __min = __first;
+	  __max = __next;
+	}
+
+      __first = __next;
+      ++__first;
+
+      while (__first != __last)
+	{
+	  __next = __first;
+	  if (++__next == __last)
+	    {
+	      if (*__first < *__min)
+		__min = __first;
+	      else if (!(*__first < *__max))
+		__max = __first;
+	      break;
+	    }
+
+	  if (*__next < *__first)
+	    {
+	      if (*__next < *__min)
+		__min = __next;
+	      if (!(*__first < *__max))
+		__max = __first;
+	    }
+	  else
+	    {
+	      if (*__first < *__min)
+		__min = __first;
+	      if (!(*__next < *__max))
+		__max = __next;
+	    }
+
+	  __first = __next;
+	  ++__first;
+	}
+
+      return std::make_pair(__min, __max);
+    }
+
+  /**
+   *  @brief  Return a pair of iterators pointing to the minimum and maximum
+   *          elements in a range.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @param  __comp   Comparison functor.
+   *  @return  make_pair(m, M), where m is the first iterator i in 
+   *           [__first, __last) such that no other element in the range is
+   *           smaller, and where M is the last iterator i in [__first, __last)
+   *           such that no other element in the range is larger.
+  */
+  template<typename _ForwardIterator, typename _Compare>
+    pair<_ForwardIterator, _ForwardIterator>
+    minmax_element(_ForwardIterator __first, _ForwardIterator __last,
+		   _Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_ForwardIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      _ForwardIterator __next = __first;
+      if (__first == __last
+	  || ++__next == __last)
+	return std::make_pair(__first, __first);
+
+      _ForwardIterator __min, __max;
+      if (__comp(*__next, *__first))
+	{
+	  __min = __next;
+	  __max = __first;
+	}
+      else
+	{
+	  __min = __first;
+	  __max = __next;
+	}
+
+      __first = __next;
+      ++__first;
+
+      while (__first != __last)
+	{
+	  __next = __first;
+	  if (++__next == __last)
+	    {
+	      if (__comp(*__first, *__min))
+		__min = __first;
+	      else if (!__comp(*__first, *__max))
+		__max = __first;
+	      break;
+	    }
+
+	  if (__comp(*__next, *__first))
+	    {
+	      if (__comp(*__next, *__min))
+		__min = __next;
+	      if (!__comp(*__first, *__max))
+		__max = __first;
+	    }
+	  else
+	    {
+	      if (__comp(*__first, *__min))
+		__min = __first;
+	      if (!__comp(*__next, *__max))
+		__max = __next;
+	    }
+
+	  __first = __next;
+	  ++__first;
+	}
+
+      return std::make_pair(__min, __max);
+    }
+
+  // N2722 + DR 915.
+  template<typename _Tp>
+    inline _Tp
+    min(initializer_list<_Tp> __l)
+    { return *std::min_element(__l.begin(), __l.end()); }
+
+  template<typename _Tp, typename _Compare>
+    inline _Tp
+    min(initializer_list<_Tp> __l, _Compare __comp)
+    { return *std::min_element(__l.begin(), __l.end(), __comp); }
+
+  template<typename _Tp>
+    inline _Tp
+    max(initializer_list<_Tp> __l)
+    { return *std::max_element(__l.begin(), __l.end()); }
+
+  template<typename _Tp, typename _Compare>
+    inline _Tp
+    max(initializer_list<_Tp> __l, _Compare __comp)
+    { return *std::max_element(__l.begin(), __l.end(), __comp); }
+
+  template<typename _Tp>
+    inline pair<_Tp, _Tp>
+    minmax(initializer_list<_Tp> __l)
+    {
+      pair<const _Tp*, const _Tp*> __p =
+	std::minmax_element(__l.begin(), __l.end());
+      return std::make_pair(*__p.first, *__p.second);
+    }
+
+  template<typename _Tp, typename _Compare>
+    inline pair<_Tp, _Tp>
+    minmax(initializer_list<_Tp> __l, _Compare __comp)
+    {
+      pair<const _Tp*, const _Tp*> __p =
+	std::minmax_element(__l.begin(), __l.end(), __comp);
+      return std::make_pair(*__p.first, *__p.second);
+    }
+
+  /**
+   *  @brief  Checks whether a permutaion of the second sequence is equal
+   *          to the first sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @return true if there exists a permutation of the elements in the range
+   *          [__first2, __first2 + (__last1 - __first1)), beginning with 
+   *          ForwardIterator2 begin, such that equal(__first1, __last1, begin)
+   *          returns true; otherwise, returns false.
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    bool
+    is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+		   _ForwardIterator2 __first2)
+    {
+      // Efficiently compare identical prefixes:  O(N) if sequences
+      // have the same elements in the same order.
+      for (; __first1 != __last1; ++__first1, ++__first2)
+	if (!(*__first1 == *__first2))
+	  break;
+
+      if (__first1 == __last1)
+	return true;
+
+      // Establish __last2 assuming equal ranges by iterating over the
+      // rest of the list.
+      _ForwardIterator2 __last2 = __first2;
+      std::advance(__last2, std::distance(__first1, __last1));
+      for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan)
+	{
+	  if (__scan != _GLIBCXX_STD_A::find(__first1, __scan, *__scan))
+	    continue; // We've seen this one before.
+
+	  auto __matches = std::count(__first2, __last2, *__scan);
+	  if (0 == __matches
+	      || std::count(__scan, __last1, *__scan) != __matches)
+	    return false;
+	}
+      return true;
+    }
+
+  /**
+   *  @brief  Checks whether a permutation of the second sequence is equal
+   *          to the first sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __pred    A binary predicate.
+   *  @return true if there exists a permutation of the elements in
+   *          the range [__first2, __first2 + (__last1 - __first1)),
+   *          beginning with ForwardIterator2 begin, such that
+   *          equal(__first1, __last1, __begin, __pred) returns true;
+   *          otherwise, returns false.
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2,
+	   typename _BinaryPredicate>
+    bool
+    is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+		   _ForwardIterator2 __first2, _BinaryPredicate __pred)
+    {
+      // Efficiently compare identical prefixes:  O(N) if sequences
+      // have the same elements in the same order.
+      for (; __first1 != __last1; ++__first1, ++__first2)
+	if (!bool(__pred(*__first1, *__first2)))
+	  break;
+
+      if (__first1 == __last1)
+	return true;
+
+      // Establish __last2 assuming equal ranges by iterating over the
+      // rest of the list.
+      _ForwardIterator2 __last2 = __first2;
+      std::advance(__last2, std::distance(__first1, __last1));
+      for (_ForwardIterator1 __scan = __first1; __scan != __last1; ++__scan)
+	{
+	  using std::placeholders::_1;
+
+	  if (__scan != _GLIBCXX_STD_A::find_if(__first1, __scan,
+						std::bind(__pred, _1, *__scan)))
+	    continue; // We've seen this one before.
+	  
+	  auto __matches = std::count_if(__first2, __last2,
+					 std::bind(__pred, _1, *__scan));
+	  if (0 == __matches
+	      || std::count_if(__scan, __last1,
+			       std::bind(__pred, _1, *__scan)) != __matches)
+	    return false;
+	}
+      return true;
+    }
+
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
+  /**
+   *  @brief Shuffle the elements of a sequence using a uniform random
+   *         number generator.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @param  __g       A UniformRandomNumberGenerator (26.5.1.3).
+   *  @return  Nothing.
+   *
+   *  Reorders the elements in the range @p [__first,__last) using @p __g to
+   *  provide random numbers.
+  */
+  template<typename _RandomAccessIterator,
+	   typename _UniformRandomNumberGenerator>
+    void
+    shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	    _UniformRandomNumberGenerator&& __g)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return;
+
+      typedef typename iterator_traits<_RandomAccessIterator>::difference_type
+	_DistanceType;
+
+      typedef typename std::make_unsigned<_DistanceType>::type __ud_type;
+      typedef typename std::uniform_int_distribution<__ud_type> __distr_type;
+      typedef typename __distr_type::param_type __p_type;
+      __distr_type __d;
+
+      for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
+	std::iter_swap(__i, __first + __d(__g, __p_type(0, __i - __first)));
+    }
+#endif
+
+#endif // C++11
+
+_GLIBCXX_END_NAMESPACE_VERSION
+
+_GLIBCXX_BEGIN_NAMESPACE_ALGO
+
+  /**
+   *  @brief Apply a function to every element of a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __f      A unary function object.
+   *  @return   @p __f (std::move(@p __f) in C++0x).
+   *
+   *  Applies the function object @p __f to each element in the range
+   *  @p [first,last).  @p __f must not modify the order of the sequence.
+   *  If @p __f has a return value it is ignored.
+  */
+  template<typename _InputIterator, typename _Function>
+    _Function
+    for_each(_InputIterator __first, _InputIterator __last, _Function __f)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_requires_valid_range(__first, __last);
+      for (; __first != __last; ++__first)
+	__f(*__first);
+      return _GLIBCXX_MOVE(__f);
+    }
+
+  /**
+   *  @brief Find the first occurrence of a value in a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __val    The value to find.
+   *  @return   The first iterator @c i in the range @p [__first,__last)
+   *  such that @c *i == @p __val, or @p __last if no such iterator exists.
+  */
+  template<typename _InputIterator, typename _Tp>
+    inline _InputIterator
+    find(_InputIterator __first, _InputIterator __last,
+	 const _Tp& __val)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __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));
+    }
+
+  /**
+   *  @brief Find the first element in a sequence for which a
+   *         predicate is true.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __pred   A predicate.
+   *  @return   The first iterator @c i in the range @p [__first,__last)
+   *  such that @p __pred(*i) is true, or @p __last if no such iterator exists.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    inline _InputIterator
+    find_if(_InputIterator __first, _InputIterator __last,
+	    _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __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));
+    }
+
+  /**
+   *  @brief  Find element from a set in a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of range to search.
+   *  @param  __last1   End of range to search.
+   *  @param  __first2  Start of match candidates.
+   *  @param  __last2   End of match candidates.
+   *  @return   The first iterator @c i in the range
+   *  @p [__first1,__last1) such that @c *i == @p *(i2) such that i2 is an
+   *  iterator in [__first2,__last2), or @p __last1 if no such iterator exists.
+   *
+   *  Searches the range @p [__first1,__last1) for an element that is
+   *  equal to 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>
+    _InputIterator
+    find_first_of(_InputIterator __first1, _InputIterator __last1,
+		  _ForwardIterator __first2, _ForwardIterator __last2)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_InputIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      for (; __first1 != __last1; ++__first1)
+	for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
+	  if (*__first1 == *__iter)
+	    return __first1;
+      return __last1;
+    }
+
+  /**
+   *  @brief  Find element from a set in a sequence using a predicate.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  Start of range to search.
+   *  @param  __last1   End of range to search.
+   *  @param  __first2  Start of match candidates.
+   *  @param  __last2   End of match candidates.
+   *  @param  __comp    Predicate to use.
+   *  @return   The first iterator @c i in the range
+   *  @p [__first1,__last1) such that @c comp(*i, @p *(i2)) is true
+   *  and i2 is an iterator in [__first2,__last2), or @p __last1 if no
+   *  such iterator exists.
+   *
+
+   *  Searches the range @p [__first1,__last1) for an element that is
+   *  equal to 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>
+    _InputIterator
+    find_first_of(_InputIterator __first1, _InputIterator __last1,
+		  _ForwardIterator __first2, _ForwardIterator __last2,
+		  _BinaryPredicate __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	    typename iterator_traits<_InputIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      for (; __first1 != __last1; ++__first1)
+	for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
+	  if (__comp(*__first1, *__iter))
+	    return __first1;
+      return __last1;
+    }
+
+  /**
+   *  @brief Find two adjacent values in a sequence that are equal.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __last   A forward iterator.
+   *  @return   The first iterator @c i such that @c i and @c i+1 are both
+   *  valid iterators in @p [__first,__last) and such that @c *i == @c *(i+1),
+   *  or @p __last if no such iterator exists.
+  */
+  template<typename _ForwardIterator>
+    _ForwardIterator
+    adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_EqualityComparableConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+      if (__first == __last)
+	return __last;
+      _ForwardIterator __next = __first;
+      while(++__next != __last)
+	{
+	  if (*__first == *__next)
+	    return __first;
+	  __first = __next;
+	}
+      return __last;
+    }
+
+  /**
+   *  @brief Find two adjacent values in a sequence using a predicate.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first         A forward iterator.
+   *  @param  __last          A forward iterator.
+   *  @param  __binary_pred   A binary predicate.
+   *  @return   The first iterator @c i such that @c i and @c i+1 are both
+   *  valid iterators in @p [__first,__last) and such that
+   *  @p __binary_pred(*i,*(i+1)) is true, or @p __last if no such iterator
+   *  exists.
+  */
+  template<typename _ForwardIterator, typename _BinaryPredicate>
+    _ForwardIterator
+    adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
+		  _BinaryPredicate __binary_pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	    typename iterator_traits<_ForwardIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+      if (__first == __last)
+	return __last;
+      _ForwardIterator __next = __first;
+      while(++__next != __last)
+	{
+	  if (__binary_pred(*__first, *__next))
+	    return __first;
+	  __first = __next;
+	}
+      return __last;
+    }
+
+  /**
+   *  @brief Count the number of copies of a value in a sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __value  The value to be counted.
+   *  @return   The number of iterators @c i in the range @p [__first,__last)
+   *  for which @c *i == @p __value
+  */
+  template<typename _InputIterator, typename _Tp>
+    typename iterator_traits<_InputIterator>::difference_type
+    count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	typename iterator_traits<_InputIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+      typename iterator_traits<_InputIterator>::difference_type __n = 0;
+      for (; __first != __last; ++__first)
+	if (*__first == __value)
+	  ++__n;
+      return __n;
+    }
+
+  /**
+   *  @brief Count the elements of a sequence for which a predicate is true.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  An input iterator.
+   *  @param  __last   An input iterator.
+   *  @param  __pred   A predicate.
+   *  @return   The number of iterators @c i in the range @p [__first,__last)
+   *  for which @p __pred(*i) is true.
+  */
+  template<typename _InputIterator, typename _Predicate>
+    typename iterator_traits<_InputIterator>::difference_type
+    count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+      typename iterator_traits<_InputIterator>::difference_type __n = 0;
+      for (; __first != __last; ++__first)
+	if (__pred(*__first))
+	  ++__n;
+      return __n;
+    }
+
+  /**
+   *  @brief Search a sequence for a matching sub-sequence.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1  A forward iterator.
+   *  @param  __last1   A forward iterator.
+   *  @param  __first2  A forward iterator.
+   *  @param  __last2   A forward iterator.
+   *  @return The first iterator @c i in the range @p
+   *  [__first1,__last1-(__last2-__first2)) such that @c *(i+N) == @p
+   *  *(__first2+N) for each @c N in the range @p
+   *  [0,__last2-__first2), or @p __last1 if no such iterator exists.
+   *
+   *  Searches the range @p [__first1,__last1) for a sub-sequence that
+   *  compares equal value-by-value with the sequence given by @p
+   *  [__first2,__last2) and returns an iterator to the first element
+   *  of the sub-sequence, or @p __last1 if the sub-sequence is not
+   *  found.
+   *
+   *  Because the sub-sequence must lie completely within the range @p
+   *  [__first1,__last1) it must start at a position less than @p
+   *  __last1-(__last2-__first2) where @p __last2-__first2 is the
+   *  length of the sub-sequence.
+   *
+   *  This means that the returned iterator @c i will be in the range
+   *  @p [__first1,__last1-(__last2-__first2))
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2>
+    _ForwardIterator1
+    search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	   _ForwardIterator2 __first2, _ForwardIterator2 __last2)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator1>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator2>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_ForwardIterator1>::value_type,
+	    typename iterator_traits<_ForwardIterator2>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      // Test for empty ranges
+      if (__first1 == __last1 || __first2 == __last2)
+	return __first1;
+
+      // Test for a pattern of length 1.
+      _ForwardIterator2 __p1(__first2);
+      if (++__p1 == __last2)
+	return _GLIBCXX_STD_A::find(__first1, __last1, *__first2);
+
+      // General case.
+      _ForwardIterator2 __p;
+      _ForwardIterator1 __current = __first1;
+
+      for (;;)
+	{
+	  __first1 = _GLIBCXX_STD_A::find(__first1, __last1, *__first2);
+	  if (__first1 == __last1)
+	    return __last1;
+
+	  __p = __p1;
+	  __current = __first1;
+	  if (++__current == __last1)
+	    return __last1;
+
+	  while (*__current == *__p)
+	    {
+	      if (++__p == __last2)
+		return __first1;
+	      if (++__current == __last1)
+		return __last1;
+	    }
+	  ++__first1;
+	}
+      return __first1;
+    }
+
+  /**
+   *  @brief Search a sequence for a matching sub-sequence using a predicate.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first1     A forward iterator.
+   *  @param  __last1      A forward iterator.
+   *  @param  __first2     A forward iterator.
+   *  @param  __last2      A forward iterator.
+   *  @param  __predicate  A binary predicate.
+   *  @return   The first iterator @c i in the range
+   *  @p [__first1,__last1-(__last2-__first2)) such that
+   *  @p __predicate(*(i+N),*(__first2+N)) is true for each @c N in the range
+   *  @p [0,__last2-__first2), or @p __last1 if no such iterator exists.
+   *
+   *  Searches the range @p [__first1,__last1) for a sub-sequence that
+   *  compares equal value-by-value with the sequence given by @p
+   *  [__first2,__last2), using @p __predicate to determine equality,
+   *  and returns an iterator to the first element of the
+   *  sub-sequence, or @p __last1 if no such iterator exists.
+   *
+   *  @see search(_ForwardIter1, _ForwardIter1, _ForwardIter2, _ForwardIter2)
+  */
+  template<typename _ForwardIterator1, typename _ForwardIterator2,
+	   typename _BinaryPredicate>
+    _ForwardIterator1
+    search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
+	   _ForwardIterator2 __first2, _ForwardIterator2 __last2,
+	   _BinaryPredicate  __predicate)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator1>)
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	    typename iterator_traits<_ForwardIterator1>::value_type,
+	    typename iterator_traits<_ForwardIterator2>::value_type>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+      __glibcxx_requires_valid_range(__first2, __last2);
+
+      // Test for empty ranges
+      if (__first1 == __last1 || __first2 == __last2)
+	return __first1;
+
+      // Test for a pattern of length 1.
+      _ForwardIterator2 __p1(__first2);
+      if (++__p1 == __last2)
+	{
+	  while (__first1 != __last1
+		 && !bool(__predicate(*__first1, *__first2)))
+	    ++__first1;
+	  return __first1;
+	}
+
+      // General case.
+      _ForwardIterator2 __p;
+      _ForwardIterator1 __current = __first1;
+
+      for (;;)
+	{
+	  while (__first1 != __last1
+		 && !bool(__predicate(*__first1, *__first2)))
+	    ++__first1;
+	  if (__first1 == __last1)
+	    return __last1;
+
+	  __p = __p1;
+	  __current = __first1;
+	  if (++__current == __last1)
+	    return __last1;
+
+	  while (__predicate(*__current, *__p))
+	    {
+	      if (++__p == __last2)
+		return __first1;
+	      if (++__current == __last1)
+		return __last1;
+	    }
+	  ++__first1;
+	}
+      return __first1;
+    }
+
+
+  /**
+   *  @brief Search a sequence for a number of consecutive values.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __last   A forward iterator.
+   *  @param  __count  The number of consecutive values.
+   *  @param  __val    The value to find.
+   *  @return The first iterator @c i in the range @p
+   *  [__first,__last-__count) such that @c *(i+N) == @p __val for
+   *  each @c N in the range @p [0,__count), or @p __last if no such
+   *  iterator exists.
+   *
+   *  Searches the range @p [__first,__last) for @p count consecutive elements
+   *  equal to @p __val.
+  */
+  template<typename _ForwardIterator, typename _Integer, typename _Tp>
+    _ForwardIterator
+    search_n(_ForwardIterator __first, _ForwardIterator __last,
+	     _Integer __count, const _Tp& __val)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__count <= 0)
+	return __first;
+      if (__count == 1)
+	return _GLIBCXX_STD_A::find(__first, __last, __val);
+      return std::__search_n(__first, __last, __count, __val,
+			     std::__iterator_category(__first));
+    }
+
+
+  /**
+   *  @brief Search a sequence for a number of consecutive values using a
+   *         predicate.
+   *  @ingroup non_mutating_algorithms
+   *  @param  __first        A forward iterator.
+   *  @param  __last         A forward iterator.
+   *  @param  __count        The number of consecutive values.
+   *  @param  __val          The value to find.
+   *  @param  __binary_pred  A binary predicate.
+   *  @return The first iterator @c i in the range @p
+   *  [__first,__last-__count) such that @p
+   *  __binary_pred(*(i+N),__val) is true for each @c N in the range
+   *  @p [0,__count), or @p __last if no such iterator exists.
+   *
+   *  Searches the range @p [__first,__last) for @p __count
+   *  consecutive elements for which the predicate returns true.
+  */
+  template<typename _ForwardIterator, typename _Integer, typename _Tp,
+           typename _BinaryPredicate>
+    _ForwardIterator
+    search_n(_ForwardIterator __first, _ForwardIterator __last,
+	     _Integer __count, const _Tp& __val,
+	     _BinaryPredicate __binary_pred)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_BinaryPredicate,
+	    typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__count <= 0)
+	return __first;
+      if (__count == 1)
+	{
+	  while (__first != __last && !bool(__binary_pred(*__first, __val)))
+	    ++__first;
+	  return __first;
+	}
+      return std::__search_n(__first, __last, __count, __val, __binary_pred,
+			     std::__iterator_category(__first));
+    }
+
+
+  /**
+   *  @brief Perform an operation on a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first     An input iterator.
+   *  @param  __last      An input iterator.
+   *  @param  __result    An output iterator.
+   *  @param  __unary_op  A unary operator.
+   *  @return   An output iterator equal to @p __result+(__last-__first).
+   *
+   *  Applies the operator to each element in the input range and assigns
+   *  the results to successive elements of the output sequence.
+   *  Evaluates @p *(__result+N)=unary_op(*(__first+N)) for each @c N in the
+   *  range @p [0,__last-__first).
+   *
+   *  @p unary_op must not alter its argument.
+  */
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _UnaryOperation>
+    _OutputIterator
+    transform(_InputIterator __first, _InputIterator __last,
+	      _OutputIterator __result, _UnaryOperation __unary_op)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+            // "the type returned by a _UnaryOperation"
+            __typeof__(__unary_op(*__first))>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first, ++__result)
+	*__result = __unary_op(*__first);
+      return __result;
+    }
+
+  /**
+   *  @brief Perform an operation on corresponding elements of two sequences.
+   *  @ingroup mutating_algorithms
+   *  @param  __first1     An input iterator.
+   *  @param  __last1      An input iterator.
+   *  @param  __first2     An input iterator.
+   *  @param  __result     An output iterator.
+   *  @param  __binary_op  A binary operator.
+   *  @return   An output iterator equal to @p result+(last-first).
+   *
+   *  Applies the operator to the corresponding elements in the two
+   *  input ranges and assigns the results to successive elements of the
+   *  output sequence.
+   *  Evaluates @p
+   *  *(__result+N)=__binary_op(*(__first1+N),*(__first2+N)) for each
+   *  @c N in the range @p [0,__last1-__first1).
+   *
+   *  @p binary_op must not alter either of its arguments.
+  */
+  template<typename _InputIterator1, typename _InputIterator2,
+	   typename _OutputIterator, typename _BinaryOperation>
+    _OutputIterator
+    transform(_InputIterator1 __first1, _InputIterator1 __last1,
+	      _InputIterator2 __first2, _OutputIterator __result,
+	      _BinaryOperation __binary_op)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+            // "the type returned by a _BinaryOperation"
+            __typeof__(__binary_op(*__first1,*__first2))>)
+      __glibcxx_requires_valid_range(__first1, __last1);
+
+      for (; __first1 != __last1; ++__first1, ++__first2, ++__result)
+	*__result = __binary_op(*__first1, *__first2);
+      return __result;
+    }
+
+  /**
+   *  @brief Replace each occurrence of one value in a sequence with another
+   *         value.
+   *  @ingroup mutating_algorithms
+   *  @param  __first      A forward iterator.
+   *  @param  __last       A forward iterator.
+   *  @param  __old_value  The value to be replaced.
+   *  @param  __new_value  The replacement value.
+   *  @return   replace() returns no value.
+   *
+   *  For each iterator @c i in the range @p [__first,__last) if @c *i ==
+   *  @p __old_value then the assignment @c *i = @p __new_value is performed.
+  */
+  template<typename _ForwardIterator, typename _Tp>
+    void
+    replace(_ForwardIterator __first, _ForwardIterator __last,
+	    const _Tp& __old_value, const _Tp& __new_value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_EqualOpConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
+      __glibcxx_function_requires(_ConvertibleConcept<_Tp,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	if (*__first == __old_value)
+	  *__first = __new_value;
+    }
+
+  /**
+   *  @brief Replace each value in a sequence for which a predicate returns
+   *         true with another value.
+   *  @ingroup mutating_algorithms
+   *  @param  __first      A forward iterator.
+   *  @param  __last       A forward iterator.
+   *  @param  __pred       A predicate.
+   *  @param  __new_value  The replacement value.
+   *  @return   replace_if() returns no value.
+   *
+   *  For each iterator @c i in the range @p [__first,__last) if @p __pred(*i)
+   *  is true then the assignment @c *i = @p __new_value is performed.
+  */
+  template<typename _ForwardIterator, typename _Predicate, typename _Tp>
+    void
+    replace_if(_ForwardIterator __first, _ForwardIterator __last,
+	       _Predicate __pred, const _Tp& __new_value)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_ForwardIteratorConcept<
+				  _ForwardIterator>)
+      __glibcxx_function_requires(_ConvertibleConcept<_Tp,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	if (__pred(*__first))
+	  *__first = __new_value;
+    }
+
+  /**
+   *  @brief Assign the result of a function object to each value in a
+   *         sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __last   A forward iterator.
+   *  @param  __gen    A function object taking no arguments and returning
+   *                 std::iterator_traits<_ForwardIterator>::value_type
+   *  @return   generate() returns no value.
+   *
+   *  Performs the assignment @c *i = @p __gen() for each @c i in the range
+   *  @p [__first,__last).
+  */
+  template<typename _ForwardIterator, typename _Generator>
+    void
+    generate(_ForwardIterator __first, _ForwardIterator __last,
+	     _Generator __gen)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_GeneratorConcept<_Generator,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      for (; __first != __last; ++__first)
+	*__first = __gen();
+    }
+
+  /**
+   *  @brief Assign the result of a function object to each value in a
+   *         sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first  A forward iterator.
+   *  @param  __n      The length of the sequence.
+   *  @param  __gen    A function object taking no arguments and returning
+   *                 std::iterator_traits<_ForwardIterator>::value_type
+   *  @return   The end of the sequence, @p __first+__n
+   *
+   *  Performs the assignment @c *i = @p __gen() for each @c i in the range
+   *  @p [__first,__first+__n).
+   *
+   *  _GLIBCXX_RESOLVE_LIB_DEFECTS
+   *  DR 865. More algorithms that throw away information
+  */
+  template<typename _OutputIterator, typename _Size, typename _Generator>
+    _OutputIterator
+    generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+            // "the type returned by a _Generator"
+            __typeof__(__gen())>)
+
+      for (__decltype(__n + 0) __niter = __n;
+	   __niter > 0; --__niter, ++__first)
+	*__first = __gen();
+      return __first;
+    }
+
+
+  /**
+   *  @brief Copy a sequence, removing consecutive duplicate values.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   An input iterator.
+   *  @param  __last    An input iterator.
+   *  @param  __result  An output iterator.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies each element in the range @p [__first,__last) to the range
+   *  beginning at @p __result, except that only the first element is copied
+   *  from groups of consecutive elements that compare equal.
+   *  unique_copy() is stable, so the relative order of elements that are
+   *  copied is unchanged.
+   *
+   *  _GLIBCXX_RESOLVE_LIB_DEFECTS
+   *  DR 241. Does unique_copy() require CopyConstructible and Assignable?
+   *  
+   *  _GLIBCXX_RESOLVE_LIB_DEFECTS
+   *  DR 538. 241 again: Does unique_copy() require CopyConstructible and 
+   *  Assignable?
+  */
+  template<typename _InputIterator, typename _OutputIterator>
+    inline _OutputIterator
+    unique_copy(_InputIterator __first, _InputIterator __last,
+		_OutputIterator __result)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_function_requires(_EqualityComparableConcept<
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __result;
+      return std::__unique_copy(__first, __last, __result,
+				std::__iterator_category(__first),
+				std::__iterator_category(__result));
+    }
+
+  /**
+   *  @brief Copy a sequence, removing consecutive values using a predicate.
+   *  @ingroup mutating_algorithms
+   *  @param  __first        An input iterator.
+   *  @param  __last         An input iterator.
+   *  @param  __result       An output iterator.
+   *  @param  __binary_pred  A binary predicate.
+   *  @return   An iterator designating the end of the resulting sequence.
+   *
+   *  Copies each element in the range @p [__first,__last) to the range
+   *  beginning at @p __result, except that only the first element is copied
+   *  from groups of consecutive elements for which @p __binary_pred returns
+   *  true.
+   *  unique_copy() is stable, so the relative order of elements that are
+   *  copied is unchanged.
+   *
+   *  _GLIBCXX_RESOLVE_LIB_DEFECTS
+   *  DR 241. Does unique_copy() require CopyConstructible and Assignable?
+  */
+  template<typename _InputIterator, typename _OutputIterator,
+	   typename _BinaryPredicate>
+    inline _OutputIterator
+    unique_copy(_InputIterator __first, _InputIterator __last,
+		_OutputIterator __result,
+		_BinaryPredicate __binary_pred)
+    {
+      // concept requirements -- predicates checked later
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+	    typename iterator_traits<_InputIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __result;
+      return std::__unique_copy(__first, __last, __result, __binary_pred,
+				std::__iterator_category(__first),
+				std::__iterator_category(__result));
+    }
+
+
+  /**
+   *  @brief Randomly shuffle the elements of a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @return  Nothing.
+   *
+   *  Reorder the elements in the range @p [__first,__last) using a random
+   *  distribution, so that every possible ordering of the sequence is
+   *  equally likely.
+  */
+  template<typename _RandomAccessIterator>
+    inline void
+    random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first != __last)
+	for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
+	  std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
+    }
+
+  /**
+   *  @brief Shuffle the elements of a sequence using a random number
+   *         generator.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @param  __rand    The RNG functor or function.
+   *  @return  Nothing.
+   *
+   *  Reorders the elements in the range @p [__first,__last) using @p __rand to
+   *  provide a random distribution. Calling @p __rand(N) for a positive
+   *  integer @p N should return a randomly chosen integer from the
+   *  range [0,N).
+  */
+  template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
+    void
+    random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
+#if __cplusplus >= 201103L
+		   _RandomNumberGenerator&& __rand)
+#else
+		   _RandomNumberGenerator& __rand)
+#endif
+    {
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return;
+      for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
+	std::iter_swap(__i, __first + __rand((__i - __first) + 1));
+    }
+
+
+  /**
+   *  @brief Move elements for which a predicate is true to the beginning
+   *         of a sequence.
+   *  @ingroup mutating_algorithms
+   *  @param  __first   A forward iterator.
+   *  @param  __last    A forward iterator.
+   *  @param  __pred    A predicate functor.
+   *  @return  An iterator @p middle such that @p __pred(i) is true for each
+   *  iterator @p i in the range @p [__first,middle) and false for each @p i
+   *  in the range @p [middle,__last).
+   *
+   *  @p __pred must not modify its operand. @p partition() does not preserve
+   *  the relative ordering of elements in each group, use
+   *  @p stable_partition() if this is needed.
+  */
+  template<typename _ForwardIterator, typename _Predicate>
+    inline _ForwardIterator
+    partition(_ForwardIterator __first, _ForwardIterator __last,
+	      _Predicate   __pred)
+    {
+      // concept requirements
+      __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));
+    }
+
+
+
+  /**
+   *  @brief Sort the smallest elements of a sequence.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __middle  Another iterator.
+   *  @param  __last    Another iterator.
+   *  @return  Nothing.
+   *
+   *  Sorts the smallest @p (__middle-__first) elements in the range
+   *  @p [first,last) and moves them to the range @p [__first,__middle). The
+   *  order of the remaining elements in the range @p [__middle,__last) is
+   *  undefined.
+   *  After the sort if @e i and @e j are iterators in the range
+   *  @p [__first,__middle) such that i precedes j and @e k is an iterator in
+   *  the range @p [__middle,__last) then *j<*i and *k<*i are both false.
+  */
+  template<typename _RandomAccessIterator>
+    inline void
+    partial_sort(_RandomAccessIterator __first,
+		 _RandomAccessIterator __middle,
+		 _RandomAccessIterator __last)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
+      __glibcxx_requires_valid_range(__first, __middle);
+      __glibcxx_requires_valid_range(__middle, __last);
+
+      std::__heap_select(__first, __middle, __last);
+      std::sort_heap(__first, __middle);
+    }
+
+  /**
+   *  @brief Sort the smallest elements of a sequence using a predicate
+   *         for comparison.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __middle  Another iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  Nothing.
+   *
+   *  Sorts the smallest @p (__middle-__first) elements in the range
+   *  @p [__first,__last) and moves them to the range @p [__first,__middle). The
+   *  order of the remaining elements in the range @p [__middle,__last) is
+   *  undefined.
+   *  After the sort if @e i and @e j are iterators in the range
+   *  @p [__first,__middle) such that i precedes j and @e k is an iterator in
+   *  the range @p [__middle,__last) then @p *__comp(j,*i) and @p __comp(*k,*i)
+   *  are both false.
+  */
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline void
+    partial_sort(_RandomAccessIterator __first,
+		 _RandomAccessIterator __middle,
+		 _RandomAccessIterator __last,
+		 _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType, _ValueType>)
+      __glibcxx_requires_valid_range(__first, __middle);
+      __glibcxx_requires_valid_range(__middle, __last);
+
+      std::__heap_select(__first, __middle, __last, __comp);
+      std::sort_heap(__first, __middle, __comp);
+    }
+
+  /**
+   *  @brief Sort a sequence just enough to find a particular position.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __nth     Another iterator.
+   *  @param  __last    Another iterator.
+   *  @return  Nothing.
+   *
+   *  Rearranges the elements in the range @p [__first,__last) so that @p *__nth
+   *  is the same element that would have been in that position had the
+   *  whole sequence been sorted. The elements either side of @p *__nth are
+   *  not completely sorted, but for any iterator @e i in the range
+   *  @p [__first,__nth) and any iterator @e j in the range @p [__nth,__last) it
+   *  holds that *j < *i is false.
+  */
+  template<typename _RandomAccessIterator>
+    inline void
+    nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
+		_RandomAccessIterator __last)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+				  _RandomAccessIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
+      __glibcxx_requires_valid_range(__first, __nth);
+      __glibcxx_requires_valid_range(__nth, __last);
+
+      if (__first == __last || __nth == __last)
+	return;
+
+      std::__introselect(__first, __nth, __last,
+			 std::__lg(__last - __first) * 2);
+    }
+
+  /**
+   *  @brief Sort a sequence just enough to find a particular position
+   *         using a predicate for comparison.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __nth     Another iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  Nothing.
+   *
+   *  Rearranges the elements in the range @p [__first,__last) so that @p *__nth
+   *  is the same element that would have been in that position had the
+   *  whole sequence been sorted. The elements either side of @p *__nth are
+   *  not completely sorted, but for any iterator @e i in the range
+   *  @p [__first,__nth) and any iterator @e j in the range @p [__nth,__last) it
+   *  holds that @p __comp(*j,*i) is false.
+  */
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline void
+    nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth,
+		_RandomAccessIterator __last, _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __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);
+
+      if (__first == __last || __nth == __last)
+	return;
+
+      std::__introselect(__first, __nth, __last,
+			 std::__lg(__last - __first) * 2, __comp);
+    }
+
+
+  /**
+   *  @brief Sort the elements of a sequence.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @return  Nothing.
+   *
+   *  Sorts the elements in the range @p [__first,__last) in ascending order,
+   *  such that for each iterator @e i in the range @p [__first,__last-1),  
+   *  *(i+1)<*i is false.
+   *
+   *  The relative ordering of equivalent elements is not preserved, use
+   *  @p stable_sort() if this is needed.
+  */
+  template<typename _RandomAccessIterator>
+    inline void
+    sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<_ValueType>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first != __last)
+	{
+	  std::__introsort_loop(__first, __last,
+				std::__lg(__last - __first) * 2);
+	  std::__final_insertion_sort(__first, __last);
+	}
+    }
+
+  /**
+   *  @brief Sort the elements of a sequence using a predicate for comparison.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  Nothing.
+   *
+   *  Sorts the elements in the range @p [__first,__last) in ascending order,
+   *  such that @p __comp(*(i+1),*i) is false for every iterator @e i in the
+   *  range @p [__first,__last-1).
+   *
+   *  The relative ordering of equivalent elements is not preserved, use
+   *  @p stable_sort() if this is needed.
+  */
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline void
+    sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+	 _Compare __comp)
+    {
+      typedef typename iterator_traits<_RandomAccessIterator>::value_type
+	_ValueType;
+
+      // concept requirements
+      __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept<
+	    _RandomAccessIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _ValueType,
+				  _ValueType>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first != __last)
+	{
+	  std::__introsort_loop(__first, __last,
+				std::__lg(__last - __first) * 2, __comp);
+	  std::__final_insertion_sort(__first, __last, __comp);
+	}
+    }
+
+  /**
+   *  @brief Merges two sorted ranges.
+   *  @ingroup sorting_algorithms
+   *  @param  __first1  An iterator.
+   *  @param  __first2  Another iterator.
+   *  @param  __last1   Another iterator.
+   *  @param  __last2   Another iterator.
+   *  @param  __result  An iterator pointing to the end of the merged range.
+   *  @return         An iterator pointing to the first element <em>not less
+   *                  than</em> @e val.
+   *
+   *  Merges the ranges @p [__first1,__last1) and @p [__first2,__last2) into
+   *  the sorted range @p [__result, __result + (__last1-__first1) +
+   *  (__last2-__first2)).  Both input ranges must be sorted, and the
+   *  output range must not overlap with either of the input ranges.
+   *  The sort is @e stable, that is, for equivalent 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>
+    _OutputIterator
+    merge(_InputIterator1 __first1, _InputIterator1 __last1,
+	  _InputIterator2 __first2, _InputIterator2 __last2,
+	  _OutputIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)	
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first2 < *__first1)
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
+    }
+
+  /**
+   *  @brief Merges two sorted ranges.
+   *  @ingroup sorting_algorithms
+   *  @param  __first1  An iterator.
+   *  @param  __first2  Another iterator.
+   *  @param  __last1   Another iterator.
+   *  @param  __last2   Another iterator.
+   *  @param  __result  An iterator pointing to the end of the merged range.
+   *  @param  __comp    A functor to use for comparisons.
+   *  @return         An iterator pointing to the first element "not less
+   *                  than" @e val.
+   *
+   *  Merges the ranges @p [__first1,__last1) and @p [__first2,__last2) into
+   *  the sorted range @p [__result, __result + (__last1-__first1) +
+   *  (__last2-__first2)).  Both input ranges must be sorted, and the
+   *  output range must not overlap with either of the input ranges.
+   *  The sort is @e stable, that is, for equivalent elements in the
+   *  two ranges, elements from the first range will always come
+   *  before elements from the second.
+   *
+   *  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>
+    _OutputIterator
+    merge(_InputIterator1 __first1, _InputIterator1 __last1,
+	  _InputIterator2 __first2, _InputIterator2 __last2,
+	  _OutputIterator __result, _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __comp);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (__comp(*__first2, *__first1))
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  ++__result;
+	}
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
+    }
+
+
+  /**
+   *  @brief Sort the elements of a sequence, preserving the relative order
+   *         of equivalent elements.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @return  Nothing.
+   *
+   *  Sorts the elements in the range @p [__first,__last) in ascending order,
+   *  such that for each iterator @p i in the range @p [__first,__last-1),
+   *  @p *(i+1)<*i is false.
+   *
+   *  The relative ordering of equivalent elements is preserved, so any two
+   *  elements @p x and @p y in the range @p [__first,__last) such that
+   *  @p x<y is false and @p y<x is false will have the same relative
+   *  ordering after calling @p stable_sort().
+  */
+  template<typename _RandomAccessIterator>
+    inline void
+    stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
+    {
+      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(_LessThanComparableConcept<_ValueType>)
+      __glibcxx_requires_valid_range(__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()));
+    }
+
+  /**
+   *  @brief Sort the elements of a sequence using a predicate for comparison,
+   *         preserving the relative order of equivalent elements.
+   *  @ingroup sorting_algorithms
+   *  @param  __first   An iterator.
+   *  @param  __last    Another iterator.
+   *  @param  __comp    A comparison functor.
+   *  @return  Nothing.
+   *
+   *  Sorts the elements in the range @p [__first,__last) in ascending order,
+   *  such that for each iterator @p i in the range @p [__first,__last-1),
+   *  @p __comp(*(i+1),*i) is false.
+   *
+   *  The relative ordering of equivalent elements is preserved, so any two
+   *  elements @p x and @p y in the range @p [__first,__last) such that
+   *  @p __comp(x,y) is false and @p __comp(y,x) is false will have the same
+   *  relative ordering after calling @p stable_sort().
+  */
+  template<typename _RandomAccessIterator, typename _Compare>
+    inline void
+    stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
+		_Compare __comp)
+    {
+      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>)
+      __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);
+    }
+
+
+  /**
+   *  @brief Return the union of two sorted ranges.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  each range in order to the output range.  Iterators increment for each
+   *  range.  When the current element of one range is less than the other,
+   *  that element is copied and the iterator advanced.  If an element is
+   *  contained in both 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>
+    _OutputIterator
+    set_union(_InputIterator1 __first1, _InputIterator1 __last1,
+	      _InputIterator2 __first2, _InputIterator2 __last2,
+	      _OutputIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	{
+	  if (*__first1 < *__first2)
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	    }
+	  else if (*__first2 < *__first1)
+	    {
+	      *__result = *__first2;
+	      ++__first2;
+	    }
+	  else
+	    {
+	      *__result = *__first1;
+	      ++__first1;
+	      ++__first2;
+	    }
+	  ++__result;
+	}
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
+    }
+
+  /**
+   *  @brief Return the union of two sorted ranges using a comparison functor.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @param  __comp    The comparison functor.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  each range in order to the output range.  Iterators increment for each
+   *  range.  When the current element of one range is less than the other
+   *  according to @p __comp, that element is copied and the iterator advanced.
+   *  If an equivalent element according to @p __comp is contained in both
+   *  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>
+    _OutputIterator
+    set_union(_InputIterator1 __first1, _InputIterator1 __last1,
+	      _InputIterator2 __first2, _InputIterator2 __last2,
+	      _OutputIterator __result, _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __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;
+	    }
+	  ++__result;
+	}
+      return std::copy(__first2, __last2, std::copy(__first1, __last1,
+						    __result));
+    }
+
+  /**
+   *  @brief Return the intersection of two sorted ranges.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  both ranges in order to the output range.  Iterators increment for each
+   *  range.  When the current element of one range is less than the other,
+   *  that iterator advances.  If an element is contained in both 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>
+    _OutputIterator
+    set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
+		     _InputIterator2 __first2, _InputIterator2 __last2,
+		     _OutputIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (*__first1 < *__first2)
+	  ++__first1;
+	else if (*__first2 < *__first1)
+	  ++__first2;
+	else
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__first2;
+	    ++__result;
+	  }
+      return __result;
+    }
+
+  /**
+   *  @brief Return the intersection of two sorted ranges using comparison
+   *  functor.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @param  __comp    The comparison functor.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  both ranges in order to the output range.  Iterators increment for each
+   *  range.  When the current element of one range is less than the other
+   *  according to @p __comp, that iterator advances.  If an element is
+   *  contained in both ranges according to @p __comp, 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>
+    _OutputIterator
+    set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
+		     _InputIterator2 __first2, _InputIterator2 __last2,
+		     _OutputIterator __result, _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __comp);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (__comp(*__first1, *__first2))
+	  ++__first1;
+	else if (__comp(*__first2, *__first1))
+	  ++__first2;
+	else
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__first2;
+	    ++__result;
+	  }
+      return __result;
+    }
+
+  /**
+   *  @brief Return the difference of two sorted ranges.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  the first range but not the second in order to the output range.
+   *  Iterators increment for each range.  When the current element of the
+   *  first range is less than the second, that element is copied and the
+   *  iterator advances.  If the current element of the second range is less,
+   *  the iterator advances, but no element is copied.  If an 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>
+    _OutputIterator
+    set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
+		   _InputIterator2 __first2, _InputIterator2 __last2,
+		   _OutputIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)	
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (*__first1 < *__first2)
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
+	else if (*__first2 < *__first1)
+	  ++__first2;
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
+      return std::copy(__first1, __last1, __result);
+    }
+
+  /**
+   *  @brief  Return the difference of two sorted ranges using comparison
+   *  functor.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @param  __comp    The comparison functor.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  the first range but not the second in order to the output range.
+   *  Iterators increment for each range.  When the current element of the
+   *  first range is less than the second according to @p __comp, that element
+   *  is copied and the iterator advances.  If the current element of the
+   *  second range is less, no element is copied and the iterator advances.
+   *  If an element is contained in both ranges according to @p __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>
+    _OutputIterator
+    set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
+		   _InputIterator2 __first2, _InputIterator2 __last2,
+		   _OutputIterator __result, _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __comp);
+
+      while (__first1 != __last1 && __first2 != __last2)
+	if (__comp(*__first1, *__first2))
+	  {
+	    *__result = *__first1;
+	    ++__first1;
+	    ++__result;
+	  }
+	else if (__comp(*__first2, *__first1))
+	  ++__first2;
+	else
+	  {
+	    ++__first1;
+	    ++__first2;
+	  }
+      return std::copy(__first1, __last1, __result);
+    }
+
+  /**
+   *  @brief  Return the symmetric difference of two sorted ranges.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  one range but not the other in order to the output range.  Iterators
+   *  increment for each range.  When the current element of one range is less
+   *  than the other, that element is copied and the iterator advances.  If an
+   *  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>
+    _OutputIterator
+    set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
+			     _InputIterator2 __first2, _InputIterator2 __last2,
+			     _OutputIterator __result)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)	
+      __glibcxx_requires_sorted_set(__first1, __last1, __first2);
+      __glibcxx_requires_sorted_set(__first2, __last2, __first1);
+
+      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));
+    }
+
+  /**
+   *  @brief  Return the symmetric difference of two sorted ranges using
+   *  comparison functor.
+   *  @ingroup set_algorithms
+   *  @param  __first1  Start of first range.
+   *  @param  __last1   End of first range.
+   *  @param  __first2  Start of second range.
+   *  @param  __last2   End of second range.
+   *  @param  __comp    The comparison functor.
+   *  @return  End of the output range.
+   *  @ingroup set_algorithms
+   *
+   *  This operation iterates over both ranges, copying elements present in
+   *  one range but not the other in order to the output range.  Iterators
+   *  increment for each range.  When the current element of one range is less
+   *  than the other according to @p comp, that element is copied and the
+   *  iterator advances.  If an element is contained in both ranges according
+   *  to @p __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>
+    _OutputIterator
+    set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
+			     _InputIterator2 __first2, _InputIterator2 __last2,
+			     _OutputIterator __result,
+			     _Compare __comp)
+    {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+	_ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+	_ValueType2;
+
+      // concept requirements
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
+      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+				  _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+				  _ValueType2, _ValueType1>)
+      __glibcxx_requires_sorted_set_pred(__first1, __last1, __first2, __comp);
+      __glibcxx_requires_sorted_set_pred(__first2, __last2, __first1, __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));
+    }
+
+
+  /**
+   *  @brief  Return the minimum element in a range.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @return  Iterator referencing the first instance of the smallest value.
+  */
+  template<typename _ForwardIterator>
+    _ForwardIterator
+    min_element(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __first;
+      _ForwardIterator __result = __first;
+      while (++__first != __last)
+	if (*__first < *__result)
+	  __result = __first;
+      return __result;
+    }
+
+  /**
+   *  @brief  Return the minimum element in a range using comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @param  __comp   Comparison functor.
+   *  @return  Iterator referencing the first instance of the smallest value
+   *  according to __comp.
+  */
+  template<typename _ForwardIterator, typename _Compare>
+    _ForwardIterator
+    min_element(_ForwardIterator __first, _ForwardIterator __last,
+		_Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_ForwardIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __first;
+      _ForwardIterator __result = __first;
+      while (++__first != __last)
+	if (__comp(*__first, *__result))
+	  __result = __first;
+      return __result;
+    }
+
+  /**
+   *  @brief  Return the maximum element in a range.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @return  Iterator referencing the first instance of the largest value.
+  */
+  template<typename _ForwardIterator>
+    _ForwardIterator
+    max_element(_ForwardIterator __first, _ForwardIterator __last)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_LessThanComparableConcept<
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last)
+	return __first;
+      _ForwardIterator __result = __first;
+      while (++__first != __last)
+	if (*__result < *__first)
+	  __result = __first;
+      return __result;
+    }
+
+  /**
+   *  @brief  Return the maximum element in a range using comparison functor.
+   *  @ingroup sorting_algorithms
+   *  @param  __first  Start of range.
+   *  @param  __last   End of range.
+   *  @param  __comp   Comparison functor.
+   *  @return  Iterator referencing the first instance of the largest value
+   *  according to __comp.
+  */
+  template<typename _ForwardIterator, typename _Compare>
+    _ForwardIterator
+    max_element(_ForwardIterator __first, _ForwardIterator __last,
+		_Compare __comp)
+    {
+      // concept requirements
+      __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+	    typename iterator_traits<_ForwardIterator>::value_type,
+	    typename iterator_traits<_ForwardIterator>::value_type>)
+      __glibcxx_requires_valid_range(__first, __last);
+
+      if (__first == __last) return __first;
+      _ForwardIterator __result = __first;
+      while (++__first != __last)
+	if (__comp(*__result, *__first))
+	  __result = __first;
+      return __result;
+    }
+
+_GLIBCXX_END_NAMESPACE_ALGO
+} // namespace std
+
+#endif /* _STL_ALGO_H */
--- a/configure.ac	Tue Nov 05 12:27:42 2013 -0500
+++ b/configure.ac	Tue Nov 26 12:38:46 2013 -0500
@@ -342,6 +342,7 @@
 
 GCC_VERSION=
 if test "$GCC" = yes; then
+  AC_MSG_CHECKING([C compiler version number])
   gcc_version=`$CC -v 2>&1 | $GREP "^.*gcc version" | \
     $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`
 
@@ -350,12 +351,40 @@
      OCTAVE_CONFIGURE_WARNING([warn_gcc_version])])
 
   GCC_VERSION=$gcc_version
+  AC_MSG_RESULT([$GCC_VERSION])
 fi
-AC_SUBST(CC_VERSION)
+AC_SUBST(GCC_VERSION)
 
 ## FIXME: CC_VERSION is deprecated and should be removed in Octave version 3.12
-CC_VERSION=$gcc_version
-AC_SUBST(GCC_VERSION)
+CC_VERSION=$GCC_VERSION
+AC_SUBST(CC_VERSION)
+
+### Also check g++ version number, it might be different from the
+## gcc version number.
+
+GXX_VERSION=
+if test "$GXX" = yes; then
+  AC_MSG_CHECKING([C++ compiler version number])
+  gxx_version=`$CXX -v 2>&1 | $GREP "^.*g.. version" | \
+    $SED -e 's/^.*g.. version *//' -e 's/cygnus-//' -e 's/egcs-//' -e 's/ .*//'`
+
+  AX_COMPARE_VERSION([$gxx_version], [lt], [3],
+    [warn_gxx_version="g++ version $gxx_version is likely to cause problems"
+     OCTAVE_CONFIGURE_WARNING([warn_gxx_version])])
+
+  GXX_VERSION=$gxx_version
+  AC_MSG_RESULT([$GXX_VERSION])
+fi
+AC_SUBST(GXX_VERSION)
+
+OCTAVE_CHECK_BROKEN_STL_ALGO_H
+AM_CONDITIONAL([AMCOND_HAVE_BROKEN_STL_ALGO_H],
+  [test $octave_cv_broken_stl_algo_h = yes])
+
+if test $octave_cv_broken_stl_algo_h = yes; then
+  warn_stl_algo_h="Found nth_element broken in g++ $GXX_VERSION.  Attempting to repair by using local patched version of bits/stl_algo.h."
+  OCTAVE_CONFIGURE_WARNING([warn_stl_algo_h])
+fi
 
 ### Determine the compiler flag necessary to create dependencies
 
@@ -395,12 +424,23 @@
 CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
 
 ### When compiling math for x87, problems may arise in some code comparing
-### floating-point intermediate results.
-### Generally, it helps to store the result in a local volatile variable,
-### but it also degrades performance.
+### floating-point intermediate results.  The root cause is the extra precision
+### (~80 bits) of x87 co-processor registers versus the IEEE standard 64 bits.
+### Generally, storing the result in a local volatile variable forces a
+### truncation back to 64 bits, but it also degrades performance.
 ### Thus, we provide a FLOAT_TRUNCATE macro that may be defined to "volatile"
 ### when compiling for x87 target, or left empty for modern SSE math, that
 ### doesn't suffer from this problem at all.
+### FIXME: If no option value is given, configure uses a default heuristic
+###        which assumes that truncation should occur for MinGW and Cygwin
+###        systems and not for any others.  It would be marginally nicer
+###        to replace this with a test that checks whether the problem arises
+###        and only sets the flag if necessary.  However, the principal
+###        scenario for those two systems is a cross-build where we can't
+###        run an executable so the test wouldn't be too useful most of the
+###        time (only native builds on MinGW and Cygwin *might* benefit).
+###        Maybe, one could generate assembly code with -S option and inspect
+###        it without having to run an executable, but this sounds pretty dicey.
 AC_ARG_ENABLE([float-truncate],
   [AS_HELP_STRING([--enable-float-truncate],
     [enables truncating intermediate FP results.])],
@@ -409,7 +449,14 @@
    else
      ac_float_truncate=
    fi],
-  [ac_float_truncate=])
+  [case $host_os in
+     mingw* | cygwin*)
+       ac_float_truncate=volatile
+     ;;
+     *)
+       ac_float_truncate=
+     ;;
+   esac])
 
 AC_DEFINE_UNQUOTED(FLOAT_TRUNCATE, [$ac_float_truncate], 
   [Define to volatile if you need to truncate intermediate FP results.])
@@ -1234,7 +1281,7 @@
 XTRA_CRUFT_SH_LDFLAGS=
 if test $have_msvc = yes; then
   FLIBS="$FLIBS -lkernel32"
-  XTRA_CRUFT_SH_LDFLAGS="-Wl,-def:cruft/cruft.def"
+  XTRA_CRUFT_SH_LDFLAGS="-Wl,cruft/cruft.def"
 fi
 AC_SUBST(XTRA_CRUFT_SH_LDFLAGS)
 
@@ -1244,14 +1291,17 @@
 save_FFLAGS="$FFLAGS"
 FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"
 
-AX_BLAS_WITH_F77_FUNC([:], [:])
+AX_BLAS_WITH_F77_FUNC([:], [:],
+  [ax_blas_ok=yes
+  AC_MSG_CHECKING([BLAS can be called from Fortran])
+  AC_MSG_RESULT([yes assumed for cross compilation])])
 AX_LAPACK([:], [:])
 
 ## Restore FFLAGS.
 FFLAGS="$save_FFLAGS"
 
 ## If necessary, try again with -ff2c in FFLAGS
-if test $ax_blas_f77_func_ok = no; then
+if test $ax_blas_ok = no; then
   save_FFLAGS="$FFLAGS"
   FFLAGS="-ff2c $FFLAGS $F77_INTEGER_8_FLAG"
 
@@ -1260,15 +1310,15 @@
 
   ## Restore FFLAGS, with -ff2c if that was helpful
 
-  if test $ax_blas_f77_func_ok = no; then
+  if test $ax_blas_ok = yes; then
+    FFLAGS="-ff2c $save_FFLAGS"
+  else
     FFLAGS="$save_FFLAGS"
-  else
-    FFLAGS="-ff2c $save_FFLAGS"
   fi
 fi
 
 ## On OSX, try again with a wrapper library (without -ff2c!)
-if test $ax_blas_f77_func_ok = no; then
+if test $ax_blas_ok = no; then
   case $host_os in
     darwin*)
       ## test if wrapper functions help
@@ -1297,7 +1347,7 @@
       AC_LANG_POP(C)
       CFLAGS="$octave_blaswrap_save_CFLAGS"
 
-      if test $ax_blas_f77_func_ok = no; then
+      if test $ax_blas_ok = no; then
         BLAS_LIBS="$octave_blaswrap_save_BLAS_LIBS"
       else
         ## wrapper in cruft, remove from BLAS_LIBS
@@ -1309,8 +1359,8 @@
   esac
 fi
 
-if test $ax_blas_f77_func_ok = no; then
-  if test $USE_64_BIT_IDX_T = yes && test $ax_blas_integer_size_ok = no; then
+if test $ax_blas_ok = no; then
+  if test $USE_64_BIT_IDX_T = yes && test "$ax_blas_integer_size_ok" = no; then
     ## Attempt to be more informative.
     AC_MSG_ERROR([BLAS doesn't seem to support 64-bit integers.  This is incompatible with --enable-64.])
   else
@@ -1977,7 +2027,7 @@
 AC_CHECK_HEADERS([grp.h ieeefp.h inttypes.h locale.h memory.h ncurses.h])
 AC_CHECK_HEADERS([poll.h pthread.h pwd.h sunmath.h sys/ioctl.h])
 AC_CHECK_HEADERS([sys/param.h sys/poll.h sys/resource.h])
-AC_CHECK_HEADERS([sys/select.h sys/utsname.h termcap.h])
+AC_CHECK_HEADERS([sys/select.h termcap.h])
 
 ## C++ headers
 
@@ -2098,7 +2148,7 @@
 AC_CHECK_FUNCS([realpath resolvepath roundl])
 AC_CHECK_FUNCS([select setgrent setpwent siglongjmp strsignal])
 AC_CHECK_FUNCS([tempnam tgammaf toascii])
-AC_CHECK_FUNCS([umask uname waitpid])
+AC_CHECK_FUNCS([umask waitpid])
 AC_CHECK_FUNCS([_kbhit])
 
 dnl There are no workarounds in the code for missing these functions.
@@ -2388,7 +2438,7 @@
 
   ## Warn if JAVA_HOME is unset.  It is *strongly* advised to specify JAVA_HOME.
   if test -z "$JAVA_HOME"; then
-    warn_java_home="JAVA_HOME environment variable not initialized. Auto-detection will proceed but is unreliable."
+    warn_java_home="JAVA_HOME environment variable not initialized.  Auto-detection will proceed but is unreliable."
     OCTAVE_CONFIGURE_WARNING([warn_java_home])
   fi
 
--- a/doc/interpreter/contributors.in	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/contributors.in	Tue Nov 26 12:38:46 2013 -0500
@@ -1,8 +1,10 @@
 Ben Abbott
 Andy Adler
+Adam H. Aitkenhead
 Giles Anderson
 Joel Andersson
 Muthiah Annamalai
+Markus Appel
 Marco Atzeri
 Shai Ayal
 Roger Banks
@@ -23,6 +25,7 @@
 Marcus Brinkmann
 Max Brister
 Remy Bruno
+Clemens Buchacher
 Ansgar Burchard
 Marco Caliari
 Daniel Calvelo
@@ -40,6 +43,7 @@
 J. D. Cole
 Martin Costabel
 Michael Creel
+Richard Crozier
 Jeff Cunningham
 Martin Dalecki
 Jacob Dawid
@@ -129,6 +133,7 @@
 Mumit Khan
 Paul Kienzle
 Aaron A. King
+Erik Kjelsson
 Arno J. Klaassen
 Alexander Klein
 Geoffrey Knauth
@@ -136,6 +141,7 @@
 Ken Kouno
 Kacper Kowalik
 Daniel Kraft
+Nir Krakauer
 Aravindh Krishnamoorthy
 Oyvind Kristiansen
 Artem Krosheninnikov
@@ -178,6 +184,7 @@
 G. D. McBain
 Ronald van der Meer
 Júlio Hoffimann Mendes
+Ed Meyer
 Thorsten Meyer
 Petr Mikulik
 Mike Miller
@@ -195,6 +202,7 @@
 Rick Niles
 Takuji Nishimura
 Kai Noda
+Patrick Noffke
 Eric Norum
 Krzesimir Nowak
 Michael O'Brien
@@ -203,6 +211,8 @@
 Arno Onken
 Valentin Ortega-Clavero
 Luis F. Ortiz
+Carl Osterwisch
+Janne Olavi Paanajärvi
 Scott Pakin
 Gabriele Pannocchia
 Sylvain Pelissier
@@ -231,6 +241,7 @@
 Anthony Richardson
 Jason Riedy
 E. Joshua Rigler
+Sander van Rijn
 Petter Risholm
 Matthew W. Roberts
 Peter Rosin
@@ -284,10 +295,12 @@
 Matthew Tenny
 Kris Thielemans
 Georg Thimm
+Corey Thomasson
 Olaf Till
 Christophe Tournery
 Thomas Treichl
 Karsten Trulsen
+David Turner
 Frederick Umminger
 Utkarsh Upadhyay
 Stefan van der Walt
@@ -295,7 +308,9 @@
 James R. Van Zandt
 Risto Vanhanen
 Gregory Vanuxem
+Mihas Varantsou
 Ivana Varekova
+Sébastien Villemot
 Daniel Wagenaar
 Thomas Walter
 Andreas Weber
--- a/doc/interpreter/external.txi	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/external.txi	Tue Nov 26 12:38:46 2013 -0500
@@ -1773,3 +1773,37 @@
 @end group
 @end example
 
+It is worth noting that, if only builtin funcions are to be calle from 
+a C++ standalone program, then it does not need to initialize the 
+interpreter to do so. The general rule is that, for a builtin 
+function named @code{function_name} in the interpreter, there will be
+a C++ function named @code{Ffunction_name} (note the prepended capital 
+@code{F}) accessible in the C++ API. The declarations for all builtin 
+functions are collected in the header file @code{builtin-defun-decls.h}.
+This feature should be used with care as the list of built-in functions can change.  
+No guarantees can be made that a function that is currently built in won't be implemented 
+as a .m file or as a dynamically linked function in the future.
+An example of how to call builtin functions from C++ can be seen in the code
+
+@example
+@EXAMPLEFILE(standalonebuiltin.cc)
+@end example
+
+@noindent
+which, again, is compiled and run as a standalone application with
+
+@example
+@group
+$ mkoctfile --link-stand-alone standalonebuiltin.cc -o standalonebuiltin
+$ ./standalonebuiltin 
+This is a matrix:
+ 11 12
+ 21 22
+
+This is the norm of the matrix:
+34.4952
+
+@end group
+@end example
+
+
--- a/doc/interpreter/images.awk	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/images.awk	Tue Nov 26 12:38:46 2013 -0500
@@ -27,7 +27,7 @@
     for (j = 2; j <= NF; j++) {
       printf ("%s.%s: %s\n", $j, ext, script);
       printf ("\t$(top_builddir)/run-octave -f -q -H -p $(srcdir) --eval \"%s ('%s', '%s');\"\n",
-	      basename, $j, ext);
+              basename, $j, ext);
     }
   }
 }
--- a/doc/interpreter/intro.txi	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/intro.txi	Tue Nov 26 12:38:46 2013 -0500
@@ -21,10 +21,15 @@
 @cindex introduction
 
 GNU Octave is a high-level language, primarily intended for numerical
-computations.  It provides a convenient interactive command line 
-interface for solving linear and nonlinear problems numerically, and 
-for performing other numerical experiments.  It may also be used as a 
-batch-oriented language for data processing.
+computations.  It is typically used for such problems as solving 
+linear and nonlinear equations, numerical linear algebra, statistical
+analysis, and for performing other numerical experiments.  It may also
+be used as a batch-oriented language for automated data processing.
+
+Until recently GNU Octave provided a command-line interface with
+graphical results displayed in separate windows.  The current version
+(version 3.8, released in late 2013) also provides, by default, a
+graphical user interface.
 
 GNU Octave is freely redistributable software.  You may redistribute 
 it and/or modify it under the terms of the GNU General Public License
@@ -46,10 +51,13 @@
 @node Running Octave
 @section Running Octave
 
-On most systems, Octave is started with the shell command 
-@samp{octave}.  Octave displays an initial message and then a prompt
-indicating it is ready to accept input.  You can begin typing Octave
-commands immediately afterward.
+On most systems, Octave is started with the shell command @samp{octave}.
+This, by default, starts the graphical user interface (GUI).  The central
+window in the GUI is the Octave command-line interface.  Octave displays
+an initial message and then a prompt indicating it is ready to accept
+input.  If you have chosen the traditional command-line interface only
+the command prompt appears.  In any case, you can immediately begin
+typing Octave commands. 
 
 If you get into trouble, you can usually interrupt Octave by typing
 @kbd{Control-C} (written @kbd{C-c} for short).  @kbd{C-c} gets
--- a/doc/interpreter/octave.texi	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/octave.texi	Tue Nov 26 12:38:46 2013 -0500
@@ -109,7 +109,7 @@
 @page
 @vskip 0pt plus 1filll
 Copyright @copyright{} 1996, 1997, 1999, 2000, 2001, 2002, 2005, 2006,
-2007, 2011 John W. Eaton.
+2007, 2011, 2013 John W. Eaton.
 
 This is the third edition of the Octave documentation, and is consistent
 with version @value{VERSION} of Octave.
--- a/doc/interpreter/plot.txi	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/plot.txi	Tue Nov 26 12:38:46 2013 -0500
@@ -1044,30 +1044,31 @@
 get (h, "");
 error: get: ambiguous figure property name ; possible matches:
 
-__graphics_toolkit__  hittest              resize
-__enhanced__          integerhandle        resizefcn
-__modified__          interruptible        selected
-__myhandle__          inverthardcopy       selectionhighlight
-__plot_stream__       keypressfcn          selectiontype
-alphamap              keyreleasefcn        tag
-beingdeleted          menubar              toolbar
-busyaction            mincolormap          type
-buttondownfcn         name                 uicontextmenu
-children              nextplot             units
-clipping              numbertitle          userdata
-closerequestfcn       paperorientation     visible
-color                 paperposition        windowbuttondownfcn
-colormap              paperpositionmode    windowbuttonmotionfcn
-createfcn             papersize            windowbuttonupfcn
-currentaxes           papertype            windowscrollwheelfcn
-currentcharacter      paperunits           windowstyle
-currentobject         parent               wvisual
-currentpoint          pointer              wvisualmode
-deletefcn             pointershapecdata    xdisplay
-dockcontrols          pointershapehotspot  xvisual
-doublebuffer          position             xvisualmode
-filename              renderer
-handlevisibility      renderermode
+__enhanced__           hittest                resize
+__graphics_toolkit__   integerhandle          resizefcn
+__guidata__            interruptible          selected
+__modified__           inverthardcopy         selectionhighlight
+__myhandle__           keypressfcn            selectiontype
+__plot_stream__        keyreleasefcn          tag
+alphamap               menubar                toolbar
+beingdeleted           mincolormap            type
+busyaction             name                   uicontextmenu
+buttondownfcn          nextplot               units
+children               numbertitle            userdata
+clipping               outerposition          visible
+closerequestfcn        paperorientation       windowbuttondownfcn
+color                  paperposition          windowbuttonmotionfcn
+colormap               paperpositionmode      windowbuttonupfcn
+createfcn              papersize              windowkeypressfcn
+currentaxes            papertype              windowkeyreleasefcn
+currentcharacter       paperunits             windowscrollwheelfcn
+currentobject          parent                 windowstyle
+currentpoint           pointer                wvisual
+deletefcn              pointershapecdata      wvisualmode
+dockcontrols           pointershapehotspot    xdisplay
+doublebuffer           position               xvisual
+filename               renderer               xvisualmode
+handlevisibility       renderermode
 @end smallexample
 
 The root figure has index 0.  Its properties may be displayed by:
--- a/doc/interpreter/sparseimages.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/doc/interpreter/sparseimages.m	Tue Nov 26 12:38:46 2013 -0500
@@ -252,7 +252,7 @@
     velems = reshape (V(elemx), 4, E);
 
     plot3 (xelems, yelems, velems);
-    view (10, 10);
+    view (80, 10);
     print ([nm "." typ], d_typ);
     hide_output ();
   endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/standalonebuiltin.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <octave/oct.h>
+#include <octave/builtin-defun-decls.h>
+
+int
+main (void)
+{
+
+  int n = 2;
+  Matrix a_matrix = Matrix (n, n);
+
+  for (octave_idx_type i = 0; i < n; i++)
+    for (octave_idx_type j = 0; j < n; j++)
+      a_matrix(i,j) = (i + 1) * 10 + (j + 1);
+
+  std::cout << "This is a matrix:" 
+            << std::endl 
+            << a_matrix
+            << std::endl;
+
+  octave_value_list in;
+  in(0) = a_matrix;
+
+  octave_value_list out = Fnorm (in, 1);
+  double norm_of_the_matrix = out(0).double_value ();
+
+  std::cout << "This is the norm of the matrix:" 
+            << std::endl 
+            << norm_of_the_matrix
+            << std::endl;
+  
+  return 0;
+}
--- a/libgui/Makefile.am	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/Makefile.am	Tue Nov 26 12:38:46 2013 -0500
@@ -94,6 +94,14 @@
 mv $@-t $@
 endef
 
+define rcc-command
+( echo '#ifdef HAVE_CONFIG_H'; \
+  echo '#include <config.h>'; \
+  echo '#endif'; \
+  $(RCC) $< ) > $@-t
+mv $@-t $@
+endef
+
 moc-%.cc: %.h
 	$(moc-command)
 
@@ -101,7 +109,7 @@
 	$(UIC) -o $@ $<
 
 qrc-%.cc: %.qrc
-	$(RCC) -o $@ $<
+	$(rcc-command)
 
 %.qm: %.ts
 	$(MKDIR_P) languages
--- a/libgui/default-qt-settings.in	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/default-qt-settings.in	Tue Nov 26 12:38:46 2013 -0500
@@ -22,44 +22,37 @@
 mru_file_list=@Invalid()
 
 [terminal]
-fontSize=%DEFAULT_TERMINAL_FONT_SIZE%
-fontName=%DEFAULT_TERMINAL_FONT%
+fontSize=__default_font_size__
+fontName=__default_font__
 cursorBlinking=true
 cursorType=ibeam
 
 [MainWindow]
-geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xff\xfa\0\0\0\x13\0\0\x4\xc1\0\0\x3\xb4\0\0\0\x4\0\0\0\x31\0\0\x4\xb7\0\0\x3\xaa\0\0\0\0\0\0)
-windowState="@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x1\0\0\x4\xb4\0\0\x3#\xfc\x2\0\0\0\x1\xfc\0\0\0@\0\0\x3#\0\0\x1\x7f\0\xff\xff\xff\xfc\x1\0\0\0\x2\xfc\0\0\0\0\0\0\x2\x1c\0\0\0\xb4\0\xff\xff\xff\xfc\x2\0\0\0\x3\xfb\0\0\0\x1e\0\x46\0i\0l\0\x65\0s\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0@\0\0\x1#\0\0\0\x89\0\xff\xff\xff\xfb\0\0\0\x1a\0W\0o\0r\0k\0s\0p\0\x61\0\x63\0\x65\0V\0i\0\x65\0w\x1\0\0\x1i\0\0\0\xd4\0\0\0\x63\0\xff\xff\xff\xfb\0\0\0\"\0H\0i\0s\0t\0o\0r\0y\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\x2\x43\0\0\x1 \0\0\0\x87\0\xff\xff\xff\xfc\0\0\x2\"\0\0\x2\x92\0\0\x1,\0\xff\xff\xff\xfc\x2\0\0\0\x2\xfb\0\0\0\x1c\0N\0\x65\0w\0s\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0@\0\0\0\xdb\0\0\0\x14\0\xff\xff\xff\xfc\0\0\x1!\0\0\x2\x42\0\0\0\xfb\x1\0\0\x1e\xfa\0\0\0\0\x2\0\0\0\x3\xfb\0\0\0$\0T\0\x65\0r\0m\0i\0n\0\x61\0l\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xdc\0\xff\xff\xff\xfb\0\0\0\x14\0\x46\0i\0l\0\x65\0\x45\0\x64\0i\0t\0o\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\x64\0\xff\xff\xff\xfb\0\0\0.\0\x44\0o\0\x63\0u\0m\0\x65\0n\0t\0\x61\0t\0i\0o\0n\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xae\0\xff\xff\xff\0\0\0\0\0\0\x3#\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0M\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)"
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\x4\0\0\0\x19\0\0\x4\t\0\0\x3\x4\0\0\0\x5\0\0\0\x33\0\0\x4\b\0\0\x3\x3\0\0\0\0\0\0)
+windowState=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\x1\0\0\x4\x4\0\0\x2\x9b\xfc\x2\0\0\0\x1\xfc\0\0\0 \0\0\x2\x9b\0\0\x1\x92\0\xff\xff\xff\xfc\x1\0\0\0\x2\xfc\0\0\0\0\0\0\x1\x64\0\0\0R\0\xff\xff\xff\xfc\x2\0\0\0\x3\xfb\0\0\0\x1e\0\x46\0i\0l\0\x65\0s\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0 \0\0\x1\x5\0\0\0\x91\0\xff\xff\xff\xfb\0\0\0\x1a\0W\0o\0r\0k\0s\0p\0\x61\0\x63\0\x65\0V\0i\0\x65\0w\x1\0\0\x1+\0\0\0\xd6\0\0\0k\0\xff\xff\xff\xfb\0\0\0\"\0H\0i\0s\0t\0o\0r\0y\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\x2\a\0\0\0\xb4\0\0\0\x8a\0\xff\xff\xff\xfc\0\0\x1j\0\0\x2\x9a\0\0\x1\x44\0\xff\xff\xff\xfc\x2\0\0\0\x2\xfb\0\0\0\x1c\0N\0\x65\0w\0s\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0@\0\0\0\xdb\0\0\0\0\0\0\0\0\xfc\0\0\0 \0\0\x2\x9b\0\0\0\xfd\x1\0\0\x1b\xfa\0\0\0\0\x2\0\0\0\x3\xfb\0\0\0$\0T\0\x65\0r\0m\0i\0n\0\x61\0l\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xe1\0\xff\xff\xff\xfb\0\0\0\x14\0\x46\0i\0l\0\x65\0\x45\0\x64\0i\0t\0o\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0`\0\xff\xff\xff\xfb\0\0\0.\0\x44\0o\0\x63\0u\0m\0\x65\0n\0t\0\x61\0t\0i\0o\0n\0\x44\0o\0\x63\0k\0W\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\xad\0\xff\xff\xff\0\0\0\0\0\0\x2\x9b\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x1\0\0\0\x2\0\0\0\x1\0\0\0\x16\0M\0\x61\0i\0n\0T\0o\0o\0l\0\x42\0\x61\0r\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
 
 [DockWidgets]
-NewsDockWidget_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0)
-TerminalDockWidget_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfd\xa8\xff\xff\xfd\xee\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfd\xa8\xff\xff\xfd\xee\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
 TerminalDockWidgetFloating=false
 TerminalDockWidgetVisible=true
-WorkspaceView=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\x1i\0\0\x2\x1b\0\0\x2<\0\0\0\0\0\0\x1i\0\0\x2\x1b\0\0\x2<\0\0\0\0\0\0)
+WorkspaceView=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\x1+\0\0\x1\x63\0\0\x2\0\0\0\0\0\0\0\x1+\0\0\x1\x63\0\0\x2\0\0\0\0\0\0\0)
 WorkspaceViewFloating=false
 WorkspaceViewVisible=true
-HistoryDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\x2\x43\0\0\x2\x1b\0\0\x3\x62\0\0\0\0\0\0\x2\x43\0\0\x2\x1b\0\0\x3\x62\0\0\0\0\0\0)
+HistoryDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\x2\a\0\0\x1\x63\0\0\x2\xba\0\0\0\0\0\0\x2\a\0\0\x1\x63\0\0\x2\xba\0\0\0\0\0\0)
 HistoryDockWidgetFloating=false
 HistoryDockWidgetVisible=true
-FilesDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0@\0\0\x2\x1b\0\0\x1\x62\0\0\0\0\0\0\0@\0\0\x2\x1b\0\0\x1\x62\0\0\0\0\0\0)
+FilesDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0 \0\0\x1\x63\0\0\x1$\0\0\0\0\0\0\0 \0\0\x1\x63\0\0\x1$\0\0\0\0\0\0)
 FilesDockWidgetFloating=false
 FilesDockWidgetVisible=true
-DocumentationDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfd\x31\xff\xff\xfd^\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfd\x31\xff\xff\xfd^\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
+DocumentationDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfbr\xff\xff\xfb\x8d\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfbr\xff\xff\xfb\x8d\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
 DocumentationDockWidgetFloating=false
 DocumentationDockWidgetVisible=true
-FileEditor=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfc\x18\xff\xff\xfc|\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfc\x18\xff\xff\xfc|\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
+FileEditor=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfbr\xff\xff\xfb\x8d\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfbr\xff\xff\xfb\x8d\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
 FileEditorFloating=false
 FileEditorVisible=true
-HistoryDockWidget_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0)
-FilesDockWidget_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0)
-DocumentationDockWidget_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\xff\xff\xfd\xa8\xff\xff\xfd\xee\xff\xff\xfe\v\xff\xff\xfe\v\xff\xff\xfd\xa8\xff\xff\xfd\xee\xff\xff\xfe\v\xff\xff\xfe\v\0\0\0\0\0\0)
-FileEditor_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x1\xf3\0\0\x1\x8f\0\0\0\0\0\0\0\0\0\0\x1\xf3\0\0\x1\x8f\0\0\0\0\0\0)
-WorkspaceView_floating_geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0)
 NewsDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\x2\"\0\0\0@\0\0\x4\xb3\0\0\x1\x1a\0\0\x2\"\0\0\0@\0\0\x4\xb3\0\0\x1\x1a\0\0\0\0\0\0)
 NewsDockWidgetFloating=false
 NewsDockWidgetVisible=true
-TerminalDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\x2\"\0\0\x1!\0\0\x4\xb3\0\0\x3\x43\0\0\x2\"\0\0\x1!\0\0\x4\xb3\0\0\x3\x43\0\0\0\0\0\0)
+TerminalDockWidget=@ByteArray(\x1\xd9\xd0\xcb\0\x1\0\0\0\0\x1j\0\0\0 \0\0\x4\x3\0\0\x2\x9e\0\0\x1j\0\0\0 \0\0\x4\x3\0\0\x2\x9e\0\0\0\0\0\0)
 
 [workspaceview]
 local_collapsed=false
@@ -78,3 +71,532 @@
 showHiddenFiles=false
 sync_octave_directory=true
 useAlternatingRowColors=true
+
+[Scintilla]
+Octave\style0\color=0
+Octave\style0\eolfill=false
+Octave\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style0\paper=16777215
+Octave\style1\color=43520
+Octave\style1\eolfill=false
+Octave\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style1\paper=16777215
+Octave\style2\color=8355584
+Octave\style2\eolfill=false
+Octave\style2\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style2\paper=16777215
+Octave\style3\color=11184640
+Octave\style3\eolfill=false
+Octave\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style3\paper=16777215
+Octave\style4\color=255
+Octave\style4\eolfill=false
+Octave\style4\font=__default_font__, __default_font_size__, 1, 0, 0
+Octave\style4\paper=16777215
+Octave\style5\color=16755200
+Octave\style5\eolfill=false
+Octave\style5\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style5\paper=16777215
+Octave\style6\color=14483456
+Octave\style6\eolfill=false
+Octave\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style6\paper=16777215
+Octave\style7\color=0
+Octave\style7\eolfill=false
+Octave\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style7\paper=16777215
+Octave\style8\color=16755200
+Octave\style8\eolfill=false
+Octave\style8\font=__default_font__, __default_font_size__, 0, 0, 0
+Octave\style8\paper=16777215
+Octave\defaultcolor=0
+Octave\defaultpaper=16777215
+Octave\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+Octave\autoindentstyle=-1
+C%2B%2B\style0\color=0
+C%2B%2B\style0\eolfill=false
+C%2B%2B\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style0\paper=16777215
+C%2B%2B\style1\color=43520
+C%2B%2B\style1\eolfill=false
+C%2B%2B\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style1\paper=16777215
+C%2B%2B\style2\color=43520
+C%2B%2B\style2\eolfill=false
+C%2B%2B\style2\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style2\paper=16777215
+C%2B%2B\style3\color=4157503
+C%2B%2B\style3\eolfill=false
+C%2B%2B\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style3\paper=16777215
+C%2B%2B\style4\color=11184640
+C%2B%2B\style4\eolfill=false
+C%2B%2B\style4\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style4\paper=16777215
+C%2B%2B\style5\color=255
+C%2B%2B\style5\eolfill=false
+C%2B%2B\style5\font=__default_font__, __default_font_size__, 1, 0, 0
+C%2B%2B\style5\paper=16777215
+C%2B%2B\style6\color=16733440
+C%2B%2B\style6\eolfill=false
+C%2B%2B\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style6\paper=16777215
+C%2B%2B\style7\color=16733440
+C%2B%2B\style7\eolfill=false
+C%2B%2B\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style7\paper=16777215
+C%2B%2B\style8\color=0
+C%2B%2B\style8\eolfill=false
+C%2B%2B\style8\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style8\paper=16777215
+C%2B%2B\style9\color=8355584
+C%2B%2B\style9\eolfill=false
+C%2B%2B\style9\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style9\paper=16777215
+C%2B%2B\style10\color=16711680
+C%2B%2B\style10\eolfill=false
+C%2B%2B\style10\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style10\paper=16777215
+C%2B%2B\style11\color=0
+C%2B%2B\style11\eolfill=false
+C%2B%2B\style11\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style11\paper=16777215
+C%2B%2B\style12\color=0
+C%2B%2B\style12\eolfill=true
+C%2B%2B\style12\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style12\paper=14729440
+C%2B%2B\style13\color=32512
+C%2B%2B\style13\eolfill=true
+C%2B%2B\style13\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style13\paper=14745568
+C%2B%2B\style14\color=4161343
+C%2B%2B\style14\eolfill=true
+C%2B%2B\style14\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style14\paper=14741728
+C%2B%2B\style15\color=4157503
+C%2B%2B\style15\eolfill=false
+C%2B%2B\style15\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style15\paper=16777215
+C%2B%2B\style16\color=0
+C%2B%2B\style16\eolfill=false
+C%2B%2B\style16\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style16\paper=16777215
+C%2B%2B\style17\color=3170464
+C%2B%2B\style17\eolfill=false
+C%2B%2B\style17\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style17\paper=16777215
+C%2B%2B\style18\color=8405024
+C%2B%2B\style18\eolfill=false
+C%2B%2B\style18\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style18\paper=16777215
+C%2B%2B\style19\color=0
+C%2B%2B\style19\eolfill=false
+C%2B%2B\style19\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style19\paper=16777215
+C%2B%2B\style20\color=8323199
+C%2B%2B\style20\eolfill=false
+C%2B%2B\style20\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style20\paper=16774143
+C%2B%2B\style40\color=11571376
+C%2B%2B\style40\eolfill=false
+C%2B%2B\style40\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style40\paper=16774143
+C%2B%2B\style64\color=12632256
+C%2B%2B\style64\eolfill=false
+C%2B%2B\style64\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style64\paper=16777215
+C%2B%2B\style65\color=9482384
+C%2B%2B\style65\eolfill=false
+C%2B%2B\style65\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style65\paper=16777215
+C%2B%2B\style66\color=9482384
+C%2B%2B\style66\eolfill=false
+C%2B%2B\style66\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style66\paper=16777215
+C%2B%2B\style67\color=13684944
+C%2B%2B\style67\eolfill=false
+C%2B%2B\style67\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style67\paper=16777215
+C%2B%2B\style68\color=9482384
+C%2B%2B\style68\eolfill=false
+C%2B%2B\style68\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style68\paper=16777215
+C%2B%2B\style69\color=9474224
+C%2B%2B\style69\eolfill=false
+C%2B%2B\style69\font=__default_font__, __default_font_size__, 1, 0, 0
+C%2B%2B\style69\paper=16777215
+C%2B%2B\style70\color=11571376
+C%2B%2B\style70\eolfill=false
+C%2B%2B\style70\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style70\paper=16777215
+C%2B%2B\style71\color=11571376
+C%2B%2B\style71\eolfill=false
+C%2B%2B\style71\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style71\paper=16777215
+C%2B%2B\style72\color=12632256
+C%2B%2B\style72\eolfill=false
+C%2B%2B\style72\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style72\paper=16777215
+C%2B%2B\style73\color=11579536
+C%2B%2B\style73\eolfill=false
+C%2B%2B\style73\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style73\paper=16777215
+C%2B%2B\style74\color=11579568
+C%2B%2B\style74\eolfill=false
+C%2B%2B\style74\font=__default_font__, __default_font_size__, 1, 0, 0
+C%2B%2B\style74\paper=16777215
+C%2B%2B\style75\color=11579568
+C%2B%2B\style75\eolfill=false
+C%2B%2B\style75\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style75\paper=16777215
+C%2B%2B\style76\color=0
+C%2B%2B\style76\eolfill=true
+C%2B%2B\style76\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style76\paper=14729440
+C%2B%2B\style77\color=9482384
+C%2B%2B\style77\eolfill=true
+C%2B%2B\style77\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style77\paper=14745568
+C%2B%2B\style78\color=8367999
+C%2B%2B\style78\eolfill=true
+C%2B%2B\style78\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style78\paper=14741728
+C%2B%2B\style79\color=12632256
+C%2B%2B\style79\eolfill=false
+C%2B%2B\style79\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style79\paper=16777215
+C%2B%2B\style80\color=12632256
+C%2B%2B\style80\eolfill=false
+C%2B%2B\style80\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style80\paper=16777215
+C%2B%2B\style81\color=12632256
+C%2B%2B\style81\eolfill=false
+C%2B%2B\style81\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style81\paper=16777215
+C%2B%2B\style82\color=12632256
+C%2B%2B\style82\eolfill=false
+C%2B%2B\style82\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style82\paper=16777215
+C%2B%2B\style83\color=11579568
+C%2B%2B\style83\eolfill=false
+C%2B%2B\style83\font=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\style83\paper=16777215
+C%2B%2B\properties\foldatelse=false
+C%2B%2B\properties\foldcomments=false
+C%2B%2B\properties\foldcompact=true
+C%2B%2B\properties\foldpreprocessor=true
+C%2B%2B\properties\stylepreprocessor=false
+C%2B%2B\properties\dollars=true
+C%2B%2B\properties\highlighthash=false
+C%2B%2B\properties\highlighttriple=false
+C%2B%2B\defaultcolor=0
+C%2B%2B\defaultpaper=16777215
+C%2B%2B\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+C%2B%2B\autoindentstyle=-1
+Perl\style0\color=8421504
+Perl\style0\eolfill=false
+Perl\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style0\paper=16777215
+Perl\style1\color=16776960
+Perl\style1\eolfill=false
+Perl\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style1\paper=16711680
+Perl\style2\color=43520
+Perl\style2\eolfill=false
+Perl\style2\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style2\paper=16777215
+Perl\style3\color=16384
+Perl\style3\eolfill=true
+Perl\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style3\paper=14745568
+Perl\style4\color=11184640
+Perl\style4\eolfill=false
+Perl\style4\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style4\paper=16777215
+Perl\style5\color=127
+Perl\style5\eolfill=false
+Perl\style5\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style5\paper=16777215
+Perl\style6\color=16755200
+Perl\style6\eolfill=false
+Perl\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style6\paper=16777215
+Perl\style7\color=16755200
+Perl\style7\eolfill=false
+Perl\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style7\paper=16777215
+Perl\style10\color=16711680
+Perl\style10\eolfill=false
+Perl\style10\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style10\paper=16777215
+Perl\style11\color=0
+Perl\style11\eolfill=false
+Perl\style11\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style11\paper=16777215
+Perl\style12\color=0
+Perl\style12\eolfill=false
+Perl\style12\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style12\paper=16769248
+Perl\style13\color=0
+Perl\style13\eolfill=false
+Perl\style13\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style13\paper=16777184
+Perl\style14\color=0
+Perl\style14\eolfill=false
+Perl\style14\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style14\paper=16769279
+Perl\style15\color=0
+Perl\style15\eolfill=false
+Perl\style15\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style15\paper=14737632
+Perl\style17\color=0
+Perl\style17\eolfill=false
+Perl\style17\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style17\paper=10551200
+Perl\style18\color=0
+Perl\style18\eolfill=false
+Perl\style18\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style18\paper=15786112
+Perl\style20\color=16776960
+Perl\style20\eolfill=false
+Perl\style20\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style20\paper=10518656
+Perl\style21\color=6291456
+Perl\style21\eolfill=true
+Perl\style21\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style21\paper=16773336
+Perl\style22\color=0
+Perl\style22\eolfill=false
+Perl\style22\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style22\paper=14536925
+Perl\style23\color=8323199
+Perl\style23\eolfill=true
+Perl\style23\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style23\paper=14536925
+Perl\style24\color=8323199
+Perl\style24\eolfill=true
+Perl\style24\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style24\paper=14536925
+Perl\style25\color=8323199
+Perl\style25\eolfill=true
+Perl\style25\font=__default_font__, __default_font_size__, 0, 1, 0
+Perl\style25\paper=14536925
+Perl\style26\color=8323199
+Perl\style26\eolfill=false
+Perl\style26\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style26\paper=16777215
+Perl\style27\color=8323199
+Perl\style27\eolfill=false
+Perl\style27\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style27\paper=16777215
+Perl\style28\color=16776960
+Perl\style28\eolfill=false
+Perl\style28\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style28\paper=16777215
+Perl\style29\color=0
+Perl\style29\eolfill=false
+Perl\style29\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style29\paper=16777215
+Perl\style30\color=0
+Perl\style30\eolfill=false
+Perl\style30\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style30\paper=16777215
+Perl\style31\color=16384
+Perl\style31\eolfill=true
+Perl\style31\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style31\paper=12648384
+Perl\style40\color=0
+Perl\style40\eolfill=false
+Perl\style40\font=__default_font__, __default_font_size__, 0, 1, 0
+Perl\style40\paper=16777215
+Perl\style41\color=12583104
+Perl\style41\eolfill=false
+Perl\style41\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style41\paper=16777215
+Perl\style42\color=12583104
+Perl\style42\eolfill=true
+Perl\style42\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style42\paper=16773375
+Perl\style43\color=13631488
+Perl\style43\eolfill=false
+Perl\style43\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style43\paper=16777215
+Perl\style44\color=0
+Perl\style44\eolfill=false
+Perl\style44\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style44\paper=15786112
+Perl\style54\color=13631488
+Perl\style54\eolfill=false
+Perl\style54\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style54\paper=16777215
+Perl\style55\color=0
+Perl\style55\eolfill=false
+Perl\style55\font=__default_font__, __default_font_size__, 0, 0, 0
+Perl\style55\paper=15786112
+Perl\style57\color=13631488
+Perl\style57\eolfill=false
+Perl\style57\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style57\paper=10518656
+Perl\style61\color=13631488
+Perl\style61\eolfill=true
+Perl\style61\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style61\paper=14536925
+Perl\style62\color=13631488
+Perl\style62\eolfill=true
+Perl\style62\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style62\paper=14536925
+Perl\style64\color=13631488
+Perl\style64\eolfill=false
+Perl\style64\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style64\paper=16777215
+Perl\style65\color=13631488
+Perl\style65\eolfill=false
+Perl\style65\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style65\paper=10518656
+Perl\style66\color=13631488
+Perl\style66\eolfill=false
+Perl\style66\font=__default_font__, __default_font_size__, 1, 0, 0
+Perl\style66\paper=16777215
+Perl\properties\foldatelse=false
+Perl\properties\foldcomments=false
+Perl\properties\foldcompact=true
+Perl\properties\foldpackages=true
+Perl\properties\foldpodblocks=true
+Perl\defaultcolor=0
+Perl\defaultpaper=16777215
+Perl\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+Perl\autoindentstyle=-1
+Batch\style0\color=0
+Batch\style0\eolfill=false
+Batch\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style0\paper=16777215
+Batch\style1\color=43520
+Batch\style1\eolfill=false
+Batch\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style1\paper=16777215
+Batch\style2\color=255
+Batch\style2\eolfill=false
+Batch\style2\font=__default_font__, __default_font_size__, 1, 0, 0
+Batch\style2\paper=16777215
+Batch\style3\color=8323199
+Batch\style3\eolfill=true
+Batch\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style3\paper=6316128
+Batch\style4\color=8355584
+Batch\style4\eolfill=false
+Batch\style4\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style4\paper=16777215
+Batch\style5\color=127
+Batch\style5\eolfill=false
+Batch\style5\font=__default_font__, __default_font_size__, 1, 0, 0
+Batch\style5\paper=16777215
+Batch\style6\color=8388736
+Batch\style6\eolfill=false
+Batch\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style6\paper=16777215
+Batch\style7\color=0
+Batch\style7\eolfill=false
+Batch\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+Batch\style7\paper=16777215
+Batch\defaultcolor=0
+Batch\defaultpaper=16777215
+Batch\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+Batch\autoindentstyle=-1
+Diff\style0\color=0
+Diff\style0\eolfill=false
+Diff\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style0\paper=16777215
+Diff\style1\color=32512
+Diff\style1\eolfill=false
+Diff\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style1\paper=16777215
+Diff\style2\color=8355584
+Diff\style2\eolfill=false
+Diff\style2\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style2\paper=16777215
+Diff\style3\color=8323072
+Diff\style3\eolfill=false
+Diff\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style3\paper=16777215
+Diff\style4\color=8323199
+Diff\style4\eolfill=false
+Diff\style4\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style4\paper=16777215
+Diff\style5\color=32639
+Diff\style5\eolfill=false
+Diff\style5\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style5\paper=16777215
+Diff\style6\color=127
+Diff\style6\eolfill=false
+Diff\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style6\paper=16777215
+Diff\style7\color=8355711
+Diff\style7\eolfill=false
+Diff\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+Diff\style7\paper=16777215
+Diff\defaultcolor=0
+Diff\defaultpaper=16777215
+Diff\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+Diff\autoindentstyle=-1
+Bash\style0\color=8421504
+Bash\style0\eolfill=false
+Bash\style0\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style0\paper=16777215
+Bash\style1\color=16776960
+Bash\style1\eolfill=false
+Bash\style1\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style1\paper=16711680
+Bash\style2\color=32512
+Bash\style2\eolfill=false
+Bash\style2\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style2\paper=16777215
+Bash\style3\color=11184640
+Bash\style3\eolfill=false
+Bash\style3\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style3\paper=16711680
+Bash\style4\color=127
+Bash\style4\eolfill=false
+Bash\style4\font=__default_font__, __default_font_size__, 1, 0, 0
+Bash\style4\paper=16777215
+Bash\style5\color=16755200
+Bash\style5\eolfill=false
+Bash\style5\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style5\paper=16777215
+Bash\style6\color=16755200
+Bash\style6\eolfill=false
+Bash\style6\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style6\paper=16777215
+Bash\style7\color=16711680
+Bash\style7\eolfill=false
+Bash\style7\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style7\paper=16777215
+Bash\style8\color=0
+Bash\style8\eolfill=false
+Bash\style8\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style8\paper=16777215
+Bash\style9\color=0
+Bash\style9\eolfill=false
+Bash\style9\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style9\paper=16769248
+Bash\style10\color=0
+Bash\style10\eolfill=false
+Bash\style10\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style10\paper=16777184
+Bash\style11\color=16776960
+Bash\style11\eolfill=false
+Bash\style11\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style11\paper=10518656
+Bash\style12\color=0
+Bash\style12\eolfill=false
+Bash\style12\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style12\paper=14536925
+Bash\style13\color=8323199
+Bash\style13\eolfill=true
+Bash\style13\font=__default_font__, __default_font_size__, 0, 0, 0
+Bash\style13\paper=14536925
+Bash\properties\foldcomments=false
+Bash\properties\foldcompact=true
+Bash\defaultcolor=0
+Bash\defaultpaper=16777215
+Bash\defaultfont=__default_font__, __default_font_size__, 0, 0, 0
+Bash\autoindentstyle=-1
--- a/libgui/languages/be_BY.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/be_BY.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,9 +4,9 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
-        <translation type="unfinished"></translation>
+        <translation>Вылучыць усё</translation>
     </message>
 </context>
 <context>
@@ -14,78 +14,79 @@
     <message>
         <location filename="../src/workspace-model.cc" line="+75"/>
         <source>automatic</source>
-        <translation type="unfinished"></translation>
+        <translation>аўта</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>function</source>
-        <translation type="unfinished"></translation>
+        <translation>функцыя</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>global</source>
-        <translation type="unfinished"></translation>
+        <translation>глабальная</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>hidden</source>
-        <translation type="unfinished"></translation>
+        <translation>схаваная</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>inherited</source>
-        <translation type="unfinished"></translation>
+        <translation>спадчынная</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>persistent</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <translatorcomment>глабальная? устойлівая?</translatorcomment>
+        <translation>статычная</translation>
+    </message>
+    <message>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
-        <translation type="unfinished"></translation>
+        <translation>пярэдні план</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>background</source>
-        <translation type="unfinished"></translation>
+        <translation>задні план</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>selection</source>
-        <translation type="unfinished"></translation>
+        <translation>вылучэнне</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>cursor</source>
-        <translation type="unfinished"></translation>
+        <translation>курсор</translation>
     </message>
 </context>
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Капіяваць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Paste</source>
-        <translation type="unfinished"></translation>
+        <translation>Уставіць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Clear All</source>
-        <translation type="unfinished"></translation>
+        <translation>Прыбраць усё</translation>
     </message>
 </context>
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
-        <translation type="unfinished"></translation>
+        <translation>вылучэнне скапіявана ў буфер абмену</translation>
     </message>
 </context>
 <context>
@@ -93,72 +94,72 @@
     <message>
         <location filename="../../../qsci/qscilexerbash.cpp" line="+208"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Error</source>
-        <translation type="unfinished"></translation>
+        <translation>Памылкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Number</source>
-        <translation type="unfinished"></translation>
+        <translation>Лікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі у двукоссях</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Аператары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Scalar</source>
-        <translation type="unfinished"></translation>
+        <translation>Скаляры</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Parameter expansion</source>
-        <translation type="unfinished"></translation>
+        <translation>Раскрыванні зменных</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Backticks</source>
-        <translation type="unfinished"></translation>
+        <translation>У касых апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Here document delimiter</source>
-        <translation type="unfinished"></translation>
+        <translation>Межнік here-document</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted here document</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у апострафах</translation>
     </message>
 </context>
 <context>
@@ -166,42 +167,42 @@
     <message>
         <location filename="../../../qsci/qscilexerbatch.cpp" line="+179"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Label</source>
-        <translation type="unfinished"></translation>
+        <translation>Цэтлікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Hide command character</source>
-        <translation type="unfinished"></translation>
+        <translation>Хаваць кіроўныя знакі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>External command</source>
-        <translation type="unfinished"></translation>
+        <translation>Знешні загад</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Variable</source>
-        <translation type="unfinished"></translation>
+        <translation>Зменныя</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Аператары</translation>
     </message>
 </context>
 <context>
@@ -209,212 +210,212 @@
     <message>
         <location filename="../../../qsci/qscilexercpp.cpp" line="+352"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive default</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўны, стандартна</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>C comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары C</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive C comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя каментары C</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>C++ comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары C++</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive C++ comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя каментары C++</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>JavaDoc style C comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары C у стылі JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive JavaDoc style C comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя каментары C у стылі JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Number</source>
-        <translation type="unfinished"></translation>
+        <translation>Лікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive number</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя лікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі у двукоссях</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive double-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя радкі у двукоссях</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive single-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя радкі ў апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>IDL UUID</source>
-        <translation type="unfinished"></translation>
+        <translation>IDL UUID</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive IDL UUID</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўны IDL UUID</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Pre-processor block</source>
-        <translation type="unfinished"></translation>
+        <translation>Блокі прэпрацэсара</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive pre-processor block</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя блокі прэпрацэсара</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Аператары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя аператары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Unclosed string</source>
-        <translation type="unfinished"></translation>
+        <translation>Незакрытыя радкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive unclosed string</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя незакрытыя радкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>C# verbatim string</source>
-        <translation type="unfinished"></translation>
+        <translation>Літаральныя радкі C#</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive C# verbatim string</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя літаральныя радкі C# </translation>
     </message>
     <message>
         <location line="+3"/>
         <source>JavaScript regular expression</source>
-        <translation type="unfinished"></translation>
+        <translation>Рэгулярныя выразы JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive JavaScript regular expression</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя рэгулярныя выразы JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>JavaDoc style C++ comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары C++ у стылі JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive JavaDoc style C++ comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя каментары C++ у стылі JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Secondary keywords and identifiers</source>
-        <translation type="unfinished"></translation>
+        <translation>Другасныя ключавыя словы і ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive secondary keywords and identifiers</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя другасныя ключавыя словы і ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>JavaDoc keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive JavaDoc keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя ключавыя словы JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>JavaDoc keyword error</source>
-        <translation type="unfinished"></translation>
+        <translation>Памылкі ключавых словаў JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive JavaDoc keyword error</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя памылкі ключавых словаў JavaDoc</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Global classes and typedefs</source>
-        <translation type="unfinished"></translation>
+        <translation>Глабальныя класы і typedef&apos;ы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive global classes and typedefs</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя глабальныя класы і typedef&apos;ы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>C++ raw string</source>
-        <translation type="unfinished"></translation>
+        <translation>Звычайныя радкі C++</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Inactive C++ raw string</source>
-        <translation type="unfinished"></translation>
+        <translation>Неактыўныя звычайныя радкі C++</translation>
     </message>
 </context>
 <context>
@@ -422,42 +423,42 @@
     <message>
         <location filename="../../../qsci/qscilexerdiff.cpp" line="+107"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Command</source>
-        <translation type="unfinished"></translation>
+        <translation>Загады</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Header</source>
-        <translation type="unfinished"></translation>
+        <translation>Загалоўкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Position</source>
-        <translation type="unfinished"></translation>
+        <translation>Пазіцыі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Removed line</source>
-        <translation type="unfinished"></translation>
+        <translation>Выдаленыя радкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Added line</source>
-        <translation type="unfinished"></translation>
+        <translation>Дададзеныя радкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Changed line</source>
-        <translation type="unfinished"></translation>
+        <translation>Змененыя радкі</translation>
     </message>
 </context>
 <context>
@@ -465,47 +466,47 @@
     <message>
         <location filename="../../../qsci/qscilexermatlab.cpp" line="+138"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Command</source>
-        <translation type="unfinished"></translation>
+        <translation>Загады</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Number</source>
-        <translation type="unfinished"></translation>
+        <translation>Лікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Аператары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі у двукоссях</translation>
     </message>
 </context>
 <context>
@@ -513,207 +514,207 @@
     <message>
         <location filename="../../../qsci/qscilexerperl.cpp" line="+333"/>
         <source>Default</source>
-        <translation type="unfinished"></translation>
+        <translation>Стандартны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Error</source>
-        <translation type="unfinished"></translation>
+        <translation>Памылкі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>Каментары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>POD</source>
-        <translation type="unfinished"></translation>
+        <translation>POD</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Number</source>
-        <translation type="unfinished"></translation>
+        <translation>Лікі</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>Ключавыя словы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі у двукоссях</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted string</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Operator</source>
-        <translation type="unfinished"></translation>
+        <translation>Аператары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідэнтыфікатары</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Scalar</source>
-        <translation type="unfinished"></translation>
+        <translation>Скаляры</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Array</source>
-        <translation type="unfinished"></translation>
+        <translation>Масівы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Hash</source>
-        <translation type="unfinished"></translation>
+        <translation>Хэшы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Symbol table</source>
-        <translation type="unfinished"></translation>
+        <translation>Табліцы сімвалаў</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Regular expression</source>
-        <translation type="unfinished"></translation>
+        <translation>Рэгулярныя выразы</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Substitution</source>
-        <translation type="unfinished"></translation>
+        <translation>Замены</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Backticks</source>
-        <translation type="unfinished"></translation>
+        <translation>У касых апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Data section</source>
-        <translation type="unfinished"></translation>
+        <translation>Data section</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Here document delimiter</source>
-        <translation type="unfinished"></translation>
+        <translation>Межнік here-document</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Single-quoted here document</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted here document</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у двукоссях</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Backtick here document</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у касых апострафах</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (q)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (q)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qq)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qq)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qx)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qx)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qr)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qr)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qw)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qw)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>POD verbatim</source>
-        <translation type="unfinished"></translation>
+        <translation>Літаральны POD</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Subroutine prototype</source>
-        <translation type="unfinished"></translation>
+        <translation>Прататыпы падпраграм</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Format identifier</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідэнтыфікатары фарматаў</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Format body</source>
-        <translation type="unfinished"></translation>
+        <translation>Целы фарматаў</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted string (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі у двукоссях (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Translation</source>
-        <translation type="unfinished"></translation>
+        <translation>Пераклады</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Regular expression (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Рэгулярныя выразы (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Substitution (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Замены (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Backticks (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>У касых апострафах (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Double-quoted here document (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у двукоссях (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Backtick here document (interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Here-document у касых апострафах (інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qq, interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qq, інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qx, interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qx, інтэрпаляваныя зменныя)</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Quoted string (qr, interpolated variable)</source>
-        <translation type="unfinished"></translation>
+        <translation>Радкі ў двукоссях (qr, інтэрпаляваныя зменныя)</translation>
     </message>
 </context>
 <context>
@@ -721,37 +722,37 @@
     <message>
         <location filename="../../../qsci/qsciscintilla.cpp" line="+4201"/>
         <source>&amp;Undo</source>
-        <translation type="unfinished">&amp;Адрабіць</translation>
+        <translation>&amp;Адрабіць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>&amp;Redo</source>
-        <translation type="unfinished">&amp;Паўтарыць</translation>
+        <translation>&amp;Паўтарыць</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Cu&amp;t</source>
-        <translation type="unfinished">Вы&amp;разаць</translation>
+        <translation>Вы&amp;разаць</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Капіяваць</translation>
+        <translation>&amp;Капіяваць</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>&amp;Paste</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Уставіць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Delete</source>
-        <translation type="unfinished"></translation>
+        <translation>Выдаліць</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Select All</source>
-        <translation type="unfinished"></translation>
+        <translation>Вылучыць усё</translation>
     </message>
 </context>
 <context>
@@ -759,520 +760,634 @@
     <message>
         <location filename="../src/documentation-dock-widget.cc" line="+34"/>
         <source>Documentation</source>
-        <translation type="unfinished">Дакументацыя</translation>
+        <translation>Дакументацыя</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>See the documentation for help.</source>
-        <translation type="unfinished"></translation>
+        <translation>Па даведку звяртайцеся да дакументацыі.</translation>
     </message>
 </context>
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-249"/>
+        <translation>Рэдактар Octave</translation>
+    </message>
+    <message>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
+        <translation>Файлы Octave (*.m);;Усе файлы (*)</translation>
+    </message>
+    <message>
+        <location line="-40"/>
+        <source>New Function</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
-        <translation type="unfinished"></translation>
+        <translation>Файл не захаваны! Файл з пазначанай назвай
+%1
+ужо адкрыты ў рэдактары</translation>
     </message>
     <message>
         <location line="+28"/>
         <source>The associated file editor tab has disappeared.  It was likely closed by some means.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+228"/>
+        <translation>Асацыяваная картка рэдактара знікла.  Выглядае, што яе з нейкай прычыны закрылі.</translation>
+    </message>
+    <message>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+173"/>
+        <translation>&amp;%1 %2</translation>
+    </message>
+    <message>
+        <location line="+174"/>
         <source>&amp;New File</source>
-        <translation type="unfinished">&amp;Новы файл</translation>
+        <translation>&amp;Новы файл</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Open File</source>
-        <translation type="unfinished">&amp;Адкрыць файл</translation>
+        <translation>&amp;Адкрыць файл</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Save File</source>
-        <translation type="unfinished">&amp;Захаваць файл</translation>
+        <translation>&amp;Захаваць файл</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Save File &amp;As</source>
-        <translation type="unfinished">Захаваць файл &amp;як</translation>
+        <translation>Захаваць файл &amp;як</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Print</source>
-        <translation type="unfinished"></translation>
+        <translation>Друк</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Undo</source>
-        <translation type="unfinished">&amp;Адрабіць</translation>
+        <translation>&amp;Адрабіць</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Redo</source>
-        <translation type="unfinished">&amp;Паўтарыць</translation>
+        <translation>&amp;Паўтарыць</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Капіяваць</translation>
+        <translation>&amp;Капіяваць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Cu&amp;t</source>
-        <translation type="unfinished">Вы&amp;разаць</translation>
+        <translation>Вы&amp;разаць</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Paste</source>
-        <translation type="unfinished"></translation>
+        <translation>Уставіць</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Next Bookmark</source>
-        <translation type="unfinished">&amp;Наступная закладка</translation>
+        <translation>&amp;Наступная закладка</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Pre&amp;vious Bookmark</source>
-        <translation type="unfinished">Па&amp;пярэдняя закладка</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Па&amp;пярэдняя закладка</translation>
+    </message>
+    <message>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
-        <translation type="unfinished">&amp;Паставіць/прыбраць закладку</translation>
+        <translation>&amp;Паставіць/прыбраць закладку</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Remove All Bookmarks</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Выдаліць усе закладкі</translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
+        <source>&amp;Next Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
+        <source>Pre&amp;vious Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
+        <source>Toggle &amp;Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
+        <source>&amp;Remove All Breakpoints</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Comment</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Закаментаваць</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Uncomment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+63"/>
-        <source>&amp;Recent Editor Files</source>
+        <translation>&amp;Раскаментаваць</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Save File and Run</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+57"/>
+        <source>&amp;Recent Editor Files</source>
+        <translation>&amp;Ранейшыя файлы</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Змяніць функцыю</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>&amp;Close</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Закрыць</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Close All</source>
-        <translation type="unfinished"></translation>
+        <translation>Закрыць усё</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Close Other Files</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+49"/>
+        <translation>Закрыць іншыя файлы</translation>
+    </message>
+    <message>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>Выканаць &amp;вылучанае</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>&amp;Help</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Дапамога</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Help on Keyword</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Дапамога па ключавым слове</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Documentation on Keyword</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-147"/>
+        <translation>&amp;Дакументацыя па ключавым слове</translation>
+    </message>
+    <message>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-584"/>
+        <translation>&amp;Знайсці і замяніць</translation>
+    </message>
+    <message>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+21"/>
+        <translation>Не выйшла адкоыць файл
+%1
+на чытанне: %2.</translation>
+    </message>
+    <message>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+17"/>
+        <translation>Файл
+%1
+не існуе. Жадаеце стварыць яго?</translation>
+    </message>
+    <message>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Не выйшла адкоыць файл
+%1
+на запіс: %2.</translation>
+    </message>
+    <message>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
-        <translation type="unfinished"></translation>
+        <translation>П&amp;ерайсці да радка</translation>
     </message>
     <message>
         <location line="+53"/>
         <source>&amp;File</source>
-        <translation type="unfinished">&amp;Файл</translation>
-    </message>
-    <message>
-        <location line="+39"/>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <location line="+41"/>
         <source>&amp;Edit</source>
-        <translation type="unfinished">&amp;Змяніць</translation>
+        <translation>&amp;Змяніць</translation>
     </message>
     <message>
         <location line="+22"/>
         <source>&amp;Preferences</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>&amp;Настаўленні</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>&amp;Настаўленні выгляду</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>&amp;Debug</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Адладка</translation>
     </message>
     <message>
         <location line="+9"/>
         <source>&amp;Run</source>
-        <translation type="unfinished">&amp;Запусціць</translation>
+        <translation>&amp;Выканаць</translation>
     </message>
 </context>
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
-        <translation type="unfinished"></translation>
+        <translation>Перайсці да радка</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Line number</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+70"/>
+        <translation>Нумар радка</translation>
+    </message>
+    <message>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+40"/>
+        <translation>&lt;без назвы&gt;</translation>
+    </message>
+    <message>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
-        <translation type="unfinished"></translation>
+        <translation>Захаваць ці адкінуць змены?</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Do you want to cancel closing, save or discard the changes?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <translation>Скасаваць закрыццё, захаваць ці адкінуць змены?</translation>
+    </message>
+    <message>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-331"/>
+        <translation>Рэдактар Octave</translation>
+    </message>
+    <message>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
 %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+210"/>
+        <translation>Файл
+%1
+зараз закрыецца, але ён быў зменены.
+%2</translation>
+    </message>
+    <message>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+34"/>
+        <translation>Файлы Octave (*.m);;Усе файлы (*)</translation>
+    </message>
+    <message>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+81"/>
+        <translation>Файл не захаваны! Пазначаная назва файла
+%1
+супадае з назвай бягучага файла</translation>
+    </message>
+    <message>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
-        <translation type="unfinished"></translation>
+        <translation>
+
+Увага: змесціва ў рэдактары было зменена!</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>It seems that the file
 %1
 has been deleted or renamed. Do you want to save it now?%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-203"/>
+        <translation>Выглядае, што файл
+%1
+быў выдалены або пераназваны. Можа, захаваць яго зараз?%2</translation>
+    </message>
+    <message>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
+        <translation>Не выйшла адкрыць файл %1 на запіс:
+%2.</translation>
+    </message>
+    <message>
+        <location line="-962"/>
+        <source>Line:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
-        <translation type="unfinished"></translation>
+        <translation>Выглядае на тое, што &apos;%1&apos; быў зменены іншай праграмай. Перачытаць яго?</translation>
     </message>
 </context>
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
-        <translation type="unfinished">Файлавы аглядальнік</translation>
+        <translation>Файлавы аглядальнік</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Browse your files.</source>
-        <translation type="unfinished">Агляд файлаў.</translation>
+        <translation>Аглядаць вашыя файлы.</translation>
     </message>
     <message>
         <location line="+18"/>
         <source>Enter the path or filename</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Пазначце шлях або назву файла</translation>
+    </message>
+    <message>
+        <location line="+11"/>
         <source>Move up one directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show octave directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Goto current octave directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Перайсці каталогам вышэй</translation>
     </message>
     <message>
         <location line="+4"/>
+        <source>Show octave directory</source>
+        <translation>Перайсці да каталогу Octave</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Goto current octave directory</source>
+        <translation>Перайсці да бягучага каталога Octave</translation>
+    </message>
+    <message>
+        <location line="+5"/>
         <source>Set octave directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
+        <translation>Задаць каталог Octave</translation>
+    </message>
+    <message>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Зрабіць каталогам Octave бягучы каталог аглядальніка</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Actions on current directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Дзеянні з бягучым каталогам</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Show Home directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
+        <translation>Перайсці да хатняга каталогу</translation>
+    </message>
+    <message>
+        <location line="+12"/>
         <source>Search directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць каталог</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <translation>Шукаць файлы...</translation>
+    </message>
+    <message>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
+        <translation>Новы файл</translation>
+    </message>
+    <message>
+        <location line="-360"/>
+        <location line="+363"/>
+        <source>New Directory</source>
+        <translation>Новы каталог</translation>
+    </message>
+    <message>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
-        <source>New Directory</source>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>File type</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
+        <location line="+8"/>
+        <source>Date modified</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
-        <translation type="unfinished"></translation>
+        <translation>Адкрыць</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Open in Default Application</source>
-        <translation type="unfinished"></translation>
+        <translation>Адкрыць у стандартнай праграме</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Copy Selection to Clipboard</source>
-        <translation type="unfinished"></translation>
+        <translation>Капіяваць вылучанае ў буфер</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Run</source>
-        <translation type="unfinished"></translation>
+        <translation>Выканаць</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Load Data</source>
-        <translation type="unfinished"></translation>
+        <translation>Загрузіць звесткі</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Set Current Directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Задаць бягучы каталог</translation>
+    </message>
+    <message>
+        <location line="+8"/>
         <source>Rename</source>
-        <translation type="unfinished"></translation>
+        <translation>Пераназваць</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Delete</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+107"/>
+        <translation>Выдаліць</translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Rename file/directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Пераназваць файл ці каталог</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Rename file/directory:
 </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Пераназваць файл/каталог:</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>
  to: </source>
-        <translation type="unfinished"></translation>
+        <translation>
+ як: </translation>
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-10"/>
+        <translation>Выдаліць файл ці каталог</translation>
+    </message>
+    <message>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <translation>Сапраўды жадаеце выдаліць</translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+131"/>
+        <translation>Немагчыма выдаліць каталог, бо ён не пусты</translation>
+    </message>
+    <message>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <translation>Задаванне каталогу файлавага аглядальніка</translation>
+    </message>
+    <message>
+        <location line="+29"/>
         <source>Create File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Стварыць файл</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Create file in
 </source>
-        <translation type="unfinished"></translation>
+        <translation>Стварыць файл у</translation>
     </message>
     <message>
         <location line="+17"/>
         <source>Create Directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+0"/>
+        <translation>Стварыць каталог</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Create folder in
 </source>
+        <translation>Стварыць каталог у</translation>
+    </message>
+</context>
+<context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation type="unfinished">Скончыць</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Скасаваць</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1281,258 +1396,258 @@
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
         <source>Find &amp;what:</source>
-        <translation type="unfinished"></translation>
+        <translation>Што &amp;шукаць:</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Re&amp;place with:</source>
-        <translation type="unfinished"></translation>
+        <translation>На &amp;што замяняць:</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Match &amp;case</source>
-        <translation type="unfinished"></translation>
+        <translation>З улікам &amp;рэгістру</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Search from &amp;start</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць ад &amp;пачатку</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>&amp;Wrap while searching</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Цыклічны пошук</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Find Next</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Шукаць далей</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Find &amp;Previous</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Шукаць раней</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>&amp;Replace</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Замяніць</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Replace &amp;All</source>
-        <translation type="unfinished"></translation>
+        <translation>Замяніць &amp;усё</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;More</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Больш параметраў</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>&amp;Whole words</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Суцэльныя словы</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Regular E&amp;xpressions</source>
-        <translation type="unfinished"></translation>
+        <translation>Рэгулярныя в&amp;ыразы</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Search &amp;backward</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць &amp;назад</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Search se&amp;lection</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць вы&amp;лучанае</translation>
     </message>
     <message>
         <location line="+71"/>
         <source>Search from end</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць ад канца</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Search from start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+117"/>
+        <translation>Шукаць ад пачатку</translation>
+    </message>
+    <message>
+        <location line="+121"/>
         <source>Replace Result</source>
-        <translation type="unfinished"></translation>
+        <translation>Вынік замены</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>%1 items replaced</source>
-        <translation type="unfinished"></translation>
+        <translation>%1 элементаў заменена</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Find Result</source>
-        <translation type="unfinished"></translation>
+        <translation>Вынік пошуку</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>No more matches found</source>
-        <translation type="unfinished"></translation>
+        <translation>Больш нічога не знойдзена</translation>
     </message>
 </context>
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
-        <translation type="unfinished"></translation>
+        <translation>Пошук файлаў</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Named:</source>
-        <translation type="unfinished"></translation>
+        <translation>Маска назваў:</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Enter the filename expression</source>
-        <translation type="unfinished"></translation>
+        <translation>Задайце выраз для назваў файлаў</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Start in:</source>
+        <translation>Пачынаць з:</translation>
     </message>
     <message>
         <location line="+5"/>
-        <source>Start in:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
         <source>Enter the start directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Задайце каталог, з якога пачынаць пошук</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Browse...</source>
-        <translation type="unfinished"></translation>
+        <translation>Агляд...</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Browse for start directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Пазначыць каталог пачатку пошуку</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Recurse directories</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Рэкурсіўна</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць ува ўсіх падкаталогах</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Include directories</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Знаходзіць каталогі</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
-        <translation type="unfinished"></translation>
+        <translation>Дадаваць пасавальныя каталогі ў вынікі пошуку</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Name case insensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Не ўлічваць рэгістр</translation>
+    </message>
+    <message>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
-        <translation type="unfinished"></translation>
+        <translation>Не браць ва ўлік рэгістр літар у назвах</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Contains text:</source>
-        <translation type="unfinished"></translation>
+        <translation>Змяшчае тэкст:</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Search must match text</source>
-        <translation type="unfinished"></translation>
+        <translation>Улічваць файлы, што ўтрымліваюць пэўны тэкст</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Text to match</source>
+        <translation>Тэкст для пошуку</translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>Text to match</source>
-        <translation type="unfinished"></translation>
+        <source>Text case insensitive</source>
+        <translation>Не ўлічваць рэгістр</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
-        <translation type="unfinished"></translation>
+        <translation>Не браць ва ўлік рэгістр літар у тэксце</translation>
     </message>
     <message>
         <location line="+11"/>
         <source>Search results</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
+        <translation>Вынікі пошуку</translation>
+    </message>
+    <message>
+        <location line="+17"/>
         <source>Idle.</source>
-        <translation type="unfinished"></translation>
+        <translation>Idle.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Find</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Start search for matching files</source>
-        <translation type="unfinished"></translation>
+        <translation>Пачаць пошук адпаведных файлаў</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Stop</source>
-        <translation type="unfinished"></translation>
+        <translation>Спыніць</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Stop searching</source>
-        <translation type="unfinished"></translation>
+        <translation>Спыніць пошук</translation>
     </message>
     <message>
         <location line="+15"/>
         <source>File name/location</source>
-        <translation type="unfinished"></translation>
+        <translation>Назва файла ці каталогу</translation>
     </message>
     <message>
         <location line="+17"/>
         <source>File contents</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+99"/>
+        <translation>Змесціва файла</translation>
+    </message>
+    <message>
+        <location line="+105"/>
         <source>Searching...</source>
-        <translation type="unfinished"></translation>
+        <translation>Ідзе пошук...</translation>
     </message>
     <message>
         <location line="+32"/>
         <source>Set search directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Пазначыць каталог пошуку</translation>
     </message>
 </context>
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
-        <translation type="unfinished"></translation>
+        <translation>Назва файла</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Каталог</translation>
     </message>
 </context>
 <context>
@@ -1540,435 +1655,526 @@
     <message>
         <location filename="../src/history-dock-widget.cc" line="+43"/>
         <source>Browse and search the command history.</source>
-        <translation type="unfinished">Агляд і пошук па гісторыі загадаў.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation type="unfinished">Двойчы пстрык па загадзе перадасць яго ў тэрмінал.</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>Агляд і пошук па гісторыі загадаў.</translation>
+    </message>
+    <message>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
-        <translation type="unfinished">Увядзіце тэкст для фільтравання гісторыі загадаў.</translation>
+        <translation>Увядзіце тэкст для фільтравання гісторыі загадаў.</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Command History</source>
-        <translation type="unfinished">Гісторыя загадаў</translation>
-    </message>
-    <message>
-        <location line="+20"/>
+        <translation>Гісторыя загадаў</translation>
+    </message>
+    <message>
+        <location line="+21"/>
         <source>Copy</source>
+        <translation>Капіяваць</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Evaluate</source>
+        <translation>Вылічыць</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Create script</source>
+        <translation>Стварыць сцэнар</translation>
+    </message>
+</context>
+<context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation type="unfinished">Вітаем у Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Evaluate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Create script</source>
+        <source>Cancel</source>
+        <translation type="unfinished">Скасаваць</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
-        <translation type="unfinished">Загрузіць прастору зменных</translation>
-    </message>
-    <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <translation>Загрузіць прастору зменных</translation>
+    </message>
+    <message>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
-        <translation type="unfinished">Пра Octave</translation>
-    </message>
-    <message>
-        <location line="-369"/>
+        <translation>Пра Octave</translation>
+    </message>
+    <message>
+        <location line="-371"/>
         <source>&amp;File</source>
-        <translation type="unfinished">&amp;Файл</translation>
+        <translation>&amp;Файл</translation>
     </message>
     <message>
         <location line="+54"/>
         <source>New</source>
-        <translation type="unfinished"></translation>
+        <translation>Новы</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Script</source>
-        <translation type="unfinished"></translation>
+        <translation>Новы сцэнар</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Function</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Функцыя</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Figure</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-58"/>
+        <translation>Графік</translation>
+    </message>
+    <message>
+        <location line="-59"/>
         <source>Open...</source>
-        <translation type="unfinished"></translation>
+        <translation>Адкрыць...</translation>
     </message>
     <message>
         <location line="+20"/>
         <source>Preferences...</source>
-        <translation type="unfinished"></translation>
+        <translation>Настаўленні...</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Exit</source>
-        <translation type="unfinished">Выйсці</translation>
-    </message>
-    <message>
-        <location line="+52"/>
+        <translation>Выйсці</translation>
+    </message>
+    <message>
+        <location line="+53"/>
         <source>&amp;Edit</source>
-        <translation type="unfinished">&amp;Змяніць</translation>
+        <translation>&amp;Змяніць</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Undo</source>
-        <translation type="unfinished"></translation>
+        <translation>Адрабіць</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Капіяваць</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Paste</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <translation>Уставіць</translation>
+    </message>
+    <message>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-826"/>
+        <translation>Захаваць прастору зменных як</translation>
+    </message>
+    <message>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
-        <translation type="unfinished"></translation>
+        <translation>Файл заўваг да выпуску &apos;%1&apos; пусты.</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>The release notes file &apos;%1&apos; cannot be read.</source>
-        <translation type="unfinished"></translation>
+        <translation>Файл заўваг да выпуску &apos;%1&apos; не выйшла прачытаць.</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>Octave Release Notes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+157"/>
-        <source>Set working directory</source>
+        <translation>Заўвагі да выпуску Octave</translation>
+    </message>
+    <message>
+        <location line="+185"/>
+        <source>Octave Community News</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+171"/>
+        <source>Set working directory</source>
+        <translation>Задаць бягучы каталог</translation>
+    </message>
+    <message>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
-        <translation type="unfinished"></translation>
+        <translation>Ачысціць буфер</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Find Files...</source>
-        <translation type="unfinished"></translation>
+        <translation>Шукаць файлы...</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>Clear Command Window</source>
-        <translation type="unfinished"></translation>
+        <translation>Ачысціць загаднае акно</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Clear Command History</source>
-        <translation type="unfinished"></translation>
+        <translation>Ачысціць гісторыю загадаў</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Clear Workspace</source>
-        <translation type="unfinished"></translation>
+        <translation>Ачысціць прастору зменных</translation>
     </message>
     <message>
         <location line="+40"/>
         <source>De&amp;bug</source>
-        <translation type="unfinished"></translation>
+        <translation>Ад&amp;ладка</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Step</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
+        <translation>Крок</translation>
+    </message>
+    <message>
+        <location line="+12"/>
+        <source>Continue</source>
+        <translation>Працягваць</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Exit Debug Mode</source>
+        <translation>Выйсці з рэжыму адладкі</translation>
+    </message>
+    <message>
+        <location line="+51"/>
+        <source>Show File Browser</source>
+        <translation>Паказваць файлавы аглядальнік</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>File Browser</source>
+        <translation>Файлавы аглядальнік</translation>
+    </message>
+    <message>
+        <location line="-94"/>
+        <source>Step In</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>Continue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Exit Debug Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>Show File Browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
+        <source>Step Out</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
-        <source>File Browser</source>
-        <translation type="unfinished">Файлавы аглядальнік</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+86"/>
+        <translation>Стандартнае размеркаванне вокнаў</translation>
+    </message>
+    <message>
+        <location line="+77"/>
         <source>Octave Packages</source>
-        <translation type="unfinished"></translation>
+        <translation>Пакеты Octave</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Share Code</source>
-        <translation type="unfinished"></translation>
+        <translation>Падзяліцца кодам</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Contribute to Octave</source>
-        <translation type="unfinished"></translation>
+        <translation>Палепшыць Octave</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Octave Developer Resources</source>
-        <translation type="unfinished"></translation>
+        <translation>Рэсурсы распрацоўніка Octave</translation>
     </message>
     <message>
         <location line="+32"/>
         <source>On Disk</source>
-        <translation type="unfinished"></translation>
+        <translation>На дыску</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Online</source>
-        <translation type="unfinished"></translation>
+        <translation>Анлайн</translation>
     </message>
     <message>
         <location line="+12"/>
         <source>&amp;News</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Навіны</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Release Notes</source>
-        <translation type="unfinished"></translation>
+        <translation>Заўвагі да выпуску</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Community News</source>
-        <translation type="unfinished"></translation>
+        <translation>Навіны супольнасці</translation>
     </message>
     <message>
         <location line="+30"/>
         <source>Enter directory name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
+        <translation>Пазначце назву каталогу</translation>
+    </message>
+    <message>
+        <location line="+9"/>
         <source>Current Directory: </source>
-        <translation type="unfinished"></translation>
+        <translation>Бягучы каталог:</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>One directory up</source>
-        <translation type="unfinished"></translation>
+        <translation>Перайсці каталогам вышэй</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Browse directories</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <translation>Агляд каталогаў</translation>
+    </message>
+    <message>
+        <location line="-244"/>
         <source>&amp;Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <translation>&amp;Акно</translation>
+    </message>
+    <message>
+        <location line="+7"/>
         <source>Show Command Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Паказваць загаднае акно</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Show Command History</source>
-        <translation type="unfinished"></translation>
+        <translation>Паказваць гісторыю загадаў</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show Workspace</source>
+        <translation>Паказваць прастору зменных</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Editor</source>
+        <translation>Паказваць рэдактар</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Documentation</source>
+        <translation>Паказваць дакументацыю</translation>
     </message>
     <message>
         <location line="+6"/>
-        <source>Show Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Documentation</source>
-        <translation type="unfinished"></translation>
+        <source>Command Window</source>
+        <translation>Загаднае акно</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Command History</source>
+        <translation>Гісторыя загадаў</translation>
     </message>
     <message>
         <location line="+8"/>
-        <source>Command Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Command History</source>
-        <translation type="unfinished">Гісторыя загадаў</translation>
-    </message>
-    <message>
-        <location line="+6"/>
         <source>Workspace</source>
-        <translation type="unfinished">Прастора зменных</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>Прастора зменных</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>Editor</source>
-        <translation type="unfinished">Рэдактар</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <translation>Рэдактар</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
-        <translation type="unfinished">Дакументацыя</translation>
+        <translation>Дакументацыя</translation>
     </message>
     <message>
         <location line="-48"/>
         <source>&amp;Help</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Даведка</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Report Bug</source>
-        <translation type="unfinished">Паведаміць пра хібу</translation>
+        <translation>Паведаміць пра хібу</translation>
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
-    <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
+    <name>news_reader</name>
+    <message>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-149"/>
+        <translation>Адчапіць віджэт</translation>
+    </message>
+    <message>
+        <location line="-153"/>
         <source>Hide widget</source>
-        <translation type="unfinished"></translation>
+        <translation>Схаваць віджэт</translation>
     </message>
     <message>
         <location line="+104"/>
         <source>Dock widget</source>
-        <translation type="unfinished"></translation>
+        <translation>Прычапіць віджэт</translation>
     </message>
 </context>
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
-        <translation type="unfinished"></translation>
+        <translation>Даведка пра</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Documentation on</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <translation>Дакументацыя пра</translation>
+    </message>
+    <message>
+        <location line="+3"/>
         <source>Edit</source>
-        <translation type="unfinished"></translation>
+        <translation>Змяніць</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>&amp;Run Selection</source>
-        <translation type="unfinished"></translation>
+        <translation>&amp;Выканаць вылучанае</translation>
     </message>
 </context>
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation type="unfinished">Файл
+%1
+не існуе. Жадаеце стварыць яго?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation type="unfinished">Рэдактар Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
-        <translation type="unfinished"></translation>
+        <translation>Файл %1 не існуе ў бягучым шляху.  Для адладкі функцыі, якую вы рэдагуеце, трэба змяніць каталог на %2 або дадаць яго да бягучага шляху.</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>The file %1 is shadowed by a file with the same name in the load path.  To debug the function you are editing, change to the directory %2.</source>
-        <translation type="unfinished"></translation>
+        <translation>Файлу %1 замінае файл з такой самай назвай у бягучым шляху.  Для адладкі функцыі, якую вы рэдагуеце, змяніце каталог на %2.</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Change Directory or Add Directory to Load Path</source>
-        <translation type="unfinished"></translation>
+        <translation>Змяніць каталог або Дадаць каталог да бягучага шляху</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>Change Directory</source>
-        <translation type="unfinished"></translation>
+        <translation>Змяніць каталог</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Add Directory to Load Path</source>
-        <translation type="unfinished"></translation>
+        <translation>Дадаць каталог да бягучага шляху</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Cancel</source>
+        <translation>Скасаваць</translation>
+    </message>
+</context>
+<context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -1977,343 +2183,395 @@
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
         <source>Settings</source>
-        <translation type="unfinished">Настаўленні</translation>
+        <translation>Настаўленні</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>General</source>
-        <translation type="unfinished"></translation>
+        <translation>Агульныя</translation>
     </message>
     <message>
         <location line="+97"/>
         <source>Octave logo only</source>
-        <translation type="unfinished"></translation>
+        <translation>Толькі эмблема Octave</translation>
     </message>
     <message>
         <location line="+10"/>
         <source>Letter icons</source>
-        <translation type="unfinished"></translation>
+        <translatorcomment>не пэўны</translatorcomment>
+        <translation>Літарныя значкі</translation>
     </message>
     <message>
         <location line="+46"/>
         <source>Editor</source>
-        <translation type="unfinished">Рэдактар</translation>
-    </message>
-    <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <translation>Рэдактар</translation>
+    </message>
+    <message>
+        <location line="+71"/>
         <source>Color</source>
-        <translation type="unfinished"></translation>
+        <translation>Колер</translation>
     </message>
     <message>
         <location line="+120"/>
         <source>Indent width</source>
-        <translation type="unfinished"></translation>
+        <translation>Даўжыня водступу</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Tab indents line</source>
-        <translation type="unfinished"></translation>
+        <translation>Табуляцыя робіць водступ</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Auto indentation</source>
-        <translation type="unfinished"></translation>
+        <translation>Аўтаводступы</translation>
     </message>
     <message>
         <location line="+20"/>
         <source>Tab width</source>
-        <translation type="unfinished"></translation>
+        <translation>Даўжыня табуляцыі</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Show indentation guides</source>
-        <translation type="unfinished"></translation>
+        <translatorcomment>- не пэўны
+- даўжэй не трэба, не змяшчаецца!</translatorcomment>
+        <translation>Паказваць накіравальныя водступаў</translation>
     </message>
     <message>
         <location line="+17"/>
         <source>Backspace unindents line</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <translation>Backspace прыбірае водступ</translation>
+    </message>
+    <message>
+        <location line="+155"/>
         <source>Match keywords</source>
-        <translation type="unfinished"></translation>
+        <translation>Для ключавых словаў</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>Case sensitive</source>
-        <translation type="unfinished"></translation>
+        <translation>Улічваць рэгістр</translation>
     </message>
     <message>
         <location line="+13"/>
         <source>Replace word by suggested one</source>
-        <translation type="unfinished"></translation>
+        <translation>Замяняць слова на прапанаванае</translation>
     </message>
     <message>
         <location line="+23"/>
         <source>Match words in document</source>
-        <translation type="unfinished"></translation>
+        <translation>Для словаў з дакумента</translation>
     </message>
     <message>
         <location line="+61"/>
         <source>Restore editor tabs from previous session on startup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <translation>Памятаць карткі папярэдняга сеансу</translation>
+    </message>
+    <message>
+        <location line="+60"/>
         <source>Use custom file editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>Editor Styles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation type="unfinished"></translation>
+        <translation>Свой файлавы рэдактар</translation>
     </message>
     <message>
         <location line="+32"/>
+        <source>Editor Styles</source>
+        <translation>Выгляд рэдактара</translation>
+    </message>
+    <message>
+        <location line="+132"/>
         <source>Terminal Colors</source>
-        <translation type="unfinished"></translation>
+        <translation>Колеры тэрміналу</translation>
     </message>
     <message>
         <location line="+45"/>
         <source>Font</source>
-        <translation type="unfinished"></translation>
+        <translation>Шрыфт</translation>
     </message>
     <message>
         <location line="-757"/>
         <source>Show line numbers</source>
-        <translation type="unfinished"></translation>
+        <translation>Паказваць нумары радкоў</translation>
     </message>
     <message>
         <location line="+27"/>
         <source>Highlight current line</source>
-        <translation type="unfinished"></translation>
+        <translation>Фарбаваць бягучы радок</translation>
     </message>
     <message>
         <location line="+262"/>
         <source>Code completion</source>
-        <translation type="unfinished"></translation>
+        <translation>Аўтадапаўненне</translation>
     </message>
     <message>
         <location line="-282"/>
         <source>Show complete path in window title</source>
-        <translation type="unfinished"></translation>
+        <translation>Паказваць поўны шлях у загалоўку акна</translation>
     </message>
     <message>
         <location line="-72"/>
         <source>Graphic icons</source>
+        <translation>Графічныя значкі</translation>
+    </message>
+    <message>
+        <location line="+55"/>
+        <source>Show whitespace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+633"/>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
-        <translation type="unfinished">emacs</translation>
-    </message>
-    <message>
-        <location line="+67"/>
+        <translation>emacs</translation>
+    </message>
+    <message>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
-        <translation type="unfinished">Тэрмінал</translation>
+        <translation>Тэрмінал</translation>
     </message>
     <message>
         <location line="+15"/>
         <source>Cursor type:</source>
-        <translation type="unfinished"></translation>
+        <translation>Тып курсора:</translation>
     </message>
     <message>
         <location line="+23"/>
         <source>Cursor blinking</source>
+        <translation>Мігценне курсора</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Use foreground color</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+94"/>
         <source>Font size</source>
-        <translation type="unfinished"></translation>
+        <translation>Памер шрыфту</translation>
     </message>
     <message>
         <location line="+35"/>
         <source>File Browser</source>
-        <translation type="unfinished">Файлавы аглядальнік</translation>
+        <translation>Файлавы аглядальнік</translation>
     </message>
     <message>
         <location line="+6"/>
         <source>Show file size</source>
-        <translation type="unfinished">Паказваць памеры файлаў</translation>
+        <translation>Паказваць памеры файлаў</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Show file type</source>
-        <translation type="unfinished">Паказваць тыпы файлаў</translation>
+        <translation>Паказваць тыпы файлаў</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Show date of last modification</source>
-        <translation type="unfinished">Паказваць дату апошняга змянення</translation>
+        <translation>Паказваць дату апошняга змянення</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Show hidden files</source>
-        <translation type="unfinished">Паказваць схаваныя файлы</translation>
-    </message>
-    <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <translation>Паказваць схаваныя файлы</translation>
+    </message>
+    <message>
+        <location line="+14"/>
         <source>Alternating row colors</source>
-        <translation type="unfinished">Колеры радкоў чаргуюцца</translation>
+        <translation>Колеры радкоў чаргуюцца</translation>
     </message>
     <message>
         <location line="+21"/>
         <source>Workspace</source>
-        <translation type="unfinished">Прастора зменных</translation>
+        <translation>Прастора зменных</translation>
     </message>
     <message>
         <location line="+30"/>
         <source>Storage Class Colors</source>
-        <translation type="unfinished"></translation>
+        <translation>Колеры класаў памяці</translation>
     </message>
     <message>
         <location line="+35"/>
         <source>Network</source>
-        <translation type="unfinished">Сетка</translation>
-    </message>
-    <message>
-        <location line="+45"/>
+        <translation>Сетка</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
-        <translation type="unfinished">Выкарыстоўваць проксі-сервер</translation>
-    </message>
-    <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation type="unfinished">Тып проксі:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <translation>Выкарыстоўваць проксі-сервер</translation>
+    </message>
+    <message>
+        <location line="-23"/>
         <source>HttpProxy</source>
-        <translation type="unfinished">HttpProxy</translation>
-    </message>
-    <message>
-        <location line="-1120"/>
+        <translation>HttpProxy</translation>
+    </message>
+    <message>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
-        <translation type="unfinished"></translation>
+        <translation>Набор значкоў для віджэтаў</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Language (requires restart)</source>
-        <translation type="unfinished"></translation>
+        <translation>Мова (патрэбны перазапуск)</translation>
     </message>
     <message>
         <location line="+7"/>
         <source>Icon size</source>
+        <translation>Памер значкоў</translation>
+    </message>
+    <message>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
-        <translation type="unfinished">Socks5Proxy</translation>
+        <translation>Socks5Proxy</translation>
     </message>
     <message>
         <location line="-16"/>
         <source>Hostname:</source>
-        <translation type="unfinished">Назва хоста:</translation>
-    </message>
-    <message>
-        <location line="+54"/>
+        <translation>Назва хоста:</translation>
+    </message>
+    <message>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
-        <translation type="unfinished">Порт:</translation>
+        <translation>Порт:</translation>
     </message>
     <message>
         <location line="-27"/>
         <source>Username:</source>
-        <translation type="unfinished">Імя карыстальніка:</translation>
+        <translation>Імя карыстальніка:</translation>
     </message>
     <message>
         <location line="+37"/>
         <source>Password:</source>
-        <translation type="unfinished">Пароль:</translation>
-    </message>
-    <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <translation>Пароль:</translation>
+    </message>
+    <message>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-279"/>
+        <translation>Сістэмная</translation>
+    </message>
+    <message>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
-        <translation type="unfinished"></translation>
+        <translation>IBeam</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Block Cursor</source>
+        <translation>Блок</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Underline Cursor</source>
+        <translation>Падкрэсленне</translation>
+    </message>
+    <message>
+        <location line="+144"/>
+        <source>Difference to the default size</source>
+        <translation>Розніца ад стандартнага памеру</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Background color, pink (255,0,255) means default</source>
+        <translation>Для фону ружовы колер (255,0,255) азначае стандартны колер фону</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>b</source>
+        <translation>т</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>i</source>
+        <translation>к</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>u</source>
+        <translation>п</translation>
+    </message>
+</context>
+<context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation type="unfinished">Навіны супольнасці</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>Underline Cursor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+140"/>
-        <source>Difference to the default size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+6"/>
-        <source>Background color, pink (255,0,255) means default</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
-        <source>b</source>
+        <source>Next</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+1"/>
-        <source>i</source>
+        <source>Cancel</source>
+        <translation type="unfinished">Скасаваць</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
-        <source>u</source>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2322,64 +2580,28 @@
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
         <source>Command Window</source>
-        <translation type="unfinished"></translation>
+        <translation>Загаднае акно</translation>
     </message>
 </context>
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
-        <translation type="unfinished"></translation>
+        <translation>Для пошуку ўвядзіце тут штосьці і націсніце Enter</translation>
     </message>
     <message>
         <location line="+4"/>
         <source>Global search</source>
-        <translation type="unfinished"></translation>
+        <translation>Глабальны пошук</translation>
     </message>
 </context>
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation type="unfinished"></translation>
+        <translation>Вітаем у GNU Octave</translation>
     </message>
 </context>
 <context>
@@ -2387,31 +2609,37 @@
     <message>
         <location filename="../src/workspace-model.cc" line="-42"/>
         <source>Name</source>
-        <translation type="unfinished">Ідэнтыфікатар</translation>
+        <translation>Ідэнтыфікатар</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Class</source>
-        <translation type="unfinished"></translation>
+        <translation>Клас</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Dimension</source>
-        <translation type="unfinished"></translation>
+        <translation>Памернасць</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Value</source>
-        <translation type="unfinished">Значэнне</translation>
+        <translation>Значэнне</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Storage Class</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+107"/>
+        <translation>Клас памяці</translation>
+    </message>
+    <message>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
+        <translation>Правы пстрык каб капіяваць, пераназваць ці адлюстраваць</translation>
+    </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
@@ -2420,37 +2648,37 @@
     <message>
         <location filename="../src/workspace-view.cc" line="+47"/>
         <source>Workspace</source>
-        <translation type="unfinished">Прастора зменных</translation>
+        <translation>Прастора зменных</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>View the variables in the active workspace.</source>
-        <translation type="unfinished">Прагляд зменных бягучай прасторы.</translation>
-    </message>
-    <message>
-        <location line="+75"/>
+        <translation>Прагляд зменных бягучай прасторы.</translation>
+    </message>
+    <message>
+        <location line="+76"/>
         <source>Copy</source>
-        <translation type="unfinished"></translation>
+        <translation>Капіяваць</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>Rename</source>
-        <translation type="unfinished"></translation>
+        <translation>Пераназваць</translation>
     </message>
     <message>
         <location line="+8"/>
         <source>Only top-level symbols may be renamed.</source>
-        <translation type="unfinished"></translation>
+        <translation>Можна пераназываць толькі сімвалы найвышэйшага ўзроўню.</translation>
     </message>
     <message>
         <location line="+125"/>
         <source>View the variables in the active workspace.&lt;br&gt;</source>
-        <translation type="unfinished"></translation>
+        <translation>Выгляд зменных у актыўнай прасторы зменных.&lt;br&gt;</translation>
     </message>
     <message>
         <location line="+1"/>
         <source>Colors for the storage class:</source>
-        <translation type="unfinished"></translation>
+        <translation>Колеры для класаў памяці:</translation>
     </message>
 </context>
 </TS>
--- a/libgui/languages/de_DE.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/de_DE.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Alles auswählen</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>Beständig</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>Vordergrund</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>Auswahl in die Zwischenablage kopiert</translation>
     </message>
@@ -104,21 +104,33 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Octave Editor</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Octave Dateien (*.m);;Alle Dateien (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation>Neue Funktion</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation>Neuer Funktionsname:
+</translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -132,12 +144,12 @@
         <translation>Der zugehörige Editor-Reiter ist nicht mehr vorhanden und wurde wahrscheinlich geschlossen.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>&amp;Neue Datei</translation>
     </message>
@@ -197,7 +209,7 @@
         <translation>&amp;Voriges Lesezeichen</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>&amp;Lesezeichen setzen</translation>
     </message>
@@ -208,23 +220,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
+        <source>&amp;Next Breakpoint</source>
         <translation>&amp;Nächster Haltepunkt</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
+        <source>Pre&amp;vious Breakpoint</source>
         <translation>&amp;Vorheriger Haltepunkt</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>Haltepunkte &amp;umschalten</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation>Haltepunkt &amp;umschalten</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>Alle Haltepunkte &amp;entfernen</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation>Alle Haltepunkte entfe&amp;rnen</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -237,12 +249,22 @@
         <translation>Kommentar &amp;entfernen</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation>Datei speichern und Ausführen</translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>&amp;Zuletzt bearbeitete Dateien</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation>Neue &amp;Funktion</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>Funktion b&amp;earbeiten</translation>
     </message>
@@ -262,7 +284,7 @@
         <translation>Andere Dokumente schließen</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Markierten Quellcode au&amp;sführen</translation>
     </message>
@@ -282,12 +304,12 @@
         <translation>&amp;Dokumentation zum Schlüsselwort</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Suchen und Ersetzen</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -297,7 +319,7 @@
 %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -306,7 +328,7 @@
 existiert nicht. Soll sie erzeugt werden?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -316,12 +338,7 @@
 %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Datei speichern und ausführen</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>&amp;Gehe zu Zeile</translation>
     </message>
@@ -331,7 +348,7 @@
         <translation>&amp;Datei</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
@@ -341,12 +358,12 @@
         <translation>&amp;Einstellungen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>&amp;Stil-Einstellungen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Debuggen</translation>
     </message>
@@ -359,7 +376,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation>Gehe zu Zeile</translation>
     </message>
@@ -369,12 +386,13 @@
         <translation>Zeilennummer</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;unbenannt&gt;</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Änderungen speichern oder verwerfen?</translation>
     </message>
@@ -384,16 +402,16 @@
         <translation>Änderungen speichern, verwerfen oder Schließen abbrechen?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation>Octave Editor</translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -404,12 +422,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Octave Dateien (*.m);;All Files (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -418,7 +436,7 @@
 ist derselbe wie der aktuelle Dateiname</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -434,14 +452,24 @@
 wurde gelöscht oder umbenannt. Soll die Datei jetzt gespeichert werden?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Die Datei %1  konnte nicht zum Schreiben geöffnet werden:
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation>Zeile:</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation>Spalte:</translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Die Datei %1 wurde von einer anderen Anwendung verändert. Soll der neue Inhalt geladen werden?</translation>
     </message>
@@ -449,7 +477,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Dateibrowser</translation>
     </message>
@@ -464,27 +492,27 @@
         <translation>Pfad oder Dateinamen eingeben</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Ordern darüber anwählen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation>Aktuelles Octave Verzeichnis anzeigen</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation>Zu aktuellem Octave Verezichnis gehen</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Octave Verzeichnis setzen</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Setze Octave Verzeichnis zu aktuellem Browser Verzeichnis</translation>
     </message>
@@ -499,35 +527,55 @@
         <translation>Wechsle zum Heimatverzeichnis</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Verzeichnis suchen</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Dateien suchen ...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Neue Datei</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Neues Verzeichnis</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Datei mit Doppelklick öffnen</translation>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation>Doppelklick auf eine Datei um diese zu öffnen</translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation>Dateigröße</translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation>Dateityp</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation>Änderungsdatum</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation>Verborgene Dateien anzeigen</translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
@@ -557,7 +605,7 @@
         <translation>Aktuelles Verzeichnis setzen</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Umbenennen</translation>
     </message>
@@ -567,7 +615,7 @@
         <translation>Löschen</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Datei/Verzeichnis umbenennen</translation>
     </message>
@@ -578,7 +626,7 @@
         <translation>Datei/Verzeichnis umbenennen:</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>
@@ -586,34 +634,34 @@
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Datei/Verzeichnis löschen</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Folgende/s Datei/Verzeichnis wirklich löschen
 </translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Verzeichnis ist nicht leer und kann daher nicht gelöscht werden</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation>Setze aktuelles Browser Verzeichnis</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Neue Datei</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Neue Datei in</translation>
@@ -624,13 +672,76 @@
         <translation>Neues Verzeichnis</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Neues Verzeichnis in</translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation>Viel Spaß!</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation>Zurück</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation>Beenden</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Wir hoffen dass Du Octave nützlich findest.&lt;/p&gt;
+&lt;p&gt;Wenn Du auf Probleme stoßen solltest, gibt es eine Reihe von Wegen um Hilfe zu bekommen. Neben der Option kommerziellen Support zu erhalten, gibt es noch eine Mailingliste, ein Wiki und andere Community Support Channels
+Mehr über jede Möglichkeit findest Du im Internet unter &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (Wird im externen Browser geöffnet).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Für weitere Informationen über Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (Öffnet im externen Browser)&lt;/li&gt;
+&lt;li&gt;Online Dokumentation &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- oder &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;PDF&lt;/span&gt;&lt;/a&gt;Dokument (Öffnet im externen Browser)&lt;/li&gt;
+&lt;li&gt;Öffnet den Dokumentations-Browser von Octave GUI mit Hilfe-Menü&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -713,7 +824,7 @@
         <translation>Suche vom Beginn</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Ergebins der Ersetzungen</translation>
     </message>
@@ -736,7 +847,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Suche Dateien</translation>
     </message>
@@ -751,12 +862,12 @@
         <translation>Eingabe eines Ausdrucks für den Dateinamen</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Beginne in:</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Verzeichnis, in dem die Suche beginnt</translation>
     </message>
@@ -776,7 +887,7 @@
         <translation>Unterverzeichnisse durchsuchen</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Rekursive Dateisuche durch Unterverzeichnisse</translation>
     </message>
@@ -786,7 +897,7 @@
         <translation>Verzeichnisse einbeziehen</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Auch Verzeichnisse berücksichtigen, die die Suchanfrage erfüllen</translation>
     </message>
@@ -796,7 +907,7 @@
         <translation>Groß-/Kleinschreibung ignorieren</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Groß-/Kleinschreibung bei der Dateisuche ignorieren</translation>
     </message>
@@ -811,17 +922,17 @@
         <translation>Suche Dateien mit übereinstimmendem Text</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Zu suchender Text</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Text case insensitive</source>
         <translation>Groß-/Kleinschreibung beachten</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set text content is case insensitive</source>
         <translation>Groß-/Kleinschreibung beim Text beachten</translation>
     </message>
@@ -831,7 +942,7 @@
         <translation>Suchergebnisse</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Leerlauf.</translation>
     </message>
@@ -866,7 +977,7 @@
         <translation>Dateiinhalt</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Suche ...</translation>
     </message>
@@ -879,7 +990,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Dateiname</translation>
     </message>
@@ -897,12 +1008,12 @@
         <translation>Durchsuchen Sie die Befehlshistorie.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Doppelklick, um den Befehl in das Terminal zu übertragen.</translation>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation>Doppelklick auf ein Kommando um dieses in das Terminal zu übertragen.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Texteingabe zur Filterung der Befehlshistorie.</translation>
     </message>
@@ -912,7 +1023,7 @@
         <translation>Befehlshistorie</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
@@ -922,26 +1033,58 @@
         <translation>Ausführen</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Skript erzeugen</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation>Willkommen zu Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation>Weiter</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Es scheint als ob die grafische Benutzerschnittstelle zum ersten Mal auf diesem Computer gestartet wurde.
+Klicke auf &apos;weiter&apos; um eine Konfigurationsdatei anzulegen und Octave zu starten.&lt;/p&gt;
+&lt;p&gt;Die Konfigurationsdatei wird in %1 gespeichert. Falls diese Datei existiert, wird dieser Dialog nicht mehr angezeigt.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Lade Arbeitsumgebung</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Über Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>&amp;Datei</translation>
     </message>
@@ -961,12 +1104,12 @@
         <translation>Funktion</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Abbildung</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Öffnen...</translation>
     </message>
@@ -981,7 +1124,7 @@
         <translation>Beenden</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Bearbeiten</translation>
     </message>
@@ -1001,13 +1144,13 @@
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation>Arbeitsumgebung speichern als</translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation>Die Datei &apos;%1&apos; mit Versionshinweisen ist leer.</translation>
     </message>
@@ -1022,12 +1165,17 @@
         <translation>Versionshinweise zu Octave</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation>Neuigkeiten aus der Octave Gemeinschaft</translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Arbeitsverzeichnis setzen</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Zwischenablage leeren</translation>
     </message>
@@ -1062,52 +1210,42 @@
         <translation>Einzelschritt</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Einzelschritt hinein</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Einzelschritt heraus</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation>Fortfahren</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation>Debug Modus verlassen</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation>Dateibrowser anzeigen</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Fenster mit Neuigkeiten anzeigen</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation>Dateibrowser</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Neuigkeiten</translation>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation>Hineinspringen</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation>Herausspringen</translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Fensterlayout auf Grundeinstellung zurücksetzen</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Octave Pakete</translation>
     </message>
@@ -1157,7 +1295,7 @@
         <translation>Neues Verzeichnis eingeben</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Aktuelles Verzeichnis:</translation>
     </message>
@@ -1172,63 +1310,58 @@
         <translation>Verzeichnis suchen</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Arbeitsumgebung laden</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenster</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Befehlsfenster anzeigen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Befehlshistorie anzeigen</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation>Arbeitsumgebung anzeigen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation>Editor anzeigen</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation>Dokumentation anzeigen</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation>Befehlsfenster</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation>Befehlshistorie</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation>Arbeitsumgebung</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Dokumentation</translation>
     </message>
@@ -1244,23 +1377,51 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Neuigkeiten der Gemeinschaft</translation>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Fenster lösen</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Fenster verbergen</translation>
     </message>
@@ -1273,7 +1434,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Hilfe zu</translation>
     </message>
@@ -1283,7 +1444,7 @@
         <translation>Dokumentation zu</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Bearbeite</translation>
     </message>
@@ -1296,7 +1457,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation>Ja</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation>Nein</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation>Die Datei
+%1
+existiert nicht. Soll sie erzeugt werden?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation>Octave Editor</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>Die Datei %1 exisitiert nicht im Suchpfad. Um die editierte Funktion zu debuggen, muss entweder in das Verzeichnis %2 gewechselt werden oder dieses Verzeichnis dem Suchpfad hinzugefügt werden.</translation>
     </message>
@@ -1327,6 +1514,31 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation>Die Konfigurationsdatei
+%1
+existiert nicht und kann nicht angelegt werden.
+Stellen Sie sicher, daß Sie Lese- und Schreibrechte für
+%2
+besitzen.
+Die Octave Benutzeroberfläche muss jetzt geschlossen werden.</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation>Kritischer Octave Fehler</translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1354,17 +1566,7 @@
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Leerzeichen</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Keine Leerzeichen der Einrückung anzeigen</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
@@ -1399,12 +1601,7 @@
         <translation>Rücktaste entfernt Einrückung</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Anzahl der Zeichen bis Vorschlagliste angezeigt wird</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Schlüsselwörter berücksichtigen</translation>
     </message>
@@ -1429,37 +1626,17 @@
         <translation>Editor Dateien der letzten Sitzung wiederherstellen</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Nicht existente Dateien ohne Nachfrage erzeugen</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Externen Editor verwenden</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Befehl (%f=Datei, %l=Zeiel):</translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation>Editor Stile</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Schriftart, -größe (als Differenz zur Standardgröße), -format (fett, kursiv, unterstrichen),  Vorder- und Hintergrundfarbe festlegen (für die Hintergrundfarbe stellt die Farbe Pink (255,0,255) einen Platzhalter für die Standardhintergrundfarbe dar)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Vordergrundfarbe verwenden</translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Farben des Befehlsfensters</translation>
     </message>
@@ -1494,12 +1671,42 @@
         <translation>Grafische Icons</translation>
     </message>
     <message>
-        <location line="+633"/>
+        <location line="+55"/>
+        <source>Show whitespace</source>
+        <translation>Leerzeichen anzeigen</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation>Leerzeichen der Einrückung nicht anzeigen</translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation>Anzahl der eingegebenen Zeichen bis Vervollständigungsliste</translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation>Nicht existierende Dateien ohne Nachfrage anlegen</translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation>Kommandozeile (%f=Datei, %l=Zeile):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Befehlsfenster</translation>
     </message>
@@ -1514,7 +1721,12 @@
         <translation>Blinkender Cursor</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation>Vordergrundfarbe verwenden</translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Schriftgröße</translation>
     </message>
@@ -1544,12 +1756,7 @@
         <translation>Versteckte Dateien anzeigen</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Verzeichnisse von Octave und des Dateibrowsers synchronisieren</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Alternierende Farben für die Zeilen verwenden</translation>
     </message>
@@ -1569,22 +1776,22 @@
         <translation>Netzwerk</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation>Octave erlauben Neuigkeiten und Informationen von der Octave Webseite anzuzeigen</translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Proxy-Server verwenden</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Proxy Typ:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>HTTP Proxy</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Icons der Unterfenster</translation>
     </message>
@@ -1599,7 +1806,12 @@
         <translation>Icongröße</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation>Octave Arbeitsverzeichnis und Dateibrowser synchronisieren</translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>Socks5Proxy</translation>
     </message>
@@ -1609,7 +1821,12 @@
         <translation>Hostname:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation>Proxy Typ:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Port:</translation>
     </message>
@@ -1624,14 +1841,14 @@
         <translation>Passwort:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Systemeinstellung</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>IBeam-Cursor</translation>
     </message>
@@ -1646,7 +1863,7 @@
         <translation>Unterstrichener Cursor</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Differenz zur Standardgröße</translation>
     </message>
@@ -1672,6 +1889,50 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation>Neuigkeiten der Gemeinschaft</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation>Zurück</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation>Weiter</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1682,7 +1943,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Suchbegriff eingeben und mit &apos;Enter&apos; die Suche starten</translation>
     </message>
@@ -1695,57 +1956,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Willkommen zu GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Willkommen zu Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Die grafische Nutzerschnittstelle von Octave wird offenbar das erste Mal gestartet. Ein Klick auf &apos;Beenden&apos; erstellt eine Standard-Konfigurationsdatei und startet Octave GUI.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>Die Konfigurationsdatei wird in %1 gespeichert. Wenn diese Datei existiert, erscheint dieser Dialog beim nächsten Start von Octave nicht mehr.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Für mehr Informationen über Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Besuchen Sie &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Holen Sie sich die Dokumentation online als &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt; oder &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-Dokument&lt;/li&gt;
-&lt;li&gt;Öffnen Sie den Dokumentations-Browser von Octave GUI im Hilfe-Menü&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Beenden</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1775,10 +1989,16 @@
         <translation>Speicherklasse</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Rechtsklick zum Kopieren, Umbenennen oder Anzeigen</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation>komplex</translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1793,7 +2013,7 @@
         <translation>Sehen Sie die Variablen ein, die sich in der aktiven Arbeitsumgebung befinden.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
--- a/libgui/languages/en_US.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/en_US.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42,7 +42,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation type="unfinished"></translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation type="unfinished"></translation>
     </message>
@@ -104,21 +104,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -130,12 +141,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -195,7 +206,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation type="unfinished"></translation>
     </message>
@@ -206,22 +217,22 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
+        <source>&amp;Next Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
+        <source>Pre&amp;vious Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
+        <source>Toggle &amp;Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
+        <source>&amp;Remove All Breakpoints</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -235,12 +246,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation type="unfinished"></translation>
     </message>
@@ -260,7 +281,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation type="unfinished"></translation>
     </message>
@@ -280,38 +301,33 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation type="unfinished"></translation>
     </message>
@@ -321,7 +337,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -331,12 +347,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation type="unfinished"></translation>
     </message>
@@ -349,7 +365,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation type="unfinished"></translation>
     </message>
@@ -359,12 +375,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -374,16 +391,16 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -391,19 +408,19 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -417,13 +434,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -431,7 +458,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation type="unfinished"></translation>
     </message>
@@ -446,27 +473,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -481,35 +508,55 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation type="unfinished"></translation>
     </message>
@@ -539,7 +586,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation type="unfinished"></translation>
     </message>
@@ -549,7 +596,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -560,40 +607,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation type="unfinished"></translation>
@@ -604,13 +651,61 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -693,7 +788,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation type="unfinished"></translation>
     </message>
@@ -716,7 +811,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation type="unfinished"></translation>
     </message>
@@ -731,12 +826,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -756,7 +851,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation type="unfinished"></translation>
     </message>
@@ -766,7 +861,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation type="unfinished"></translation>
     </message>
@@ -776,7 +871,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -791,17 +886,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+5"/>
+        <source>Text to match</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+4"/>
-        <source>Text to match</source>
+        <source>Text case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -811,7 +906,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -846,7 +941,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -859,7 +954,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation type="unfinished"></translation>
     </message>
@@ -877,12 +972,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -892,7 +987,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -902,26 +997,54 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+2"/>
+        <source>Create script</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+1"/>
-        <source>Create script</source>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation type="unfinished"></translation>
     </message>
@@ -941,12 +1064,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -961,7 +1084,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -981,13 +1104,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1002,12 +1125,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1042,52 +1170,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
+        <location line="-94"/>
+        <source>Step In</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1137,7 +1255,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation type="unfinished"></translation>
     </message>
@@ -1152,63 +1270,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1224,23 +1337,51 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1253,7 +1394,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1263,7 +1404,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1276,7 +1417,31 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1307,6 +1472,25 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1334,17 +1518,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1379,12 +1553,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1409,37 +1578,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1474,12 +1623,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+633"/>
+        <location line="+55"/>
+        <source>Show whitespace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1494,7 +1673,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1524,12 +1708,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1549,22 +1728,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1579,7 +1758,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1589,7 +1773,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1604,14 +1793,14 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1626,7 +1815,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1652,6 +1841,50 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1662,7 +1895,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1675,46 +1908,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1744,10 +1941,16 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1762,7 +1965,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
--- a/libgui/languages/es_ES.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/es_ES.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Seleccionar todo</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>persistente</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>primer plano</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1526"/>
         <source>copied selection to clipboard</source>
         <translation>selección copiada al portapapeles</translation>
     </message>
@@ -104,21 +104,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Editor de Octave</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Archivos de Octave (*.m);;Todos los archivos (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation>Nombre de función nueva:</translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -130,12 +141,12 @@
         <translation>La pestaña para la edición del archivo ha desaparecido.  Es probable que se haya cerrado por algún medio.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>Archivo &amp;nuevo</translation>
     </message>
@@ -195,7 +206,7 @@
         <translation>Marcador &amp;anterior</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>&amp;Alternar marcadores</translation>
     </message>
@@ -206,22 +217,22 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>Punto de interrupción &amp;siguiente </translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation>Punto de interrupción &amp;siguiente</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>Punto de interrupción &amp;anterior</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation>Punto de interrupción &amp;previo</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
+        <source>Toggle &amp;Breakpoint</source>
         <translation>&amp;Alternar puntos de interrupción</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
+        <source>&amp;Remove All Breakpoints</source>
         <translation>&amp;Remover todos los puntos de interrupción</translation>
     </message>
     <message>
@@ -235,12 +246,22 @@
         <translation>&amp;Eliminar comentario</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation>Guardar archivo y ejecutar</translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>Archivos &amp;recientes</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation>Nueva&amp;función</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>&amp;Editar función</translation>
     </message>
@@ -260,7 +281,7 @@
         <translation>Cerrar otros archivos</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Ejecutar &amp;Selección</translation>
     </message>
@@ -280,26 +301,26 @@
         <translation>&amp;Documentación de palabras clave</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Buscar y reemplazar</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
         <translation>No se ha podido abrir el archivo %1 para lectura: %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
         <translation>El archivo %1 no existe. ¿Desea crearlo?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -308,12 +329,7 @@
 para escritura: %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Guardar archivo y ejecutar</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>&amp;Ir a línea</translation>
     </message>
@@ -323,7 +339,7 @@
         <translation>&amp;Archivo</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -333,12 +349,12 @@
         <translation>&amp;Preferencias</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>Preferencias de &amp;estilos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Depurar</translation>
     </message>
@@ -351,7 +367,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+759"/>
         <source>Goto line</source>
         <translation>Ir a línea</translation>
     </message>
@@ -361,7 +377,7 @@
         <translation>Número de línea</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;sin nombre&gt;</translation>
     </message>
@@ -448,27 +464,27 @@
         <translation>Introduzca la dirección o el nombre del archivo </translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Subir un directorio</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation>Mostrar el directorio de Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation>Ir al directorio actual de Octave</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Fijar el directorio de Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Fijar directorio de Octave como directorio actual del explorador</translation>
     </message>
@@ -483,35 +499,35 @@
         <translation>Mostrar el directorio de inicio </translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Buscar directorio</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+257"/>
         <source>Find Files ...</source>
         <translation>Buscar archivos ...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-253"/>
+        <location line="+266"/>
         <source>New File</source>
         <translation>Archivo nuevo</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-263"/>
+        <location line="+266"/>
         <source>New Directory</source>
         <translation>Directorio nuevo</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Haga.doble clic sobre un archivo para abrirlo</translation>
+        <location line="-237"/>
+        <source>Double-click a file to open it</source>
+        <translation>Pulse dos veces en un archivo para abrirlo</translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+198"/>
         <source>Open</source>
         <translation>Abrir</translation>
     </message>
@@ -541,7 +557,7 @@
         <translation>Fijar directorio actual</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Renombrar</translation>
     </message>
@@ -551,7 +567,7 @@
         <translation>Eliminar</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Renombrar archivo/directorio</translation>
     </message>
@@ -562,40 +578,40 @@
         <translation>Renombrar archivo/directorio:</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>\n a: </translation>
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Eliminar archivo/directorio</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>¿Está seguro que desea eliminar\n</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>No se puede eliminar un directorio que no esté vacio</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+137"/>
         <source>Set directory of file browser</source>
         <translation>Fijar directorio de explorador de archivos</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Crear archivo</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Crear archivo en</translation>
@@ -606,13 +622,79 @@
         <translation>Crear directorio</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Crear carpeta en</translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+234"/>
+        <source>Enjoy!</source>
+        <translation>Que lo disfrutes!</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation>Previo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation>Terminar</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Esperamos que Octave haya sido una herramienta para usted.&lt;/p&gt;
+&lt;p&gt;Si ha encontrado problemas, existen varias opciones para obtener ayuda incluyendo soporte comercial, una lista de correo electrónico, una página wiki y otros canales de soporte basados en la comunidad.
+Usted puede encontrar mas información acerca de estas opciones visitando &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (abre en un navegador externo).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Para más información acerca de Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (abre en un navegador externo)&lt;/li&gt;
+&lt;li&gt;Obtenga la documentación en linea en formato &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- o como &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;documento&lt;/span&gt;&lt;/a&gt;-pdf(abre en un navegador externo)&lt;/li&gt;
+&lt;li&gt;Abra el navegador de la documentación de la GUI de Octave con el menú de ayuda&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;
+
+
+</translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -695,7 +777,7 @@
         <translation>Buscar desde el inicio</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Reemplazar resultado</translation>
     </message>
@@ -718,7 +800,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Buscar archivos</translation>
     </message>
@@ -733,12 +815,12 @@
         <translation>Introducir la expresión del nombre de archivo</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Iniciar en:</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Introducir directorio de inicio</translation>
     </message>
@@ -758,7 +840,7 @@
         <translation>Explorar directorios recursivamente </translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Buscar recursivamente archivos que coincidan en los directorios</translation>
     </message>
@@ -768,7 +850,7 @@
         <translation>Incluir directorios</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Incluir directorios que coicidan en los resultados de la búsqueda </translation>
     </message>
@@ -778,7 +860,7 @@
         <translation>Distinguir mayúsculas/minúsculas en nombre  </translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Establecer distinción entre mayúsculas y minúsculas en el nombre  </translation>
     </message>
@@ -793,17 +875,17 @@
         <translation>La búsqueda debe coincidir con el texto</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Texto a coincidir </translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Text case insensitive</source>
         <translation>Distinguir mayúsculas/minúsculas en texto </translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set text content is case insensitive</source>
         <translation>Establecer distinción entre mayúsculas y minúsculas en el texto</translation>
     </message>
@@ -813,7 +895,7 @@
         <translation>Resultados de la búsqueda</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Inactivo.</translation>
     </message>
@@ -848,7 +930,7 @@
         <translation>Contenido del archivo</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
@@ -861,7 +943,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Nombre de archivo</translation>
     </message>
@@ -879,12 +961,12 @@
         <translation>Explorar y buscar en el historial de comandos.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Haga doble clic para transferir el comando a la terminal.</translation>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation>Pulse dos veces un comando para transferirlo a la terminal.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Introduzca texto para filtrar el historial de comandos.</translation>
     </message>
@@ -894,7 +976,7 @@
         <translation>Historial de comandos</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -904,27 +986,61 @@
         <translation>Evaluar</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translatorcomment>Ha sido utilizada la traducción &quot;guión&quot; de script: http://es.wikipedia.org/wiki/Script#Traducci.C3.B3n</translatorcomment>
         <translation>Crear un guión</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-215"/>
+        <source>Welcome to Octave!</source>
+        <translation>¡Bienvenido a Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation>Siguiente</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Al parecer usted utiliza la interface gráfica de Octave por primera vez en esta computadora.
+Pulse &apos;Siguiente&apos; para crear un archivo de configuración e iniciar Octave.&lt;/p&gt;
+&lt;p&gt;El archivo de configuración ha sido guardado en %1.  Si el archivo ya existe, usted no verá este diálogo cuando Octave inicie.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
+
+</translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Cargar espacio de trabajo</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Acerca de Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>&amp;Archivo</translation>
     </message>
@@ -945,12 +1061,12 @@
         <translation>Función</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Figura</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Abrir...</translation>
     </message>
@@ -965,7 +1081,7 @@
         <translation>Salir</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -985,13 +1101,13 @@
         <translation>Pegar</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation>Guardar espacio de trabajo como</translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation>El archivo de las notas de versión %1 está vacío.</translation>
     </message>
@@ -1006,12 +1122,17 @@
         <translation>Notas de la versión de Octave</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation>Noticas de la comunidad Octave</translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Fijar directorio de trabajo</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Limpiar el Portapapeles</translation>
     </message>
@@ -1046,52 +1167,42 @@
         <translation>Siguiente instrucción </translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Entrar en una función</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Salir de una función</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation>Salir del modo de depuración</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation>Mostrar explorador de archivos</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Mostrar ventana de noticias</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation>Explorador de archivos</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Noticias</translation>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation>Iniciar</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation>Terminar</translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Reestablecer esquema de ventana predeterminado</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Paquetes de Octave</translation>
     </message>
@@ -1141,7 +1252,7 @@
         <translation>Introducir nombre de directorio</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Directorio actual:</translation>
     </message>
@@ -1156,63 +1267,58 @@
         <translation>Explorar directorios</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Cargar espacio de trabajo</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Ventana</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Mostrar ventana de comandos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Mostrar historial de comandos</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation>Mostrar espacio de trabajo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation>Mostrar editor</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation>Mostrar documentación</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation>Ventana de comandos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation>Historial de comandos</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation>Espacio de trabajo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Documentación</translation>
     </message>
@@ -1228,24 +1334,76 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
+    <message>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Las fuentes de noticias de la comunidad Octave al parecer no están disponibles.
+&lt;/p&gt;
+&lt;p&gt;
+Para las últimas novedades, visite
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+cuando tenga conexión a la web (la liga abre en un navegador externo).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Los desarrolladores de Octave,</translation>
+    </message>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Noticias de la comunidad</translation>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+La conexión a la web para desplegar las últimas novedades sobre Octave ha sido desactivada.
+&lt;/p&gt;
+&lt;p&gt;
+Para ver las últimas novedades vea
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+cuando tenga conexión a la web (la liga abre en un navegador externo)
+o active las conexiones de web para ver las novedades en el dialogo de configuración de red de Octave
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Los desarrolladores de Octave,
+</translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translatorcomment>Uso &quot;widget&quot; por ser el término usual: http://es.wikipedia.org/wiki/Widget</translatorcomment>
         <translation>Desacoplar widget</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translatorcomment>Uso &quot;widget&quot; por ser el término usual: http://es.wikipedia.org/wiki/Widget</translatorcomment>
         <translation>Ocultar widget</translation>
@@ -1260,7 +1418,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Ayuda sobre</translation>
     </message>
@@ -1270,7 +1428,7 @@
         <translation>Documentación sobre</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Editar</translation>
     </message>
@@ -1283,7 +1441,31 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation>Sí</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation>No</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation>El archivo %1 no existe. ¿Desea crearlo?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation>Editor de Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translatorcomment>Uso la traducción &quot;ruta&quot; para &quot;path&quot;: http://es.wikipedia.org/wiki/Ruta_(informática)</translatorcomment>
         <translation>El archivo %1 no existe en la ruta de carga.  Para depurar la función que acualmente edita, tiene que cambiar ya sea el directorio %2 o agregar ese directorio a la ruta de carga.</translation>
@@ -1316,6 +1498,25 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation>Error crítico de Octave</translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1348,17 +1549,7 @@
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Mostrar espacios en blanco</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>No mostrar espacios en blanco de sangría</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Color</translation>
     </message>
@@ -1393,12 +1584,7 @@
         <translation>Tecla de retroceso quita sangría</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Caracteres mostrados antes de la lista de sugerencias</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Coincidir en palabras clave</translation>
     </message>
@@ -1423,37 +1609,17 @@
         <translation>Restaurar las pestañas del editor de la sesión anterior en el arranque </translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Crear archivos no existentes sin preguntar</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Utilizar editor de archivos personalizado</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Línea de comando (%f=archivo,%l=línea):</translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation>Estilos del editor</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seleciona tipo de fuente, Tamaño de fuente (a diferencia del tamaño predeterminado), decoración de la fuente (negrita, cursiva, subrayada), color del texto y color del fondo  (para este último, el color rosa (255,0,255) es el color predeterminado)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Utilizar color de primer plano </translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Colores de la terminal</translation>
     </message>
@@ -1483,12 +1649,42 @@
         <translation>Mostrar ruta completa en el título de la ventana</translation>
     </message>
     <message>
-        <location line="+561"/>
+        <location line="-17"/>
+        <source>Show whitespace</source>
+        <translation>Mostras espacios en blanco</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation>No mostrar los espacios en blanco usados para la sangría</translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation># de caracteres pulsados antes de completar la lista desplegada</translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation>Crear archivos no existente sin inicialización</translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation>linea de comando(%f=archivo, %l=linea):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seleccione fuente, Tamaño de fuente (a diferencia del tamaño por defecto), estilo de fuente (negrita, cursiva, subrayada), color de texto y color de fondo(para este último, el color rosa (255,0,255) es un marcador de posición para el color de fondo por defecto)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
@@ -1503,7 +1699,12 @@
         <translation>Cursor parpadeante</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation>Usar color de primer plano</translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Tamaño de fuente</translation>
     </message>
@@ -1533,12 +1734,7 @@
         <translation>Mostrar archivos ocultos</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Sincronizar el directorio de Octave con el explorador de archivos</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Alternar colores de filas</translation>
     </message>
@@ -1558,22 +1754,22 @@
         <translation>Red</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation>Permitir a Octave la conexión al sitio web para desplegar las últimas noticias e información</translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Utilizar servidor &quot;proxy&quot;</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Tipo de proxy:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>HttpProxy</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Íconos para widget acoplados</translation>
     </message>
@@ -1588,7 +1784,12 @@
         <translation>Tamaño de ícono</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation>Sincronizar el directorio de trabajo de Octave con el explorador de archivos</translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>&quot;Socks5Proxy&quot;</translation>
     </message>
@@ -1598,7 +1799,12 @@
         <translation>Nombre del host:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation>Tipo de proxy:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Puerto:</translation>
     </message>
@@ -1613,14 +1819,14 @@
         <translation>Contraseña:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Configuración del sistema</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>cursor IBeam</translation>
     </message>
@@ -1635,7 +1841,7 @@
         <translation>cursor subrayado</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Diferencia con el tamaño predeterminado</translation>
     </message>
@@ -1661,6 +1867,61 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+60"/>
+        <source>Community News</source>
+        <translation>Noticias de la comunidad</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation>Previo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation>Siguiente</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Cuando la GUI de Octave inicia, checará el sitio web de Octave para obtener novedades e información acerca de la comunidad Octave.
+Esta verificación se haŕa una vez cada día como máximo y las noticias serán solamente desplegadas solo si hay algo nuevo desde la última que se vieron las noticias.&lt;/p&gt;
+&lt;p&gt;Usted también puede revisar las noticias seleccionando &quot;Noticias de la Comunidad&quot; en el menú de ayuda en la GUI, o visitando
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Permitir la conexión con el sitio web de Octave al arranque para desplegar novedades e información acerca de la comunidad Octave.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1671,7 +1932,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Escriba aquí y pulse la tecla de &apos;Retorno&apos; para buscar</translation>
     </message>
@@ -1684,57 +1945,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+170"/>
         <source>Welcome to GNU Octave</source>
         <translation>Bienvenido a GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>¡Bienvenido a Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Al parecer usted utilza la interfaz gráfica de Octave por primera vez en este dispositivo de cómputo.  Presione el botón &apos;Finalizar&apos; para escribir un archivo de configuración e iniciar Octave GUI.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>El archivo de configuración ha sido guardado en %1. Si ese archivo existe, usted no verá este diálogo cuando Octave comience de nuevo.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Para mas información acerca de Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Obtenga la información en linea como &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- o &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;documento &lt;/span&gt;&lt;/a&gt;-pdf&lt;/li&gt;
-&lt;li&gt;Abrir el navegador de la documentación de octave GUI con el menú de ayuda&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Terminar</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1764,10 +1978,16 @@
         <translation>Clase de almacenamiento</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Clic derecho para copiar, renombrar o mostrar</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation>complejo</translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1782,7 +2002,7 @@
         <translation>Ver variables en el espacio de trabajo activo.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
--- a/libgui/languages/fr_FR.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/fr_FR.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Tout sélectionner</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>persistant</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>avant plan</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Copier</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>sélection copiée vers le presse-papier</translation>
     </message>
@@ -104,21 +104,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Éditeur d&apos;Octave</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Fichiers d&apos;Octave (*.m);;Tous les fichiers (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -132,12 +143,12 @@
         <translation>L&apos;onglet éditeur de fichier associé a disparu. Il a probablement été fermé par un moyen quelconque.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>&amp;Nouveau</translation>
     </message>
@@ -197,7 +208,7 @@
         <translation>Marque page &amp;précédent</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>Basculer &amp;marque page</translation>
     </message>
@@ -208,23 +219,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>Point d&apos;arrêt &amp;suivant</translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>Point d&apos;arrêt &amp;précédent</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>&amp;Basculer point d&apos;arrêt</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>&amp;Enlever tout point d&apos;arrêt</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
@@ -237,12 +248,22 @@
         <translation>&amp;Décommenter</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>Fichiers &amp;récents</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>&amp;Editer Fonction</translation>
     </message>
@@ -262,7 +283,7 @@
         <translation>Fermer les autres fichiers</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Exécuter la &amp;Selection</translation>
     </message>
@@ -282,12 +303,12 @@
         <translation>Documentation sur le mot de clés</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Rechercher et remplacer</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -296,7 +317,7 @@
 pour lecture : %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -305,7 +326,7 @@
 n&apos;existe pas. Voulez-vous le créer.</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -314,12 +335,7 @@
 pour écrire : %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Enregistrer et exécuter</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>&amp;Aller à la ligne</translation>
     </message>
@@ -329,7 +345,7 @@
         <translation>&amp;Fichier</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editer</translation>
     </message>
@@ -339,12 +355,12 @@
         <translation>&amp;Préférences</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>Préférences de &amp;Style</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Déboguer</translation>
     </message>
@@ -357,7 +373,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation>Aller à la ligne</translation>
     </message>
@@ -367,12 +383,13 @@
         <translation>Numéro de ligne</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;sans nom&gt;</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Voulez-vous enregistrer ou supprimer les modifications ?</translation>
     </message>
@@ -382,16 +399,16 @@
         <translation>Voulez-vous annuler la fermeture, enregistrer ou supprimer les modifications ?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation>Éditeur d&apos;Octave</translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -402,12 +419,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Fichiers d&apos;Octave (*.m);;Tous les fichiers (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -416,7 +433,7 @@
 est le même que le nom du fichier courant</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -434,14 +451,24 @@
 a été supprimé ou rénommé. Voulez-vous l&apos;enregistrer maintenant ?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Impossible d&apos;ouvrir le fichier %1 pour écrire :
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Il semblerait que &apos;%1&apos; a été modifié par une autre application. Voulez-vous le récharger ?</translation>
     </message>
@@ -449,7 +476,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Explorateur de fichiers</translation>
     </message>
@@ -464,27 +491,27 @@
         <translation>Entrez le chemin ou le nom du fichier</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Remonter d&apos;un répertoire</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation>Revenir au répertoire d&apos;Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation>Aller au répertoire courant d&apos;Octave</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Définir le répertoire d&apos;Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Définir le répertoire du navigateur comme répertoire d&apos;Octave</translation>
     </message>
@@ -499,35 +526,55 @@
         <translation>Aller au répertoire personnel</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Rechercher dans le répertoire</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Rechercher des fichiers...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Nouveau fichier</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Nouveau répertoire</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Double cliquez sur un fichier pour l&apos;ouvrir</translation>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Ouvrir</translation>
     </message>
@@ -557,7 +604,7 @@
         <translation>Définir le répertoire courant</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Rénommer</translation>
     </message>
@@ -567,7 +614,7 @@
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Rénommer fichier/répertoire</translation>
     </message>
@@ -579,7 +626,7 @@
 </translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>
@@ -587,34 +634,34 @@
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Supprimer fichier/répertoire</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Etes-vous sûr de vouloir supprimer
 </translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Impossible de supprimer un répertoire qui n&apos;est pas vide</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation>Définir le répertoire de l&apos;explorateur de fichiers</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Créer un fichier</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Créer un fichier dans
@@ -626,7 +673,7 @@
         <translation>Créer un répertoire</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Créer un répertoire dans
@@ -634,6 +681,54 @@
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation type="unfinished">Fin</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -716,7 +811,7 @@
         <translation>Rechercher depuis le début</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Résultats du remplacement</translation>
     </message>
@@ -739,7 +834,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Rechercher des fichiers</translation>
     </message>
@@ -754,12 +849,12 @@
         <translation>Entrer le nom du fichier ou une expression</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Demarrer dans :</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Répetoire de démarrage</translation>
     </message>
@@ -779,7 +874,7 @@
         <translation>Parcourir récursivement les sous-répertoires</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Rechercher les fichiers recursivement dans les sous-répertoires</translation>
     </message>
@@ -789,7 +884,7 @@
         <translation>Inclure les répertoires</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Inclure les répertoires concordants dans des résultats de la recherche</translation>
     </message>
@@ -799,7 +894,7 @@
         <translation>Nom insensible à la casse</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Les noms concordant sont insensible à la casse</translation>
     </message>
@@ -814,17 +909,17 @@
         <translation>La recherche doit contenir le texte</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Texte à rechercher</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Text case insensitive</source>
         <translation>Texte insensible à la casse</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set text content is case insensitive</source>
         <translation>Le texte recherché est insensible à la casse</translation>
     </message>
@@ -834,7 +929,7 @@
         <translation>Résultats de la recherche</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Inoccupé.</translation>
     </message>
@@ -869,7 +964,7 @@
         <translation>Contenu du fichier</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Recherche en cours...</translation>
     </message>
@@ -882,7 +977,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Nom du fichier</translation>
     </message>
@@ -900,12 +995,12 @@
         <translation>Naviguer et rechercher l&apos;historique des commandes.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Double cliquez sur une commande pour la transférer vers le terminal.</translation>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Entrez du texte pour filtrer l&apos;historique des commandes.</translation>
     </message>
@@ -915,7 +1010,7 @@
         <translation>Historique des commandes</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Copier</translation>
     </message>
@@ -925,26 +1020,54 @@
         <translation>Évaluer</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Créer un fichier de script</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation type="unfinished">Bienvenu dans Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Charger l&apos;espace de travail</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>À propos d&apos;Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>&amp;Fichier</translation>
     </message>
@@ -964,12 +1087,12 @@
         <translation>Fonction</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Figure</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Ouvrir...</translation>
     </message>
@@ -984,7 +1107,7 @@
         <translation>Quitter</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editer</translation>
     </message>
@@ -1004,13 +1127,13 @@
         <translation>Coller</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation>Enregistrer l&apos;espace de travail sous</translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1025,12 +1148,17 @@
         <translation>Notes de la version d&apos;Octave</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Définir le répertoire de travail</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Effacer le presse-papiers</translation>
     </message>
@@ -1065,52 +1193,42 @@
         <translation>Avancer d&apos;un pas</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Avancer d&apos;un pas avec entrée</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Exécuter jusqu&apos;à l&apos;instruction de retour</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation>Continuer</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation>Sortir du mode débogage</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation>Afficher l&apos;explorateur de fichiers</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Afficher Fenêtre des Nouvelles</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation>Explorateur de fichiers</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Nouvelles</translation>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Rétablir la disposition par défaut des fenêtres</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Paquets d&apos;Octave</translation>
     </message>
@@ -1160,7 +1278,7 @@
         <translation>Entrez le nom du répertoire</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Répertoire courant : </translation>
     </message>
@@ -1175,63 +1293,58 @@
         <translation>Naviguer dans les répertoires</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Charger l&apos;espace de travail</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Fenêtre</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Afficher la fenêtre de commande</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Afficher l&apos;historique des commandes</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation>Afficher l&apos;espace de travail</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation>Afficher l&apos;éditeur</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation>Afficher la documentation</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation>Fenêtre de commande</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation>Historique des commandes</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation>Espace de travail</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Éditeur</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Documentation</translation>
     </message>
@@ -1247,23 +1360,51 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Nouvelles de la Communauté</translation>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Détacher le widget</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Cacher le widget</translation>
     </message>
@@ -1276,7 +1417,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Aide sur</translation>
     </message>
@@ -1286,7 +1427,7 @@
         <translation>Documentation sur</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Editer</translation>
     </message>
@@ -1299,7 +1440,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation type="unfinished">Le fichier
+%1
+n&apos;existe pas. Voulez-vous le créer.</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation type="unfinished">Éditeur d&apos;Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>Le fichier %1 n&apos;existe pas dans les chemins accessibles. Pour déboguer la fonction que vous éditez, vous devez soit modifier le répertoire pour %2 ou ajouter le répertoire aux chemins accessibles.</translation>
     </message>
@@ -1330,6 +1497,25 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1362,17 +1548,7 @@
         <translation>Éditeur</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Montrer les espaces</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Ne pas montrer les espaces utilisés pour l&apos;indentation</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Couleur</translation>
     </message>
@@ -1407,12 +1583,7 @@
         <translation>Backspace supprime l&apos;indentation</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Nombre de caracteres avant d&apos;afficher la liste de suggestions</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Inclure les mots clés</translation>
     </message>
@@ -1437,37 +1608,17 @@
         <translation>Restaurer les onglets de la session précédente</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Créer des fichiers non existants sans demander</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Utiliser un éditeur externe</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Ligne de commande (%f=fichier, %l=ligne) :</translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation>Affichage</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Choisir la police, la taille (différence avec à la taille par défaut), le style (gras, italique, souligné), la couleur du texte et du fond (pour ce dernier, la couleur rose [255,0,255] designe la couleur par défaut)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Utiliser la couleur du texte</translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Couleurs de la fenetre de commandes</translation>
     </message>
@@ -1497,12 +1648,42 @@
         <translation>Afficher le chemin complet dans le titre de la fenetre</translation>
     </message>
     <message>
-        <location line="+561"/>
+        <location line="-17"/>
+        <source>Show whitespace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
@@ -1517,7 +1698,12 @@
         <translation>Curseur clignotant</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Taille de police</translation>
     </message>
@@ -1547,12 +1733,7 @@
         <translation>Afficher les fichiers cachés</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Synchronizer le répertoire de travail avec le navigateur de fichiers</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Alterner les couleurs des lignes</translation>
     </message>
@@ -1572,22 +1753,22 @@
         <translation>Réseau</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Utiliser un serveur proxy</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Type de proxy :</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>Proxy HTTP</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Jeu d&apos;icones pour les widgets</translation>
     </message>
@@ -1602,7 +1783,12 @@
         <translation>Taille des icones</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>Proxy Socks5</translation>
     </message>
@@ -1612,7 +1798,12 @@
         <translation>Nom de l&apos;hote :</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Port :</translation>
     </message>
@@ -1627,14 +1818,14 @@
         <translation>Mot de passe :</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Reglages système</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>Curseur Trait Vertical</translation>
     </message>
@@ -1649,7 +1840,7 @@
         <translation>Curseur Tiret Bas</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Différence avec la taille par défaut</translation>
     </message>
@@ -1675,6 +1866,50 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation type="unfinished">Nouvelles de la Communauté</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Annuler</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1685,7 +1920,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Entrez le texte ici et appuyez sur &apos;Entrée&apos; pour lancer la recherche</translation>
     </message>
@@ -1698,59 +1933,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Bienvenu dans GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Bienvenu dans Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Il semble que vous exécutez l&apos;interface graphique d&apos;Octave pour la première fois sur cet ordinateur. Cliquez sur &apos;Fin&apos; pour écrire un fichier de configuration et lancez l&apos;interface graphique d&apos;Octave.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>Le fichier de configuration est stockée dans % 1. Si ce fichier existe, vous ne verrez pas cette boîte de dialogue lorsque d&apos;Octave recommence.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Pour plus d&apos;information sur d&apos;Octave :&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visiter &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Obtenir le documentation en ligne comme &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-
-;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Ouvrir le navigateur de documentation de l&apos;interface graphique d&apos;Octave avec le menu d&apos;aide.&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Fin</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1780,10 +1966,16 @@
         <translation>Type de stockage</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Cliquez droit pour copier, renommer ou afficher</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1798,7 +1990,7 @@
         <translation>Liste des variables dans l&apos;espace de travail.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Copier</translation>
     </message>
--- a/libgui/languages/nl_NL.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/nl_NL.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Alles selecteren</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>Blijvend</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>Voorgrond</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Kopiëren</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>selectie is naar klembord gekopieerd</translation>
     </message>
@@ -741,7 +741,7 @@
     <message>
         <location line="+6"/>
         <source>&amp;Paste</source>
-        <translation>Plakken</translation>
+        <translation>&amp;Plakken</translation>
     </message>
     <message>
         <location line="+4"/>
@@ -770,21 +770,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Octave bestanden (*.m);;Alle bestanden (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation>Nieuwe Functie</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation>Naam van nieuwe functie:</translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -798,12 +809,12 @@
         <translation>Het bijbehorende tabblad in de editor is verdwenen. Het is waarschijnlijk op een of andere manier gesloten.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>&amp;Nieuw Bestand</translation>
     </message>
@@ -863,7 +874,7 @@
         <translation>&amp;Vorige bladwijzer</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>&amp;Bladwijzer invoegen</translation>
     </message>
@@ -874,23 +885,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>Volge&amp;nd onderbreekpunt</translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation>Volge&amp;nd Breekpunt</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>&amp;Vorig onderbreekpunt</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation>&amp;Vorig Breekpunt</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>&amp;Onderbreekpunt invoegen</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation>Schakel &amp;Breekpunt om</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>Alle onderbreekpunten ve&amp;rwijderen</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation>Verwijde&amp;r Alle Breekpunten</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -903,14 +914,24 @@
         <translation>Zet om naar code</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation>Sla Bestand op en Voer uit</translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
-        <translation>Recent geopend</translation>
-    </message>
-    <message>
-        <location line="+9"/>
+        <translation>&amp;Recent geopend</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation>Nieuwe &amp;Functie</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
-        <translation>Edit functie</translation>
+        <translation>Pas Functie Aan</translation>
     </message>
     <message>
         <location line="+10"/>
@@ -928,32 +949,32 @@
         <translation>Andere bestanden sluiten</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Geselecteerde tekst uitvoeren</translation>
     </message>
     <message>
         <location line="+5"/>
         <source>&amp;Help</source>
-        <translation>Hulp</translation>
+        <translation>&amp;Hulp</translation>
     </message>
     <message>
         <location line="+2"/>
         <source>&amp;Help on Keyword</source>
-        <translation>Hulp bij sleutelwoord</translation>
+        <translation>&amp;Hulp bij sleutelwoord</translation>
     </message>
     <message>
         <location line="+3"/>
         <source>&amp;Documentation on Keyword</source>
-        <translation>Documentatie bij sleutelwoord</translation>
-    </message>
-    <message>
-        <location line="-147"/>
+        <translation>&amp;Documentatie bij sleutelwoord</translation>
+    </message>
+    <message>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>Zoek en Vervang</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -962,7 +983,7 @@
 niet openen om in te lezen: %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -971,7 +992,7 @@
 bestaat niet. Wilt u het laten aanmaken?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -980,12 +1001,7 @@
 niet openen om te schrijven: %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Bestand opslaan en uitvoeren</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>Ga naar regel</translation>
     </message>
@@ -995,7 +1011,7 @@
         <translation>Bestand</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>B&amp;ewerken</translation>
     </message>
@@ -1005,12 +1021,12 @@
         <translation>Voorkeuren</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
-        <translation>Stijlvoorkeuren</translation>
-    </message>
-    <message>
-        <location line="+3"/>
+        <translation>&amp;Stijlvoorkeuren</translation>
+    </message>
+    <message>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Debuggen</translation>
     </message>
@@ -1023,9 +1039,9 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
-        <translation>Ga naar regel ...</translation>
+        <translation>Ga naar regel</translation>
     </message>
     <message>
         <location line="+1"/>
@@ -1033,12 +1049,13 @@
         <translation>Regelnummer</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>naamloos</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Wil je de wijzigingen opslaan of niet?</translation>
     </message>
@@ -1048,16 +1065,16 @@
         <translation>Wil je niet meer afsluiten, danwel het gewijzigde of het originele bestand opslaan?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation></translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -1068,12 +1085,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Octave bestanden (*.m);;Alle bestanden (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -1082,7 +1099,7 @@
 is identiek aan de huidige bestandsnaam</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -1099,14 +1116,24 @@
 is gewist of hernoemd. Wil je het nu opslaan?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Kon bestand %1 niet openen om te schrijven:
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation>Regel:</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation>Kolom:</translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Het lijkt erop dat &apos;%1&apos; is gewijzigd door een ander programma. Wil je het opnieuw laden?</translation>
     </message>
@@ -1114,7 +1141,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Bestandsbrowser</translation>
     </message>
@@ -1129,27 +1156,27 @@
         <translation>Voer pad- of bestandsnaam in</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Eén mapniveau omhoog</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Show octave directory</source>
-        <translation>Laat octave map zien</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Goto current octave directory</source>
-        <translation>Ga naar huidige octave map</translation>
-    </message>
-    <message>
         <location line="+4"/>
+        <source>Show octave directory</source>
+        <translation>Laat octave map zien</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Goto current octave directory</source>
+        <translation>Ga naar huidige octave map</translation>
+    </message>
+    <message>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Stel octave map in</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Maak huidige browser map de Octave map</translation>
     </message>
@@ -1164,35 +1191,55 @@
         <translation>Laat home map zien</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Zoek in map</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Zoek bestanden ...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Nieuw bestand</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Nieuwe map</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Dubbelklik op bestandsnaam om te openen</translation>
-    </message>
-    <message>
-        <location line="+185"/>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation>Dubbelklik een bestand om te openen</translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation>Bestandsgrootte</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation>Bestandstype</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation>Laatst gewijzigd</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation>Verborgen bestanden weergeven</translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Open</translation>
     </message>
@@ -1222,7 +1269,7 @@
         <translation>Stel huidige map in</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Hernoemen</translation>
     </message>
@@ -1232,7 +1279,7 @@
         <translation>Verwijderen</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Hernoem bestand/map</translation>
     </message>
@@ -1240,11 +1287,11 @@
         <location line="+1"/>
         <source>Rename file/directory:
 </source>
-        <translation>Hernoem bestand
+        <translation>Hernoem bestand/map:
 </translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>
@@ -1252,34 +1299,34 @@
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Wis bestand/map</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Weet u zeker dat u dit wilt verwijderen:
 </translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Kan een niet-lege map niet wissen</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation>Stel file browser map in</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Maak nieuw bestand</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Maak nieuw bestand in
@@ -1291,7 +1338,7 @@
         <translation>Maak nieuwe map</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Maak nieuwe map in
@@ -1299,6 +1346,70 @@
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation>Veel plezier!</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation>Vorige</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation>Voltooien</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Afbreken</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hopen dat je Octave handig vindt.&lt;/p&gt;
+&lt;p&gt;Als je problemen tegenkomt zijn er verschillende manieren om hulp te krijgen waaronder commerciële edities met ondersteuning, een mailinglijst, een wiki en andere community-gebaseerde ondersteuningskanalen.
+Meer informatie hierover kan je vinden op &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opent in een nieuw venster).&lt;\p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translatorcomment>Ben over de laatste zin niet helemaal zeker.</translatorcomment>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Voor meer informatie over Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Bezoek &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opent in een nieuw venster)&lt;/li&gt;
+&lt;li&gt;Bekijk de online documentatie als &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- of &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opent in een nieuw venster)&lt;/li&gt;
+&lt;li&gt;Open de documentatie van Octave via het help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -1381,7 +1492,7 @@
         <translation>Zoeken vanaf begin</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Resultaat vervangen</translation>
     </message>
@@ -1404,7 +1515,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Zoek bestanden</translation>
     </message>
@@ -1419,12 +1530,12 @@
         <translation>Voer de bestandnaam-expressie in</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Begin in:</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Geef startmap op</translation>
     </message>
@@ -1444,7 +1555,7 @@
         <translation>Ook in onderliggende mappen</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Zoek ook in onderliggende mappen naar overeenkomende bestanden</translation>
     </message>
@@ -1454,7 +1565,7 @@
         <translation>Neem mappen ook mee</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Neem overeenkomende mappen mee in zoekresultaten</translation>
     </message>
@@ -1464,7 +1575,7 @@
         <translation>Niet-hoofdlettergevoelige naam</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Naam instellen op niet-hoofdlettergevoelig</translation>
     </message>
@@ -1479,17 +1590,17 @@
         <translation>Zoeken naar overeenkomende tekst</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Overeen te komen tekst</translation>
     </message>
     <message>
+        <location line="+4"/>
+        <source>Text case insensitive</source>
+        <translation>Niet-hoofdlettergevoelige tekst</translation>
+    </message>
+    <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation>Niet-hoofdlettergevoelige tekst</translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
         <translation>Tekst instellen op niet-hoofdlettergevoelig</translation>
     </message>
@@ -1499,7 +1610,7 @@
         <translation>Zoekresultaten</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Niet bezig.</translation>
     </message>
@@ -1534,7 +1645,7 @@
         <translation>Inhoud van bestand</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Bezig met zoeken...</translation>
     </message>
@@ -1547,7 +1658,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Bestandsnaam</translation>
     </message>
@@ -1565,12 +1676,12 @@
         <translation>Bladeren en zoeken door de opdrachtgeschiedenis.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Dubbelklik op een opdracht om het naar de terminal te sturen.</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation>Dubbelklik een commando om het naar de terminal te sturen.</translation>
+    </message>
+    <message>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Voer tekst in om de opdrachtgeschiedenis mee te filteren.</translation>
     </message>
@@ -1580,7 +1691,7 @@
         <translation>Opdrachtgeschiedenis</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Kopiëren</translation>
     </message>
@@ -1590,26 +1701,58 @@
         <translation>Werk uit</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Nieuw script</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation>Welkom bij Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation>Volgende</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Afbreken</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Het lijkt erop dat je de grafische interface van Octave voor het eerst gebruikt op deze computer.
+Klik &apos;Volgende&apos; om een configuratiebestand aan te maken en Octave te starten.&lt;/p&gt;
+&lt;p&gt;Het configuratiebestand is opgeslagen in %1. Als dat bestand bestaat, zal je dit dialoogscherm niet zien wanneer Octave start.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Werkruimte laden</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Over Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>Bestand</translation>
     </message>
@@ -1629,12 +1772,12 @@
         <translation>Functie</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Figuur</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Open...</translation>
     </message>
@@ -1649,7 +1792,7 @@
         <translation>Afsluiten</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>B&amp;ewerken</translation>
     </message>
@@ -1669,13 +1812,13 @@
         <translation>Plakken</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
-        <translation>Bewaar werkruimte als ...</translation>
-    </message>
-    <message>
-        <location line="-826"/>
+        <translation>Sla Werkruimte Op Als</translation>
+    </message>
+    <message>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation>Bestand met Release Notes &apos;%1&apos; is leeg.</translation>
     </message>
@@ -1690,12 +1833,17 @@
         <translation>Octave Release Notes</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation>Octave Community Nieuws</translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Stel werkmap in</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Wis klembord</translation>
     </message>
@@ -1730,52 +1878,42 @@
         <translation>Volgende opdracht</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Stap naar binnen</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Stap naar buiten</translation>
+        <location line="+12"/>
+        <source>Continue</source>
+        <translation>Doorgaan</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Exit Debug Mode</source>
+        <translation>Debuggen afsluiten</translation>
+    </message>
+    <message>
+        <location line="+51"/>
+        <source>Show File Browser</source>
+        <translation>Laat bestandsbrowser zien</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>File Browser</source>
+        <translation>Bestandsbrowser</translation>
+    </message>
+    <message>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation>Stap In</translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>Continue</source>
-        <translation>Doorgaan</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Exit Debug Mode</source>
-        <translation>Debuggen afsluiten</translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>Show File Browser</source>
-        <translation>Laat bestandsbrowser zien</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Laat Nieuwsvenster zien</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>File Browser</source>
-        <translation>Bestandsbrowser</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Nieuws</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <source>Step Out</source>
+        <translation>Stap Uit</translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Stel oorspronkelijke window layout opnieuw in</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Octave packages</translation>
     </message>
@@ -1807,7 +1945,7 @@
     <message>
         <location line="+12"/>
         <source>&amp;News</source>
-        <translation>Nieuws</translation>
+        <translation>&amp;Nieuws</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -1825,7 +1963,7 @@
         <translation>Geef mapnaam op</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Huidige map:</translation>
     </message>
@@ -1840,70 +1978,65 @@
         <translation>Blader door mappen</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Werkruimte laden</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>Venster</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Opdrachtvenster weergeven</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Opdrachtgeschiedenis weergeven</translation>
     </message>
     <message>
+        <location line="+8"/>
+        <source>Show Workspace</source>
+        <translation>Werkruimte weergeven</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Editor</source>
+        <translation>Editor weergeven</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Documentation</source>
+        <translation>Documentatie weergeven</translation>
+    </message>
+    <message>
         <location line="+6"/>
-        <source>Show Workspace</source>
-        <translation>Werkruimte weergeven</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Editor</source>
-        <translation>Editor weergeven</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Documentation</source>
-        <translation>Documentatie weergeven</translation>
+        <source>Command Window</source>
+        <translation>Opdrachtvenster</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Command History</source>
+        <translation>Opdrachtgeschiedenis</translation>
     </message>
     <message>
         <location line="+8"/>
-        <source>Command Window</source>
-        <translation>Opdrachtvenster</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Command History</source>
-        <translation>Opdrachtgeschiedenis</translation>
-    </message>
-    <message>
-        <location line="+6"/>
         <source>Workspace</source>
         <translation>Werkruimte</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Documentatie</translation>
     </message>
     <message>
         <location line="-48"/>
         <source>&amp;Help</source>
-        <translation>Hulp</translation>
+        <translation>&amp;Hulp</translation>
     </message>
     <message>
         <location line="+7"/>
@@ -1912,23 +2045,74 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
-    <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation> Community nieuws</translation>
+    <name>news_reader</name>
+    <message>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+De Octave community nieuwsbron lijkt onbeschikbaar te zijn.
+&lt;/p&gt;
+&lt;p&gt;
+Kijk voor het laatste nieuws op
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+wanneer je een internetverbinding hebt (link opent in een nieuw scherm).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; De Octave Ontwikkelaars,</translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Verbinden met het internet om het laatste Octave Community nieuws te laten zien is uitgeschakeld.
+&lt;/p&gt;
+&lt;p&gt;
+Kijk voor het laatste nieuws op
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+wanneer je een verbinding met het internet hebt (link opent in een nieuw scherm)
+of schakel de internetverbinding voor nieuws aan in de netwerkinstellingen van Octave.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; De Octave Ontwikkelaars,</translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Widget laten zweven</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Widget verbergen</translation>
     </message>
@@ -1941,7 +2125,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Help over</translation>
     </message>
@@ -1951,7 +2135,7 @@
         <translation>Documentatie over</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Edit</translation>
     </message>
@@ -1964,7 +2148,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation>Ja</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation>Nee</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation>Bestand
+%1
+bestaat niet. Wilt u het aanmaken?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>Het bestand %1 is niet in zoekpad.  Om de functie die je edit te debuggen moet je òf naar debetreffende map %2 gaan, of die map aan het zoekpad toevoegen.</translation>
     </message>
@@ -1995,6 +2205,31 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation>Het bestand met instellingen
+%1
+bestaat niet en kan niet worden aangemaakt.
+Zorg ervoor dat je toestemming voor lezen en schrijven hebt naar
+%2
+
+De Octave GUI moet nu gesloten worden.</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation>Octave Kritieke Fout</translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -2027,17 +2262,7 @@
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Laat witruimtetekens zien</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Verberg witruimtetekens die worden gebruikt voor inspringen</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Kleur</translation>
     </message>
@@ -2072,12 +2297,7 @@
         <translation>Backspace doet terug inspringen</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Aantal tekens voordat lijst met suggesties wordt weergegeven</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Zoek overeenkomende sleutelwoorden</translation>
     </message>
@@ -2102,37 +2322,17 @@
         <translation>Herstel bij opstarten de editor tabs uit de vorige sessie</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Maak nieuwe bestanden aan zonder melding</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Gebruik een andere editor</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Opdrachtregel (%f=bestand, %l=regel):</translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>Editor Styles</source>
-        <translation>Editorstijlen</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>Kies font, fontgrootte (als verschil met standaardgrootte), fonttype (vet, schuin, onderstreept), tekstkleur en achtergrondkleur (de kleur roze (255,0,255) dient alleen om de standaard-achtergrondkleur aan te duiden)</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Gebruik voorgrondkleur</translation>
-    </message>
-    <message>
         <location line="+32"/>
+        <source>Editor Styles</source>
+        <translation>Editorstijlen</translation>
+    </message>
+    <message>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Terminalkleuren</translation>
     </message>
@@ -2162,19 +2362,49 @@
         <translation>Hele pad in schermtitel weergeven</translation>
     </message>
     <message>
-        <location line="+561"/>
+        <location line="-17"/>
+        <source>Show whitespace</source>
+        <translation>Laat witruimte zien</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation>Laat geen voor inspringen gebruikte witruimte zien</translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation>Getypt aantal karakters voordat de aanvullijst verschijnt</translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation>Maak niet bestaande bestanden aan zonder te vragen</translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation>command line (%f=bestand, %l=regel):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation></translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecteer font, font grootte (als een verschil van de standaard grootte), font stijl (dik, schuin, onderstreept), tekstkleur en achtergrondkleur (wat betreft de laatste, de kleur roze (255,0,255) is een plaatsvervanger voor de standaard achtergrondkleur)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Opdrachtvenster</translation>
     </message>
     <message>
         <location line="+15"/>
         <source>Cursor type:</source>
-        <translation>Type aanwijzer</translation>
+        <translation>Type aanwijzer:</translation>
     </message>
     <message>
         <location line="+23"/>
@@ -2182,7 +2412,12 @@
         <translation>Knipperende aanwijzer</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation>Gebruik voorgrondkleur</translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Lettergrootte</translation>
     </message>
@@ -2212,12 +2447,7 @@
         <translation>Verborgen bestanden weergeven</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Synchroniseer octave map met die van bestandsbrowser</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Om en om andere regelkleuren</translation>
     </message>
@@ -2237,22 +2467,22 @@
         <translation>Netwerk</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation>Sta Octave toe om te verbinden met de Octave website om recent nieuws en informatie weer te geven</translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Gebruik proxyserver</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Proxy type:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>http proxy</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Iconenset voor dock widgets</translation>
     </message>
@@ -2267,7 +2497,12 @@
         <translation>Icoongrootte</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation>Synchroniseer Octave werkmap met bestandsverkenner</translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation></translation>
     </message>
@@ -2277,7 +2512,12 @@
         <translation>Hostnaam:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Poort:</translation>
     </message>
@@ -2292,14 +2532,14 @@
         <translation>Wachtwoord:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Systeeminstelling</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>I-balkje</translation>
     </message>
@@ -2314,7 +2554,7 @@
         <translation>Liggend streepje</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Verschil met standaardgrootte</translation>
     </message>
@@ -2340,6 +2580,61 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation>Community Nieuws</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation>Vorige</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation>Volgende</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Afbreken</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Wanneer de Octave GUI start, zal de website van Octave geraadpleegd worden voor recent nieuws en informatie over de Octave community.
+Dit zal hooguit een keer per dag gedaan worden en nieuws wordt alleen weergegeven als er iets nieuws is sinds de laatste keer dat je het nieuws zag.&lt;/p&gt;
+&lt;p&gt;Het nieuws kan ook bekeken worden door op &quot;Community Nieuws&quot; in het &quot;Hulp&quot; menu te klikken, of door te gaan naar
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Sta Octave toe om verbinding te maken met de Octave website bij het opstarten om recent nieuws en informatie over de Octave community weer te geven.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -2350,7 +2645,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Typ hier en druk op &apos;Enter&apos; om te zoeken</translation>
     </message>
@@ -2363,57 +2658,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Welkom bij GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Welkom bij Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Kennelijk gebruik je Octave&apos;s grafische interface voor het eerst. Klik op Finish, dan wordt er een standaard configuratiebestand aangemaakt en daarna de Octave GUI gestart.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>Het configuratiebestand is opgeslagen als %1. Als dat bestand bestaat zal Octave bij een volgende start dee dialoog overslaan.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Voor meer informatie over Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;ga naar &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Bekijk de documentatie online hier &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- of hier &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open de documentatie browser van de Octave GUI met het help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Voltooien</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -2443,10 +2691,16 @@
         <translation>Klasse</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Klik rechts om te kopiëren, hernoemen of weergeven</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation></translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -2461,7 +2715,7 @@
         <translation>Bekijk de variabelen in de huidige werkruimte.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Kopiëren</translation>
     </message>
--- a/libgui/languages/pt_BR.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/pt_BR.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Selecionar Tudo</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>persistente</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>primeiro plano</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>seleção copiada para a área de transferência</translation>
     </message>
@@ -104,21 +104,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Editor do Octave</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Scripts do Octave (*.m);;Todos os Arquivos (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation>Nova Função</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation>Novo nome de função:</translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -130,12 +141,12 @@
         <translation>A aba do editor associada ao arquivo desapareceu. Provavelmente foi fechada de alguma maneira.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>&amp;Novo Arquivo</translation>
     </message>
@@ -195,7 +206,7 @@
         <translation>Marcardor &amp;Anterior</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>Habilitar/desabilitar &amp;Marcador</translation>
     </message>
@@ -206,23 +217,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>Ponto de interrupção &amp;seguinte</translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation>&amp;Próximo ponto de parada</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>Ponto de interrupção &amp;anterior</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation>Ponto de Parada &amp;Anterior</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>Habilitar/desabilitar ponto de &amp;interrupção</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation>&amp;Ativar/desativar Ponto de Parada</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>&amp;Remover Todos Pontos de interrupção</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation>&amp;Remover todos Pontos de Parada</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -235,12 +246,22 @@
         <translation>&amp;Descomentar</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation>Salvar Arquivo e Rodar</translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>Arquivos &amp;Recentes</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation>Nova &amp;Função</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>&amp;Editar Função</translation>
     </message>
@@ -260,7 +281,7 @@
         <translation>Fechar Outros Arquivos</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Executar &amp;Seleção</translation>
     </message>
@@ -280,12 +301,12 @@
         <translation>&amp;Documentação na Palavra-chave</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Buscar e Substituir</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -294,7 +315,7 @@
 para leitura: %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -303,7 +324,7 @@
 não existe. Deseja criá-lo?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -312,12 +333,7 @@
 para escrita: %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Salvar Arquivo e Executar</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>Vá para &amp;Linha</translation>
     </message>
@@ -327,7 +343,7 @@
         <translation>&amp;Arquivo</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -337,12 +353,12 @@
         <translation>&amp;Preferências</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>Preferências de &amp;Estilo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Depurar</translation>
     </message>
@@ -355,7 +371,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation>Vá para linha</translation>
     </message>
@@ -365,12 +381,13 @@
         <translation>Número da linha</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;sem_nome&gt;</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Você deseja salvar ou descartar as alterações?</translation>
     </message>
@@ -380,16 +397,16 @@
         <translation>Você deseja cancelar fechamento, salvar ou descartar as alterações?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation>Editor do Octave</translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -400,12 +417,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Scripts Octave (*.m);; Todos os Arquivos (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -414,7 +431,7 @@
 é o mesmo do arquivo atual</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -432,14 +449,24 @@
 foi removido ou renomeado. Pretende salvá-lo agora?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Não foi possível abrir arquivo %1 para escrita:
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation>Linha:</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation>Coluna:</translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Parece que o arquivo &apos;%1&apos; foi modificado por outra aplicação. Deseja recarregá-lo?</translation>
     </message>
@@ -447,7 +474,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Navegador de Arquivos</translation>
     </message>
@@ -462,27 +489,27 @@
         <translation>Digite o caminho ou nome de arquivo</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Subir um nível de diretório</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation>Exibir o diretório do Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation>Vá para o diretório atual do Octave</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Definir o diretório do Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Definir diretório do Octave igual ao diretório atual no navegador</translation>
     </message>
@@ -497,35 +524,55 @@
         <translation>Exibir diretório pessoal</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Buscar no diretório</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Buscar arquivos...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Novo Arquivo</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Novo Diretório</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
         <translation>Clique duas vezes em um arquivo para abrí-lo</translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation>Tamanho do arquivo</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation>Tipo do arquivo</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation>Data de modificação</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation>Mostrar escondidos</translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Abrir</translation>
     </message>
@@ -555,7 +602,7 @@
         <translation>Definir Diretório Atual</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Renomear</translation>
     </message>
@@ -565,7 +612,7 @@
         <translation>Excluir</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Renomear arquivo/diretório</translation>
     </message>
@@ -576,7 +623,7 @@
         <translation>Renomear arquivo/diretório:</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>
@@ -584,33 +631,33 @@
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Remover arquivo/diretório</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Você tem certeza que deseja excluir</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Não é possível excluir um diretório que não está vázio</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation>Definir diretório do navegador de arquivos</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Criar Arquivo</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Criar arquivo em</translation>
@@ -621,13 +668,76 @@
         <translation>Criar Diretório</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Criar diretório em</translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation>Aproveite!</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation>Anterior</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation>Finalizar</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Esperamos que o Octave seja uma ferramenta últil.&lt;/p&gt;
+&lt;p&gt;Se encontrar problemas, existem várias maneiras de pedir ajuda incluindo suporte comercial, lista de email, wiki, e outros canais de suporte da comunidade.
+Você pode encontrar mais informações sobre cada um deles visitando &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Para mais informações sobre o Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Acesse a documentação online como documento &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- ou &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt; (abre em navegador externo)&lt;/li&gt;
+&lt;li&gt;Abrir a documentação na interface gráfica com o menu de ajuda&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -710,7 +820,7 @@
         <translation>Buscar desde o início</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Substituir Resultado</translation>
     </message>
@@ -733,7 +843,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Buscar Arquivos</translation>
     </message>
@@ -748,12 +858,12 @@
         <translation>Digite expressão para os nomes de arquivo</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Iniciar em:</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Digite diretório inicial</translation>
     </message>
@@ -773,7 +883,7 @@
         <translation>Entrar em sub-diretórios</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Buscar recursivamente nos diretórios por arquivos que correspondam</translation>
     </message>
@@ -783,7 +893,7 @@
         <translation>Inclur diretórios</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Incluir diretórios encontrados no resultado da busca</translation>
     </message>
@@ -793,7 +903,7 @@
         <translation>Insensível a maiúsculas/minúsculas</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Definir se nome é insensível a maúscula/minúscula</translation>
     </message>
@@ -808,17 +918,17 @@
         <translation>Busca deve encontrar texto</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Texto para encontrar</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Text case insensitive</source>
         <translation>Texto insensível a maiúscula/minúscula</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set text content is case insensitive</source>
         <translation>Definir se texto é insensível a maiúscula/minúscula</translation>
     </message>
@@ -828,7 +938,7 @@
         <translation>Resultados da Busca</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Parado.</translation>
     </message>
@@ -863,7 +973,7 @@
         <translation>Conteúdo do arquivo</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Buscando...</translation>
     </message>
@@ -876,7 +986,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Nome do Arquivo</translation>
     </message>
@@ -894,12 +1004,12 @@
         <translation>Naveguar e buscar no histórico de comandos.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
         <translation>Clique duas vezes em um comando para transferí-lo ao terminal.</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Digite para filtrar o hitórico de comandos.</translation>
     </message>
@@ -909,7 +1019,7 @@
         <translation>Histórico de Comandos</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -919,26 +1029,58 @@
         <translation>Avaliar</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Criar script</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation>Bem-vindo ao Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation>Próximo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Parece que você está usando a interface gráfica pela primeira vez neste computador.
+Clique em próximo para criar um arquivo de configuração e lançar o Octave.&lt;/p&gt;
+&lt;p&gt;O arquivo de configuração é armazenado em %1. Se o arquivo existir, você não verá esta mensagem quando o Octave inicializar.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Carregar ambiente de trabalho</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Sobre o Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>&amp;Arquivo</translation>
     </message>
@@ -958,12 +1100,12 @@
         <translation>Função</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Figura</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Abrir...</translation>
     </message>
@@ -978,7 +1120,7 @@
         <translation>Sair</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -998,13 +1140,13 @@
         <translation>Colar</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation>Salvar Ambiente de Trabalho Como</translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation>O arquivo de notas da versão &apos;%1&apos; está vazio.</translation>
     </message>
@@ -1019,12 +1161,17 @@
         <translation>Notas da Versão do Octave</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation>Novidades da Comunidade</translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Definir diretório de trabalho</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Limpar Área de Transferência</translation>
     </message>
@@ -1059,52 +1206,42 @@
         <translation>Passo-a-passo</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Passo adentro</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Passo a fora</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation>Continuar</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation>Sair de Modo de Depuração</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation>Exibir Navegador de Arquivos</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Exibir Janela de Novidades</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation>Navegador de Arquivos</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Novidades</translation>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation>Passo a dentro</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation>Passo a fora</translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Restaurar Disposição de Janelas Padrão</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Pacotes do Octave</translation>
     </message>
@@ -1154,7 +1291,7 @@
         <translation>Digite nome do diretório</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Diretório Atual:</translation>
     </message>
@@ -1169,63 +1306,58 @@
         <translation>Navegar por diretórios</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Carregar ambiente de trabalho</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Janela</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Exibir Janela de Comandos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Exibir Histórico de Comandos</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation>Exibir Ambiente de Trabalho</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation>Exibir Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation>Exibir Documentação</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation>Janela de Comandos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation>Histórico de Comandos</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation>Ambiente de trabalho</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Documentação</translation>
     </message>
@@ -1241,23 +1373,74 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Novidades da Comunidade</translation>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Fonte de notícias da comunidade parece estar indisponível.
+&lt;/p&gt;
+&lt;p&gt;
+Para as últimas notícias, por favor cheque
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+quando tiver conexão com a internet (abre em navegador externo).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Os desenvolvdores do Octave, </translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Conectar a web para mostrar as últimas notícias da comunidade foi desativado.
+&lt;/p&gt;
+&lt;p&gt;
+Para as últimas notícias, por favor cheque
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+quando tiver conexão com a web (abre em navegador externo)
+ou ative as conexões web para obter notícias em configurações de rede do Octave.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Os desenvolvedores do Octave, </translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Desacoplar painel</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Esconder painel</translation>
     </message>
@@ -1270,7 +1453,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Ajuda sobre</translation>
     </message>
@@ -1280,7 +1463,7 @@
         <translation>Documentação sobre</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Editar</translation>
     </message>
@@ -1293,7 +1476,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation>Sim</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation>Não</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation>Arquivo
+%1
+não existe. Deseja criá-lo?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation>Editor do Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>O arquivo %1 não existe no caminho de pesquisa.  Para depurar a função que você está editando, é preciso ou mudar para o diretório %2 ou adicionar esse diretório ao caminho de pesquisa.</translation>
     </message>
@@ -1324,6 +1533,31 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation>O arquivo de configuração
+%1
+não existe e não pode ser criado.
+Tenha certeza de que você tem permissão de leitura/escrita em
+%2
+
+Octave GUI precisa ser fechado agora.</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation>Erro crítico no Octave</translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1356,17 +1590,7 @@
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Exibir espaço em branco</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Não exibir espaços em branco usados para identação</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Cor</translation>
     </message>
@@ -1401,12 +1625,7 @@
         <translation>Tecla Apagar remove identação na linha</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Mínimo de caracteres para exibir lista de sugestões</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Buscar palavras-chave</translation>
     </message>
@@ -1431,37 +1650,17 @@
         <translation>Restaurar abas de edição da sessão anterior durante inicialização</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Criar arquivos inexistentes sem perguntar</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Usar editor de texto externo</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Linha de comando (%f=arquivo, %l=linha):</translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation>Estilos do Editor</translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecionar fonte, tamanho de fonte (na forma de diferença com relação a tamanho padrão), decoração da fonte (negrito, itálico, sublinhado), cor do texto e cor de fundo de tela (para o último, a cor rosa (255,0,255) é sinônimo da cor de fundo padrão)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Usar Cor do Primeiro Plano</translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Cores do Terminal</translation>
     </message>
@@ -1491,12 +1690,42 @@
         <translation>Exibir caminho completo no título da janela</translation>
     </message>
     <message>
-        <location line="+561"/>
+        <location line="-17"/>
+        <source>Show whitespace</source>
+        <translation>Mostrar espaço em branco</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation>Não mostrar espaço em branco usado para identação</translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation>Número de caracteres digitados antes da lista de completação ser apresentada</translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation>Criar arquivos não existentes sem perguntar</translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation>linha de comando (%f=arquivo, %l=linha):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecionar fonte, tamanho da fonte (como uma diferença do tamanho padrão), estilo da fonte (negrito, itálico, sublinhado), cor de texto e cor de fundo (a cor rosa (255,0,255) é a cor de fundo padrão)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
@@ -1511,7 +1740,12 @@
         <translation>Indicador piscante</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation>Usar cor de frente</translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Tamanho de fonte</translation>
     </message>
@@ -1541,12 +1775,7 @@
         <translation>Exibir arquivos ocultos</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Sincronizar diretório do Octave com diretório do navegador de arquivos</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Cores de linhas alternantes</translation>
     </message>
@@ -1566,22 +1795,22 @@
         <translation>Rede</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation>Permitir Octave se conectar a web para mostrar notícias recentes e informação</translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Usar servidor proxy</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Tipo de Proxy:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>Proxy HTTP</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Conjunto de ícones para paineis</translation>
     </message>
@@ -1596,7 +1825,12 @@
         <translation>Tamanho do Ícone</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation>Sincronizar diretório de trabalho com o navegador de arquivos</translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>Proxy Socks 5</translation>
     </message>
@@ -1606,7 +1840,12 @@
         <translation>Nome do servidor:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation>Tipo de Proxy:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Porta:</translation>
     </message>
@@ -1621,14 +1860,14 @@
         <translation>Senha:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Configuração do sistema</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>Indicador IBeam</translation>
     </message>
@@ -1643,7 +1882,7 @@
         <translation>Indicador Sublinhado</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Diferença com relação ao tamanho de fonto padrão</translation>
     </message>
@@ -1669,6 +1908,61 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation>Novidades da Comunidade</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation>Anterior</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation>Próximo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Quando o Octave GUI inicia, ele checa o site para conferir notícias recentes e da comunidade.
+A checagem acontece pelo menos uma vez ao dia e as notícias só serão apresentadas se existir algo novo desde o último acesso.&lt;/p&gt;
+&lt;p&gt;Você também pode ver as notícias em &quot;Notícias de Comunidade&quot; no menu de ajuda na interface gráfica, ou visitar
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Permitir Octave se conectar ao web na inicialização para mostrar as notícias correntes e informações sobre a comunidade.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1679,7 +1973,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Digite aqui e pressione &apos;Enter&apos; para buscar</translation>
     </message>
@@ -1692,57 +1986,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Bem-vindo ao GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Bem-vindo ao Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Parece que você está usando a interface gráfica do Octave pela primeira vez neste computador. Clique &apos;Finalizar&apos; para gravar um arquivo de configuração e iniciar a interface do Octave.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>O arquivo de configuração é armazenado em %1. Se o arquivo existir, você não verá esta caixa de diálogo quando o Octave reiniciar.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Para mais informações sobre o Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Veja a documentação na Internet em &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Abra a documentação do Octave no menu de ajuda&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Finalizar</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1772,10 +2019,16 @@
         <translation>Classe de Armazenamento</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Clique com botão direito para copiar, renomear ou exibir</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation>complexo</translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1790,7 +2043,7 @@
         <translation>Visualizar variáveis no ambiente de trabalho ativo.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
--- a/libgui/languages/pt_PT.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/pt_PT.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Seleccionar Tudo</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation>persistente</translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation>primeiro plano</translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -83,12 +83,678 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>selecçao copiada para a área de transferência</translation>
     </message>
 </context>
 <context>
+    <name>QsciLexerBash</name>
+    <message>
+        <location filename="../../../qsci/qscilexerbash.cpp" line="+208"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Error</source>
+        <translation>Erro</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Comment</source>
+        <translation>Comentário</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Number</source>
+        <translation>Número</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Keyword</source>
+        <translation>Palavra chave</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Operator</source>
+        <translation>Operador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Identifier</source>
+        <translation>Identificador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Scalar</source>
+        <translation>Escalar</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Parameter expansion</source>
+        <translation>Expansão de parâmetro</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Backticks</source>
+        <translation>Acentos graves</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Here document delimiter</source>
+        <translation>Delimitador de here-doc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted here document</source>
+        <translation>here-doc com apóstrofos</translation>
+    </message>
+</context>
+<context>
+    <name>QsciLexerBatch</name>
+    <message>
+        <location filename="../../../qsci/qscilexerbatch.cpp" line="+179"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Comment</source>
+        <translation>Comentário</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Keyword</source>
+        <translation>Palavra chave</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Label</source>
+        <translation>Etiqueta</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Hide command character</source>
+        <translation>Carácter para esconder comando</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>External command</source>
+        <translation>Comando externo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Variable</source>
+        <translation>Variável</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Operator</source>
+        <translation>Operador</translation>
+    </message>
+</context>
+<context>
+    <name>QsciLexerCPP</name>
+    <message>
+        <location filename="../../../qsci/qscilexercpp.cpp" line="+352"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive default</source>
+        <translation>Padrão inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>C comment</source>
+        <translation>Comentário C</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive C comment</source>
+        <translation>Comentário C inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>C++ comment</source>
+        <translation>Comentário C++</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive C++ comment</source>
+        <translation>Comentário C++ inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>JavaDoc style C comment</source>
+        <translation>Comentário C ao estilo JavaDoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive JavaDoc style C comment</source>
+        <translation>Comentário C inactivo ao estilo JavaDoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Number</source>
+        <translation>Número</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive number</source>
+        <translation>Número inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Keyword</source>
+        <translation>Palavra chave</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive keyword</source>
+        <translation>Palavra chave inactiva</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive double-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive single-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>IDL UUID</source>
+        <translation>IDL UUID</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive IDL UUID</source>
+        <translation>IDL UUID inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Pre-processor block</source>
+        <translation>Bloco de pre-processador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive pre-processor block</source>
+        <translation>Bloco de pre-processador inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Operator</source>
+        <translation>Operador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive operator</source>
+        <translation>Operador inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Identifier</source>
+        <translation>Identificador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive identifier</source>
+        <translation>Identificador inactivo</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Unclosed string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive unclosed string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>C# verbatim string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive C# verbatim string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>JavaScript regular expression</source>
+        <translation>Expressão regular de JavaScript</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive JavaScript regular expression</source>
+        <translation>Expressão regular de JavaScript inactiva</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>JavaDoc style C++ comment</source>
+        <translation>Comentário C++ ao estilo JavaDoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive JavaDoc style C++ comment</source>
+        <translation>Comentário C++ inactivo ao estilo JavaDoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Secondary keywords and identifiers</source>
+        <translation>Palavras chaves e identificadores secundários</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive secondary keywords and identifiers</source>
+        <translation>Palavras chaves e identificadores secundários inactivos</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>JavaDoc keyword</source>
+        <translation>Palavra chave de JavaDoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive JavaDoc keyword</source>
+        <translation>Palavra chave de JavaDoc inactiva</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>JavaDoc keyword error</source>
+        <translation>Erro de palavra chave Javadoc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive JavaDoc keyword error</source>
+        <translation>Erro de palavra chave Javadoc inactiva</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Global classes and typedefs</source>
+        <translation>Classes globais e typedefs</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive global classes and typedefs</source>
+        <translation>Classes globais e typedefs inactivas</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>C++ raw string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Inactive C++ raw string</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>QsciLexerDiff</name>
+    <message>
+        <location filename="../../../qsci/qscilexerdiff.cpp" line="+107"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Comment</source>
+        <translation>Comentário</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Command</source>
+        <translation>Comando</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Header</source>
+        <translation>Cabeçalho</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Position</source>
+        <translation>Posição</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Removed line</source>
+        <translation>Linha removida</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Added line</source>
+        <translation>Linha adicionada</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Changed line</source>
+        <translation>Linha modificada</translation>
+    </message>
+</context>
+<context>
+    <name>QsciLexerMatlab</name>
+    <message>
+        <location filename="../../../qsci/qscilexermatlab.cpp" line="+138"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Comment</source>
+        <translation>Comentário</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Command</source>
+        <translation>Comando</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Number</source>
+        <translation>Número</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Keyword</source>
+        <translation>Palavra chave</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Operator</source>
+        <translation>Operador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Identifier</source>
+        <translation>Identificador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>QsciLexerPerl</name>
+    <message>
+        <location filename="../../../qsci/qscilexerperl.cpp" line="+333"/>
+        <source>Default</source>
+        <translation>Padrão</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Error</source>
+        <translation>Erro</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Comment</source>
+        <translation>Comentário</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>POD</source>
+        <translation>POD</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Number</source>
+        <translation>Número</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Keyword</source>
+        <translation>Palavra chave</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted string</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Operator</source>
+        <translation>Operador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Identifier</source>
+        <translation>Identificador</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Scalar</source>
+        <translation>Escalar</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Array</source>
+        <translation>Array</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Hash</source>
+        <translation>Tabela hash</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Symbol table</source>
+        <translation>Tabela de símbolos</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Regular expression</source>
+        <translation>Expressão regular</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Substitution</source>
+        <translation>Substituição</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Backticks</source>
+        <translation>Acentos graves</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Data section</source>
+        <translation>Secção DATA</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Here document delimiter</source>
+        <translation>Delimitador de here-doc</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Single-quoted here document</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted here document</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Backtick here document</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (q)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qq)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qx)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qr)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qw)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>POD verbatim</source>
+        <translation>POD literal</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Subroutine prototype</source>
+        <translation>Protótipo de subrotina</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Format identifier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Format body</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted string (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Translation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Regular expression (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Substitution (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Backticks (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Double-quoted here document (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Backtick here document (interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qq, interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qx, interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Quoted string (qr, interpolated variable)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>QsciScintilla</name>
+    <message>
+        <location filename="../../../qsci/qsciscintilla.cpp" line="+4201"/>
+        <source>&amp;Undo</source>
+        <translation>&amp;Desfazer</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>&amp;Redo</source>
+        <translation>&amp;Refazer</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>Cu&amp;t</source>
+        <translation>Cor&amp;tar</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>&amp;Copy</source>
+        <translation>&amp;Copiar</translation>
+    </message>
+    <message>
+        <location line="+6"/>
+        <source>&amp;Paste</source>
+        <translation>Colar</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Delete</source>
+        <translation>Apagar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>Select All</source>
+        <translation>Seleccionar Tudo</translation>
+    </message>
+</context>
+<context>
     <name>documentation_dock_widget</name>
     <message>
         <location filename="../src/documentation-dock-widget.cc" line="+34"/>
@@ -104,21 +770,33 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Editor do Octave</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Scripts de Octave (*.m);;Todos os Ficheiros (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation>Nova função</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation>Nome da nova função:
+</translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -132,12 +810,12 @@
         <translation>A aba do editor associada ao ficheiro desapareceu. Foi provavelmente fechada de alguma maneira.</translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>&amp;Novo Ficheiro</translation>
     </message>
@@ -197,7 +875,7 @@
         <translation>Marcardor &amp;Anterior</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>Habilitar/desabilitar &amp;Marcador</translation>
     </message>
@@ -208,23 +886,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>Ponto de interrupção &amp;seguinte</translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation>Ponto de interrupção segui&amp;nte</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>Ponto de interrupção &amp;anterior</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation>Ponto de interrupção anterior</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>Habilitar/desabilitar ponto de &amp;interrupção</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation>Activar/desactivar ponto de interrupção</translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>&amp;Remover Todos os Pontos de interrupção</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation>&amp;Remover todos os pontos de interrupção</translation>
     </message>
     <message>
         <location line="+3"/>
@@ -237,12 +915,22 @@
         <translation>&amp;Descomentar</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation>Gravar ficheiro e executar</translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>Ficheiros &amp;recentes</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation>Nova função</translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>&amp;Editar Função</translation>
     </message>
@@ -262,7 +950,7 @@
         <translation>Fechar os Outros Ficheiros</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation>Executar &amp;Selecção</translation>
     </message>
@@ -282,12 +970,12 @@
         <translation>&amp;Documentação da Palavra-chave</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Buscar e Substituir</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -296,7 +984,7 @@
 para leitura: %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -305,7 +993,7 @@
 não existe. Deseja criá-lo?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -314,12 +1002,7 @@
 para escrita: %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Guardar Ficheiro e Executar</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>Ir para &amp;Linha</translation>
     </message>
@@ -329,7 +1012,7 @@
         <translation>&amp;Ficheiro</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -339,12 +1022,12 @@
         <translation>&amp;Preferências</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>Preferências de &amp;Estilo</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Depurar</translation>
     </message>
@@ -357,7 +1040,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation>Ir para linha</translation>
     </message>
@@ -367,12 +1050,13 @@
         <translation>Número da linha</translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;sem_nome&gt;</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Você deseja guardar ou descartar as alterações?</translation>
     </message>
@@ -382,16 +1066,16 @@
         <translation>Você deseja cancelar o fecho, guardar, ou descartar as alterações?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation>Editor do Octave</translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -402,12 +1086,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Ficheiros de Octave (*.m);; Todos os Ficheiros (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -416,7 +1100,7 @@
 é o mesmo do que o ficheiro actual</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -434,14 +1118,24 @@
 foi removido ou renomeado. Pretende guardá-lo agora?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Não foi possível abrir o ficheiro %1 para escrita:
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation>Linha:</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation>Col:</translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Parece que o ficheiro &apos;%1&apos; foi modificado por outro aplicativo. Deseja recarregá-lo?</translation>
     </message>
@@ -449,7 +1143,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Navegador de Ficheiros</translation>
     </message>
@@ -464,27 +1158,27 @@
         <translation>Introduza o caminho ou nome do ficheiro</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation>Subir um nível de directório</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Show octave directory</source>
-        <translation>Mostrar o directório actual do Octave</translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Goto current octave directory</source>
-        <translation>Ir para o directório actual do Octave</translation>
-    </message>
-    <message>
         <location line="+4"/>
+        <source>Show octave directory</source>
+        <translation>Mostrar o directório actual do Octave</translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Goto current octave directory</source>
+        <translation>Ir para o directório actual do Octave</translation>
+    </message>
+    <message>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Definir o directório actual do Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation>Definir o directório actual do Octave para o directório actual do navegador</translation>
     </message>
@@ -499,35 +1193,55 @@
         <translation>Mostrar directório pessoal</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation>Procurar no directório</translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Procurar Ficheiros...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Novo Ficheiro</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Novo Directório</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Clique duas vezes num ficheiro para abri-lo</translation>
-    </message>
-    <message>
-        <location line="+185"/>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation>Clicar duas vezes num ficheiro para o abrir</translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation>Tamanho de ficheiro</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation>Tipo de ficheiro</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation>Data de modificação</translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation>Mostrar ficheiros escondidos</translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Abrir</translation>
     </message>
@@ -557,7 +1271,7 @@
         <translation>Definir Directório Actual</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Renomear</translation>
     </message>
@@ -567,7 +1281,7 @@
         <translation>Excluir</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Renomear ficheiro/directório</translation>
     </message>
@@ -579,7 +1293,7 @@
 </translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation>
@@ -587,34 +1301,34 @@
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Remover ficheiro/directório</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Tem a certeza que deseja remover
 </translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Não é possível remover um directório que não está vazio</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation>Definir directório do navegador de ficheiros</translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Criar Ficheiro</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Criar ficheiro em
@@ -626,7 +1340,7 @@
         <translation>Criar Directório</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Criar directório em
@@ -634,6 +1348,69 @@
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation>Diverte-te!</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation>Anterior</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation>Finalizar</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Esperamos que o Octave lhe seja uma ferramenta útil.&lt;/p&gt;
+&lt;p&gt;Se encontrar problemas, existem várias formas de obter ajuda: suporte comercial; um grupo de discussão; uma wiki; e vários outros métodos baseados na comunidade do Octave.
+É possível encontrar mais informações sobre cada um destes online em &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (abre num navegador externo).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Para mais informação sobre Octave::&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (abre num navegador externo)&lt;/li&gt;
+&lt;li&gt;Obtenha a documentação online em &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- ou documento-&lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
+&lt;li&gt;Abrir o navegador de documentação do Octave com o menu de ajuda&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -716,7 +1493,7 @@
         <translation>Procurar a partir do início</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation>Substituir Resultado</translation>
     </message>
@@ -739,7 +1516,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Procurar Ficheiros</translation>
     </message>
@@ -754,12 +1531,12 @@
         <translation>Introduza a expressão para o nome do ficheiro</translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation>Iniciar em:</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation>Introduzir o directório inicial</translation>
     </message>
@@ -779,7 +1556,7 @@
         <translation>Entrar em sub-directórios</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Procurar recursivamente pelos directórios por ficheiros correspondentes</translation>
     </message>
@@ -789,7 +1566,7 @@
         <translation>Incluir directórios</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation>Incluir directórios correspondentes nos resultado da pesquisa</translation>
     </message>
@@ -799,7 +1576,7 @@
         <translation>Insensível à capitalização</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation>Definir se o nome é insensível à capitalização</translation>
     </message>
@@ -814,17 +1591,17 @@
         <translation>Pesquisa precisa corresponder ao texto</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Text to match</source>
         <translation>Texto para corresponder</translation>
     </message>
     <message>
+        <location line="+4"/>
+        <source>Text case insensitive</source>
+        <translation>Texto insensível à capitalização</translation>
+    </message>
+    <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation>Texto insensível à capitalização</translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
         <translation>Definir se o texto é insensível à capitalização</translation>
     </message>
@@ -834,7 +1611,7 @@
         <translation>Resultados de pesquisa</translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation>Parado.</translation>
     </message>
@@ -869,7 +1646,7 @@
         <translation>Conteúdo do ficheiro</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation>Procurando...</translation>
     </message>
@@ -882,7 +1659,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Nome do Ficheiro</translation>
     </message>
@@ -900,12 +1677,12 @@
         <translation>Navegar e procurar no histórico de comandos.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Clique duas vezes num comando para transferí-lo para o terminal.</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation>Clicar duas vezes num comando para transferir para a linha de comandos</translation>
+    </message>
+    <message>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Introduza texto para filtrar o histórico de comandos.</translation>
     </message>
@@ -915,7 +1692,7 @@
         <translation>Histórico de Comandos</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
@@ -925,26 +1702,58 @@
         <translation>Avaliar</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Criar script</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation>Bem-vindo ao Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation>Próximo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Parece que está a utilizar a interface gráfica do Octave pela primeira vez neste computador.
+Clique &apos;Próximo&apos; para criar um ficheiro de configuração e iniciar o Octave.&lt;/p&gt;
+&lt;p&gt;O ficheiro de configuração é gravado em in %1.  Se esse ficheiro existir, este diálogo não volta a aparecer ao iniciar Octave..&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Carregar ambiente de trabalho</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Sobre o Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>Ficheiro</translation>
     </message>
@@ -964,12 +1773,12 @@
         <translation>Função</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation>Figura</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Abrir...</translation>
     </message>
@@ -984,7 +1793,7 @@
         <translation>Sair</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Editar</translation>
     </message>
@@ -1004,13 +1813,13 @@
         <translation>Colar</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation>Guardar Ambiente de Trabalho como</translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation>O ficheiro de notas da versão &apos;%1&apos; está vazio.</translation>
     </message>
@@ -1025,12 +1834,17 @@
         <translation>Notas da Versão do Octave</translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation>Notícias da comunidade Octave</translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation>Definir directório de trabalho</translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation>Limpar Área de Transferência</translation>
     </message>
@@ -1065,52 +1879,42 @@
         <translation>Passo-a-passo</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Passo adentro</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Passo a fora</translation>
+        <location line="+12"/>
+        <source>Continue</source>
+        <translation>Continuar</translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Exit Debug Mode</source>
+        <translation>Sair do Modo de Depuração</translation>
+    </message>
+    <message>
+        <location line="+51"/>
+        <source>Show File Browser</source>
+        <translation>Mostrar Navegador de Ficheiros</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>File Browser</source>
+        <translation>Navegador de Ficheiros</translation>
+    </message>
+    <message>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>Continue</source>
-        <translation>Continuar</translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Exit Debug Mode</source>
-        <translation>Sair do Modo de Depuração</translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>Show File Browser</source>
-        <translation>Mostrar Navegador de Ficheiros</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Exibir Janela de Novidades</translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>File Browser</source>
-        <translation>Navegador de Ficheiros</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Novidades</translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <source>Step Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation>Restaurar Disposição de Janelas Padrão</translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Pacotes do Octave</translation>
     </message>
@@ -1160,7 +1964,7 @@
         <translation>Introduzir nome do directório</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Directório Actual</translation>
     </message>
@@ -1175,63 +1979,58 @@
         <translation>Navegar directórios</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Carregar ambiente de trabalho</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Janela</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Exibir Janela de Comandos</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Exibir Histórico de Comandos</translation>
     </message>
     <message>
+        <location line="+8"/>
+        <source>Show Workspace</source>
+        <translation>Exibir Ambiente de Trabalho</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Editor</source>
+        <translation>Exibir Editor</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Documentation</source>
+        <translation>Exibir Documentação</translation>
+    </message>
+    <message>
         <location line="+6"/>
-        <source>Show Workspace</source>
-        <translation>Exibir Ambiente de Trabalho</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Editor</source>
-        <translation>Exibir Editor</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Documentation</source>
-        <translation>Exibir Documentação</translation>
+        <source>Command Window</source>
+        <translation>Janela de Comandos</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Command History</source>
+        <translation>Histórico de Comandos</translation>
     </message>
     <message>
         <location line="+8"/>
-        <source>Command Window</source>
-        <translation>Janela de Comandos</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Command History</source>
-        <translation>Histórico de Comandos</translation>
-    </message>
-    <message>
-        <location line="+6"/>
         <source>Workspace</source>
         <translation>Ambiente de trabalho</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Documentação</translation>
     </message>
@@ -1247,23 +2046,74 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
-    <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Novidades da Comunidade</translation>
+    <name>news_reader</name>
+    <message>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+As notícias da comunidade do Octave não estão disponíveis de momento.
+&lt;/p&gt;
+&lt;p&gt;
+Para as últimas notícias, consultar
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+quando houver ligação à internet.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Os programadores do Octave, </translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Ligar-se à internet para mostrar as últimas notícias da comunidade de Octave foi desactivado.
+&lt;/p&gt;
+&lt;p&gt;
+Para as últimas notícias, consultar
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+quando houver ligação à internet ou
+active ligação para as notícias na secção Network do menu de preferências.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; Os programadores do Octave, </translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Desacoplar painel</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Esconder painel</translation>
     </message>
@@ -1276,7 +2126,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation>Ajuda sobre</translation>
     </message>
@@ -1286,7 +2136,7 @@
         <translation>Documentação sobre</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Editar</translation>
     </message>
@@ -1299,7 +2149,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation>Sim</translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation>Não</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation>O ficheiro
+%1
+não existe. Deseja criá-lo?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation>Editor do Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>O ficheiro %1 não existe no caminho de pesquisa. Para depurar a função que está a ser editada, é preciso mudar para o directório %2 ou adicionar esse directório ao caminho de pesquisa.</translation>
     </message>
@@ -1330,6 +2206,31 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation>O ficheiro de preferências
+%1
+não existe e não pode ser criado.
+Confirme que tem permissões de leitura e escrita para
+%2
+
+A Octave GUI tem de ser fechado agora.</translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation>Erro crítico do Octave</translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1362,17 +2263,7 @@
         <translation>Editor</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Mostrar espaços em branco</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Não mostrar espaços em branco usados para identação</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Cor</translation>
     </message>
@@ -1407,12 +2298,7 @@
         <translation>Tecla Apagar remove identação na linha</translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation>Número de caracteres para activar lista de sugestões</translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation>Buscar palavras-chave</translation>
     </message>
@@ -1437,37 +2323,17 @@
         <translation>Restaurar abas de edição da sessão anterior durante inicialização</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation>Criar ficheiros inexistentes sem perguntar</translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation>Usar editor de texto externo</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation>Linha de comando (%f=arquivo, %l=linha):</translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>Editor Styles</source>
-        <translation>Estilos do Editor</translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seleccionar tipo de letra, tamanho (como diferença para o tamanho padrão), decoração (negrito, itálico, sublinhado), cor do texto e cor do fundo de tela (para o último, a cor rosa (255,0,255) é sinônimo da cor de fundo padrão)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation>Usar Cor do Primeiro Plano</translation>
-    </message>
-    <message>
         <location line="+32"/>
+        <source>Editor Styles</source>
+        <translation>Estilos do Editor</translation>
+    </message>
+    <message>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation>Cores do Terminal</translation>
     </message>
@@ -1497,12 +2363,42 @@
         <translation>Exibir caminho completo no título da janela</translation>
     </message>
     <message>
-        <location line="+561"/>
+        <location line="-17"/>
+        <source>Show whitespace</source>
+        <translation>Mostrar whitespace</translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation>Não mostrar whitespace usado para indentação</translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation>Número de carácteres antes de mostrar lista de preenchimento automático</translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation>Criar ficheiros não existentes automaticamente</translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation>linha do comando (%f=ficheiro, %l=linha):</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Seleccionar tipo de letra, tamanho (como diferença para o tamanho padrão), decoração (negrito, itálico, sublinhado), cor do texto e cor do fundo de tela (para o último, a cor rosa (255,0,255) é sinônimo da cor de fundo padrão)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Terminal</translation>
     </message>
@@ -1517,7 +2413,12 @@
         <translation>Indicador piscante</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation>Usar cor do fundo</translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Tamanho da letra</translation>
     </message>
@@ -1547,12 +2448,7 @@
         <translation>Mostrar ficheiros escondidos</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Sincronizar directório do Octave com directório do navegador de ficheiros</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Cores de linhas alternantes</translation>
     </message>
@@ -1572,22 +2468,22 @@
         <translation>Rede</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation>Permitir ao Octave ligar-se ao site do Octave para mostrar notícias e informações</translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Usar servidor proxy</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Tipo de Proxy:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>Proxy HTTP</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation>Conjunto de ícones para paineis</translation>
     </message>
@@ -1602,7 +2498,12 @@
         <translation>Tamanho do Ícone</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation>Sincronizar o directório de trabalho do Octave com o navegador de ficheiros</translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>Proxy Socks 5</translation>
     </message>
@@ -1612,7 +2513,12 @@
         <translation>Nome do servidor:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation>Tipo de proxy:</translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Porta:</translation>
     </message>
@@ -1627,14 +2533,14 @@
         <translation>Senha:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation>Configuração do sistema</translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation>Indicador IBeam</translation>
     </message>
@@ -1649,7 +2555,7 @@
         <translation>Indicador Sublinhado</translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Diferença com relação ao tamanho de fonto padrão</translation>
     </message>
@@ -1675,6 +2581,61 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation>Novidades da Comunidade</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation>Anterior</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation>Próximo</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;Quando o Octave inicia, irá consultar o website do Octave para as últimas notícias e informações sobre a comunidade do Octave.
+A consulta é feita no máximo uma vez por dia e notícias só serão apresentadas quando houver algo novo desde a vez anterior.&lt;/p&gt;
+&lt;p&gt;Também é possível ver as notícias seleccionando &quot;Notícias da comunidade&quot; no menu &quot;Ajuda&quot;, ou ao visitar
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Permitir ao Octave ligar-se ao website do Octave para mostrar as últimas notícias e informações sobre a comunidade do Octave.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1685,7 +2646,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Digite aqui e pressione &apos;Enter&apos; para buscar</translation>
     </message>
@@ -1698,57 +2659,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Bem-vindo ao GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Bem-vindo ao Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Parece que você está a usar a interface gráfica do Octave pela primeira vez neste computador. Clique &apos;Finalizar&apos; para escrever um ficheiro de configuração e iniciar o Octave.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>O ficheiro de configuração é armazenado em %1. Se o ficheiro existir, este diálogo não volta aparecer quando o Octave reiniciar.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Para mais informações sobre o Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visite &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Veja a documentação na Internet em &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Abra a documentação do Octave no menu de ajuda&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Finalizar</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1778,10 +2692,16 @@
         <translation>Classe de Armazenamento</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Clique com botão direito para copiar, renomear ou exibir</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation>complexo</translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1796,7 +2716,7 @@
         <translation>Visualizar variáveis no ambiente de trabalho ativo.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Copiar</translation>
     </message>
--- a/libgui/languages/ru_RU.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/ru_RU.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation>Выбрать всё</translation>
     </message>
@@ -42,7 +42,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation type="unfinished"></translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation>Копировать</translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation>выделенное скопировано в буфер обмена</translation>
     </message>
@@ -104,21 +104,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation>Редактор Octave</translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Файлы Octave (*.m);;Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -132,12 +143,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation>&amp;%1 %2</translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation>Созд&amp;ать</translation>
     </message>
@@ -197,7 +208,7 @@
         <translation>Пр&amp;едыдущая закладка</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation>&amp;Установить/снять закладку</translation>
     </message>
@@ -208,23 +219,23 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
-        <translation>&amp;Следующая точка останова</translation>
+        <source>&amp;Next Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
-        <translation>&amp;Предыдущая точка останова</translation>
+        <source>Pre&amp;vious Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
-        <translation>Установить/снять &amp;точку останова</translation>
+        <source>Toggle &amp;Breakpoint</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
-        <translation>&amp;Удалить все точки останова</translation>
+        <source>&amp;Remove All Breakpoints</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
@@ -237,12 +248,22 @@
         <translation>&amp;Раскомментировать</translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation>&amp;Недавние файлы редактора</translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation>&amp;Редактировать функцию</translation>
     </message>
@@ -262,7 +283,7 @@
         <translation>Закрыть другие файлы</translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation type="unfinished"></translation>
     </message>
@@ -282,12 +303,12 @@
         <translation>&amp;Документация по зарезервированному слову</translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation>&amp;Найти и заменить</translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
@@ -296,7 +317,7 @@
 для чтения: %2.</translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
@@ -305,7 +326,7 @@
 не существует. Вы хотите создать его?</translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
@@ -314,12 +335,7 @@
 для записи: %2.</translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation>Сохранить и запустить файл</translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation>&amp;Перейти к строчке</translation>
     </message>
@@ -329,7 +345,7 @@
         <translation>&amp;Файл</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation>&amp;Правка</translation>
     </message>
@@ -339,12 +355,12 @@
         <translation>&amp;Настройки</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation>Настройки &amp;стиля</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation>&amp;Отладка</translation>
     </message>
@@ -357,7 +373,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation>Перейти к строчке</translation>
     </message>
@@ -367,12 +383,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation>&lt;без названия&gt;</translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation>Вы хотите сохранить или отменить изменения?</translation>
     </message>
@@ -382,16 +399,16 @@
         <translation>Вы хотите отменить закрытие, сохранить или отменить изменения?</translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation>Редактор Octave</translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -402,12 +419,12 @@
 %2</translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation>Файлы Octave (*.m);;Все файлы (*)</translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
@@ -416,7 +433,7 @@
 такое же, как и название текущего файла</translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -434,14 +451,24 @@
 был удален или переименован. Вы хотите сохранить его?%2</translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation>Не удалось открыть файл %1 для записи:
 %2.</translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation>Кажется, файл &apos;%1&apos; был изменен другим приложением. Вы хотите обновить его содержимое?</translation>
     </message>
@@ -449,7 +476,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation>Файловый менеджер</translation>
     </message>
@@ -464,27 +491,27 @@
         <translation>Введите путь или имя файла</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show octave directory</source>
         <translation>Показывать директорию Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Goto current octave directory</source>
         <translation>Перейти к текущей директории Octave</translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation>Установить директорию Octave</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -499,35 +526,55 @@
         <translation>Показывать домашнюю директорию</translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation>Найти файлы...</translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation>Новый файл</translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation>Новая директория</translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation>Двойной щелчок по файлу для открытия</translation>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+185"/>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation>Открыть</translation>
     </message>
@@ -557,7 +604,7 @@
         <translation>Установить текущую директорию</translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation>Переименовать</translation>
     </message>
@@ -567,7 +614,7 @@
         <translation>Удалить</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation>Переименовать файл/директорию</translation>
     </message>
@@ -578,40 +625,40 @@
         <translation>Переименовать файл/директорию:</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation> в: </translation>
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation>Удалить файл/директорию</translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation>Вы уверены, что хотите удалить</translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation>Невозможно удалить непустую директорию</translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation>Создать файл</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation>Создать файл в</translation>
@@ -622,13 +669,61 @@
         <translation>Создать директорию</translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation>Создать папку в</translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation type="unfinished">Завершить</translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -711,7 +806,7 @@
         <translation>Искать с начала</translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation type="unfinished"></translation>
     </message>
@@ -734,7 +829,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation>Найти файлы</translation>
     </message>
@@ -749,12 +844,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -774,7 +869,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation>Искать рекурсивно в директориях подходящие файлы</translation>
     </message>
@@ -784,7 +879,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation type="unfinished"></translation>
     </message>
@@ -794,7 +889,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -809,17 +904,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+5"/>
+        <source>Text to match</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+4"/>
-        <source>Text to match</source>
+        <source>Text case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -829,7 +924,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -864,7 +959,7 @@
         <translation>Содержимое файла</translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -877,7 +972,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation>Имя файла</translation>
     </message>
@@ -895,12 +990,12 @@
         <translation>Просмотр и поиск в журнале выполненных команд.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation>Двойной щелчок по команде перенесёт её в командную строку.</translation>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation>Введите текст для фильтрации выполненных команд.</translation>
     </message>
@@ -910,7 +1005,7 @@
         <translation>Журнал выполненных команд</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation>Копировать</translation>
     </message>
@@ -920,26 +1015,54 @@
         <translation>Выполнить</translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Create script</source>
         <translation>Создать скрипт</translation>
     </message>
 </context>
 <context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation type="unfinished">Добро пожаловать в Octave!</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation>Загрузить область переменных</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation>Об Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation>&amp;Файл</translation>
     </message>
@@ -959,12 +1082,12 @@
         <translation>Функция</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation>Открыть...</translation>
     </message>
@@ -979,7 +1102,7 @@
         <translation>Выход</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation>&amp;Правка</translation>
     </message>
@@ -999,13 +1122,13 @@
         <translation>Вставить</translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1020,12 +1143,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1060,52 +1188,42 @@
         <translation>Шаг</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation>Шаг вперед</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
-        <translation>Шаг назад</translation>
-    </message>
-    <message>
-        <location line="+4"/>
+        <location line="+12"/>
         <source>Continue</source>
         <translation>Продолжить</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Exit Debug Mode</source>
         <translation>Выйти из режима отладки</translation>
     </message>
     <message>
-        <location line="+48"/>
+        <location line="+51"/>
         <source>Show File Browser</source>
         <translation>Показывать файловый менеджер</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation>Показывать окно новостей</translation>
-    </message>
-    <message>
-        <location line="+11"/>
+        <location line="+26"/>
         <source>File Browser</source>
         <translation>Файловый менеджер</translation>
     </message>
     <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation>Новости</translation>
+        <location line="-94"/>
+        <source>Step In</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+4"/>
+        <source>Step Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation>Пакеты Octave</translation>
     </message>
@@ -1155,7 +1273,7 @@
         <translation>Введите название директории</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation>Текущая директория: </translation>
     </message>
@@ -1170,63 +1288,58 @@
         <translation>Просмотр директорий</translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation>Загрузить область переменных</translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation>&amp;Окно</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation>Показывать командное окно</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation>Показывать журнал выполненных команд</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Show Workspace</source>
         <translation>Показывать область переменных</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Editor</source>
         <translation>Показывать редактор</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Documentation</source>
         <translation>Показывать документацию</translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+6"/>
         <source>Command Window</source>
         <translation>Командное окно</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Command History</source>
         <translation>Журнал выполненных команд</translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+8"/>
         <source>Workspace</source>
         <translation>Область переменных</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation>Редактор</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation>Документация</translation>
     </message>
@@ -1242,23 +1355,51 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
+    <name>news_reader</name>
     <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
-        <translation>Новости сообщества</translation>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation>Открепить виджет</translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation>Спрятать виджет</translation>
     </message>
@@ -1271,7 +1412,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1281,7 +1422,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation>Редактировать</translation>
     </message>
@@ -1294,7 +1435,33 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation type="unfinished">Файл
+%1
+не существует. Вы хотите создать его?</translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation type="unfinished">Редактор Octave</translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation>Файл %1 не существует в пути загрузки.  Чтобы отладить редактируемую вами функцию, вы должны либо изменить директорию на %2, или добавить эту директорию в путь загрузки.</translation>
     </message>
@@ -1325,6 +1492,25 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -1352,17 +1538,7 @@
         <translation>Редактор</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation>Показывать пробелы</translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation>Не показывать пробелы, используемые для отступов</translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation>Цвет</translation>
     </message>
@@ -1397,12 +1573,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1427,37 +1598,17 @@
         <translation>Восстанавливать вкладки редактора с предыдущей сессии во время запуска</translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
+        <location line="+32"/>
         <source>Editor Styles</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Выберите шрифт, размер шрифта (отличный от размера по умолчанию), стиль шрифта (жирный, курсив, подчеркнутый),цвет текста и цвет заднего фона (для последнего розовый цвет (255,0,255) используется по умолчанию)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+32"/>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1492,12 +1643,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+633"/>
+        <location line="+55"/>
+        <source>Show whitespace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation>emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation>Командная строка</translation>
     </message>
@@ -1512,7 +1693,12 @@
         <translation>Мигающий курсор</translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation>Размер шрифта</translation>
     </message>
@@ -1542,12 +1728,7 @@
         <translation>Показывать скрытые файлы</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation>Синхронизировать директорию octave с файловым менеджером</translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation>Чередующиеся цвета строк</translation>
     </message>
@@ -1567,22 +1748,22 @@
         <translation>Сеть</translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation>Использовать прокси-сервер</translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation>Тип прокси:</translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation>HttpProxy</translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1597,7 +1778,12 @@
         <translation>Размер иконок</translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation>Socks5Proxy</translation>
     </message>
@@ -1607,7 +1793,12 @@
         <translation>Имя хоста:</translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation>Порт:</translation>
     </message>
@@ -1622,14 +1813,14 @@
         <translation>Пароль:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1644,7 +1835,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation>Отличие то размера по умолчанию</translation>
     </message>
@@ -1670,6 +1861,50 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation type="unfinished">Новости сообщества</translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished">Отмена</translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -1680,7 +1915,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation>Вводите сюда и нажмите &apos;Enter&apos;, чтобы начать поиск</translation>
     </message>
@@ -1693,57 +1928,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation>Добро пожаловать в GNU Octave</translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation>Добро пожаловать в Octave!</translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation>Кажется, вы используете графический интерфейс для Octave впервые на этом компьютере. Щелкните на кнопку &apos;Завершить&apos;, чтобы записать конфигурационный файл и запустить интерфейс для Octave.</translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation>Конфигурационный файл хранится в %1. Если этот файл существует, вы больше не увидите это всплывающее окно при запуске Octave.</translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Для получения дополнительной информации об Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Посетите &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Получите документацию онлайн в виде&lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- или &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-документа&lt;/li&gt;
-&lt;li&gt;Откройте просмотрщик документации через меню &quot;Помощь&quot;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation>Завершить</translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -1773,10 +1961,16 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation>Правый щелчок для копирования, переименования или отображения</translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -1791,7 +1985,7 @@
         <translation>Просмотр содержимого текущей области переменных.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation>Копировать</translation>
     </message>
--- a/libgui/languages/uk_UA.ts	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/languages/uk_UA.ts	Tue Nov 26 12:38:46 2013 -0500
@@ -4,7 +4,7 @@
 <context>
     <name>ListDialog</name>
     <message>
-        <location filename="../src/dialog.cc" line="+250"/>
+        <location filename="../src/dialog.cc" line="+251"/>
         <source>Select All</source>
         <translation type="unfinished"></translation>
     </message>
@@ -42,7 +42,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+64"/>
+        <location filename="../qterminal/libqterminal/QTerminal.cc" line="+65"/>
         <source>foreground</source>
         <translation type="unfinished"></translation>
     </message>
@@ -65,7 +65,7 @@
 <context>
     <name>QTerminal</name>
     <message>
-        <location filename="../qterminal/libqterminal/QTerminal.h" line="+116"/>
+        <location filename="../qterminal/libqterminal/QTerminal.h" line="+121"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -83,7 +83,7 @@
 <context>
     <name>QWinTerminalImpl</name>
     <message>
-        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1527"/>
+        <location filename="../qterminal/libqterminal/win32/QWinTerminalImpl.cpp" line="+1528"/>
         <source>copied selection to clipboard</source>
         <translation type="unfinished"></translation>
     </message>
@@ -770,21 +770,32 @@
 <context>
     <name>file_editor</name>
     <message>
-        <location filename="../src/m-editor/file-editor.cc" line="+304"/>
-        <location line="+21"/>
-        <location line="+17"/>
-        <location line="+57"/>
+        <location filename="../src/m-editor/file-editor.cc" line="+346"/>
+        <location line="+22"/>
+        <location line="+18"/>
+        <location line="+59"/>
         <location line="+28"/>
         <source>Octave Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-249"/>
+        <location line="-269"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+222"/>
+        <location line="-40"/>
+        <source>New Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>New function name:
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+281"/>
         <source>File not saved! A file with the selected name
 %1
 is already open in the editor</source>
@@ -796,12 +807,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+228"/>
+        <location line="+227"/>
         <source>&amp;%1 %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+173"/>
+        <location line="+174"/>
         <source>&amp;New File</source>
         <translation type="unfinished">&amp;Створити</translation>
     </message>
@@ -861,7 +872,7 @@
         <translation type="unfinished">До &amp;попередньої закладки</translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Toggle &amp;Bookmark</source>
         <translation type="unfinished">В&amp;становити/видалити закладку</translation>
     </message>
@@ -872,22 +883,22 @@
     </message>
     <message>
         <location line="+4"/>
-        <source>&amp;Next breakpoint</source>
+        <source>&amp;Next Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Pre&amp;vious breakpoint</source>
+        <source>Pre&amp;vious Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Toggle &amp;breakpoint</source>
+        <source>Toggle &amp;Breakpoint</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>&amp;Remove All breakpoints</source>
+        <source>&amp;Remove All Breakpoints</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -901,12 +912,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+63"/>
+        <location line="+6"/>
+        <source>Save File and Run</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
         <source>&amp;Recent Editor Files</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+9"/>
+        <location line="+5"/>
+        <source>New &amp;Function</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+6"/>
         <source>&amp;Edit Function</source>
         <translation type="unfinished"></translation>
     </message>
@@ -926,7 +947,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+49"/>
+        <location line="+51"/>
         <source>Run &amp;Selection</source>
         <translation type="unfinished"></translation>
     </message>
@@ -946,38 +967,33 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-147"/>
+        <location line="-151"/>
         <source>&amp;Find and Replace</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-584"/>
+        <location line="-589"/>
         <source>Could not open file
 %1
 for read: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+21"/>
+        <location line="+22"/>
         <source>File
 %1
 does not exist. Do you want to create it?</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+17"/>
+        <location line="+18"/>
         <source>Could not open file
 %1
 for write: %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+549"/>
-        <source>Save File And Run</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
+        <location line="+554"/>
         <source>Go&amp;to Line</source>
         <translation type="unfinished"></translation>
     </message>
@@ -987,7 +1003,7 @@
         <translation type="unfinished">&amp;Файл</translation>
     </message>
     <message>
-        <location line="+39"/>
+        <location line="+41"/>
         <source>&amp;Edit</source>
         <translation type="unfinished">&amp;Правка</translation>
     </message>
@@ -997,12 +1013,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Styles Preferences</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>&amp;Debug</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1015,7 +1031,7 @@
 <context>
     <name>file_editor_tab</name>
     <message>
-        <location filename="../src/m-editor/file-editor-tab.cc" line="+755"/>
+        <location filename="../src/m-editor/file-editor-tab.cc" line="+787"/>
         <source>Goto line</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1025,12 +1041,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+70"/>
+        <location line="+71"/>
+        <location line="+69"/>
         <source>&lt;unnamed&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+40"/>
+        <location line="-12"/>
         <source>Do you want to save or discard the changes?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1040,16 +1057,16 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
-        <location line="+129"/>
-        <location line="+115"/>
-        <location line="+66"/>
+        <location line="+10"/>
+        <location line="+123"/>
+        <location line="+111"/>
+        <location line="+64"/>
         <location line="+22"/>
         <source>Octave Editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-331"/>
+        <location line="-319"/>
         <source>The file
 %1
 is about to be closed but has been modified.
@@ -1057,19 +1074,19 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+210"/>
+        <location line="+202"/>
         <source>Octave Files (*.m);;All Files (*)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+34"/>
+        <location line="+32"/>
         <source>File not saved! The selected file name
 %1
 is the same as the current file name</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+81"/>
+        <location line="+79"/>
         <source>
 
 Warning: The contents in the editor is modified!</source>
@@ -1083,13 +1100,23 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-203"/>
+        <location line="-197"/>
         <source>Could not open file %1 for write:
 %2.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+181"/>
+        <location line="-962"/>
+        <source>Line:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Col:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1134"/>
         <source>It seems that &apos;%1&apos; has been modified by another application. Do you want to reload it?</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1097,7 +1124,7 @@
 <context>
     <name>files_dock_widget</name>
     <message>
-        <location filename="../src/files-dock-widget.cc" line="+67"/>
+        <location filename="../src/files-dock-widget.cc" line="+68"/>
         <source>File Browser</source>
         <translation type="unfinished">Файловий менеджер</translation>
     </message>
@@ -1112,27 +1139,27 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+11"/>
         <source>Move up one directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Show octave directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+1"/>
-        <source>Goto current octave directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+4"/>
+        <source>Show octave directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+2"/>
+        <source>Goto current octave directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+5"/>
         <source>Set octave directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1"/>
+        <location line="+2"/>
         <source>Set octave directroy to current browser directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1147,35 +1174,55 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
+        <location line="+12"/>
         <source>Search directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <location line="+244"/>
+        <location line="+354"/>
         <source>Find Files ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-240"/>
-        <location line="+252"/>
+        <location line="-350"/>
+        <location line="+363"/>
         <source>New File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-249"/>
-        <location line="+252"/>
+        <location line="-360"/>
+        <location line="+363"/>
         <source>New Directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-223"/>
-        <source>Doubleclick a file to open it</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+185"/>
+        <location line="-323"/>
+        <source>Double-click a file to open it</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+236"/>
+        <source>File size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>File type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Date modified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+8"/>
+        <source>Show hidden</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+24"/>
         <source>Open</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1205,7 +1252,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+7"/>
+        <location line="+8"/>
         <source>Rename</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1215,7 +1262,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Rename file/directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1226,40 +1273,40 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>
  to: </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+25"/>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Delete file/directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-10"/>
+        <location line="-13"/>
         <source>Are you sure you want to delete
 </source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+11"/>
+        <location line="+14"/>
         <source>Can not delete a directory that is not empty</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+131"/>
+        <location line="+144"/>
         <source>Set directory of file browser</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+28"/>
+        <location line="+29"/>
         <source>Create File</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create file in
 </source>
         <translation type="unfinished"></translation>
@@ -1270,13 +1317,61 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+0"/>
+        <location line="+1"/>
         <source>Create folder in
 </source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>final_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+194"/>
+        <source>Enjoy!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Finish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;We hope you find Octave to be a useful tool.&lt;/p&gt;
+&lt;p&gt;If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.
+You can find more information about each of these by visiting &lt;a href=&quot;http://octave.org/support.html&quot;&gt;http://octave.org/support.html&lt;/a&gt; (opens in external browser).&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+21"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;For more information about Octave:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt; (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document (opens in external browser)&lt;/li&gt;
+&lt;li&gt;Open the documentation browser of the Octave GUI with the help menu&lt;/li&gt;
+&lt;/ul&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>find_dialog</name>
     <message>
         <location filename="../src/m-editor/find-dialog.cc" line="+77"/>
@@ -1359,7 +1454,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+117"/>
+        <location line="+121"/>
         <source>Replace Result</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1382,7 +1477,7 @@
 <context>
     <name>find_files_dialog</name>
     <message>
-        <location filename="../src/find-files-dialog.cc" line="+47"/>
+        <location filename="../src/find-files-dialog.cc" line="+52"/>
         <source>Find Files</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1397,12 +1492,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+5"/>
+        <location line="+6"/>
         <source>Start in:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+4"/>
+        <location line="+5"/>
         <source>Enter the start directory</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1422,7 +1517,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Search recursively through directories for matching files</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1432,7 +1527,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+4"/>
         <source>Include matching directories in search results</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1442,7 +1537,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Set matching name is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1457,17 +1552,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+5"/>
+        <source>Text to match</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+4"/>
-        <source>Text to match</source>
+        <source>Text case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+3"/>
-        <source>Text case insensitive</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+2"/>
         <source>Set text content is case insensitive</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1477,7 +1572,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+14"/>
+        <location line="+17"/>
         <source>Idle.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1512,7 +1607,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+99"/>
+        <location line="+105"/>
         <source>Searching...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1525,7 +1620,7 @@
 <context>
     <name>find_files_model</name>
     <message>
-        <location filename="../src/find-files-model.cc" line="+76"/>
+        <location filename="../src/find-files-model.cc" line="+82"/>
         <source>Filename</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1543,12 +1638,12 @@
         <translation type="unfinished">Перегляд і пошук серед історії виконаних команд.</translation>
     </message>
     <message>
-        <location line="+23"/>
-        <source>Doubleclick a command to transfer it to the terminal.</source>
-        <translation type="unfinished">Подвійне клацання перенесе команду до командного рядку.</translation>
-    </message>
-    <message>
-        <location line="+6"/>
+        <location line="+24"/>
+        <source>Double-click a command to transfer it to the terminal.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
         <source>Enter text to filter the command history.</source>
         <translation type="unfinished">Введіть текст для фільтрування історії виконаних команд.</translation>
     </message>
@@ -1558,7 +1653,7 @@
         <translation type="unfinished">Історія виконаних команд</translation>
     </message>
     <message>
-        <location line="+20"/>
+        <location line="+21"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1568,26 +1663,54 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+2"/>
+        <source>Create script</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>initial_page</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="-179"/>
+        <source>Welcome to Octave!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+1"/>
-        <source>Create script</source>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;You seem to be using the Octave graphical interface for the first time on this computer.
+Click &apos;Next&apos; to create a configuration file and launch Octave.&lt;/p&gt;
+&lt;p&gt;The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>main_window</name>
     <message>
-        <location filename="../src/main-window.cc" line="+163"/>
+        <location filename="../src/main-window.cc" line="+201"/>
+        <location line="+1149"/>
         <source>Load Workspace</source>
         <translation type="unfinished">Завантажити область змінних</translation>
     </message>
     <message>
-        <location line="+435"/>
-        <location line="+847"/>
+        <location line="-511"/>
+        <location line="+865"/>
         <source>About Octave</source>
         <translation type="unfinished">Про Octave</translation>
     </message>
     <message>
-        <location line="-369"/>
+        <location line="-371"/>
         <source>&amp;File</source>
         <translation type="unfinished">&amp;Файл</translation>
     </message>
@@ -1607,12 +1730,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Figure</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Open...</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1627,7 +1750,7 @@
         <translation type="unfinished">Вийти</translation>
     </message>
     <message>
-        <location line="+52"/>
+        <location line="+53"/>
         <source>&amp;Edit</source>
         <translation type="unfinished">&amp;Правка</translation>
     </message>
@@ -1647,13 +1770,13 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1026"/>
-        <location line="+946"/>
+        <location line="-1247"/>
+        <location line="+1166"/>
         <source>Save Workspace As</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-826"/>
+        <location line="-1042"/>
         <source>The release notes file &apos;%1&apos; is empty.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1668,12 +1791,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+157"/>
+        <location line="+185"/>
+        <source>Octave Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+171"/>
         <source>Set working directory</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+736"/>
+        <location line="+754"/>
         <source>Clear Clipboard</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1708,52 +1836,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
-        <source>Step in</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Step out</source>
+        <location line="+12"/>
+        <source>Continue</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+9"/>
+        <source>Exit Debug Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+51"/>
+        <source>Show File Browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>File Browser</source>
+        <translation type="unfinished">Файловий менеджер</translation>
+    </message>
+    <message>
+        <location line="-94"/>
+        <source>Step In</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location line="+4"/>
-        <source>Continue</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+8"/>
-        <source>Exit Debug Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+48"/>
-        <source>Show File Browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>Show News Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+11"/>
-        <source>File Browser</source>
-        <translation type="unfinished">Файловий менеджер</translation>
-    </message>
-    <message>
-        <location line="+12"/>
-        <source>News</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
+        <source>Step Out</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+108"/>
         <source>Reset Default Window Layout</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+86"/>
+        <location line="+77"/>
         <source>Octave Packages</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1803,7 +1921,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+8"/>
+        <location line="+9"/>
         <source>Current Directory: </source>
         <translation type="unfinished"></translation>
     </message>
@@ -1818,63 +1936,58 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-445"/>
-        <source>Load workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+200"/>
+        <location line="-244"/>
         <source>&amp;Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+6"/>
+        <location line="+7"/>
         <source>Show Command Window</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Show Command History</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location line="+8"/>
+        <source>Show Workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Editor</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Show Documentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location line="+6"/>
-        <source>Show Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Editor</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Show Documentation</source>
-        <translation type="unfinished"></translation>
+        <source>Command Window</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Command History</source>
+        <translation type="unfinished">Історія виконаних команд</translation>
     </message>
     <message>
         <location line="+8"/>
-        <source>Command Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>Command History</source>
-        <translation type="unfinished">Історія виконаних команд</translation>
-    </message>
-    <message>
-        <location line="+6"/>
         <source>Workspace</source>
         <translation type="unfinished">Область змінних</translation>
     </message>
     <message>
-        <location line="+3"/>
+        <location line="+4"/>
         <source>Editor</source>
         <translation type="unfinished">Редактор</translation>
     </message>
     <message>
-        <location line="+3"/>
-        <location line="+132"/>
+        <location line="+4"/>
+        <location line="+121"/>
         <source>Documentation</source>
         <translation type="unfinished">Документація</translation>
     </message>
@@ -1890,23 +2003,51 @@
     </message>
 </context>
 <context>
-    <name>news_dock_widget</name>
-    <message>
-        <location filename="../src/news-dock-widget.cc" line="+44"/>
-        <source>Community News</source>
+    <name>news_reader</name>
+    <message>
+        <location line="-1268"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Octave&apos;s community news source seems to be unavailable.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser).
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+18"/>
+        <source>&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;
+Connecting to the web to display the latest Octave Community news has been disabled.
+&lt;/p&gt;
+&lt;p&gt;
+For the latest news, please check
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;
+when you have a connection to the web (link opens in an external browser)
+or enable web connections for news in Octave&apos;s network settings dialog.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;small&gt;&lt;em&gt;&amp;mdash; The Octave Developers, </source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>octave_dock_widget</name>
     <message>
-        <location filename="../src/octave-dock-widget.cc" line="+56"/>
-        <location line="+159"/>
+        <location filename="../src/octave-dock-widget.cc" line="+61"/>
+        <location line="+163"/>
         <source>Undock widget</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-149"/>
+        <location line="-153"/>
         <source>Hide widget</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1919,7 +2060,7 @@
 <context>
     <name>octave_qscintilla</name>
     <message>
-        <location filename="../src/m-editor/octave-qscintilla.cc" line="+127"/>
+        <location filename="../src/m-editor/octave-qscintilla.cc" line="+130"/>
         <source>Help on</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1929,7 +2070,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+2"/>
+        <location line="+3"/>
         <source>Edit</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1942,7 +2083,31 @@
 <context>
     <name>octave_qt_link</name>
     <message>
-        <location filename="../src/octave-qt-link.cc" line="+270"/>
+        <location filename="../src/octave-qt-link.cc" line="+94"/>
+        <location line="+6"/>
+        <location line="+7"/>
+        <source>Yes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="-13"/>
+        <source>No</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>File
+%1
+does not exist. Do you want to create it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+3"/>
+        <source>Octave Editor</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+211"/>
         <source>The file %1 does not exist in the load path.  To debug the function you are editing, you must either change to the directory %2 or add that directory to the load path.</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1973,6 +2138,25 @@
     </message>
 </context>
 <context>
+    <name>resource_manager</name>
+    <message>
+        <location filename="../src/resource-manager.cc" line="+204"/>
+        <source>The settings file
+%1
+does not exist and can not be created.
+Make sure you have read and write permissions to
+%2
+
+Octave GUI must be closed now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+4"/>
+        <source>Octave Critical Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>settings_dialog</name>
     <message>
         <location filename="../src/settings-dialog.ui" line="+29"/>
@@ -2000,17 +2184,7 @@
         <translation type="unfinished">Редактор</translation>
     </message>
     <message>
-        <location line="+16"/>
-        <source>Show white space</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+27"/>
-        <source>Do not show white spaces used for indentation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+28"/>
+        <location line="+71"/>
         <source>Color</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2045,12 +2219,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+84"/>
-        <source>Characters before list with suggestions is displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+71"/>
+        <location line="+155"/>
         <source>Match keywords</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2075,37 +2244,17 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+13"/>
-        <source>Create non existing files without prompting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+47"/>
+        <location line="+60"/>
         <source>Use custom file editor</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Command  line (%f=file, %l=line):</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+22"/>
-        <source>Editor Styles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+24"/>
-        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+76"/>
-        <source>Use Foreground Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location line="+32"/>
+        <source>Editor Styles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+132"/>
         <source>Terminal Colors</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2140,12 +2289,42 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+633"/>
+        <location line="+55"/>
+        <source>Show whitespace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+27"/>
+        <source>Do not show whitespace used for indentation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+290"/>
+        <source># of characters typed before completion list displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+194"/>
+        <source>Create nonexistent files without prompting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+57"/>
+        <source>command line (%f=file, %l=line):</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>emacs</source>
         <translation type="unfinished">emacs</translation>
     </message>
     <message>
-        <location line="+67"/>
+        <location line="+36"/>
+        <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+31"/>
         <source>Terminal</source>
         <translation type="unfinished">Командний рядок</translation>
     </message>
@@ -2160,7 +2339,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+101"/>
+        <location line="+7"/>
+        <source>Use foreground color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+94"/>
         <source>Font size</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2190,12 +2374,7 @@
         <translation type="unfinished">Показувати приховані файли</translation>
     </message>
     <message>
-        <location line="+7"/>
-        <source>Synchronize octave directory with the file browser</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+7"/>
+        <location line="+14"/>
         <source>Alternating row colors</source>
         <translation type="unfinished">Чергувати колір рядків</translation>
     </message>
@@ -2215,22 +2394,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+45"/>
+        <location line="+8"/>
+        <source>Allow Octave to connect to the Octave web site to display current news and information</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+46"/>
         <source>Use proxy server</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+10"/>
-        <source>Proxy Type:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="-33"/>
+        <location line="-23"/>
         <source>HttpProxy</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-1120"/>
+        <location line="-1129"/>
         <source>Icon set for dock widgets</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2245,7 +2424,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+1111"/>
+        <location line="+991"/>
+        <source>Synchronize Octave working directory with file browser</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+129"/>
         <source>Socks5Proxy</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2255,7 +2439,12 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+54"/>
+        <location line="+44"/>
+        <source>Proxy type:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+10"/>
         <source>Port:</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2270,14 +2459,14 @@
         <translation type="unfinished">Пароль:</translation>
     </message>
     <message>
-        <location filename="../src/settings-dialog.cc" line="+70"/>
+        <location filename="../src/settings-dialog.cc" line="+71"/>
         <location line="+4"/>
-        <location line="+346"/>
+        <location line="+389"/>
         <source>System setting</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-279"/>
+        <location line="-286"/>
         <source>IBeam Cursor</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2292,7 +2481,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+140"/>
+        <location line="+144"/>
         <source>Difference to the default size</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2318,6 +2507,50 @@
     </message>
 </context>
 <context>
+    <name>setup_community_news</name>
+    <message>
+        <location filename="../src/welcome-wizard.cc" line="+44"/>
+        <source>Community News</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+5"/>
+        <source>Previous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+7"/>
+        <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.
+The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.&lt;/p&gt;
+&lt;p&gt;You may also view the news by selecting the &quot;Community News&quot; item in the &quot;Help&quot; menu in the GUI, or by visiting
+&lt;a href=&quot;http://octave.org/community-news.html&quot;&gt;http://octave.org/community-news.html&lt;/a&gt;.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+26"/>
+        <source>&lt;html&gt;&lt;head&gt;
+&lt;style&gt;
+a:link { text-decoration: underline; color: #0000ff; }
+&lt;/style&gt;
+&lt;head/&gt;&lt;body&gt;
+&lt;p&gt;Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>terminal_dock_widget</name>
     <message>
         <location filename="../src/terminal-dock-widget.cc" line="+38"/>
@@ -2328,7 +2561,7 @@
 <context>
     <name>webinfo</name>
     <message>
-        <location filename="../src/qtinfo/webinfo.cc" line="+79"/>
+        <location filename="../src/qtinfo/webinfo.cc" line="+80"/>
         <source>Type here and press &apos;Return&apos; to search</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2341,46 +2574,10 @@
 <context>
     <name>welcome_wizard</name>
     <message>
-        <location filename="../src/welcome-wizard.cc" line="+40"/>
+        <location filename="../src/welcome-wizard.cc" line="+135"/>
         <source>Welcome to GNU Octave</source>
         <translation type="unfinished"></translation>
     </message>
-    <message>
-        <location line="+14"/>
-        <source>Welcome to Octave!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+5"/>
-        <source>You seem to be using the Octave graphical interface for the first  time on this computer.  Click &apos;Finish&apos; to write a configuration file  and launch Octave GUI.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+3"/>
-        <source>The configuration file is stored in %1. If that file exists, you will not see this dialog when Octave starts again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+23"/>
-        <source>&lt;html&gt;&lt;head&gt;
-&lt;style&gt;
-a:link { text-decoration: underline; color: #0000ff; }
-&lt;/style&gt;
-&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;For more information about Octave:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;Visit &lt;a href=&quot;http://octave.org&quot;&gt;http://octave.org&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;Get the documentation online as &lt;a href=&quot;http://www.gnu.org/software/octave/doc/interpreter/index.html&quot;&gt;html&lt;/a&gt;- or &lt;a href=&quot;http://www.gnu.org/software/octave/octave.pdf&quot;&gt;pdf&lt;/span&gt;&lt;/a&gt;-document&lt;/li&gt;
-&lt;li&gt;Open the documentation browser of Octave GUI with the help menu&lt;/li&gt;
-&lt;/ul&gt;
-&lt;/body&gt;&lt;/html&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location line="+20"/>
-        <source>Finish</source>
-        <translation type="unfinished"></translation>
-    </message>
 </context>
 <context>
     <name>workspace_model</name>
@@ -2410,10 +2607,16 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+109"/>
         <source>Right click to copy, rename, or display</source>
         <translation type="unfinished"></translation>
     </message>
+    <message>
+        <location line="+37"/>
+        <location line="+2"/>
+        <source>complex</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>workspace_view</name>
@@ -2428,7 +2631,7 @@
         <translation type="unfinished">Перегляд змісту поточної області змінних.</translation>
     </message>
     <message>
-        <location line="+75"/>
+        <location line="+76"/>
         <source>Copy</source>
         <translation type="unfinished"></translation>
     </message>
--- a/libgui/qterminal/libqterminal/QTerminal.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/qterminal/libqterminal/QTerminal.h	Tue Nov 26 12:38:46 2013 -0500
@@ -85,6 +85,8 @@
 
   void report_status_message (const QString&);
 
+  void interrupt_signal (void);
+
 public slots:
 
   virtual void copyClipboard (void) = 0;
@@ -104,6 +106,8 @@
 
   void notice_settings (const QSettings *settings);
 
+  void terminal_interrupt (void) { emit interrupt_signal (); }
+
 protected:
 
   QTerminal (QWidget *xparent = 0) : QWidget (xparent)
--- a/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp	Tue Nov 26 12:38:46 2013 -0500
@@ -46,6 +46,9 @@
     connect(m_terminalView, SIGNAL(customContextMenuRequested(QPoint)),
             this, SLOT(handleCustomContextMenuRequested(QPoint)));
 
+    connect (m_terminalView, SIGNAL (interrupt_signal (void)),
+             this, SLOT (terminal_interrupt ()));
+
 #ifdef Q_OS_MAC
     QFont font = QFont("Monaco");
     font.setStyleHint(QFont::TypeWriter);
--- a/libgui/qterminal/libqterminal/unix/TerminalView.cpp	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/qterminal/libqterminal/unix/TerminalView.cpp	Tue Nov 26 12:38:46 2013 -0500
@@ -661,10 +661,9 @@
 */
 void TerminalDisplay::setCursorPos(const int curx, const int cury)
 {
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bL  = contentsRect().bottomLeft();
-  int    tLx = bL.x();
-  int    tLy = bL.y()-2*_topMargin-_fontHeight*_lines+1;
+  QPoint tL  = contentsRect().topLeft();
+  int    tLx = tL.x();
+  int    tLy = tL.y();
 
   int xpos, ypos;
   ypos = _topMargin + tLy + _fontHeight*(cury-1) + _fontAscent;
@@ -716,7 +715,7 @@
   void* firstCharPos = &_image[ region.top() * this->_columns ];
   void* lastCharPos = &_image[ (region.top() + abs(lines)) * this->_columns ];
 
-  int top = contentsRect().height() - _topMargin - (_lines * _fontHeight) + (region.top() * _fontHeight);
+  int top = _topMargin + (region.top() * _fontHeight);
   int linesToMove = region.height() - abs(lines);
   int bytesToMove = linesToMove *
       this->_columns *
@@ -831,10 +830,10 @@
 
   int y,x,len;
 
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bL  = contentsRect().bottomLeft();
-  int    tLx = bL.x();
-  int    tLy = bL.y()-2*_topMargin-_fontHeight*_lines+1;
+  QPoint tL  = contentsRect().topLeft();
+
+  int    tLx = tL.x();
+  int    tLy = tL.y();
   _hasBlinker = false;
 
   CharacterColor cf;       // undefined
@@ -1099,13 +1098,8 @@
   if ( preeditLength == 0 )
     return QRect();
 
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bL  = contentsRect().bottomLeft();
-  int    tLx = bL.x();
-  int    tLy = bL.y()-2*_topMargin-_fontHeight*_lines+1;
-
   return QRect(_leftMargin + _fontWidth*cursorPosition().x(),
-               _topMargin + tLy + _fontHeight*cursorPosition().y(),
+               _topMargin + _fontHeight*cursorPosition().y(),
                _fontWidth*preeditLength,
                _fontHeight);
 }
@@ -1219,10 +1213,9 @@
 {
   //qDebug("%s %d drawContents and rect x=%d y=%d w=%d h=%d", __FILE__, __LINE__, rect.x(), rect.y(),rect.width(),rect.height());
 
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bottomLeft  = contentsRect().bottomLeft();
-  int bottomLeftY = bottomLeft.y();
-  int topLeftY = bottomLeftY-2*_topMargin-_fontHeight*_lines+1;
+  QPoint topLeft  = contentsRect().topLeft();
+  // Take the topmost vertical position for the view.
+  int topLeftY = topLeft.y();
 
   // In Konsole, the view has been centered. Don't do that here, since there
   // are strange hopping effects during a resize when the view does no match
@@ -1230,10 +1223,10 @@
   // int topLeftX = (_contentWidth - _usedColumns * _fontWidth) / 2;
   int topLeftX = 0;
 
-  int leftUpperX = qMin(_usedColumns-1, qMax(0, qRound((rect.left()   - topLeftX - _leftMargin ) / _fontWidth)));
-  int leftUpperY = qMin(_usedLines-1,  qMax(0, qRound((rect.top()    - topLeftY - _topMargin  ) / _fontHeight)));
-  int rightLowerX = qMin(_usedColumns-1, qMax(0, qRound((rect.right()  - topLeftX - _leftMargin ) / _fontWidth)));
-  int rightLowerY = qMin(_usedLines-1,  qMax(0, qRound((rect.bottom() - topLeftY - _topMargin  ) / _fontHeight)));
+  int leftUpperX = qMin(_usedColumns-1, qMax(0, qFloor((rect.left()   - topLeftX - _leftMargin ) / _fontWidth)));
+  int leftUpperY = qMin(_usedLines-1,  qMax(0, qFloor((rect.top()    - topLeftY - _topMargin  ) / _fontHeight)));
+  int rightLowerX = qMin(_usedColumns-1, qMax(0, qFloor((rect.right()  - topLeftX - _leftMargin ) / _fontWidth)));
+  int rightLowerY = qMin(_usedLines-1,  qMax(0, qFloor((rect.bottom() - topLeftY - _topMargin  ) / _fontHeight)));
 
   const int bufferSize = _usedColumns;
   QChar *disstrU = new QChar[bufferSize];
@@ -1368,15 +1361,10 @@
 
 QRect TerminalView::imageToWidget(const QRect& imageArea) const
 {
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bL  = contentsRect().bottomLeft();
-  int    tLx = bL.x();
-  int    tLy = bL.y()-2*_topMargin-_fontHeight*_lines+1;
-
   //qDebug("%s %d imageToWidget", __FILE__, __LINE__);
   QRect result;
   result.setLeft( _leftMargin + _fontWidth * imageArea.left() );
-  result.setTop( _topMargin + tLy + _fontHeight * imageArea.top() );
+  result.setTop( _topMargin + _fontHeight * imageArea.top() );
   result.setWidth( _fontWidth * imageArea.width() );
   result.setHeight( _fontHeight * imageArea.height() );
 
@@ -1742,10 +1730,9 @@
       return;
     }
 
-  // Align contents with bottom of view by computing top coordinate
-  QPoint bL  = contentsRect().bottomLeft();
-  int    tLx = bL.x();
-  int    tLy = bL.y()-2*_topMargin-_fontHeight*_lines+1;
+  QPoint tL  = contentsRect().topLeft();
+  int    tLx = tL.x();
+  int    tLy = tL.y();
   int    scroll = _scrollBar->value();
 
   // we're in the process of moving the mouse with the left button pressed
@@ -2287,9 +2274,7 @@
   QString text = _screenWindow->selectedText(_preserveLineBreaks);
 
   if (text.isEmpty ())
-    {
-      ::raise (SIGINT);
-    }
+    emit interrupt_signal ();
   else
     QApplication::clipboard()->setText(text);
 }
@@ -2533,11 +2518,11 @@
   if (!_isFixedSize)
     {
       // ensure that display is always at least one column wide
-      _columns = qMax(1,qRound(_contentWidth / _fontWidth));
+      _columns = qMax(1,qFloor(_contentWidth / _fontWidth));
       _usedColumns = qMin(_usedColumns,_columns);
 
       // ensure that display is always at least one line high
-      _lines = qMax(1, qRound(_contentHeight / _fontHeight));
+      _lines = qMax(1, qFloor(_contentHeight / _fontHeight));
       _usedLines = qMin(_usedLines,_lines);
     }
 }
--- a/libgui/qterminal/libqterminal/unix/TerminalView.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/qterminal/libqterminal/unix/TerminalView.h	Tue Nov 26 12:38:46 2013 -0500
@@ -447,6 +447,8 @@
 
 signals:
 
+    void interrupt_signal (void);
+
     /**
      * Emitted when the user presses a key whilst the terminal widget has focus.
      */
--- a/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp	Tue Nov 26 12:38:46 2013 -0500
@@ -330,7 +330,9 @@
   m_consoleWindow = GetConsoleWindow ();
 
   // In case the console window hasn't been created hidden...
+#ifdef HIDDEN_CONSOLE
   ShowWindow (m_consoleWindow, SW_HIDE);
+#endif
 
   CONSOLE_SCREEN_BUFFER_INFO sbi;
 
@@ -1518,9 +1520,7 @@
   QString selection = d->getSelection ();
 
   if (selection.isEmpty ())
-    {
-      ::raise (SIGINT);
-    }
+    terminal_interrupt ();
   else
     {
       clipboard->setText (selection);
--- a/libgui/src/color-picker.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/color-picker.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -24,6 +24,10 @@
 
 // Author: Torsten <ttl@justmail.de>
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include "color-picker.h"
 
 // constuctor with initial color as parameter
--- a/libgui/src/files-dock-widget.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/files-dock-widget.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -1,5 +1,6 @@
 /*
 
+Copyright (C) 2013 John P. Swensen
 Copyright (C) 2011-2013 Jacob Dawid
 
 This file is part of Octave.
@@ -89,7 +90,7 @@
   _current_directory->setInsertPolicy (QComboBox::NoInsert);
   _current_directory->setSizeAdjustPolicy (
     QComboBox::AdjustToMinimumContentsLengthWithIcon);
-  QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Preferred);
+  QSizePolicy sizePol (QSizePolicy::Expanding, QSizePolicy::Maximum);
   _current_directory->setSizePolicy (sizePol);
 
   QAction *directory_up_action = new QAction (QIcon (":/actions/icons/up.png"),
@@ -150,10 +151,21 @@
   connect (_sync_browser_directory_action, SIGNAL (triggered ()), this,
            SLOT (do_sync_browser_directory ()));
 
+  QSettings *settings = resource_manager::get_settings ();
+  // FIXME: what should happen if settings is 0?
+
   // Create the QFileSystemModel starting in the actual directory
   QDir curr_dir;
   _file_system_model = new QFileSystemModel (this);
-  _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries);
+  if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ())
+    {
+      _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries
+                                     | QDir::Hidden);
+    }
+  else
+    {
+      _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries);
+    }
   QModelIndex rootPathIndex = _file_system_model->setRootPath (
                                 curr_dir.absolutePath ());
 
@@ -165,11 +177,10 @@
   _file_tree_view->setSortingEnabled (true);
   _file_tree_view->setAlternatingRowColors (true);
   _file_tree_view->setAnimated (true);
-  _file_tree_view->setToolTip (tr ("Doubleclick a file to open it"));
+  _file_tree_view->setToolTip (tr ("Double-click a file to open it"));
 
   // get sort column and order as well as cloumn state (order and width)
-  QSettings *settings = resource_manager::get_settings ();
-  // FIXME: what should happen if settings is 0?
+
   _file_tree_view->sortByColumn (
     settings->value ("filesdockwidget/sort_files_by_column",0).toInt (),
     static_cast<Qt::SortOrder>
@@ -195,6 +206,11 @@
            SIGNAL (customContextMenuRequested (const QPoint &)),
            this, SLOT (contextmenu_requested (const QPoint &)));
 
+  _file_tree_view->header()->setContextMenuPolicy (Qt::CustomContextMenu);
+  connect (_file_tree_view->header(),
+           SIGNAL (customContextMenuRequested (const QPoint &)),
+           this, SLOT (headercontextmenu_requested (const QPoint &)));
+
   // Layout the widgets vertically with the toolbar on top
   QVBoxLayout *vbox_layout = new QVBoxLayout ();
   vbox_layout->setSpacing (0);
@@ -350,6 +366,88 @@
   QDesktopServices::openUrl (QUrl::fromLocalFile (file));
 }
 
+void files_dock_widget::toggle_headercontextitem_filesize ()
+{
+  QSettings *settings = resource_manager::get_settings ();
+  settings->setValue
+    ("filesdockwidget/showFileSize",
+     ! settings->value ("filesdockwidget/showFileSize",false).toBool ());
+  settings->sync ();
+  this->notice_settings (settings);
+}
+
+void files_dock_widget::toggle_headercontextitem_filetype ()
+{
+  QSettings *settings = resource_manager::get_settings ();
+  settings->setValue
+    ("filesdockwidget/showFileType",
+     ! settings->value ("filesdockwidget/showFileType",false).toBool ());
+  settings->sync ();
+  this->notice_settings (settings);
+}
+
+void files_dock_widget::toggle_headercontextitem_datemodified ()
+{
+  QSettings *settings = resource_manager::get_settings ();
+  settings->setValue
+    ("filesdockwidget/showLastModified",
+     ! settings->value ("filesdockwidget/showLastModified",false).toBool ());
+  settings->sync ();
+  this->notice_settings (settings);
+}
+
+void files_dock_widget::toggle_headercontextitem_showhidden ()
+{
+  QSettings *settings = resource_manager::get_settings ();
+  settings->setValue
+    ("filesdockwidget/showHiddenFiles",
+     ! settings->value ("filesdockwidget/showHiddenFiles",false).toBool ());
+  settings->sync ();
+  this->notice_settings (settings);
+}
+
+void
+files_dock_widget::headercontextmenu_requested (const QPoint& mpos)
+{
+  QMenu menu (this);
+
+  QSettings *settings = resource_manager::get_settings ();
+
+  QAction fileSizeAction (tr ("File size"), &menu);
+  fileSizeAction.setCheckable (true);
+  fileSizeAction.setChecked (
+    settings->value ("filesdockwidget/showFileSize",false).toBool ());
+  connect (&fileSizeAction, SIGNAL(triggered ()),
+           this, SLOT (toggle_headercontextitem_filesize ()));
+  menu.addAction (&fileSizeAction);
+
+  QAction fileTypeAction (tr ("File type"), &menu);
+  fileTypeAction.setCheckable (true);
+  fileTypeAction.setChecked (
+    settings->value ("filesdockwidget/showFileType",false).toBool ());
+  connect (&fileTypeAction, SIGNAL(triggered ()),
+           this, SLOT (toggle_headercontextitem_filetype ()));
+  menu.addAction (&fileTypeAction);
+
+  QAction dateModifiedAction (tr ("Date modified"), &menu);
+  dateModifiedAction.setCheckable (true);
+  dateModifiedAction.setChecked(
+    settings->value ("filesdockwidget/showLastModified",false).toBool ());
+  connect (&dateModifiedAction, SIGNAL(triggered ()),
+           this, SLOT (toggle_headercontextitem_datemodified ()));
+  menu.addAction (&dateModifiedAction);
+
+  QAction showHiddenAction (tr ("Show hidden"), &menu);
+  showHiddenAction.setCheckable (true);
+  showHiddenAction.setChecked (
+    settings->value ("filesdockwidget/showHiddenFiles",false).toBool ());
+  connect (&showHiddenAction, SIGNAL (triggered ()),
+           this, SLOT (toggle_headercontextitem_showhidden ()));
+  menu.addAction (&showHiddenAction);
+
+  menu.exec (_file_tree_view->mapToGlobal (mpos));
+}
+
 void
 files_dock_widget::contextmenu_requested (const QPoint& mpos)
 {
@@ -634,7 +732,7 @@
 {
   // Qsettings pointer is checked before emitting.
 
-  int icon_size = settings->value ("toolbar_icon_size",24).toInt ();
+  int icon_size = settings->value ("toolbar_icon_size",16).toInt ();
   if (icon_size > 16)
     icon_size = icon_size - 4;
   _navigation_tool_bar->setIconSize (QSize (icon_size,icon_size));
@@ -642,17 +740,24 @@
   // file names are always shown, other columns can be hidden by settings
   _file_tree_view->setColumnHidden (0, false);
   _file_tree_view->setColumnHidden (1,
-    !settings->value ("filesdockwidget/showFileSize",false).toBool ());
+    ! settings->value ("filesdockwidget/showFileSize",false).toBool ());
   _file_tree_view->setColumnHidden (2,
-    !settings->value ("filesdockwidget/showFileType",false).toBool ());
+    ! settings->value ("filesdockwidget/showFileType",false).toBool ());
   _file_tree_view->setColumnHidden (3,
-    !settings->value ("filesdockwidget/showLastModified",false).toBool ());
+    ! settings->value ("filesdockwidget/showLastModified",false).toBool ());
   _file_tree_view->setAlternatingRowColors (
     settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ());
   if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ())
     {
-      // TODO: React on option for hidden files.
+      _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries
+                                     | QDir::Hidden);
     }
+  else
+    {
+      _file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries);
+    }
+  _file_tree_view->setModel (_file_system_model);
+
   // enable the buttons to sync octave/browser dir
   // only if this is not done by default
   _sync_octave_dir
--- a/libgui/src/files-dock-widget.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/files-dock-widget.h	Tue Nov 26 12:38:46 2013 -0500
@@ -83,6 +83,13 @@
   /** context menu wanted */
   void contextmenu_requested (const QPoint& pos);
 
+  void toggle_headercontextitem_filesize ();
+  void toggle_headercontextitem_filetype ();
+  void toggle_headercontextitem_datemodified ();
+  void toggle_headercontextitem_showhidden ();
+
+  void headercontextmenu_requested (const QPoint& pos);
+
   /* context menu actions */
   void contextmenu_open (bool);
   void contextmenu_open_in_app (bool);
--- a/libgui/src/find-files-dialog.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/find-files-dialog.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -20,9 +20,10 @@
 
 */
 
-#include "find-files-dialog.h"
-#include "find-files-model.h"
-#include "resource-manager.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <QPushButton>
 #include <QDialogButtonBox>
 #include <QGridLayout>
@@ -41,6 +42,10 @@
 #include <QTextStream>
 #include <QGroupBox>
 
+#include "find-files-dialog.h"
+#include "find-files-model.h"
+#include "resource-manager.h"
+
 find_files_dialog::find_files_dialog (QWidget * p)
   : QDialog (p)
 {
--- a/libgui/src/find-files-model.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/find-files-model.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -20,10 +20,15 @@
 
 */
 
-#include "find-files-model.h"
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <QFileIconProvider>
 #include <QtAlgorithms>
 
+#include "find-files-model.h"
+
 class find_file_less_than
 {
 public:
--- a/libgui/src/history-dock-widget.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/history-dock-widget.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -64,7 +64,7 @@
   _history_list_view->setAlternatingRowColors (true);
   _history_list_view->setEditTriggers (QAbstractItemView::NoEditTriggers);
   _history_list_view->setStatusTip (
-    tr ("Doubleclick a command to transfer it to the terminal."));
+    tr ("Double-click a command to transfer it to the terminal."));
   _history_list_view->setSelectionMode (QAbstractItemView::ExtendedSelection);
   _history_list_view->setContextMenuPolicy (Qt::CustomContextMenu);
   connect (_history_list_view,
--- a/libgui/src/m-editor/file-editor-interface.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/m-editor/file-editor-interface.h	Tue Nov 26 12:38:46 2013 -0500
@@ -64,7 +64,7 @@
 public slots:
   virtual void request_new_file (const QString& command = QString ()) = 0;
   virtual void request_new_script (const QString& command = QString ()) = 0;
-  virtual void request_new_function (const QString& command = QString ()) = 0;
+  virtual void request_new_function (bool) = 0;
   virtual void request_open_file () = 0;
   virtual void request_open_file (const QString& openFileName, int line = -1,
                                   bool debug_pointer = false,
--- a/libgui/src/m-editor/file-editor-tab.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/m-editor/file-editor-tab.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -80,6 +80,25 @@
            this,
            SLOT (execute_command_in_terminal (const QString&)));
 
+  connect (_edit_area, 
+           SIGNAL (cursorPositionChanged (int, int)),
+           this,
+           SLOT (handle_cursor_moved (int,int)));
+
+  // create statusbar for row/col indicator
+  _status_bar = new QStatusBar (this);
+
+  _row_indicator = new QLabel ("", this);
+  _row_indicator->setMinimumSize (30,0);
+  QLabel *row_label = new QLabel (tr ("Line:"), this);
+  _col_indicator = new QLabel ("", this);
+  _col_indicator->setMinimumSize (25,0);
+  QLabel *col_label = new QLabel (tr ("Col:"), this);
+  _status_bar->addPermanentWidget (row_label, 0);
+  _status_bar->addPermanentWidget (_row_indicator, 0);
+  _status_bar->addPermanentWidget (col_label, 0);
+  _status_bar->addPermanentWidget (_col_indicator, 0);
+
   // Leave the find dialog box out of memory until requested.
   _find_dialog = 0;
   _find_dialog_is_visible = false;
@@ -121,6 +140,7 @@
 
   QVBoxLayout *edit_area_layout = new QVBoxLayout ();
   edit_area_layout->addWidget (_edit_area);
+  edit_area_layout->addWidget (_status_bar);
   edit_area_layout->setMargin (0);
   setLayout (edit_area_layout);
 
@@ -196,6 +216,20 @@
   emit mru_add_file (_file_name);
 }
 
+// valid_file_name (file): checks whether "file" names a file
+// by default, "file" is empty, then _file_name is checked
+bool
+file_editor_tab::valid_file_name (const QString& file)
+{
+  QString file_name;
+  if (file.isEmpty ())
+    file_name = _file_name;
+  else
+    file_name = file;
+  return (! file_name.isEmpty ()
+          && file_name.at (file_name.count () - 1) != '/');
+}
+
 void
 file_editor_tab::handle_margin_clicked (int margin, int line,
                                         Qt::KeyboardModifiers state)
@@ -267,8 +301,7 @@
         {
           lexer = new QsciLexerDiff ();
         }
-      else if (_file_name.isEmpty ()
-               || _file_name.at (_file_name.count () - 1) == '/')
+      else if (! valid_file_name ())
         {
           // new, no yet named file: let us assume it is octave
 #if defined (HAVE_LEXER_OCTAVE)
@@ -827,7 +860,7 @@
   QString title ("");
   QString tooltip ("");
 
-  if (_file_name.isEmpty () || _file_name.at (_file_name.count () - 1) == '/')
+  if (! valid_file_name ())
     title = tr ("<unnamed>");
   else
     {
@@ -854,12 +887,29 @@
   emit editor_state_changed (_copy_available, QDir::cleanPath (_file_name));
 }
 
+// show_dialog: shows a modal or non modal dialog depeding on the closing
+//              of the app
+void
+file_editor_tab::show_dialog (QDialog *dlg)
+{
+  dlg->setAttribute (Qt::WA_DeleteOnClose);
+  if (_app_closing)
+    dlg->exec ();
+  else
+    {
+      dlg->setWindowModality (Qt::WindowModal);
+      dlg->show ();
+    }
+}
+
 int
 file_editor_tab::check_file_modified ()
 {
   int decision = QMessageBox::Yes;
   if (_edit_area->isModified ())
     {
+      activateWindow ();
+      raise ();
       // File is modified but not saved, ask user what to do.  The file
       // editor tab can't be made parent because it may be deleted depending
       // upon the response.  Instead, change the _edit_area to read only.
@@ -876,27 +926,27 @@
             = tr ("Do you want to cancel closing, save or discard the changes?");
         }
 
+      QString file;
+      if (valid_file_name ())
+          file = _file_name;
+      else
+          file = tr ("<unnamed>");
+
       QMessageBox* msgBox
         = new QMessageBox (QMessageBox::Warning, tr ("Octave Editor"),
                            tr ("The file\n"
                                "%1\n"
                                "is about to be closed but has been modified.\n"
                                "%2").
-                           arg (_file_name). arg (available_actions),
+                           arg (file). arg (available_actions),
                            buttons, qobject_cast<QWidget *> (parent ()));
 
       msgBox->setDefaultButton (QMessageBox::Save);
       _edit_area->setReadOnly (true);
       connect (msgBox, SIGNAL (finished (int)),
                this, SLOT (handle_file_modified_answer (int)));
-      msgBox->setAttribute (Qt::WA_DeleteOnClose);
-      if (_app_closing)  // app is closing, a non modal dialogs prevent
-        msgBox->exec (); // the app of being closed before an answer from user
-      else
-        {
-          msgBox->setWindowModality (Qt::NonModal);
-          msgBox->show ();
-        }
+
+      show_dialog (msgBox);
 
       return QMessageBox::Cancel;
     }
@@ -975,8 +1025,7 @@
 {
   // If it is a new file with no name, signal that saveFileAs
   // should be performed.
-  if (saveFileName.isEmpty ()
-      || saveFileName.at (saveFileName.count () - 1) == '/')
+  if (! valid_file_name (saveFileName))
     {
       save_file_as (remove_on_success);
       return;
@@ -1010,9 +1059,7 @@
                            tr ("Could not open file %1 for write:\n%2.").
                            arg (file_to_save).arg (file.errorString ()),
                            QMessageBox::Ok, 0);
-      msgBox->setWindowModality (Qt::NonModal);
-      msgBox->setAttribute (Qt::WA_DeleteOnClose);
-      msgBox->show ();
+      show_dialog (msgBox);
 
       return;
     }
@@ -1070,7 +1117,7 @@
   // it had/has no effect on Windows, though)
   fileDialog->setOption(QFileDialog::DontUseNativeDialog, true);
 
-  if (!_file_name.isEmpty () && _file_name.at (_file_name.count () - 1) != '/')
+  if (valid_file_name ())
     {
       fileDialog->selectFile (_file_name);
     }
@@ -1107,9 +1154,7 @@
                this, SLOT (handle_save_file_as_answer (const QString&)));
     }
 
-  fileDialog->setWindowModality (Qt::WindowModal);
-  fileDialog->setAttribute (Qt::WA_DeleteOnClose);
-  fileDialog->show ();
+  show_dialog (fileDialog);
 }
 
 void
@@ -1127,9 +1172,7 @@
                        arg (saveFileName),
                        QMessageBox::Ok, 0);
 
-  msgBox->setWindowModality (Qt::NonModal);
-  msgBox->setAttribute (Qt::WA_DeleteOnClose);
-  msgBox->show ();
+  show_dialog (msgBox);
 }
 
 void
@@ -1454,4 +1497,11 @@
     }
 }
 
+void 
+file_editor_tab::handle_cursor_moved (int line, int col)
+{
+  _row_indicator->setNum (line+1);
+  _col_indicator->setNum (col+1);
+}
+
 #endif
--- a/libgui/src/m-editor/file-editor-tab.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/m-editor/file-editor-tab.h	Tue Nov 26 12:38:46 2013 -0500
@@ -29,6 +29,8 @@
 #include <QSettings>
 #include <QFileInfo>
 #include <Qsci/qsciapis.h>
+#include <QStatusBar>
+#include <QLabel>
 
 #include "find-dialog.h"
 #include "octave-qscintilla.h"
@@ -150,6 +152,8 @@
   // When the numer of lines changes -> adapt width of margin
   void auto_margin_width ();
 
+  void handle_cursor_moved (int line, int col);
+
 private:
 
   enum editor_markers
@@ -172,6 +176,7 @@
     int line;
   };
 
+  bool valid_file_name (const QString& file=QString ());
   void save_file (const QString& saveFileName, bool remove_on_success = false);
   void save_file_as (bool remove_on_success = false);
   void message_duplicate_file_name (const QString& fileName);
@@ -180,6 +185,7 @@
   void request_add_breakpoint (int line);
   void request_remove_breakpoint (int line);
 
+  void show_dialog (QDialog *dlg);
   int check_file_modified ();
   void do_comment_selected_text (bool comment);
   QString comment_string (const QString&);
@@ -191,6 +197,10 @@
 
   octave_qscintilla *_edit_area;
 
+  QStatusBar *_status_bar;
+  QLabel *_row_indicator;
+  QLabel *_col_indicator;
+
   QString _file_name;
   QString _file_name_short;
 
--- a/libgui/src/m-editor/file-editor.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/m-editor/file-editor.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -37,6 +37,7 @@
 #include <QStyle>
 #include <QTextStream>
 #include <QProcess>
+#include <QInputDialog>
 
 #include "octave-link.h"
 #include "utils.h"
@@ -131,6 +132,11 @@
 void
 file_editor::request_new_file (const QString& commands)
 {
+  // Custom editor? If yes, we can only call the editor without passing
+  // some initial contents and even without being sure a new file is opened
+  if (call_custom_editor ())
+    return;
+
   // New file isn't a file_editor_tab function since the file
   // editor tab has yet to be created and there is no object to
   // pass a signal to.  Hence, functionality is here.
@@ -151,22 +157,39 @@
 }
 
 void
-file_editor::request_new_function (const QString& commands)
+file_editor::request_new_function (bool)
 {
-  QString text = commands;
+  bool ok;
+  // get the name of the new function
+  QString new_name  = QInputDialog::getText (this, tr ("New Function"),
+                      tr ("New function name:\n"), QLineEdit::Normal, "", &ok);
+  if (ok && new_name.length () > 0)
+    {
+      // append suffix if it not already exists
+      if (new_name.rightRef (2) != ".m")
+        new_name.append (".m");
+      // check whether new files are created without prompt
+      QSettings *settings = resource_manager::get_settings ();
+      if (! settings->value ("editor/create_new_file",false).toBool ())
+        {
+          // no, so enable this settings and wait for end of new file loading
+          settings->setValue ("editor/create_new_file",true);
+          connect (this, SIGNAL (file_loaded_signal ()),
+                   this, SLOT (restore_create_file_setting ()));
+        }
+      // start the edit command
+      emit execute_command_in_terminal_signal ("edit " + new_name);
+    }
+}
 
-  if (text.isEmpty ())
-    text = "## Copyright (C)\n"
-      "\n"
-      "## -*- texinfo -*-\n"
-      "## @deftypefn {Function File} {[outputs] =} unamed_function (inputs)\n"
-      "## @end deftypefn\n"
-      "\n"
-      "function [outputs] = unnamed_function (inputs)\n"
-      "\n"
-      "endfunction\n";
-
-  request_new_file (text);
+void
+file_editor::restore_create_file_setting ()
+{
+  // restore the new files creation setting
+  QSettings *settings = resource_manager::get_settings ();
+  settings->setValue ("editor/create_new_file",false);
+  disconnect (this, SIGNAL (file_loaded_signal ()),
+              this, SLOT (restore_create_file_setting ()));
 }
 
 void
@@ -218,28 +241,42 @@
   return retval;
 }
 
+bool
+file_editor::call_custom_editor (const QString& file_name, int line)
+{
+  // Check if the user wants to use a custom file editor.
+  QSettings *settings = resource_manager::get_settings ();
+
+  if (settings->value ("useCustomFileEditor").toBool ())
+    {
+      QString editor = settings->value ("customFileEditor").toString ();
+      editor.replace ("%f", file_name);
+      editor.replace ("%l", QString::number (line));
+
+      QProcess::startDetached (editor);
+
+      if (line < 0 && ! file_name.isEmpty ())
+        handle_mru_add_file (QFileInfo (file_name).canonicalFilePath ());
+
+      return true;
+    }
+
+  return false;
+}
+
 void
 file_editor::request_open_file (const QString& openFileName, int line,
                                 bool debug_pointer,
                                 bool breakpoint_marker, bool insert)
 {
-  // Check if the user wants to use a custom file editor.
-  QSettings *settings = resource_manager::get_settings ();
-  if (settings->value ("useCustomFileEditor").toBool ())
-    {
-      QString editor = settings->value ("customFileEditor").toString ();
-      editor.replace ("%f", openFileName);
-      editor.replace ("%l", QString::number (line));
-      QProcess::startDetached (editor);
-      if (line < 0)
-        handle_mru_add_file (QDir::cleanPath (openFileName));
-      return;
-    }
+  if (call_custom_editor (openFileName, line))
+    return;   // custom editor called
 
   if (openFileName.isEmpty ())
     {
-      // ??  Not sure this will happen.  This routine isn't even called
-      // if the user hasn't selected a file.
+      // This happens if edit is calles without an argument
+      // Open eitor with empty edit area instead (as new file would do)
+      request_new_file ("");
     }
   else
     {
@@ -266,6 +303,7 @@
             }
 
           emit fetab_set_focus (tab);
+          set_focus ();
         }
       else
         {
@@ -319,8 +357,8 @@
                       // File does not exist, should it be crated?
                       QMessageBox *msgBox;
                       int answer;
-                      if (settings->value ("editor/create_new_file",
-                                           false).toBool ())
+                      QSettings *settings = resource_manager::get_settings ();
+                      if (settings->value ("editor/create_new_file", false).toBool ())
                         {
                           answer = QMessageBox::Yes;
                         }
@@ -366,6 +404,7 @@
 
           // really show editor and the current editor tab
           set_focus ();
+          emit file_loaded_signal ();
         }
     }
 }
@@ -490,7 +529,6 @@
 file_editor::handle_edit_file_request (const QString& file)
 {
   request_open_file (file);
-  set_focus ();
 }
 
 void
@@ -751,6 +789,7 @@
             {
               _tab_widget->removeTab (i);
               delete fileEditorTab;
+              break;
             }
         }
     }
@@ -801,7 +840,7 @@
 void
 file_editor::notice_settings (const QSettings *settings)
 {
-  int icon_size = settings->value ("toolbar_icon_size", 24).toInt ();
+  int icon_size = settings->value ("toolbar_icon_size", 16).toInt ();
   _tool_bar->setIconSize (QSize (icon_size, icon_size));
   // Relay signal to file editor tabs.
   emit fetab_settings_changed (settings);
@@ -829,6 +868,7 @@
 
   _menu_bar = new QMenuBar (editor_widget);
   _tool_bar = new QToolBar (editor_widget);
+  _tool_bar->setMovable (true);
   _tab_widget = new QTabWidget (editor_widget);
   _tab_widget->setTabsClosable (true);
 
@@ -877,16 +917,16 @@
 
   QAction *next_breakpoint_action
     = new QAction (QIcon (":/actions/icons/bp_next.png"),
-                   tr ("&Next breakpoint"), _tool_bar);
+                   tr ("&Next Breakpoint"), _tool_bar);
   QAction *previous_breakpoint_action
     = new QAction (QIcon (":/actions/icons/bp_prev.png"),
-                   tr ("Pre&vious breakpoint"), _tool_bar);
+                   tr ("Pre&vious Breakpoint"), _tool_bar);
   QAction *toggle_breakpoint_action
     = new QAction (QIcon (":/actions/icons/bp_toggle.png"),
-                   tr ("Toggle &breakpoint"), _tool_bar);
+                   tr ("Toggle &Breakpoint"), _tool_bar);
   QAction *remove_all_breakpoints_action
     = new QAction (QIcon (":/actions/icons/bp_rm_all.png"),
-                   tr ("&Remove All breakpoints"), _tool_bar);
+                   tr ("&Remove All Breakpoints"), _tool_bar);
 
   _comment_selection_action
     = new QAction (tr ("&Comment"), _tool_bar);
@@ -897,7 +937,7 @@
                               tr ("&Find and Replace"), _tool_bar);
 
   _run_action = new QAction (QIcon (":/actions/icons/artsbuilderexecute.png"),
-                             tr ("Save File And Run"), _tool_bar);
+                             tr ("Save File and Run"), _tool_bar);
 
   _goto_line_action = new QAction (tr ("Go&to Line"), _tool_bar);
 
@@ -959,6 +999,8 @@
     _mru_file_menu->addAction (_mru_file_actions[i]);
 
   fileMenu->addAction (new_action);
+  fileMenu->addAction (QIcon (), tr ("New &Function"),
+                      this, SLOT (request_new_function (bool)));
   fileMenu->addAction (open_action);
   fileMenu->addMenu (_mru_file_menu);
   fileMenu->addSeparator ();
@@ -1150,6 +1192,9 @@
   connect (_tab_widget, SIGNAL (currentChanged (int)),
            this, SLOT (active_tab_changed (int)));
 
+  connect (this, SIGNAL (execute_command_in_terminal_signal (const QString&)),
+           main_win (), SLOT (execute_command_in_terminal (const QString&)));
+
   resize (500, 400);
   setWindowIcon (QIcon (":/actions/icons/logo.png"));
   set_title ("Editor");
--- a/libgui/src/m-editor/file-editor.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/m-editor/file-editor.h	Tue Nov 26 12:38:46 2013 -0500
@@ -99,13 +99,15 @@
                                    int line = -1);
   void fetab_set_focus (const QWidget* ID);
   void request_settings_dialog (const QString&);
+  void execute_command_in_terminal_signal (const QString&);
+  void file_loaded_signal ();
 
 public slots:
   void focus (void);
 
   void request_new_file (const QString& commands);
   void request_new_script (const QString& commands);
-  void request_new_function (const QString& commands);
+  void request_new_function (bool triggered = true);
   void request_open_file (void);
   void request_close_file (bool);
   void request_close_all_files (bool);
@@ -176,6 +178,7 @@
                           bool breakpoint_marker = false, bool insert = true);
   void request_preferences (bool);
   void request_styles_preferences (bool);
+  void restore_create_file_setting ();
 
 private:
 
@@ -183,6 +186,7 @@
   void add_file_editor_tab (file_editor_tab *f, const QString& fn);
   void save_file_as (QWidget *fetabID = 0);
   void mru_menu_update (void);
+  bool call_custom_editor (const QString& file_name = QString (), int line = -1);
 
   QWidget *find_tab_widget (const QString& openFileName) const;
 
--- a/libgui/src/main-window.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/main-window.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -40,6 +40,9 @@
 #include <QMessageBox>
 #include <QIcon>
 #include <QTextStream>
+#include <QThread>
+#include <QDateTime>
+#include <QDebug>
 
 #include <utility>
 
@@ -49,7 +52,9 @@
 #include "main-window.h"
 #include "settings-dialog.h"
 
+#include "Array.h"
 #include "cmd-edit.h"
+#include "url-transfer.h"
 
 #include "builtin-defun-decls.h"
 #include "defaults.h"
@@ -70,7 +75,6 @@
   : QMainWindow (p),
     _workspace_model (new workspace_model ()),
     status_bar (new QStatusBar ()),
-    news_window (new news_dock_widget (this)),
     command_window (new terminal_dock_widget (this)),
     history_window (new history_dock_widget (this)),
     file_browser_window (new files_dock_widget (this)),
@@ -78,13 +82,38 @@
     editor_window (create_default_editor (this)),
     workspace_window (new workspace_view (this)),
     find_files_dlg (0),
-    _octave_main_thread (0),
+    release_notes_window (0),
+    community_news_window (0),
     _octave_qt_link (0),
     _clipboard (QApplication::clipboard ()),
     _cmd_queue (new QStringList ()),  // no command pending
     _cmd_processing (1),
     _cmd_queue_mutex ()
 {
+  QSettings *settings = resource_manager::get_settings ();
+
+  bool connect_to_web = true;
+  QDateTime last_checked;
+  int serial = 0;
+
+  if (settings)
+    {
+      connect_to_web
+        = settings->value ("news/allow_web_connection", true).toBool ();
+
+      last_checked
+        = settings->value ("news/last_time_checked", QDateTime ()).toDateTime ();
+
+      serial = settings->value ("news/last_news_item", 0).toInt ();
+    }
+
+  QDateTime current = QDateTime::currentDateTime ();
+  QDateTime one_day_ago = current.addDays (-1);
+
+  if (connect_to_web
+      && (! last_checked.isValid () || one_day_ago > last_checked))
+    load_and_display_community_news (serial);
+
   // We have to set up all our windows, before we finally launch octave.
   construct ();
 }
@@ -95,7 +124,6 @@
   // to its original pipe to capture error messages at exit.
 
   delete editor_window;     // first one for dialogs of modified editor-tabs
-  delete news_window;
   delete command_window;
   delete workspace_window;
   delete doc_browser_window;
@@ -108,7 +136,16 @@
       delete find_files_dlg;
       find_files_dlg = 0;
     }
-  delete _octave_main_thread;
+  if (release_notes_window)
+    {
+      delete release_notes_window;
+      release_notes_window = 0;
+    }
+  if (community_news_window)
+    {
+      delete community_news_window;
+      community_news_window = 0;
+    }
   delete _octave_qt_link;
   delete _cmd_queue;
 }
@@ -254,43 +291,244 @@
 void
 main_window::display_release_notes (void)
 {
-  std::string news_file = Voct_etc_dir + "/NEWS";
-
-  QString news;
-
-  QFile *file = new QFile (QString::fromStdString (news_file));
-  if (file->open (QFile::ReadOnly))
+  if (! release_notes_window)
     {
-      QTextStream *stream = new QTextStream (file);
-      news = stream->readAll ();
-      if (! news.isEmpty ())
+      std::string news_file = Voct_etc_dir + "/NEWS";
+
+      QString news;
+
+      QFile *file = new QFile (QString::fromStdString (news_file));
+      if (file->open (QFile::ReadOnly))
         {
-          news.prepend ("<pre>");
-          news.append ("</pre>");
+          QTextStream *stream = new QTextStream (file);
+          news = stream->readAll ();
+          if (! news.isEmpty ())
+            {
+              news.prepend ("<pre>");
+              news.append ("</pre>");
+            }
+          else
+            news = (tr ("The release notes file '%1' is empty.")
+                    . arg (QString::fromStdString (news_file)));
         }
       else
-        news = (tr ("The release notes file '%1' is empty.")
+        news = (tr ("The release notes file '%1' cannot be read.")
                 . arg (QString::fromStdString (news_file)));
+
+
+      release_notes_window = new QWidget;
+
+      QTextBrowser *browser = new QTextBrowser (release_notes_window);
+      browser->setText (news);
+
+      QVBoxLayout *vlayout = new QVBoxLayout;
+      vlayout->addWidget (browser);
+
+      release_notes_window->setLayout (vlayout);
+      release_notes_window->setWindowTitle (tr ("Octave Release Notes"));
+
+      browser->document()->adjustSize ();
+      QSize doc_size = browser->document()->size().toSize ();
+      doc_size.rwidth () += 45;
+      int h = QApplication::desktop ()->height ();
+      if (h > 800)
+        h = 800;
+      doc_size.rheight () = h;
+
+      release_notes_window->resize (doc_size);
+    }
+
+  if (! release_notes_window->isVisible ())
+    release_notes_window->show ();
+  else if (release_notes_window->isMinimized ())
+    release_notes_window->showNormal ();
+
+  release_notes_window->setWindowIcon (QIcon (_release_notes_icon));
+
+  release_notes_window->raise ();
+  release_notes_window->activateWindow ();
+}
+
+void
+news_reader::process (void)
+{
+  QString html_text;
+
+  if (connect_to_web)
+    {
+      // Run this part in a separate thread so Octave can continue to
+      // run while we wait for the page to load.  Then emit the signal
+      // to display it when we have the page contents.
+
+      QString url = base_url + "/" + page;
+      std::ostringstream buf;
+      url_transfer octave_dot_org (url.toStdString (), buf);
+
+      Array<std::string> param;
+      octave_dot_org.http_get (param);
+
+      if (octave_dot_org.good ())
+        html_text = QString::fromStdString (buf.str ());
+
+      if (html_text.contains ("this-is-the-gnu-octave-community-news-page"))
+        {
+          if (serial >= 0)
+            {
+              QSettings *settings = resource_manager::get_settings ();
+
+              if (settings)
+                {
+                  settings->setValue ("news/last_time_checked",
+                                      QDateTime::currentDateTime ());
+
+                  settings->sync ();
+                }
+
+              QString tag ("community-news-page-serial=");
+
+              int b = html_text.indexOf (tag);
+
+              if (b)
+                {
+                  b += tag.length ();
+
+                  int e = html_text.indexOf ("\n", b);
+
+                  QString tmp = html_text.mid (b, e-b);
+
+                  int curr_page_serial = tmp.toInt ();
+
+                  if (curr_page_serial > serial)
+                    {
+                      if (settings)
+                        {
+                          settings->setValue ("news/last_news_item",
+                                              curr_page_serial);
+
+                          settings->sync ();
+                        }
+                    }
+                  else
+                    return;
+                }
+              else
+                return;
+            }
+        }
+      else
+        html_text = QString
+          (tr ("<html>\n"
+               "<body>\n"
+               "<p>\n"
+               "Octave's community news source seems to be unavailable.\n"
+               "</p>\n"
+               "<p>\n"
+               "For the latest news, please check\n"
+               "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
+               "when you have a connection to the web (link opens in an external browser).\n"
+               "</p>\n"
+               "<p>\n"
+               "<small><em>&mdash; The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n"
+               "</p>\n"
+               "</body>\n"
+               "</html>\n"));
     }
   else
-    news = (tr ("The release notes file '%1' cannot be read.")
-            . arg (QString::fromStdString (news_file)));
+    html_text = QString
+      (tr ("<html>\n"
+           "<body>\n"
+           "<p>\n"
+           "Connecting to the web to display the latest Octave Community news has been disabled.\n"
+           "</p>\n"
+           "<p>\n"
+           "For the latest news, please check\n"
+           "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n"
+           "when you have a connection to the web (link opens in an external browser)\n"
+           "or enable web connections for news in Octave's network settings dialog.\n"
+           "</p>\n"
+           "<p>\n"
+           "<small><em>&mdash; The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n"
+           "</p>\n"
+           "</body>\n"
+           "</html>\n"));
 
+  emit display_news_signal (html_text);
+
+  emit finished ();
+}
 
-  QWidget *w = new QWidget;
+void
+main_window::load_and_display_community_news (int serial)
+{
+  QSettings *settings = resource_manager::get_settings ();
+
+  bool connect_to_web
+    = (settings
+       ? settings->value ("news/allow_web_connection", true).toBool ()
+       : true);
 
-  QTextBrowser *browser = new QTextBrowser (w);
-  browser->setText (news);
+  QString base_url = "http://octave.org";
+  QString page = "community-news.html";
+
+  QThread *worker_thread = new QThread;
+
+  news_reader *reader = new news_reader (base_url, page, serial,
+                                         connect_to_web);
+
+  reader->moveToThread (worker_thread);
+
+  connect (reader, SIGNAL (display_news_signal (const QString&)),
+           this, SLOT (display_community_news (const QString&)));
 
-  QVBoxLayout *vlayout = new QVBoxLayout;
-  vlayout->addWidget (browser);
+  connect (worker_thread, SIGNAL (started (void)),
+           reader, SLOT (process ()));
+
+  connect (reader, SIGNAL (finished (void)), worker_thread, SLOT (quit ()));
+
+  connect (reader, SIGNAL (finished (void)), reader, SLOT (deleteLater ()));
+
+  connect (worker_thread, SIGNAL (finished (void)),
+           worker_thread, SLOT (deleteLater ()));
+
+  worker_thread->start ();
+}
+
+void
+main_window::display_community_news (const QString& news)
+{
+  if (! community_news_window)
+    {
+      community_news_window = new QWidget;
+
+      QTextBrowser *browser = new QTextBrowser (community_news_window);
 
-  w->setLayout (vlayout);
-  w->setWindowTitle (tr ("Octave Release Notes"));
-  w->setWindowIcon (QIcon (_release_notes_icon));
-  w->show ();
-  w->raise ();
-  w->activateWindow ();
+      browser->setHtml (news);
+      browser->setObjectName ("OctaveNews");
+      browser->setOpenExternalLinks (true);
+
+      QVBoxLayout *vlayout = new QVBoxLayout;
+
+      vlayout->addWidget (browser);
+
+      community_news_window->setLayout (vlayout);
+      community_news_window->setWindowTitle (tr ("Octave Community News"));
+      community_news_window->resize (640, 480);
+      int win_x = QApplication::desktop ()->width ();
+      int win_y = QApplication::desktop ()->height ();
+      community_news_window->move ((win_x - community_news_window->width ())/2,
+                                   (win_y - community_news_window->height ())/2);
+    }
+
+  if (! community_news_window->isVisible ())
+    community_news_window->show ();
+  else if (community_news_window->isMinimized ())
+    community_news_window->showNormal ();
+
+  // same icon as release notes
+  community_news_window->setWindowIcon (QIcon (_release_notes_icon));
+
+  community_news_window->raise ();
+  community_news_window->activateWindow ();
 }
 
 void
@@ -397,7 +635,7 @@
   else
     _release_notes_icon = ":/actions/icons/logo.png";
 
-  int icon_size = settings->value ("toolbar_icon_size",24).toInt ();
+  int icon_size = settings->value ("toolbar_icon_size",16).toInt ();
   _main_tool_bar->setIconSize (QSize (icon_size,icon_size));
 
   resource_manager::update_network_settings ();
@@ -446,7 +684,7 @@
 main_window::browse_for_directory (void)
 {
   QString dir
-    = QFileDialog::getExistingDirectory (this, tr ("Set working directory"), 0,
+    = QFileDialog::getExistingDirectory (this, tr ("Browse directories"), 0,
                                          QFileDialog::DontUseNativeDialog);
 
   set_current_working_directory (dir);
@@ -647,21 +885,23 @@
 
       if (! name.isEmpty ())
         {
-          // If floating, make window from widget.
           bool floating = settings->value
               ("DockWidgets/" + name + "Floating", false).toBool ();
+          bool visible = settings->value
+              ("DockWidgets/" + name + "Visible", true).toBool ();
+
+#if defined (Q_OS_WIN32)
+          // If floating, make window from widget.
           if (floating)
             widget->make_window ();
           else if (! widget->parent ())  // should not be floating but is
             widget->make_widget (false); // no docking, just reparent
-
+#else
           // restore geometry
           QVariant val = settings->value ("DockWidgets/" + name);
           widget->restoreGeometry (val.toByteArray ());
-
+#endif
           // make widget visible if desired
-          bool visible = settings->value
-              ("DockWidgets/" + name + "Visible", true).toBool ();
           if (floating && visible)              // floating and visible
             float_and_visible.append (widget);  // not show before main win
           else
@@ -672,13 +912,30 @@
         }
     }
 
+#if ! defined (Q_OS_WIN32)
+  // show main first but minimized to avoid flickering,
+  // otherwise the name of a floating widget is shown in a global menu bar
+  showMinimized ();
+  // hide again, otherwise the geometry is not exactly restored
+  hide ();
+#endif
+  // restore geomoetry of main window
   restoreState (settings->value ("MainWindow/windowState").toByteArray ());
   restoreGeometry (settings->value ("MainWindow/geometry").toByteArray ());
-  show ();  // main window is ready and can be shown (as first window)
+  // show main window
+  show ();
 
   // show floating widgets after main win to ensure "Octave" in central menu
   foreach (octave_dock_widget *widget, float_and_visible)
-    widget->setVisible (true);
+    {
+#if ! defined (Q_OS_WIN32)
+      widget->make_window ();
+#endif
+      if (settings->value ("DockWidgets/" + widget->objectName () + "_minimized").toBool ())
+        widget->showMinimized ();
+      else
+        widget->setVisible (true);
+    }
 
 }
 
@@ -916,7 +1173,6 @@
                   | QMainWindow::AllowNestedDocks
                   | QMainWindow::AllowTabbedDocks);
 
-  addDockWidget (Qt::RightDockWidgetArea, news_window);
   addDockWidget (Qt::RightDockWidgetArea, command_window);
   addDockWidget (Qt::RightDockWidgetArea, doc_browser_window);
   tabifyDockWidget (command_window, doc_browser_window);
@@ -976,9 +1232,7 @@
 void
 main_window::construct_octave_qt_link (void)
 {
-  _octave_main_thread = new octave_main_thread ();
-
-  _octave_qt_link = new octave_qt_link (_octave_main_thread);
+  _octave_qt_link = new octave_qt_link ();
 
   connect (_octave_qt_link, SIGNAL (exit_signal (int)),
            this, SLOT (exit (int)));
@@ -1059,6 +1313,9 @@
            SLOT (handle_rename_variable_request (const QString&,
                                                  const QString&)));
 
+  connect (command_window, SIGNAL (interrupt_signal (void)),
+           _octave_qt_link, SLOT (terminal_interrupt (void)));
+
   _octave_qt_link->execute_interpreter ();
 
   octave_link::connect_link (_octave_qt_link);
@@ -1102,7 +1359,7 @@
   file_menu->addSeparator ();
 
   QAction *load_workspace_action
-    = file_menu->addAction (tr ("Load workspace"));
+    = file_menu->addAction (tr ("Load Workspace"));
 
   QAction *save_workspace_action
     = file_menu->addAction (tr ("Save Workspace As"));
@@ -1146,8 +1403,9 @@
                            tr ("Script"));
   _new_script_action->setShortcutContext (Qt::ApplicationShortcut);
 
-  QAction *new_function_action = new_menu->addAction (tr ("Function"));
-  new_function_action->setEnabled (true);
+  _new_function_action = new_menu->addAction (tr ("Function"));
+  _new_function_action->setEnabled (true);
+  _new_function_action->setShortcutContext (Qt::ApplicationShortcut);
 
   QAction *new_figure_action = new_menu->addAction (tr ("Figure"));
   new_figure_action->setEnabled (true);
@@ -1156,7 +1414,7 @@
   connect (_new_script_action, SIGNAL (triggered ()),
            editor_window, SLOT (request_new_script ()));
 
-  connect (new_function_action, SIGNAL (triggered ()),
+  connect (_new_function_action, SIGNAL (triggered ()),
            editor_window, SLOT (request_new_function ()));
 #endif
 
@@ -1252,11 +1510,11 @@
                         Qt::Key_F10);
 
   _debug_step_into = construct_debug_menu_item
-                       (":/actions/icons/db_step_in.png", tr ("Step in"),
+                       (":/actions/icons/db_step_in.png", tr ("Step In"),
                         Qt::Key_F11);
 
   _debug_step_out = construct_debug_menu_item
-                      (":/actions/icons/db_step_out.png", tr ("Step out"),
+                      (":/actions/icons/db_step_out.png", tr ("Step Out"),
                        Qt::ShiftModifier + Qt::Key_F11);
 
   _debug_continue = construct_debug_menu_item
@@ -1335,10 +1593,6 @@
                                        (window_menu, tr ("Show Documentation"),
                                         true, ctrl_shift + Qt::Key_5);
 
-  QAction *show_news_action = construct_window_menu_item
-                              (window_menu, tr ("Show News Window"), true,
-                               ctrl_shift + Qt::Key_6);
-
   window_menu->addSeparator ();
 
   QAction *command_window_action = construct_window_menu_item
@@ -1365,9 +1619,6 @@
                                   (window_menu, tr ("Documentation"), false,
                                    ctrl + Qt::Key_5);
 
-  QAction *news_action = construct_window_menu_item
-                         (window_menu, tr ("News"), false, ctrl + Qt::Key_6);
-
   window_menu->addSeparator ();
 
   QAction *reset_windows_action
@@ -1405,12 +1656,6 @@
            show_editor_action, SLOT (setChecked (bool)));
 #endif
 
-  connect (show_news_action, SIGNAL (toggled (bool)),
-           news_window, SLOT (setVisible (bool)));
-
-  connect (news_window, SIGNAL (active_changed (bool)),
-           show_news_action, SLOT (setChecked (bool)));
-
   connect (show_documentation_action, SIGNAL (toggled (bool)),
            doc_browser_window, SLOT (setVisible (bool)));
 
@@ -1434,9 +1679,6 @@
            editor_window, SLOT (focus ()));
 #endif
 
-  connect (news_action, SIGNAL (triggered ()),
-           news_window, SLOT (focus ()));
-
   connect (documentation_action, SIGNAL (triggered ()),
            doc_browser_window, SLOT (focus ()));
 
@@ -1525,7 +1767,7 @@
            this, SLOT (display_release_notes ()));
 
   connect (current_news_action, SIGNAL (triggered ()),
-           news_window, SLOT (focus ()));
+           this, SLOT (load_and_display_community_news ()));
 }
 
 void
@@ -1784,6 +2026,9 @@
 
       _open_action->setShortcut (QKeySequence::Open);
       _new_script_action->setShortcut (QKeySequence::New);
+      _new_function_action->setShortcut (Qt::ControlModifier
+                                       + Qt::ShiftModifier
+                                       + Qt::Key_N);
 
       _exit_action->setShortcut (QKeySequence::Quit);
 
@@ -1799,6 +2044,7 @@
 
       _open_action->setShortcut (no_key);
       _new_script_action->setShortcut (no_key);
+      _new_function_action->setShortcut (no_key);
 
       _exit_action->setShortcut (no_key);
 
--- a/libgui/src/main-window.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/main-window.h	Tue Nov 26 12:38:46 2013 -0500
@@ -51,7 +51,6 @@
 #include "workspace-view.h"
 #include "history-dock-widget.h"
 #include "files-dock-widget.h"
-#include "news-dock-widget.h"
 #include "terminal-dock-widget.h"
 #include "documentation-dock-widget.h"
 #include "octave-qt-link.h"
@@ -110,6 +109,8 @@
   void open_file (const QString& file_name = QString ());
   void open_online_documentation_page (void);
   void display_release_notes (void);
+  void load_and_display_community_news (int serial = -1);
+  void display_community_news (const QString& news);
   void open_bug_tracker_page (void);
   void open_octave_packages_page (void);
   void open_agora_page (void);
@@ -268,7 +269,6 @@
   QStatusBar *status_bar;
 
   // Subwindows.
-  news_dock_widget *news_window;
   terminal_dock_widget *command_window;
   history_dock_widget *history_window;
   files_dock_widget *file_browser_window;
@@ -278,7 +278,6 @@
   QList<octave_dock_widget *> dock_widget_list ()
   {
     QList<octave_dock_widget *> list = QList<octave_dock_widget *> ();
-    list.append (static_cast<octave_dock_widget *> (news_window));
     list.append (static_cast<octave_dock_widget *> (command_window));
     list.append (static_cast<octave_dock_widget *> (history_window));
     list.append (static_cast<octave_dock_widget *> (file_browser_window));
@@ -303,6 +302,7 @@
   QAction *_debug_quit;
 
   QAction *_new_script_action;
+  QAction *_new_function_action;
   QAction *_open_action;
 
   QAction *_copy_action;
@@ -323,7 +323,10 @@
   // Find files dialog
   find_files_dialog * find_files_dlg;
 
-  octave_main_thread *_octave_main_thread;
+  // release notes window
+  QWidget * release_notes_window;
+
+  QWidget * community_news_window;
 
   octave_qt_link *_octave_qt_link;
 
@@ -338,4 +341,34 @@
   QMutex       _cmd_queue_mutex;
 };
 
+class news_reader : public QObject
+{
+  Q_OBJECT
+
+public:
+
+  news_reader (const QString& xbase_url, const QString& xpage,
+               int xserial = -1, bool xconnect_to_web = false)
+    : QObject (), base_url (xbase_url), page (xpage), serial (xserial),
+      connect_to_web (xconnect_to_web)
+  { }
+
+public slots:
+
+  void process (void);
+
+signals:
+
+  void display_news_signal (const QString& news);
+
+  void finished (void);
+
+private:
+
+  QString base_url;
+  QString page;
+  int serial;
+  bool connect_to_web;
+};
+
 #endif // MAINWINDOW_H
--- a/libgui/src/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -90,11 +90,12 @@
   src/moc-files-dock-widget.cc \
   src/moc-history-dock-widget.cc \
   src/moc-main-window.cc \
+  src/moc-octave-interpreter.cc \
   src/moc-octave-qt-link.cc \
   src/moc-settings-dialog.cc \
-  src/moc-news-dock-widget.cc \
   src/moc-terminal-dock-widget.cc \
   src/moc-color-picker.cc \
+  src/moc-resource-manager.cc \
   src/moc-welcome-wizard.cc \
   src/moc-workspace-model.cc \
   src/moc-workspace-view.cc \
@@ -126,13 +127,13 @@
   src/m-editor/octave-qscintilla.h \
   src/main-window.h \
   src/octave-gui.h \
-  src/octave-main-thread.h \
+  src/octave-interpreter.h \
   src/octave-qt-link.h \
   src/qtinfo/parser.h \
   src/qtinfo/webinfo.h \
   src/resource-manager.h \
   src/settings-dialog.h \
-  src/news-dock-widget.h \
+  src/thread-manager.h \
   src/terminal-dock-widget.h \
   src/color-picker.h \
   src/welcome-wizard.h \
@@ -153,13 +154,13 @@
   src/main-window.cc \
   src/octave-dock-widget.cc \
   src/octave-gui.cc \
-  src/octave-main-thread.cc \
+  src/octave-interpreter.cc \
   src/octave-qt-link.cc \
   src/qtinfo/parser.cc \
   src/qtinfo/webinfo.cc \
   src/resource-manager.cc \
   src/settings-dialog.cc \
-  src/news-dock-widget.cc \
+  src/thread-manager.cc \
   src/terminal-dock-widget.cc \
   src/color-picker.cc \
   src/welcome-wizard.cc \
@@ -187,7 +188,8 @@
   -I$(top_builddir)/libinterp -I$(top_srcdir)/libinterp \
   -I$(top_builddir)/libinterp/parse-tree -I$(top_srcdir)/libinterp/parse-tree \
   -I$(top_builddir)/libinterp/corefcn -I$(top_srcdir)/libinterp/corefcn \
-  -I$(top_srcdir)/libinterp/octave-value
+  -I$(top_srcdir)/libinterp/octave-value \
+  -I$(top_builddir)/libgnu -I$(top_srcdir)/libgnu
 
 src_libgui_src_la_CFLAGS = $(AM_CFLAGS) $(WARN_CFLAGS)
 
--- a/libgui/src/news-dock-widget.cc	Tue Nov 05 12:27:42 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-
-Copyright (C) 2013 John W. Eaton
-
-This file is part of Octave.
-
-Octave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Octave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <iostream>
-
-#include <QThread>
-
-#include "news-dock-widget.h"
-
-#include "Array.h"
-#include "str-vec.h"
-#include "url-transfer.h"
-
-#include "version.h"
-
-news_dock_widget::news_dock_widget (QWidget *p)
-  : octave_dock_widget (p), browser (new QTextBrowser (this))
-{
-  setObjectName ("NewsDockWidget");
-  setWindowIcon (QIcon (":/icons/logo.png"));
-  set_title (tr ("Community News"));
-
-  browser->setObjectName ("OctaveNews");
-  browser->setOpenExternalLinks (true);
-
-  setWidget (browser);
-
-  load_news ();
-}
-
-void
-news_dock_widget::load_news (void)
-{
-  QString base_url = "http://octave.org";
-  QString page = "community-news.html";
-
-  QThread *worker_thread = new QThread;
-
-  news_reader *reader = new news_reader (base_url, page);
-
-  reader->moveToThread (worker_thread);
-
-  connect (reader, SIGNAL (display_news_signal (const QString&)),
-           this, SLOT (display_news (const QString&)));
-
-  connect (worker_thread, SIGNAL (started (void)), reader, SLOT (process ()));
-
-  connect (reader, SIGNAL (finished (void)), worker_thread, SLOT (quit ()));
-
-  connect (reader, SIGNAL (finished (void)), reader, SLOT (deleteLater ()));
-
-  connect (worker_thread, SIGNAL (finished (void)),
-           worker_thread, SLOT (deleteLater ()));
-
-  worker_thread->start ();
-}
-
-static const char fixed_news[] = "<html>\n\
-<body>\n\
-<p>\n\
-This window will be used to inform you about Octave community events.\n\
-Octave may show it to you even if you've chosen hide the window by\n\
-default.  We'll try not to bother you too much, but we do want to keep\n\
-you up to date with the latest information about important bug fixes,\n\
-new releases, or any other news that all Octave users should be aware of.\n\
-</p>\n\
-<p>\n\
-Currently, Octave's community news source seems to be unavailable.\n\
-For the latest news, please check\n\
-<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>\n\
-when you have a connection to the web.\n\
-</p>\n\
-<p>\n\
-<small><em>&mdash; The Octave Developers, " OCTAVE_RELEASE_DATE "</em></small>\n\
-</body>\n\
-</html>\n";
-
-void
-news_dock_widget::display_news (const QString& news)
-{
-  if (news.contains ("this-is-the-gnu-octave-community-news-page"))
-    {
-      browser->setHtml (news);
-
-      if (news.contains ("critical-news-event") && ! isVisible ())
-        setVisible (true);
-    }
-  else
-    browser->setHtml (fixed_news);
-}
-
-void
-news_dock_widget::copyClipboard ()
-{
-  if (browser->hasFocus ())
-    {
-      browser->copy ();
-    }
-}
-
-void
-news_reader::process (void)
-{
-  // Run this part in a separate thread so Octave can continue to run
-  // while we wait for the page to load.  Then emit the signal to
-  // display it when we have the page contents.
-
-  QString url = base_url + "/" + page;
-  std::ostringstream buf;
-  url_transfer octave_dot_org (url.toStdString (), buf);
-
-  Array<std::string> param;
-  octave_dot_org.http_get (param);
-
-  QString html_text;
-
-  if (octave_dot_org.good ())
-    html_text = QString::fromStdString (buf.str ());
-
-  emit display_news_signal (html_text);
-
-  emit finished ();
-}
--- a/libgui/src/news-dock-widget.h	Tue Nov 05 12:27:42 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-
-Copyright (C) 2013 John W. Eaton
-
-This file is part of Octave.
-
-Octave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Octave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#ifndef NEWSDOCKWIDGET_H
-#define NEWSDOCKWIDGET_H
-
-#include <QTextBrowser>
-
-#include "octave-dock-widget.h"
-
-class news_dock_widget : public octave_dock_widget
-{
-  Q_OBJECT
-
-public:
-
-  news_dock_widget (QWidget *parent = 0);
-
-  void load_news (void);
-
-protected slots:
-
-  void display_news (const QString& news);
-
-  /* from octave_dock_widget */
-  void copyClipboard ();
-
-private:
-
-  QTextBrowser *browser;
-};
-
-class news_reader : public QObject
-{
-  Q_OBJECT
-
-public:
-
-  news_reader (const QString& xbase_url, const QString& xpage)
-    : QObject (), base_url (xbase_url), page (xpage) { }
-
-public slots:
-
-  void process (void);
-
-signals:
-
-  void display_news_signal (const QString& news);
-
-  void finished (void);
-
-private:
-
-  QString base_url;
-  QString page;
-};
-
-#endif // NEWSDOCKWIDGET_H
--- a/libgui/src/octave-dock-widget.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/octave-dock-widget.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -21,6 +21,10 @@
 
 */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
 #include <QApplication>
 #include <QToolBar>
 #include <QToolButton>
@@ -38,6 +42,7 @@
 {
 
   _parent = static_cast<QMainWindow *> (p);     // store main window
+  _floating = false;
 
   connect (this, SIGNAL (visibilityChanged (bool)),
            this, SLOT (handle_visibility_changed (bool)));
@@ -104,25 +109,21 @@
 octave_dock_widget::~octave_dock_widget ()
 {
   // save state of this dock-widget
-  bool floating = false;
-  bool visible;
   QString name = objectName ();
   QSettings *settings = resource_manager::get_settings ();
 
   settings->beginGroup ("DockWidgets");
 
-  if (!parent ())
-    {
-      // widget is floating (windows), save actual floating geometry
-      floating = true;
-      settings->setValue (name+"_floating_geometry", saveGeometry ());
-    }
-  else  // not floating save docked (normal) geometry
+#if defined (Q_OS_WIN32)
+  if (_floating) // widget is floating (windows), save actual floating geometry
+    settings->setValue (name+"_floating_geometry", geometry ());
+  else           // not floating save docked (normal) geometry
+#endif
     settings->setValue (name, saveGeometry ());
 
-  visible = isVisible ();
-  settings->setValue (name+"Floating", floating);  // store floating state
-  settings->setValue (name+"Visible", visible);    // store visibility
+  settings->setValue (name+"Visible", isVisible ()); // store visibility
+  settings->setValue (name+"Floating", _floating);    // store visibility
+  settings->setValue (name+"_minimized", isMinimized ()); // store minimized
 
   settings->endGroup ();
   settings->sync ();
@@ -161,10 +162,11 @@
 
   QSettings *settings = resource_manager::get_settings ();
 
-  // save the docking area for later redocking
+  // save the docking area and geometry for later redocking
   // FIXME: dockWidgetArea always returns 2
   settings->setValue ("DockWidgets/" + objectName () + "_dock_area",
                       _parent->dockWidgetArea (this));
+  settings->setValue ("DockWidgets/" + objectName (), saveGeometry ());
   settings->sync ();
 
   // remove parent and adjust the (un)dock icon
@@ -172,9 +174,9 @@
   _dock_action->setIcon (QIcon (":/actions/icons/widget-dock.png"));
   _dock_action->setToolTip (tr ("Dock widget"));
 
-  // restore the last geometry when floating
-  restoreGeometry (settings->value ("DockWidgets/" + objectName ()
-                                    + "_floating_geometry").toByteArray ());
+  // restore the last geometry( when floating
+  setGeometry (settings->value ("DockWidgets/" + objectName ()
+                       + "_floating_geometry",QRect(50,100,480,480)).toRect ());
 
 #else
 
@@ -183,6 +185,7 @@
 
 #endif
 
+  _floating = true;
 }
 
 // dock the widget
@@ -195,9 +198,10 @@
 
   QSettings *settings = resource_manager::get_settings ();
 
-  // save last floating geometry
-  settings->setValue ("DockWidgets/" + objectName () + "_floating_geometry",
-                      saveGeometry ());
+  // save last floating geometry if widget really was floating
+  if (_floating)
+    settings->setValue ("DockWidgets/" + objectName () + "_floating_geometry",
+                        geometry ());
   settings->sync ();
 
   if (dock)
@@ -209,8 +213,8 @@
 
       // FIXME: restoreGeometry is ignored for docked widgets
       //        and its child widget
-      // restoreGeometry (settings->value
-      //        ("DockWidgets/" + objectName ()).toByteArray ());
+      restoreGeometry (settings->value
+             ("DockWidgets/" + objectName ()).toByteArray ());
     }
   else  // only reparent, no docking
     setParent (_parent);
@@ -225,23 +229,21 @@
   setWindowFlags (Qt::Widget);
 
 #endif
+
+  _floating = false;
 }
 
 // slot for (un)dock action
 void
-octave_dock_widget::change_floating (bool floating)
+octave_dock_widget::change_floating (bool)
 {
-#if defined (Q_OS_WIN32)
-  if (parent ())
-#else
-  if (floating)
-#endif
+  if (_floating)
+    make_widget ();
+  else
     {
       make_window ();
       focus ();
     }
-  else
-    make_widget ();
 }
 
 // slot for hiding the widget
--- a/libgui/src/octave-dock-widget.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/octave-dock-widget.h	Tue Nov 26 12:38:46 2013 -0500
@@ -109,6 +109,7 @@
 
   QMainWindow *_parent;  // store the parent since we are reparenting to 0
   QAction *_dock_action;
+  bool _floating;
 
 };
 
--- a/libgui/src/octave-gui.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/octave-gui.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -25,7 +25,6 @@
 #endif
 
 #include <QApplication>
-#include <QCoreApplication>
 #include <QTextCodec>
 #include <QThread>
 #include <QTranslator>
@@ -51,6 +50,7 @@
 #include "resource-manager.h"
 #include "main-window.h"
 #include "octave-gui.h"
+#include "thread-manager.h"
 
 // Allow the Octave interpreter to start as in CLI mode with a
 // QApplication context so that it can use Qt for things like plotting
@@ -69,11 +69,13 @@
 
   void run (void)
   {
+    octave_thread_manager::unblock_interrupt_signal ();
+
     octave_initialize_interpreter (m_argc, m_argv, 0);
 
     m_result = octave_execute_interpreter ();
 
-    QCoreApplication::exit (m_result);
+    QApplication::exit (m_result);
   }
 
 private:
@@ -118,6 +120,8 @@
 int
 octave_start_gui (int argc, char *argv[], bool start_gui)
 {
+  octave_thread_manager::block_interrupt_signal ();
+
   qInstallMsgHandler (message_handler);
 
   if (start_gui)
@@ -127,58 +131,66 @@
       // Set the codec for all strings
       QTextCodec::setCodecForCStrings (QTextCodec::codecForName ("UTF-8"));
 
+      if (resource_manager::is_first_run ())
+        {
+          welcome_wizard welcomeWizard;
+
+          if (welcomeWizard.exec () == QDialog::Rejected)
+            exit (1);
+        }
+
+      resource_manager::reload_settings ();
+
       // install translators for the gui and qt text
       QTranslator gui_tr, qt_tr, qsci_tr;
-      resource_manager::config_translators (&qt_tr,&qsci_tr,&gui_tr);
+
+      resource_manager::config_translators (&qt_tr, &qsci_tr, &gui_tr);
+
       application.installTranslator (&qt_tr);
       application.installTranslator (&qsci_tr);
       application.installTranslator (&gui_tr);
 
-      while (true)
-        {
-          if (resource_manager::is_first_run ())
-            {
-              welcome_wizard welcomeWizard;
-              welcomeWizard.exec ();
-              resource_manager::reload_settings ();
-            }
-          else
-            {
-              // update network-settings
-              resource_manager::update_network_settings ();
+      // update network-settings
+      resource_manager::update_network_settings ();
 
 #if ! defined (__WIN32__) || defined (__CYGWIN__)
-              // If we were started from a launcher, TERM might not be
-              // defined, but we provide a terminal with xterm
-              // capabilities.
+      // If we were started from a launcher, TERM might not be
+      // defined, but we provide a terminal with xterm
+      // capabilities.
 
-              std::string term = octave_env::getenv ("TERM");
+      std::string term = octave_env::getenv ("TERM");
 
-              if (term.empty ())
-                octave_env::putenv ("TERM", "xterm");
+      if (term.empty ())
+        octave_env::putenv ("TERM", "xterm");
 #else
-              std::string term = octave_env::getenv ("TERM");
+      std::string term = octave_env::getenv ("TERM");
 
-              if (term.empty ())
-                octave_env::putenv ("TERM", "cygwin");
+      if (term.empty ())
+        octave_env::putenv ("TERM", "cygwin");
 #endif
 
-              // create main window, read settings, and show window
-              main_window w;
-              w.read_settings ();  // get widget settings and window layout
-              w.focus_command_window ();
-              w.connect_visibility_changed (); // connect signals for changes
-                                               // in visibility not before w
-                                               // is shown
-              return application.exec ();
-            }
-        }
+      // Create and show main window.
+
+      main_window w;
+
+      w.read_settings ();
+
+      w.focus_command_window ();
+
+      // Connect signals for changes in visibility not before w
+      // is shown.
+
+      w.connect_visibility_changed ();
+
+      return application.exec ();
     }
   else
     {
-      QCoreApplication application (argc, argv);
+      QApplication application (argc, argv);
 
       octave_cli_thread main_thread (argc, argv);
+      
+      application.setQuitOnLastWindowClosed (false);
 
       main_thread.start ();
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/octave-interpreter.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,53 @@
+/*
+
+Copyright (C) 2013 John W. Eaton
+Copyright (C) 2011-2013 Jacob Dawid
+
+This file is part of Octave.
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+#include <signal.h>
+
+#include "octave.h"
+
+#include "octave-interpreter.h"
+
+void
+octave_interpreter::execute (void)
+{
+  thread_manager.register_current_thread ();
+
+  octave_thread_manager::unblock_interrupt_signal ();
+
+  octave_initialize_interpreter (octave_cmdline_argc, octave_cmdline_argv,
+                                 octave_embedded);
+
+  octave_execute_interpreter ();
+}
+
+void
+octave_interpreter::interrupt (void)
+{
+  thread_manager.interrupt ();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/octave-interpreter.h	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,54 @@
+/*
+
+Copyright (C) 2013 John W. Eaton
+Copyright (C) 2011-2013 Jacob Dawid
+
+This file is part of Octave.
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#ifndef octave_interpreter_h
+#define octave_interpreter_h 1
+
+#include <QObject>
+
+#include "thread-manager.h"
+
+class octave_interpreter : public QObject
+{
+  Q_OBJECT
+
+public:
+
+  // An object to manage the Octave interpreter.
+
+  octave_interpreter (void) : QObject (), thread_manager () { }
+
+public slots:
+
+  // Initialize and execute the octave interpreter.
+
+  void execute (void);
+
+  void interrupt (void);
+
+private:
+
+  octave_thread_manager thread_manager;
+};
+
+#endif
--- a/libgui/src/octave-main-thread.cc	Tue Nov 05 12:27:42 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-
-Copyright (C) 2013 John W. Eaton
-Copyright (C) 2011-2013 Jacob Dawid
-
-This file is part of Octave.
-
-Octave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Octave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include "builtin-defun-decls.h"
-#include "octave.h"
-#include "ov-builtin.h"
-#include "ov-fcn-handle.h"
-
-#include "octave-main-thread.h"
-#include "octave-link.h"
-
-void
-octave_main_thread::run (void)
-{
-  octave_initialize_interpreter (octave_cmdline_argc, octave_cmdline_argv,
-                                 octave_embedded);
-
-  octave_execute_interpreter ();
-}
-
-void
-octave_main_thread::execute_interpreter (void)
-{
-  start ();
-}
--- a/libgui/src/octave-main-thread.h	Tue Nov 05 12:27:42 2013 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-
-Copyright (C) 2013 John W. Eaton
-Copyright (C) 2011-2013 Jacob Dawid
-
-This file is part of Octave.
-
-Octave is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Octave; see the file COPYING.  If not, see
-<http://www.gnu.org/licenses/>.
-
-*/
-
-#ifndef OCTAVEMAINTHREAD_H
-#define OCTAVEMAINTHREAD_H
-
-#include <QThread>
-
-/**
-  * \class octave_main
-  * \brief This class represents a thread just running octave_main.
-  * \author Jacob Dawid
-  */
-class octave_main_thread : public QThread
-{
-public:
-  // Create a new thread for running the octave interpreter.
-  octave_main_thread (void) : QThread () { }
-
-  // Start the thread and initialize and execute the octave
-  // interpreter.
-  void execute_interpreter (void);
-
-protected:
-  // Avoid exec.  Run the octave interpreter in the new thread.
-  void run (void);
-};
-
-#endif // OCTAVEMAINTHREAD_H
--- a/libgui/src/octave-qt-link.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/octave-qt-link.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -27,6 +27,8 @@
 #endif
 
 #include <QStringList>
+#include <QDialog>
+#include <QDir>
 
 #include "str-vec.h"
 #include "dialog.h"
@@ -39,16 +41,26 @@
 
 #include "octave-qt-link.h"
 
-octave_qt_link::octave_qt_link (octave_main_thread *mt)
-  : octave_link (), main_thread (mt)
-{ }
+#include "resource-manager.h"
+
+octave_qt_link::octave_qt_link (void)
+  : octave_link (), main_thread (new QThread ()),
+    command_interpreter (new octave_interpreter ())
+{
+  connect (this, SIGNAL (execute_interpreter_signal (void)),
+           command_interpreter, SLOT (execute (void)));
+
+  command_interpreter->moveToThread (main_thread);
+
+  main_thread->start ();
+}
 
 octave_qt_link::~octave_qt_link (void) { }
 
 void
 octave_qt_link::execute_interpreter (void)
 {
-  main_thread->execute_interpreter ();
+  emit execute_interpreter_signal ();
 }
 
 bool
@@ -67,6 +79,34 @@
   return true;
 }
 
+bool
+octave_qt_link::do_prompt_new_edit_file (const std::string& file)
+{
+  QSettings *settings = resource_manager::get_settings ();
+
+  if (settings->value ("editor/create_new_file",false).toBool ())
+    return true;
+
+  QFileInfo file_info (QString::fromStdString (file));
+  QStringList btn;
+  QStringList role;
+  role << "AcceptRole" << "AcceptRole";
+  btn << tr ("Yes") << tr ("No");
+
+  uiwidget_creator.signal_dialog (
+    tr ("File\n%1\ndoes not exist. Do you want to create it?").
+    arg (QDir::currentPath () + QDir::separator ()
+         + QString::fromStdString (file)),
+    tr ("Octave Editor"), "quest", btn, tr ("Yes"), role );
+
+  // Wait while the user is responding to message box.
+  uiwidget_creator.wait ();
+  // The GUI has sent a signal and the process has been awakened.
+  QString answer = uiwidget_creator.get_dialog_button ();
+
+  return (answer == tr ("Yes"));
+}
+
 int
 octave_qt_link::do_message_dialog (const std::string& dlg,
                                    const std::string& msg,
@@ -508,4 +548,8 @@
   emit show_doc_signal (QString::fromStdString (file));
 }
 
-
+void
+octave_qt_link::terminal_interrupt (void)
+{
+  command_interpreter->interrupt ();  
+}
--- a/libgui/src/octave-qt-link.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/octave-qt-link.h	Tue Nov 26 12:38:46 2013 -0500
@@ -31,9 +31,10 @@
 #include <QList>
 #include <QObject>
 #include <QString>
+#include <QThread>
 
 #include "octave-link.h"
-#include "octave-main-thread.h"
+#include "octave-interpreter.h"
 
 // Defined for purposes of sending QList<int> as part of signal.
 typedef QList<int> QIntList;
@@ -52,7 +53,7 @@
 
 public:
 
-  octave_qt_link (octave_main_thread *mt);
+  octave_qt_link (void);
 
   ~octave_qt_link (void);
 
@@ -61,6 +62,7 @@
   bool do_exit (int status);
 
   bool do_edit_file (const std::string& file);
+  bool do_prompt_new_edit_file (const std::string& file);
 
   int do_message_dialog (const std::string& dlg, const std::string& msg,
                          const std::string& title);
@@ -127,6 +129,7 @@
   void do_show_preferences (void);
 
   void do_show_doc (const std::string& file);
+
 private:
 
   // No copying!
@@ -139,10 +142,14 @@
   void do_delete_debugger_pointer (const std::string& file, int line);
 
   // Thread running octave_main.
-  octave_main_thread *main_thread;
+  QThread *main_thread;
+
+  octave_interpreter *command_interpreter;
 
 signals:
 
+  void execute_interpreter_signal (void);
+
   void exit_signal (int status);
 
   void edit_file_signal (const QString& file);
@@ -177,6 +184,10 @@
   void show_preferences_signal (void);
 
   void show_doc_signal (const QString &file);
+
+public slots:
+
+  void terminal_interrupt (void);
 };
 
 #endif
--- a/libgui/src/qtinfo/parser.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/qtinfo/parser.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -76,14 +76,14 @@
 QIODevice *
 parser::open_file (QFileInfo & file_info)
 {
-  QIODevice *iodevice=NULL;
+  QIODevice *iodevice = 0;
   if ( _compressors_map.contains(file_info.suffix ()))
     {
       QProcess gzip;
       gzip.start (_compressors_map.value (file_info.suffix ()).arg (file_info.absoluteFilePath ()));
 
       if (!gzip.waitForFinished ())
-        return NULL;
+        return 0;
 
       QByteArray result = gzip.readAll ();
 
@@ -91,7 +91,7 @@
       io->setData (result);
 
       if (!io->open (QIODevice::ReadOnly | QIODevice::Text))
-        return NULL;
+        return 0;
 
       iodevice = io;
     }
@@ -99,7 +99,7 @@
     {
       QFile *io = new QFile (file_info.absoluteFilePath ());
       if (!io->open (QIODevice::ReadOnly | QIODevice::Text))
-        return NULL;
+        return 0;
       iodevice = io;
     }
 
@@ -140,7 +140,7 @@
       real_position (pos, file_info, realPos);
 
       QIODevice *io = open_file (file_info);
-      if (io == NULL)
+      if (! io)
         {
           return QString ();
         }
@@ -427,7 +427,7 @@
       QFileInfo fileInfo = _info_files.at (i);
 
       QIODevice *io = open_file (fileInfo);
-      if (io == NULL)
+      if (! io)
         {
           continue;
         }
@@ -572,7 +572,7 @@
     {
       QFileInfo file_info = _info_files.at (i);
       QIODevice *io = open_file (file_info);
-      if (io == NULL)
+      if (! io)
         {
           continue;
         }
--- a/libgui/src/resource-manager.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/resource-manager.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -30,6 +30,7 @@
 #include <QDir>
 #include <QNetworkProxy>
 #include <QLibraryInfo>
+#include <QMessageBox>
 
 #include "error.h"
 #include "file-ops.h"
@@ -57,9 +58,17 @@
 }
 
 resource_manager::resource_manager (void)
-  : settings (0), home_path (), first_run (false)
+  : settings_directory (), settings_file (), settings (0),
+    default_settings (0)
 {
-  do_reload_settings ();
+  QDesktopServices desktopServices;
+
+  QString home_path
+    = desktopServices.storageLocation (QDesktopServices::HomeLocation);
+
+  settings_directory = home_path + "/.config/octave";
+
+  settings_file = settings_directory + "/qt-settings";
 
   default_settings = new QSettings (default_qt_settings_file (),
                                     QSettings::IniFormat);
@@ -71,7 +80,6 @@
   delete default_settings;
 }
 
-
 QString
 resource_manager::get_gui_translation_dir (void)
 {
@@ -91,26 +99,36 @@
 
   QString qt_trans_dir
     = QLibraryInfo::location (QLibraryInfo::TranslationsPath);
+
   QSettings *settings = resource_manager::get_settings ();
-  // FIXME: what should happen if settings is 0?
 
-  // get the locale from the settings
-  QString language = settings->value ("language","SYSTEM").toString ();
-  if (language == "SYSTEM")
-    language = QLocale::system ().name ();    // get system wide locale
+  if (settings)
+    {
+      // get the locale from the settings
+      QString language = settings->value ("language","SYSTEM").toString ();
+
+      if (language == "SYSTEM")
+        language = QLocale::system ().name ();    // get system wide locale
+
+      // load the translator file for qt strings
+      loaded = qt_tr->load ("qt_" + language, qt_trans_dir);
 
-  // load the translator file for qt strings
-  loaded = qt_tr->load ("qt_" + language, qt_trans_dir);
-  if (!loaded) // try lower case
-    qt_tr->load ("qt_" + language.toLower (), qt_trans_dir);
+      if (!loaded) // try lower case
+        qt_tr->load ("qt_" + language.toLower (), qt_trans_dir);
+
+      // load the translator file for qscintilla settings
+      loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir);
 
-  // load the translator file for qscintilla settings
-  loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir);
-  if (!loaded) // try lower case
-    qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir);
+      if (!loaded) // try lower case
+        qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir);
 
-  // load the translator file for gui strings
-  gui_tr->load (language, get_gui_translation_dir ());
+      // load the translator file for gui strings
+      gui_tr->load (language, get_gui_translation_dir ());
+    }
+  else
+    {
+      // FIXME: Is this an error?  If so, what should we do?
+    }
 }
 
 bool
@@ -149,42 +167,47 @@
 }
 
 QString
-resource_manager::do_get_home_path (void) const
+resource_manager::do_get_settings_directory (void)
 {
-  return home_path;
-}
-
-QString
-resource_manager::do_get_settings_path (void)
-{
-  QDesktopServices desktopServices;
-  home_path = desktopServices.storageLocation (QDesktopServices::HomeLocation);
-  QString settings_path = home_path + "/.config/octave/";
-  return settings_path;
+  return settings_directory;
 }
 
 QString
 resource_manager::do_get_settings_file (void)
 {
-  return do_get_settings_path ()  + "qt-settings";
+  return settings_file;
 }
 
 void
 resource_manager::do_reload_settings (void)
 {
-  QDesktopServices desktopServices;
-  home_path = desktopServices.storageLocation (QDesktopServices::HomeLocation);
-  QString settings_path = do_get_settings_path ();
-  QString settings_file = do_get_settings_file ();
-
-  if (!QFile::exists (settings_file))
+  if (! QFile::exists (settings_file))
     {
-      QDir ("/").mkpath (settings_path);
-      QFile::copy (default_qt_settings_file (), settings_file);
-      first_run = true;
+      QDir ("/").mkpath (settings_directory);
+      QFile qt_settings (default_qt_settings_file ());
+
+      if (!qt_settings.open (QFile::ReadOnly))
+        return;
+
+      QTextStream in (&qt_settings);
+      QString settings_text = in.readAll ();
+      qt_settings.close ();
+
+      // Get the default monospaced font and replace placeholder
+      QFont fixed_font = QFont ();
+      fixed_font.setStyleHint (QFont::Monospace);
+      settings_text.replace("__default_font__",fixed_font.defaultFamily ());
+      settings_text.replace("__default_font_size__","10");
+
+      QFile user_settings (settings_file);
+      if (!user_settings.open (QIODevice::WriteOnly))
+        return;
+
+      QTextStream out (&user_settings);
+      out << settings_text;
+      user_settings.flush ();
+      user_settings.close ();
     }
-  else
-    first_run = false;
 
   do_set_settings (settings_file);
 }
@@ -194,38 +217,59 @@
 {
   delete settings;
   settings = new QSettings (file, QSettings::IniFormat);
+
+  if (! (settings
+         && QFile::exists (settings->fileName ())
+         && settings->isWritable ()
+         && settings->status () ==  QSettings::NoError))
+    {
+      QString msg = QString (QT_TR_NOOP ("The settings file\n%1\n"
+              "does not exist and can not be created.\n"
+              "Make sure you have read and write permissions to\n%2\n\n"
+              "Octave GUI must be closed now."));
+      QMessageBox::critical (0, QString (QT_TR_NOOP ("Octave Critical Error")),
+          msg.arg (do_get_settings_file ()).arg (do_get_settings_directory ()));
+      exit (1);
+    }
 }
 
 bool
 resource_manager::do_is_first_run (void) const
 {
-  return first_run;
+  return ! QFile::exists (settings_file);
 }
 
 void
 resource_manager::do_update_network_settings (void)
 {
-  QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy;
-
-  if (settings->value ("useProxyServer",false).toBool ())
+  if (settings)
     {
-      QString proxyTypeString = settings->value ("proxyType").toString ();
+      QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy;
+
+      if (settings->value ("useProxyServer",false).toBool ())
+        {
+          QString proxyTypeString = settings->value ("proxyType").toString ();
 
-      if (proxyTypeString == "Socks5Proxy")
-        proxyType = QNetworkProxy::Socks5Proxy;
-      else if (proxyTypeString == "HttpProxy")
-        proxyType = QNetworkProxy::HttpProxy;
+          if (proxyTypeString == "Socks5Proxy")
+            proxyType = QNetworkProxy::Socks5Proxy;
+          else if (proxyTypeString == "HttpProxy")
+            proxyType = QNetworkProxy::HttpProxy;
+        }
+
+      QNetworkProxy proxy;
+
+      proxy.setType (proxyType);
+      proxy.setHostName (settings->value ("proxyHostName").toString ());
+      proxy.setPort (settings->value ("proxyPort",80).toInt ());
+      proxy.setUser (settings->value ("proxyUserName").toString ());
+      proxy.setPassword (settings->value ("proxyPassword").toString ());
+
+      QNetworkProxy::setApplicationProxy (proxy);
     }
-
-  QNetworkProxy proxy;
-
-  proxy.setType (proxyType);
-  proxy.setHostName (settings->value ("proxyHostName").toString ());
-  proxy.setPort (settings->value ("proxyPort",80).toInt ());
-  proxy.setUser (settings->value ("proxyUserName").toString ());
-  proxy.setPassword (settings->value ("proxyPassword").toString ());
-
-  QNetworkProxy::setApplicationProxy (proxy);
+  else
+    {
+      // FIXME: Is this an error?  If so, what should we do?
+    }
 }
 
 QStringList
--- a/libgui/src/resource-manager.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/resource-manager.h	Tue Nov 26 12:38:46 2013 -0500
@@ -29,13 +29,15 @@
 #include <QSettings>
 #include <QTranslator>
 
-class resource_manager
+class resource_manager : public QObject
 {
+  Q_OBJECT
+
 protected:
 
-  resource_manager (void);
+public:
 
-public:
+  resource_manager (void);
 
   ~resource_manager ();
 
@@ -49,11 +51,6 @@
     return instance_ok () ? instance->do_get_default_settings () : 0;
   }
 
-  static QString get_home_path (void)
-  {
-    return instance_ok () ? instance->do_get_home_path () : QString ();
-  }
-
   static QString get_settings_file (void)
   {
     return instance_ok () ? instance->do_get_settings_file () : QString ();
@@ -108,23 +105,21 @@
 
   static bool instance_ok (void);
 
+  QString settings_directory;
+
+  QString settings_file;
+
   QSettings *settings;
 
   QSettings *default_settings;
 
-  QString home_path;
-
-  bool first_run;
-
   QSettings *do_get_settings (void) const;
 
   QSettings *do_get_default_settings (void) const;
 
-  QString do_get_home_path (void) const;
-
   QString do_get_settings_file (void);
 
-  QString do_get_settings_path (void);
+  QString do_get_settings_directory (void);
 
   void do_reload_settings (void);
 
--- a/libgui/src/settings-dialog.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/settings-dialog.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -80,7 +80,7 @@
     ui->comboBox_language->setCurrentIndex (0);  // System is default
 
   ui->toolbar_icon_size->setValue (settings->value ("toolbar_icon_size",
-                                                    24).toInt ());
+                                                    16).toInt ());
 
   // which icon has to be selected
   QString widget_icon_set =
@@ -159,6 +159,8 @@
     settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ());
   ui->sync_octave_directory->setChecked (
     settings->value ("filesdockwidget/sync_octave_directory",true).toBool ());
+  ui->checkbox_allow_web_connect->setChecked (
+    settings->value ("news/allow_web_connection",false).toBool ());
   ui->useProxyServer->setChecked (
     settings->value ("useProxyServer", false).toBool ());
   ui->proxyHostName->setText (settings->value ("proxyHostName").toString ());
@@ -523,6 +525,8 @@
                       ui->useAlternatingRowColors->isChecked ());
   settings->setValue ("filesdockwidget/sync_octave_directory",
                       ui->sync_octave_directory->isChecked ());
+  settings->setValue ("news/allow_web_connection",
+                      ui->checkbox_allow_web_connect->isChecked ());
   settings->setValue ("useProxyServer", ui->useProxyServer->isChecked ());
   settings->setValue ("proxyType", ui->proxyType->currentText ());
   settings->setValue ("proxyHostName", ui->proxyHostName->text ());
--- a/libgui/src/settings-dialog.ui	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/settings-dialog.ui	Tue Nov 26 12:38:46 2013 -0500
@@ -32,7 +32,7 @@
    <item>
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
-      <number>2</number>
+      <number>6</number>
      </property>
      <widget class="QWidget" name="tab_general">
       <property name="enabled">
@@ -208,7 +208,7 @@
            <item row="2" column="0">
             <widget class="QCheckBox" name="editor_ws_checkbox">
              <property name="text">
-              <string>Show white space</string>
+              <string>Show whitespace</string>
              </property>
             </widget>
            </item>
@@ -235,7 +235,7 @@
               <bool>false</bool>
              </property>
              <property name="text">
-              <string>Do not show white spaces used for indentation</string>
+              <string>Do not show whitespace used for indentation</string>
              </property>
             </widget>
            </item>
@@ -525,7 +525,7 @@
                 <bool>false</bool>
                </property>
                <property name="text">
-                <string>Characters before list with suggestions is displayed</string>
+                <string># of characters typed before completion list displayed</string>
                </property>
               </widget>
              </item>
@@ -719,7 +719,7 @@
               </sizepolicy>
              </property>
              <property name="text">
-              <string>Create non existing files without prompting</string>
+              <string>Create nonexistent files without prompting</string>
              </property>
             </widget>
            </item>
@@ -776,7 +776,7 @@
               <bool>false</bool>
              </property>
              <property name="text">
-              <string>Command  line (%f=file, %l=line):</string>
+              <string>command line (%f=file, %l=line):</string>
              </property>
             </widget>
            </item>
@@ -822,7 +822,7 @@
            <enum>QFrame::NoFrame</enum>
           </property>
           <property name="text">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as difference to the default size), font decoration (bold, italic, underline), textcolor and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Select font, font size (as a difference from the default size), font style (bold, italic, underline), text color and background color (for the latter, the color pink (255,0,255) is a placeholder for the default background color)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="scaledContents">
            <bool>false</bool>
@@ -898,7 +898,7 @@
         <item>
          <widget class="QCheckBox" name="terminal_cursorUseForegroundColor">
           <property name="text">
-           <string>Use Foreground Color</string>
+           <string>Use foreground color</string>
           </property>
          </widget>
         </item>
@@ -1061,7 +1061,7 @@
        <item>
         <widget class="QCheckBox" name="sync_octave_directory">
          <property name="text">
-          <string>Synchronize octave directory with the file browser</string>
+          <string>Synchronize Octave working directory with file browser</string>
          </property>
         </widget>
        </item>
@@ -1158,111 +1158,122 @@
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_4">
        <item>
-        <layout class="QGridLayout" name="gridLayout_5">
-         <item row="1" column="1">
-          <widget class="QLabel" name="label_4">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <item>
+          <widget class="QCheckBox" name="checkbox_allow_web_connect">
            <property name="text">
-            <string>Hostname:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="2">
-          <widget class="QComboBox" name="proxyType">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <item>
-            <property name="text">
-             <string>HttpProxy</string>
-            </property>
-           </item>
-           <item>
-            <property name="text">
-             <string>Socks5Proxy</string>
-            </property>
-           </item>
-          </widget>
-         </item>
-         <item row="3" column="1">
-          <widget class="QLabel" name="label_6">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>Username:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="0">
-          <widget class="QCheckBox" name="useProxyServer">
-           <property name="text">
-            <string>Use proxy server</string>
+            <string>Allow Octave to connect to the Octave web site to display current news and information</string>
            </property>
           </widget>
          </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="label_3">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>Proxy Type:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="label_5">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>Port:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="1">
-          <widget class="QLabel" name="label_7">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="text">
-            <string>Password:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="2">
-          <widget class="QLineEdit" name="proxyHostName">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="2">
-          <widget class="QLineEdit" name="proxyPort">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="2">
-          <widget class="QLineEdit" name="proxyUserName">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="2">
-          <widget class="QLineEdit" name="proxyPassword">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="echoMode">
-            <enum>QLineEdit::Password</enum>
-           </property>
-          </widget>
+         <item>
+          <layout class="QGridLayout" name="gridLayout_5">
+           <item row="1" column="1">
+            <widget class="QLabel" name="label_4">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="text">
+              <string>Hostname:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="2">
+            <widget class="QComboBox" name="proxyType">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <item>
+              <property name="text">
+               <string>HttpProxy</string>
+              </property>
+             </item>
+             <item>
+              <property name="text">
+               <string>Socks5Proxy</string>
+              </property>
+             </item>
+            </widget>
+           </item>
+           <item row="3" column="1">
+            <widget class="QLabel" name="label_6">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="text">
+              <string>Username:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="0">
+            <widget class="QCheckBox" name="useProxyServer">
+             <property name="text">
+              <string>Use proxy server</string>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLabel" name="label_3">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="text">
+              <string>Proxy type:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="1">
+            <widget class="QLabel" name="label_5">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="text">
+              <string>Port:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="1">
+            <widget class="QLabel" name="label_7">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="text">
+              <string>Password:</string>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="2">
+            <widget class="QLineEdit" name="proxyHostName">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="2">
+            <widget class="QLineEdit" name="proxyPort">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="2">
+            <widget class="QLineEdit" name="proxyUserName">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="2">
+            <widget class="QLineEdit" name="proxyPassword">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="echoMode">
+              <enum>QLineEdit::Password</enum>
+             </property>
+            </widget>
+           </item>
+          </layout>
          </item>
         </layout>
        </item>
--- a/libgui/src/terminal-dock-widget.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/terminal-dock-widget.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -38,6 +38,9 @@
   set_title (tr ("Command Window"));
 
   setWidget (terminal);
+
+  connect (terminal, SIGNAL (interrupt_signal (void)),
+           this, SLOT (terminal_interrupt ()));
 }
 
 bool
@@ -59,3 +62,9 @@
   w->activateWindow ();
   w->raise ();
 }
+
+void
+terminal_dock_widget::terminal_interrupt (void)
+{
+  emit interrupt_signal ();
+}
--- a/libgui/src/terminal-dock-widget.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/terminal-dock-widget.h	Tue Nov 26 12:38:46 2013 -0500
@@ -41,6 +41,14 @@
 
   void focus (void);
 
+signals:
+
+  void interrupt_signal (void);
+
+protected slots:
+
+  void terminal_interrupt (void);
+
 private:
 
   QTerminal *terminal;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/thread-manager.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,143 @@
+/*
+
+Copyright (C) 2013 John W. Eaton
+
+This file is part of Octave.
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+#include <windows.h>
+#else
+#include <pthread.h>
+#endif
+
+#include <sys/types.h>
+#include <signal.h>
+
+#include "sighandlers.h"
+#include "thread-manager.h"
+
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+
+class windows_thread_manager : public octave_base_thread_manager
+{
+public:
+
+  windows_thread_manager (void) : octave_base_thread_manager () { }
+
+  void register_current_thread (void) { }
+
+  void interrupt (void)
+  {
+    GenerateConsoleCtrlEvent (CTRL_C_EVENT, 0);
+  }
+};
+
+#else
+
+class pthread_thread_manager : public octave_base_thread_manager
+{
+public:
+
+  pthread_thread_manager (void)
+    : octave_base_thread_manager (), my_thread (), initialized (false)
+  { }
+
+  void register_current_thread (void)
+  {
+    my_thread = pthread_self ();
+    initialized = true;
+  }
+
+  void interrupt (void)
+  {
+    if (initialized)
+      pthread_kill (my_thread, SIGINT);
+  }
+
+private:
+
+  pthread_t my_thread;
+
+  bool initialized;
+};
+
+#endif
+
+octave_thread_manager::octave_thread_manager (void)
+  : rep (octave_thread_manager::create_rep ())
+{ }
+
+// The following is a workaround for an apparent bug in GCC 4.1.2 and
+// possibly earlier versions.  See Octave bug report #30685 for details.
+#if defined (__GNUC__)
+# if ! (__GNUC__ > 4 \
+        || (__GNUC__ == 4 && (__GNUC_MINOR__ > 1 \
+                              || (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ > 2))))
+#  undef GNULIB_NAMESPACE
+#  define GNULIB_NAMESPACE
+#  warning "disabling GNULIB_NAMESPACE for signal functions -- consider upgrading to a current version of GCC"
+# endif
+#endif
+
+static void
+block_or_unblock_signal (int how, int sig)
+{
+#if ! defined (__WIN32__) || defined (__CYGWIN__)
+  // Blocking/unblocking signals at thread level is only supported
+  // on platform with fully compliant POSIX threads. This is not
+  // supported on Win32. Moreover, we have to make sure that SIGINT
+  // handler is not installed before calling AllocConsole: installing
+  // a SIGINT handler internally calls SetConsoleCtrlHandler, which
+  // must be called after AllocConsole to be effective.
+
+  sigset_t signal_mask;
+
+  GNULIB_NAMESPACE::sigemptyset (&signal_mask);
+
+  GNULIB_NAMESPACE::sigaddset (&signal_mask, sig);
+
+  pthread_sigmask (how, &signal_mask, 0);
+#endif
+}
+
+void
+octave_thread_manager::block_interrupt_signal (void)
+{
+  block_or_unblock_signal (SIG_BLOCK, SIGINT);
+}
+
+void
+octave_thread_manager::unblock_interrupt_signal (void)
+{
+  block_or_unblock_signal (SIG_UNBLOCK, SIGINT);
+}
+
+octave_base_thread_manager *
+octave_thread_manager::create_rep (void)
+{
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  return new windows_thread_manager ();
+#else
+  return new pthread_thread_manager ();
+#endif
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libgui/src/thread-manager.h	Tue Nov 26 12:38:46 2013 -0500
@@ -0,0 +1,92 @@
+/*
+
+Copyright (C) 2013 John W. Eaton
+
+This file is part of Octave.
+
+Octave is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3 of the License, or (at your
+option) any later version.
+
+Octave is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Octave; see the file COPYING.  If not, see
+<http://www.gnu.org/licenses/>.
+
+*/
+
+#if !defined (octave_thread_manager_h)
+#define octave_thread_manager_h 1
+
+class octave_base_thread_manager
+{
+public:
+
+  friend class octave_thread_manager;
+
+  octave_base_thread_manager (void) : count (1) { }
+
+  octave_base_thread_manager (const octave_base_thread_manager&)
+    : count (1)
+  { }
+
+  virtual ~octave_base_thread_manager (void) { }
+
+  virtual void register_current_thread (void) = 0;
+
+  virtual void interrupt (void) = 0;
+
+protected:
+
+  int count;
+};
+
+class octave_thread_manager
+{
+public:
+
+  octave_thread_manager (void);
+
+  ~octave_thread_manager (void)
+  {
+    if (--rep->count == 0)
+      delete rep;
+  }
+
+  octave_thread_manager (const octave_thread_manager& tm) : rep (tm.rep) { }
+
+  octave_thread_manager& operator = (const octave_thread_manager& tm)
+  {
+    if (rep != tm.rep)
+      {
+        if (--rep->count == 0)
+          delete rep;
+
+        rep = tm.rep;
+        rep->count++;
+      }
+
+    return *this;
+  }
+
+  void register_current_thread (void) { rep->register_current_thread (); }
+
+  void interrupt (void) { rep->interrupt (); }
+
+  static void block_interrupt_signal (void);
+
+  static void unblock_interrupt_signal (void);
+
+private:
+
+  octave_base_thread_manager *rep;
+
+  static octave_base_thread_manager *create_rep (void);
+};
+
+#endif
--- a/libgui/src/welcome-wizard.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/welcome-wizard.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -26,100 +26,317 @@
 #endif
 
 #include <QApplication>
+#include <QPushButton>
 #include <QHBoxLayout>
 #include <QVBoxLayout>
-#include <QLabel>
-#include <QPushButton>
 
 #include "welcome-wizard.h"
 #include "resource-manager.h"
 
+static QLabel *
+make_octave_logo (QWidget *p = 0, int height = 100)
+{
+  QLabel *logo = new QLabel (p);
+  QPixmap logo_pixmap (":/actions/icons/logo.png");
+  logo->setPixmap (logo_pixmap.scaledToHeight (height));
+  return logo;
+};
+
+
+
+initial_page::initial_page (welcome_wizard *wizard)
+    : QWidget (wizard),
+      title (new QLabel (tr ("Welcome to Octave!"), this)),
+      message (new QLabel (this)),
+      logo (make_octave_logo (this)),
+      next (new QPushButton (tr ("Next"), this)),
+      cancel (new QPushButton (tr ("Cancel"), this))
+  {
+    QFont ft;
+    ft.setPointSize (20);
+    title->setFont (ft);
+
+    message->setText
+      (tr ("<html><body>\n"
+           "<p>You seem to be using the Octave graphical interface for the first time on this computer.\n"
+           "Click 'Next' to create a configuration file and launch Octave.</p>\n"
+           "<p>The configuration file is stored in %1.  If that file exists, you will not see this dialog when Octave starts.</p>\n"
+           "</body></html>").
+           arg (resource_manager::get_settings_file ()));
+    message->setWordWrap (true);
+    message->setMinimumWidth (400);
+
+    QVBoxLayout *message_layout = new QVBoxLayout;
+
+    message_layout->addWidget (title);
+    message_layout->addWidget (message);
+
+    QHBoxLayout *message_and_logo = new QHBoxLayout;
+
+    message_and_logo->addLayout (message_layout);
+    message_and_logo->addStretch (10);
+    message_and_logo->addWidget (logo, 0, Qt::AlignTop);
+
+    QHBoxLayout *button_bar = new QHBoxLayout;
+
+    button_bar->addStretch (10);
+    button_bar->addWidget (next);
+    button_bar->addWidget (cancel);
+
+    QVBoxLayout *page_layout = new QVBoxLayout (this);
+    setLayout (page_layout);
+
+    page_layout->addLayout (message_and_logo);
+    page_layout->addStretch (10);
+    page_layout->addLayout (button_bar);
+
+    next->setDefault (true);
+    next->setFocus ();
+
+    connect (next, SIGNAL (clicked ()), wizard, SLOT (next_page ()));
+    connect (cancel, SIGNAL (clicked ()), wizard, SLOT (reject ()));
+  }
+
+
+
+setup_community_news::setup_community_news (welcome_wizard *wizard)
+    : QWidget (wizard),
+      title (new QLabel (tr ("Community News"), this)),
+      message (new QLabel (this)),
+      checkbox (new QCheckBox (this)),
+      checkbox_message (new QLabel (this)),
+      logo (make_octave_logo (this)),
+      previous (new QPushButton (tr ("Previous"), this)),
+      next (new QPushButton (tr ("Next"), this)),
+      cancel (new QPushButton (tr ("Cancel"), this))
+  {
+    QFont ft;
+    ft.setPointSize (20);
+    title->setFont (ft);
+
+    message->setText
+      (tr ("<html><body>\n"
+           "<p>When the Octave GUI starts, it will check the Octave web site for current news and information about the Octave community.\n"
+           "The check will happen at most once each day and news will only be displayed if there is something new since the last time you viewed the news.</p>\n"
+           "<p>You may also view the news by selecting the \"Community News\" item in the \"Help\" menu in the GUI, or by visiting\n"
+           "<a href=\"http://octave.org/community-news.html\">http://octave.org/community-news.html</a>.</p>\n"
+           "</body></html>"));
+    message->setWordWrap (true);
+    message->setMinimumWidth (400);
+    message->setOpenExternalLinks (true);
+
+    QVBoxLayout *message_layout = new QVBoxLayout;
+
+    message_layout->addWidget (title);
+    message_layout->addWidget (message);
+
+    QHBoxLayout *message_and_logo = new QHBoxLayout;
+
+    message_and_logo->addLayout (message_layout);
+    message_and_logo->addStretch (10);
+    message_and_logo->addWidget (logo, 0, Qt::AlignTop);
+
+    QHBoxLayout *checkbox_layout = new QHBoxLayout;
+
+    checkbox->setCheckState (Qt::Checked);
+
+    checkbox_message->setText
+      (tr ("<html><head>\n"
+           "<style>\n"
+           "a:link { text-decoration: underline; color: #0000ff; }\n"
+           "</style>\n"
+           "<head/><body>\n"
+           "<p>Allow Octave to connect to the Octave web site when it starts to display current news and information about the Octave community.</p>\n"
+           "</body></html>"));
+    checkbox_message->setWordWrap (true);
+    checkbox_message->setOpenExternalLinks (true);
+    checkbox_message->setMinimumWidth (500);
+
+    checkbox_layout->addWidget (checkbox, 0, Qt::AlignTop);
+    checkbox_layout->addSpacing (20);
+    checkbox_layout->addWidget (checkbox_message, 0, Qt::AlignTop);
+    checkbox_layout->addStretch (10);
+
+    QVBoxLayout *message_logo_and_checkbox = new QVBoxLayout;
+
+    message_logo_and_checkbox->addLayout (message_and_logo);
+    message_logo_and_checkbox->addSpacing (20);
+    message_logo_and_checkbox->addLayout (checkbox_layout);
+
+    QHBoxLayout *button_bar = new QHBoxLayout;
+
+    button_bar->addStretch (10);
+    button_bar->addWidget (previous);
+    button_bar->addWidget (next);
+    button_bar->addWidget (cancel);
+
+    QVBoxLayout *page_layout = new QVBoxLayout (this);
+    setLayout (page_layout);
+
+    page_layout->addLayout (message_logo_and_checkbox);
+    page_layout->addStretch (10);
+    page_layout->addLayout (button_bar);
+
+    next->setDefault (true);
+    next->setFocus ();
+
+    connect (checkbox, SIGNAL (stateChanged (int)),
+             wizard, SLOT (handle_web_connect_option (int)));
+
+    connect (previous, SIGNAL (clicked ()), wizard, SLOT (previous_page ()));
+    connect (next, SIGNAL (clicked ()), wizard, SLOT (next_page ()));
+    connect (cancel, SIGNAL (clicked ()), wizard, SLOT (reject ()));
+  }
+
+
+final_page::final_page (welcome_wizard *wizard)
+    : QWidget (wizard),
+      title (new QLabel (tr ("Enjoy!"), this)),
+      message (new QLabel (this)),
+      logo (make_octave_logo (this)),
+      links (new QLabel (this)),
+      previous (new QPushButton (tr ("Previous"), this)),
+      finish (new QPushButton (tr ("Finish"), this)),
+      cancel (new QPushButton (tr ("Cancel"), this))
+  {
+    QFont ft;
+    ft.setPointSize (20);
+    title->setFont (ft);
+
+    message->setText
+      (tr ("<html><body>\n"
+           "<p>We hope you find Octave to be a useful tool.</p>\n"
+           "<p>If you encounter problems, there are a number of ways to get help including commercial support options, a mailing list, a wiki, and other commnity-based support channels.\n"
+           "You can find more information about each of these by visiting <a href=\"http://octave.org/support.html\">http://octave.org/support.html</a> (opens in external browser).</p>\n"
+           "</body></html>"));
+    message->setWordWrap (true);
+    message->setMinimumWidth (400);
+    message->setOpenExternalLinks (true);
+
+    QVBoxLayout *message_layout = new QVBoxLayout;
+
+    message_layout->addWidget (title);
+    message_layout->addWidget (message);
+
+    QHBoxLayout *message_and_logo = new QHBoxLayout;
+
+    message_and_logo->addLayout (message_layout);
+    message_and_logo->addStretch (10);
+    message_and_logo->addWidget (logo, 0, Qt::AlignTop);
+
+    links->setText
+      (tr ("<html><head>\n"
+           "<style>\n"
+           "a:link { text-decoration: underline; color: #0000ff; }\n"
+           "</style>\n"
+           "<head/><body>\n"
+           "<p>For more information about Octave:</p>\n"
+           "<ul>\n"
+           "<li>Visit <a href=\"http://octave.org\">http://octave.org</a> (opens in external browser)</li>\n"
+           "<li>Get the documentation online as <a href=\"http://www.gnu.org/software/octave/doc/interpreter/index.html\">html</a>- or <a href=\"http://www.gnu.org/software/octave/octave.pdf\">pdf</span></a>-document (opens in external browser)</li>\n"
+           "<li>Open the documentation browser of the Octave GUI with the help menu</li>\n"
+           "</ul>\n"
+           "</body></html>"));
+    links->setWordWrap (true);
+    links->setOpenExternalLinks (true);
+
+    QHBoxLayout *button_bar = new QHBoxLayout;
+
+    button_bar->addStretch (10);
+    button_bar->addWidget (previous);
+    button_bar->addWidget (finish);
+    button_bar->addWidget (cancel);
+
+    QVBoxLayout *page_layout = new QVBoxLayout (this);
+    setLayout (page_layout);
+
+    page_layout->addLayout (message_and_logo);
+    page_layout->addSpacing (20);
+    page_layout->addWidget (links);
+    page_layout->addStretch (10);
+    page_layout->addLayout (button_bar);
+
+    finish->setDefault (true);
+    finish->setFocus ();
+
+    connect (previous, SIGNAL (clicked ()), wizard, SLOT (previous_page ()));
+    connect (finish, SIGNAL (clicked ()), wizard, SLOT (accept ()));
+    connect (cancel, SIGNAL (clicked ()), wizard, SLOT (reject ()));
+  }
+
+
 welcome_wizard::welcome_wizard (QWidget *p)
-  : QDialog (p)
+  : QDialog (p), page_ctor_list (), page_list_iterator (),
+    current_page (initial_page::create (this)),
+    allow_web_connect_state (true)
 {
+  page_ctor_list.push_back (initial_page::create);
+  page_ctor_list.push_back (setup_community_news::create);
+  page_ctor_list.push_back (final_page::create);
+
+  page_list_iterator = page_ctor_list.begin ();
+
   setWindowTitle (tr ("Welcome to GNU Octave"));
 
   setEnabled (true);
   resize (600, 480);
   setMinimumSize (QSize (600, 480));
 
-
-  QVBoxLayout *page_layout = new QVBoxLayout (this);
-  setLayout (page_layout);
-
-  QHBoxLayout *message_and_logo = new QHBoxLayout;
-
-  QVBoxLayout *message = new QVBoxLayout;
+  show_page ();
+}
 
-  QLabel *title = new QLabel (tr ("Welcome to Octave!"));
-  QFont ft;
-  ft.setPointSize (20);
-  title->setFont (ft);
-
-  QLabel *msg_1 = new QLabel (
-    tr ("You seem to be using the Octave graphical interface for the first time on this computer.  Click 'Finish' to write a configuration file and launch Octave."));
-  msg_1->setWordWrap (true);
+void
+welcome_wizard::handle_web_connect_option (int state)
+{
+  allow_web_connect_state = state == Qt::Checked;
+}
 
-  QString msg_2_text = QString (tr ("The configuration file is stored in %1. "
-                                    "If that file exists, you will not see this "
-                                    "dialog when Octave starts again.").
-                                arg (resource_manager::get_settings_file ()));
-  QLabel *msg_2 = new QLabel (msg_2_text);
-  msg_2->setWordWrap (true);
+void
+welcome_wizard::show_page (void)
+{
+  delete current_page;
+  delete layout ();
 
-  message->addWidget (title);
-  message->addWidget (msg_1);
-  message->addWidget (msg_2);
+  current_page = (*page_list_iterator) (this);
 
-  QSpacerItem *logo_filler = new QSpacerItem (40, 20, QSizePolicy::Expanding,
-                                              QSizePolicy::Minimum);
+  QVBoxLayout *new_layout = new QVBoxLayout ();
+  setLayout (new_layout);
 
-  QLabel *logo = new QLabel;
-  QPixmap logo_pixmap (":/actions/icons/logo.png");
-  logo->setPixmap (logo_pixmap.scaledToHeight (150));
+  new_layout->addWidget (current_page);
+}
 
-  message_and_logo->addLayout (message);
-  message_and_logo->addItem (logo_filler);
-  message_and_logo->addWidget (logo);
+void
+welcome_wizard::previous_page (void)
+{
+  --page_list_iterator;
 
-  QLabel *links = new QLabel
-    (tr ("<html><head>\n"
-         "<style>\n"
-         "a:link { text-decoration: underline; color: #0000ff; }\n"
-         "</style>\n"
-         "<head/><body>\n"
-         "<p>For more information about Octave:</p>\n"
-         "<ul>\n"
-         "<li>Visit <a href=\"http://octave.org\">http://octave.org</a></li>\n"
-         "<li>Get the documentation online as <a href=\"http://www.gnu.org/software/octave/doc/interpreter/index.html\">html</a>- or <a href=\"http://www.gnu.org/software/octave/octave.pdf\">pdf</span></a>-document</li>\n"
-         "<li>Open the documentation browser of Octave GUI with the help menu</li>\n"
-         "</ul>\n"
-         "</body></html>"),
-     this);
-  links->setWordWrap (true);
-  links->setOpenExternalLinks (true);
+  show_page ();
+}
 
-  QSpacerItem *hfill = new QSpacerItem (40, 20, QSizePolicy::Expanding,
-                                        QSizePolicy::Minimum);
+void
+welcome_wizard::next_page (void)
+{
+  ++page_list_iterator;
+
+  show_page ();
+}
 
-  QPushButton *finish_button = new QPushButton;
-  finish_button->setText (tr ("Finish"));
-
-  QSpacerItem *vspace = new QSpacerItem (20, 40, QSizePolicy::Minimum);
+void
+welcome_wizard::accept (void)
+{
+  // Create default settings file.
 
-  QHBoxLayout *button_bar = new QHBoxLayout;
+  resource_manager::reload_settings ();
 
-  button_bar->addItem (hfill);
-  button_bar->addWidget (finish_button);
+  QSettings *settings = resource_manager::get_settings ();
 
-  QSpacerItem *vfill = new QSpacerItem (20, 40, QSizePolicy::Minimum,
-                                        QSizePolicy::Expanding);
+  if (settings)
+    {
+      settings->setValue ("news/allow_web_connection",
+                          allow_web_connect_state);
 
-  page_layout->addLayout (message_and_logo);
-  page_layout->addWidget (links);
-  page_layout->addItem (vspace);
-  page_layout->addLayout (button_bar);
-  page_layout->addItem (vfill);
+      settings->sync ();
+    }
 
-  connect (finish_button, SIGNAL (clicked ()), this, SLOT (accept ()));
+  QDialog::accept ();
 }
--- a/libgui/src/welcome-wizard.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libgui/src/welcome-wizard.h	Tue Nov 26 12:38:46 2013 -0500
@@ -25,6 +25,8 @@
 #define WELCOMEWIZARD_H
 
 #include <QDialog>
+#include <QCheckBox>
+#include <QLabel>
 
 class welcome_wizard : public QDialog
 {
@@ -32,9 +34,102 @@
 
 public:
 
+  typedef QWidget *(*page_creator_fptr) (welcome_wizard *wizard);
+
   welcome_wizard (QWidget *parent = 0);
 
   ~welcome_wizard (void) { }
+
+private:
+
+  QList<page_creator_fptr> page_ctor_list;
+  QList<page_creator_fptr>::iterator page_list_iterator;
+  QWidget *current_page;
+  bool allow_web_connect_state;
+
+private slots:
+
+  void handle_web_connect_option (int state);
+
+  void show_page (void);
+  void previous_page (void);
+  void next_page (void);
+
+  void accept (void);
+};
+
+
+class initial_page : public QWidget
+{
+  Q_OBJECT
+
+public:
+
+  initial_page (welcome_wizard *wizard);
+
+  ~initial_page (void) { }
+
+  static QWidget *
+  create (welcome_wizard *wizard) { return new initial_page (wizard); }
+
+private:
+
+  QLabel *title;
+  QLabel *message;
+  QLabel *logo;
+  QPushButton *next;
+  QPushButton *cancel;
+};
+
+
+class setup_community_news : public QWidget
+{
+  Q_OBJECT
+
+public:
+
+  setup_community_news (welcome_wizard *wizard);
+
+  ~setup_community_news (void) { }
+
+  static QWidget *
+  create (welcome_wizard *wizard) { return new setup_community_news (wizard); }
+
+private:
+
+  QLabel *title;
+  QLabel *message;
+  QCheckBox *checkbox;
+  QLabel *checkbox_message;
+  QLabel *logo;
+  QPushButton *previous;
+  QPushButton *next;
+  QPushButton *cancel;
+};
+
+
+class final_page : public QWidget
+{
+  Q_OBJECT
+
+public:
+
+  final_page (welcome_wizard *wizard);
+
+  ~final_page (void) { }
+
+  static QWidget *
+  create (welcome_wizard *wizard) { return new final_page (wizard); }
+
+private:
+
+  QLabel *title;
+  QLabel *message;
+  QLabel *logo;
+  QLabel *links;
+  QPushButton *previous;
+  QPushButton *finish;
+  QPushButton *cancel;
 };
 
 #endif // WELCOMEWIZARD_H
--- a/libinterp/corefcn/betainc.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/betainc.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -75,7 +75,7 @@
       octave_value a_arg = args(1);
       octave_value b_arg = args(2);
 
-      // FIXME Can we make a template version of the duplicated code below
+      // FIXME: Can we make a template version of the duplicated code below
       if (x_arg.is_single_type () || a_arg.is_single_type () ||
           b_arg.is_single_type ())
         {
--- a/libinterp/corefcn/bitfcns.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/bitfcns.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -517,7 +517,7 @@
 \n\
 bitshift (10, [-2, -1, 0, 1, 2])\n\
 @result{} 2   5  10  20  40\n\
-@c FIXME -- restore this example when third arg is allowed to be an array.\n\
+@c FIXME: restore this example when third arg is allowed to be an array.\n\
 @c\n\
 @c\n\
 @c bitshift ([1, 10], 2, [3,4])\n\
--- a/libinterp/corefcn/cellfun.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/cellfun.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -112,6 +112,10 @@
   return tmp;
 }
 
+// Templated function because the user can be stubborn enough to request
+// a cell array as an output even in these cases where the output fits
+// in an ordinary array
+template<typename BNDA, typename NDA>
 static octave_value_list
 try_cellfun_internal_ops (const octave_value_list& args, int nargin)
 {
@@ -125,49 +129,49 @@
 
   if (name == "isempty")
     {
-      boolNDArray result (f_args.dims ());
+      BNDA result (f_args.dims ());
       for (octave_idx_type count = 0; count < k; count++)
         result(count) = f_args.elem (count).is_empty ();
       retval(0) = result;
     }
   else if (name == "islogical")
     {
-      boolNDArray result (f_args.dims ());
+      BNDA result (f_args.dims ());
       for (octave_idx_type  count= 0; count < k; count++)
         result(count) = f_args.elem (count).is_bool_type ();
       retval(0) = result;
     }
   else if (name == "isnumeric")
     {
-      boolNDArray result (f_args.dims ());
+      BNDA result (f_args.dims ());
       for (octave_idx_type  count= 0; count < k; count++)
         result(count) = f_args.elem (count).is_numeric_type ();
       retval(0) = result;
     }
   else if (name == "isreal")
     {
-      boolNDArray result (f_args.dims ());
+      BNDA result (f_args.dims ());
       for (octave_idx_type  count= 0; count < k; count++)
         result(count) = f_args.elem (count).is_real_type ();
       retval(0) = result;
     }
   else if (name == "length")
     {
-      NDArray result (f_args.dims ());
+      NDA result (f_args.dims ());
       for (octave_idx_type  count= 0; count < k; count++)
         result(count) = static_cast<double> (f_args.elem (count).length ());
       retval(0) = result;
     }
   else if (name == "ndims")
     {
-      NDArray result (f_args.dims ());
+      NDA result (f_args.dims ());
       for (octave_idx_type count = 0; count < k; count++)
         result(count) = static_cast<double> (f_args.elem (count).ndims ());
       retval(0) = result;
     }
   else if (name == "numel" || name == "prodofsize")
     {
-      NDArray result (f_args.dims ());
+      NDA result (f_args.dims ());
       for (octave_idx_type count = 0; count < k; count++)
         result(count) = static_cast<double> (f_args.elem (count).numel ());
       retval(0) = result;
@@ -183,7 +187,7 @@
 
           if (! error_state)
             {
-              NDArray result (f_args.dims ());
+              NDA result (f_args.dims ());
               for (octave_idx_type count = 0; count < k; count++)
                 {
                   dim_vector dv = f_args.elem (count).dims ();
@@ -203,7 +207,7 @@
       if (nargin == 3)
         {
           std::string class_name = args(2).string_value ();
-          boolNDArray result (f_args.dims ());
+          BNDA result (f_args.dims ());
           for (octave_idx_type count = 0; count < k; count++)
             result(count) = (f_args.elem (count).class_name () == class_name);
 
@@ -315,9 +319,7 @@
 \n\
 Additionally, @code{cellfun} accepts an arbitrary function @var{func}\n\
 in the form of an inline function, function handle, or the name of a\n\
-function (in a character string).  In the case of a character string\n\
-argument, the function must accept a single argument named @var{x}, and\n\
-it must return a string value.  The function can take one or more arguments,\n\
+function (in a character string). The function can take one or more arguments,\n\
 with the inputs arguments given by @var{C}, @var{D}, etc.  Equally the\n\
 function can return one or more output arguments.  For example:\n\
 \n\
@@ -427,7 +429,7 @@
 
   if (func.is_string ())
     {
-      retval = try_cellfun_internal_ops (args, nargin);
+      retval = try_cellfun_internal_ops<boolNDArray,NDArray>(args, nargin);
 
       if (error_state || ! retval.empty ())
         return retval;
@@ -464,6 +466,11 @@
       || func.is_function ())
     {
 
+      bool uniform_output = true;
+      octave_value error_handler;
+
+      get_mapper_fun_options (args, nargin, uniform_output, error_handler);
+
       // The following is an optimisation because the symbol table can
       // give a more specific function class, so this can result in
       // fewer polymorphic function calls as the function gets called
@@ -491,7 +498,15 @@
                 //Try first the optimised code path for built-in functions
                 octave_value_list tmp_args = args;
                 tmp_args(0) = name;
-                retval = try_cellfun_internal_ops (tmp_args, nargin);
+
+                if (uniform_output)
+                  retval =
+                    try_cellfun_internal_ops<boolNDArray, NDArray> (tmp_args,
+                                                                    nargin);
+                else
+                  retval =
+                    try_cellfun_internal_ops<Cell, Cell> (tmp_args, nargin);
+
                 if (error_state || ! retval.empty ())
                   return retval;
               }
@@ -504,11 +519,6 @@
       }
     nevermind:
 
-      bool uniform_output = true;
-      octave_value error_handler;
-
-      get_mapper_fun_options (args, nargin, uniform_output, error_handler);
-
       if (error_state)
         return octave_value_list ();
 
@@ -1029,6 +1039,12 @@
 %! assert (b, {"c", "g"});
 %! assert (c, {".d", ".h"});
 
+## Tests for bug #40467
+%!assert (cellfun (@isreal, {1 inf nan []}), [true, true, true, true]);
+%!assert (cellfun (@isreal, {1 inf nan []}, "UniformOutput", false), {true, true, true, true});
+%!assert (cellfun (@iscomplex, {1 inf nan []}), [false, false, false, false]);
+%!assert (cellfun (@iscomplex, {1 inf nan []}, "UniformOutput", false), {false, false, false, false});
+
 %!error cellfun (1)
 %!error cellfun ("isclass", 1)
 %!error cellfun ("size", 1)
--- a/libinterp/corefcn/data.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/data.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -4953,6 +4953,12 @@
     {
       Array<octave_idx_type> new_size = args(1).octave_idx_type_vector_value ();
 
+      if (new_size.length () < 2)
+        {
+          error ("reshape: SIZE must have 2 or more dimensions");
+          return retval;
+        }
+
       new_dims = dim_vector::alloc (new_size.length ());
 
       for (octave_idx_type i = 0; i < new_size.length (); i++)
@@ -5044,10 +5050,15 @@
 
 %!test
 %! s.a = 1;
-%! fail ("reshape (s, 2, 3)");
+%! fail ("reshape (s, 2, 3)", "can't reshape 1x1 array to 2x3 array");
 
 %!error reshape ()
 %!error reshape (1, 2, 3, 4)
+%!error <SIZE must have 2 or more dimensions> reshape (1:3, 3)
+%!error <SIZE must be non-negative> reshape (1:3, [3 -1])
+%!error <only a single dimension can be unknown> reshape (1:3, 1,[],[],3)
+%!error <SIZE must be non-negative> reshape (1:3, 3, -1)
+%!error <SIZE is not divisible> reshape (1:3, 3, [], 2)
 */
 
 DEFUN (vec, args, ,
--- a/libinterp/corefcn/defaults.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/defaults.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -471,9 +471,10 @@
 @deftypefn  {Built-in Function} {@var{val} =} EDITOR ()\n\
 @deftypefnx {Built-in Function} {@var{old_val} =} EDITOR (@var{new_val})\n\
 @deftypefnx {Built-in Function} {} EDITOR (@var{new_val}, \"local\")\n\
-Query or set the internal variable that specifies the editor to\n\
-use with the @code{edit_history} command.  The default value is taken from\n\
-the environment variable @w{@env{EDITOR}} when Octave starts.  If the\n\
+Query or set the internal variable that specifies the default text editor.\n\
+\n\
+The default value is taken from the environment variable @w{@env{EDITOR}}\n\
+when Octave starts.  If the\n\
 environment variable is not initialized, @w{@env{EDITOR}} will be set to\n\
 @qcode{\"emacs\"}.\n\
 \n\
@@ -481,7 +482,7 @@
 variable is changed locally for the function and any subroutines it calls.  \n\
 The original variable value is restored when exiting the function.\n\
 \n\
-@seealso{edit_history}\n\
+@seealso{edit, edit_history}\n\
 @end deftypefn")
 {
   return SET_NONEMPTY_INTERNAL_STRING_VARIABLE (EDITOR);
--- a/libinterp/corefcn/display.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/display.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -42,7 +42,7 @@
 display_info *display_info::instance = 0;
 
 #if defined (HAVE_FRAMEWORK_CARBON) && ! defined (HAVE_CARBON_CGDISPLAYBITSPERPIXEL)
-// FIXME - This will only work for MacOS > 10.5. For earlier versions
+// FIXME: This will only work for MacOS > 10.5. For earlier versions
 // this code is not needed (use CGDisplayBitsPerPixel instead).
 size_t DisplayBitsPerPixel (CGDirectDisplayID display)
 {
--- a/libinterp/corefcn/display.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/display.h	Tue Nov 26 12:38:46 2013 -0500
@@ -27,7 +27,9 @@
 
 class Matrix;
 
-class display_info
+class
+OCTINTERP_API
+display_info
 {
 protected:
 
--- a/libinterp/corefcn/gammainc.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/gammainc.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -101,7 +101,7 @@
       octave_value x_arg = args(0);
       octave_value a_arg = args(1);
 
-      // FIXME Can we make a template version of the duplicated code below
+      // FIXME: Can we make a template version of the duplicated code below
       if (x_arg.is_single_type () || a_arg.is_single_type ())
         {
           if (x_arg.is_scalar_type ())
--- a/libinterp/corefcn/gl2ps-renderer.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/gl2ps-renderer.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -157,8 +157,8 @@
   gl2psTextOpt (txt.c_str (), fontname.c_str (), fontsize,
                 alignment_to_mode (ha, va), rotation);
 
-  // FIXME? -- we have no way of getting a bounding box from gl2ps, so
-  // we use freetype
+  // FIXME?
+  // We have no way of getting a bounding box from gl2ps, so we use freetype.
   Matrix bbox;
   uint8NDArray pixels;
   text_to_pixels (txt, pixels, bbox, 0, 0, rotation);
--- a/libinterp/corefcn/graphics.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/graphics.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -3130,7 +3130,7 @@
     }
 }
 
-// FIXME This should update monitorpositions and pointerlocation, but
+// FIXME: This should update monitorpositions and pointerlocation, but
 // as these properties are yet used, and so it doesn't matter that they
 // aren't set yet.
 void
@@ -6206,7 +6206,7 @@
               min_val = -1;
               max_val = 1;
             }
-          // FIXME -- maybe this test should also be relative?
+          // FIXME: maybe this test should also be relative?
           else if (std::abs (min_val - max_val)
                    < sqrt (std::numeric_limits<double>::epsilon ()))
             {
@@ -6246,7 +6246,7 @@
   double hi = (lims.get ().matrix_value ()) (1);
   bool is_negative = lo < 0 && hi < 0;
   double tmp;
-  // FIXME should this be checked for somewhere else? (i.e. set{x,y,z}lim)
+  // FIXME: should this be checked for somewhere else? (i.e. set{x,y,z}lim)
   if (hi < lo)
     {
       tmp = hi;
@@ -6273,7 +6273,7 @@
 
   if (is_logscale && ! (xisinf (hi) || xisinf (lo)))
     {
-      // FIXME - what if (hi-lo) < tick_sep?
+      // FIXME: what if (hi-lo) < tick_sep?
       //         ex: loglog ([1 1.1])
       tick_sep = std::max (tick_sep, 1.);
       tick_sep = std::ceil (tick_sep);
--- a/libinterp/corefcn/load-save.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/load-save.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -766,10 +766,10 @@
 #endif /* HAVE_HDF5 */
       if (format != LS_UNKNOWN)
         {
-          // FIXME -- if we have already seen EOF on a
-          // previous call, how do we fix up the state of std::cin so
-          // that we can get additional input?  I'm afraid that we
-          // can't fix this using std::cin only.
+          // FIXME: if we have already seen EOF on a previous call,
+          // how do we fix up the state of std::cin so that we can get
+          // additional input?  I'm afraid that we can't fix this
+          // using std::cin only.
 
           retval = do_load (std::cin, orig_fname, format, flt_fmt,
                             list_only, swap, verbose, argv, i, argc,
@@ -1713,7 +1713,7 @@
 #ifdef HAVE_HDF5
       if (format == LS_HDF5)
         {
-          // FIXME. It should be possible to append to HDF5 files.
+          // FIXME: It should be possible to append to HDF5 files.
           if (append)
             {
               error ("save: appending to HDF5 files is not implemented");
--- a/libinterp/corefcn/ls-hdf5.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/ls-hdf5.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -398,7 +398,7 @@
           // What integer type do we really have..
           std::string int_typ;
 #ifdef HAVE_H5T_GET_NATIVE_TYPE
-          // FIXME test this code and activated with an autoconf
+          // FIXME: test this code and activated with an autoconf
           // test!! It is also incorrect for 64-bit indexing!!
 
           switch (H5Tget_native_type (type_id, H5T_DIR_ASCEND))
--- a/libinterp/corefcn/ls-mat5.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/ls-mat5.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -172,7 +172,7 @@
     case miRESERVE3:
       break;
 
-    // FIXME -- how are the 64-bit cases supposed to work here?
+    // FIXME: how are the 64-bit cases supposed to work here?
     case miINT64:
       read_doubles (is, data, LS_LONG, count, swap, flt_fmt);
       break;
@@ -237,7 +237,7 @@
     case miRESERVE3:
       break;
 
-    // FIXME -- how are the 64-bit cases supposed to work here?
+    // FIXME: how are the 64-bit cases supposed to work here?
     case miINT64:
       read_floats (is, data, LS_LONG, count, swap, flt_fmt);
       break;
--- a/libinterp/corefcn/ls-oct-binary.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/ls-oct-binary.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -205,7 +205,7 @@
 
     case 5:
       {
-        // FIXMEX
+        // FIXME:
         // This is cruft, since its for a save type that is old. Maybe
         // this is taking backward compatability too far!!
         int32_t len;
--- a/libinterp/corefcn/luinc.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/luinc.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -186,7 +186,7 @@
             }
         }
 
-      // FIXME Add code for zero-level factorization
+      // FIXME: Add code for zero-level factorization
       if (zero_level)
         error ("luinc: zero-level factorization not implemented");
 
--- a/libinterp/corefcn/mex.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/mex.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -1045,7 +1045,7 @@
       cpr[i] = str[i];
   }
 
-  // FIXME??
+  // FIXME: ???
   mxArray_number (mwSize m, const char **str)
     : mxArray_matlab (mxCHAR_CLASS, m, max_str_len (m, str)),
       pr (mxArray::calloc (get_number_of_elements (), get_element_size ())),
--- a/libinterp/corefcn/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -337,6 +337,7 @@
                                  $(FFTW_XCPPFLAGS) \
                                  $(FONTCONFIG_CPPFLAGS) \
                                  $(FT2_CPPFLAGS) \
+                                 $(HDF5_CPPFLAGS) \
                                  $(LLVM_CPPFLAGS)
 corefcn_libcorefcn_la_CXXFLAGS = $(AM_CXXFLAGS) $(LLVM_CXXFLAGS)
 
--- a/libinterp/corefcn/octave-link.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/octave-link.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -132,6 +132,19 @@
       else
         error ("expecting file name as argument");
     }
+  else if (args.length () == 2)
+    {
+      std::string file = args(0).string_value ();
+
+      if (! error_state)
+        {
+          flush_octave_stdout ();
+
+          retval = octave_link::prompt_new_edit_file (file);
+        }
+      else
+        error ("expecting file name as first argument");
+    }
 
   return retval;
 }
--- a/libinterp/corefcn/octave-link.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/octave-link.h	Tue Nov 26 12:38:46 2013 -0500
@@ -136,6 +136,12 @@
     return enabled () ? instance->do_edit_file (file) : false;
   }
 
+  static bool
+  prompt_new_edit_file (const std::string& file)
+  {
+    return enabled () ? instance->do_prompt_new_edit_file (file) : false;
+  }
+
   static int
   message_dialog (const std::string& dlg, const std::string& msg,
                   const std::string& title)
@@ -385,6 +391,7 @@
   virtual bool do_exit (int status) = 0;
 
   virtual bool do_edit_file (const std::string& file) = 0;
+  virtual bool do_prompt_new_edit_file (const std::string& file) = 0;
 
   virtual int
   do_message_dialog (const std::string& dlg, const std::string& msg,
--- a/libinterp/corefcn/pr-output.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/pr-output.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -520,7 +520,7 @@
     for (octave_idx_type i = 0; i < nr; i++)
       {
         double val = m(i,j);
-        if (xfinite (val))
+        if (! xfinite (val))
           continue;
 
         all_inf_or_nan = false;
@@ -1699,13 +1699,19 @@
 }
 
 void
-octave_print_internal (std::ostream& os, double d,
-                       bool /* pr_as_read_syntax */)
+octave_print_internal (std::ostream&, char, bool)
 {
-  if (plus_format)
-    {
-      pr_plus_format (os, d);
-    }
+  panic_impossible ();
+}
+
+void
+octave_print_internal (std::ostream& os, double d,
+                       bool pr_as_read_syntax)
+{
+  if (pr_as_read_syntax)
+    os << d;
+  else if (plus_format)
+    pr_plus_format (os, d);
   else
     {
       set_format (d);
@@ -2116,12 +2122,12 @@
 
 void
 octave_print_internal (std::ostream& os, const Complex& c,
-                       bool /* pr_as_read_syntax */)
+                       bool pr_as_read_syntax)
 {
-  if (plus_format)
-    {
-      pr_plus_format (os, c);
-    }
+  if (pr_as_read_syntax)
+    os << c;
+  else if (plus_format)
+    pr_plus_format (os, c);
   else
     {
       set_format (c);
@@ -3380,6 +3386,13 @@
   panic_impossible ();
 }
 
+void
+octave_print_internal (std::ostream&, const octave_value&,
+                       bool pr_as_read_syntax)
+{
+  panic_impossible ();
+}
+
 DEFUN (rats, args, nargout,
        "-*- texinfo -*-\n\
 @deftypefn {Built-in Function} {} rats (@var{x}, @var{len})\n\
--- a/libinterp/corefcn/pr-output.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/pr-output.h	Tue Nov 26 12:38:46 2013 -0500
@@ -47,6 +47,7 @@
 class charNDArray;
 class PermMatrix;
 class Cell;
+class octave_value;
 
 #include "intNDArray.h"
 #include "oct-inttypes.h"
@@ -57,6 +58,10 @@
                        bool pr_as_read_syntax = false);
 
 extern OCTINTERP_API void
+octave_print_internal (std::ostream& os, char c,
+                       bool pr_as_read_syntax = false);
+
+extern OCTINTERP_API void
 octave_print_internal (std::ostream& os, double d,
                        bool pr_as_read_syntax = false);
 
@@ -252,6 +257,10 @@
                        int extra_indent = 0,
                        bool pr_as_string = false);
 
+extern OCTINTERP_API void
+octave_print_internal (std::ostream& os, const octave_value& ov,
+                       bool pr_as_read_syntax = false);
+
 // TRUE means that the dimensions of empty objects should be printed
 // like this: x = [](2x0).
 extern bool Vprint_empty_dimensions;
--- a/libinterp/corefcn/profiler.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/profiler.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -192,7 +192,7 @@
 
 profile_data_accumulator::profile_data_accumulator ()
   : known_functions (), fcn_index (),
-    enabled (false), call_tree (NULL), last_time (-1.0)
+    enabled (false), call_tree (0), last_time (-1.0)
 {}
 
 profile_data_accumulator::~profile_data_accumulator ()
@@ -208,7 +208,7 @@
     {
       // Create a call-tree top-node if there isn't yet one.
       if (!call_tree)
-        call_tree = new tree_node (NULL, 0);
+        call_tree = new tree_node (0, 0);
 
       // Let the top-node be the active one.  This ensures we have a clean
       // fresh start collecting times.
@@ -287,7 +287,7 @@
   if (call_tree)
     {
       delete call_tree;
-      call_tree = NULL;
+      call_tree = 0;
     }
 
   last_time = -1.0;
--- a/libinterp/corefcn/profiler.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/profiler.h	Tue Nov 26 12:38:46 2013 -0500
@@ -118,7 +118,7 @@
     // Get the hierarchical profile for this node and its children.  If total
     // is set, accumulate total time of the subtree in that variable as
     // additional return value.
-    octave_value get_hierarchical (double* total = NULL) const;
+    octave_value get_hierarchical (double* total = 0) const;
 
   private:
 
--- a/libinterp/corefcn/regexp.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/regexp.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -78,10 +78,10 @@
               break;
 
 #if 0
-// FIXME : To be complete, we need to handle \oN, \o{N}.
-//         The PCRE library already handles \N where N
-//         is an octal number.  New code needs to merely
-//         replace \oN or \o{N} with \N.
+// FIXME: To be complete, we need to handle \oN, \o{N}.
+//        The PCRE library already handles \N where N
+//        is an octal number.  New code needs to merely
+//        replace \oN or \o{N} with \N.
             case 'o': // octal number
 #endif
 
--- a/libinterp/corefcn/sighandlers.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/sighandlers.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -74,6 +74,153 @@
 // List of signals we have caught since last call to octave_signal_handler.
 static bool octave_signals_caught[NSIG];
 
+// Forward declaration.
+static void user_abort (const char *sig_name, int sig_number);
+
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+class
+w32_interrupt_manager
+{
+public:
+  ~w32_interrupt_manager (void)
+  {
+    if (thread)
+      CloseHandle (thread);
+  }
+
+  static bool init (void) { return instance_ok (); }
+
+  static void octave_jump_to_enclosing_context (void)
+  {
+    if (instance_ok ())
+      instance->do_octave_jump_to_enclosing_context ();
+  }
+
+  static void user_abort (const char *sig_name, int sig_number)
+  {
+    if (instance_ok ())
+      instance->do_user_abort (sig_name, sig_number);
+  }
+
+  static void raise_sigint (void)
+  {
+    if (instance_ok ())
+      instance->do_raise_sigint ();
+  }
+
+private:
+  w32_interrupt_manager (void)
+    : thread (0), thread_id (0)
+  {
+    thread_id = GetCurrentThreadId ();
+
+    DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
+                     GetCurrentProcess (), &thread, 0, FALSE,
+                     DUPLICATE_SAME_ACCESS);
+  }
+
+  static void octave_jump_to_enclosing_context_sync (void)
+  {
+#ifdef _MSC_VER
+    _fpreset ();
+#endif
+    ::octave_jump_to_enclosing_context ();
+  }
+
+  void do_octave_jump_to_enclosing_context (void)
+  {
+    bool is_interrupt_thread = (GetCurrentThreadId () == thread_id);
+
+    if (is_interrupt_thread)
+      octave_jump_to_enclosing_context_sync ();
+    else
+      {
+        CONTEXT threadContext;
+
+        SuspendThread (thread);
+        threadContext.ContextFlags = CONTEXT_CONTROL;
+        GetThreadContext (thread, &threadContext);
+        threadContext.Eip = (DWORD) octave_jump_to_enclosing_context_sync;
+        SetThreadContext (thread, &threadContext);
+        ResumeThread (thread);
+      }
+  }
+
+  void do_user_abort (const char *sig_name, int sig_number)
+  {
+    bool is_interrupt_thread = (GetCurrentThreadId () == thread_id);
+
+    if (is_interrupt_thread)
+      ::user_abort (sig_name, sig_number);
+    else
+      {
+        SuspendThread (thread);
+        ::user_abort (sig_name, sig_number);
+        ResumeThread (thread);
+      }
+  }
+
+  void do_raise_sigint (void)
+  {
+    bool is_interrupt_thread = (GetCurrentThreadId () == thread_id);
+
+    if (is_interrupt_thread)
+      ::raise (SIGINT);
+    else
+      {
+        SuspendThread (thread);
+        ::raise (SIGINT);
+        ResumeThread (thread);
+      }
+  }
+
+  static bool instance_ok (void)
+  {
+    bool retval = true;
+
+    if (! instance)
+      {
+        instance = new w32_interrupt_manager ();
+
+        if (instance)
+          singleton_cleanup_list::add (cleanup_instance);
+      }
+
+    if (! instance)
+      {
+        ::error ("unable to create w32_interrupt_manager");
+
+        retval = false;
+      }
+
+    return retval;
+  }
+
+  static void cleanup_instance (void) { delete instance; instance = 0; }
+
+private:
+  // A handle to the thread that is running the octave interpreter.
+  HANDLE thread;
+
+  // The ID of the thread that is running the octave interpreter.
+  DWORD thread_id;
+
+  static w32_interrupt_manager* instance;
+};
+
+w32_interrupt_manager* w32_interrupt_manager::instance = 0;
+
+void w32_raise_sigint (void)
+{
+  w32_interrupt_manager::raise_sigint ();
+}
+
+#endif
+
 // Signal handler return type.
 #ifndef BADSIG
 #define BADSIG (void (*)(int))-1
@@ -223,7 +370,7 @@
 #if defined (SIGALRM)
   else
 #endif
-  // FIXME -- Do we also need to explicitly disable SA_RESTART?
+  // FIXME: Do we also need to explicitly disable SA_RESTART?
   if (restart_syscalls)
     act.sa_flags |= SA_RESTART;
 #endif
@@ -351,7 +498,11 @@
           if (octave_interrupt_state == 0)
             octave_interrupt_state = 1;
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+          w32_interrupt_manager::octave_jump_to_enclosing_context ();
+#else
           octave_jump_to_enclosing_context ();
+#endif
         }
       else
         {
@@ -378,7 +529,11 @@
 static void
 sigint_handler (int sig)
 {
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  w32_interrupt_manager::user_abort (strsignal (sig), sig);
+#else
   user_abort (strsignal (sig), sig);
+#endif
 }
 
 #ifdef SIGPIPE
@@ -401,6 +556,10 @@
 {
   octave_interrupt_handler retval;
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  w32_interrupt_manager::init ();
+#endif
+
 #ifdef SIGINT
   retval.int_handler = octave_set_signal_handler (SIGINT, sigint_handler);
 #endif
@@ -417,6 +576,10 @@
 {
   octave_interrupt_handler retval;
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  w32_interrupt_manager::init ();
+#endif
+
 #ifdef SIGINT
   retval.int_handler = octave_set_signal_handler (SIGINT, SIG_IGN);
 #endif
@@ -434,6 +597,10 @@
 {
   octave_interrupt_handler retval;
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  w32_interrupt_manager::init ();
+#endif
+
 #ifdef SIGINT
   retval.int_handler = octave_set_signal_handler (SIGINT, h.int_handler,
                                                   restart_syscalls);
--- a/libinterp/corefcn/sighandlers.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/sighandlers.h	Tue Nov 26 12:38:46 2013 -0500
@@ -82,6 +82,10 @@
 octave_set_interrupt_handler (const volatile octave_interrupt_handler&,
                               bool restart_syscalls = true);
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+extern OCTINTERP_API void w32_raise_sigint (void);
+#endif
+
 // extern void ignore_sigchld (void);
 
 // Maybe this should be in a separate file?
--- a/libinterp/corefcn/sparse-xpow.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/sparse-xpow.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -325,9 +325,9 @@
 octave_value
 elem_xpow (const SparseMatrix& a, double b)
 {
-  // FIXME What should a .^ 0 give?? Matlab gives a
+  // FIXME: What should a .^ 0 give?  Matlab gives a
   // sparse matrix with same structure as a, which is strictly
-  // incorrect. Keep compatiability.
+  // incorrect. Keep compatibility.
 
   octave_value retval;
 
--- a/libinterp/corefcn/symtab.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/symtab.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -25,6 +25,8 @@
 #include <config.h>
 #endif
 
+#include <sstream>
+
 #include "file-ops.h"
 #include "file-stat.h"
 #include "oct-env.h"
@@ -1485,8 +1487,12 @@
               else if (sr.is_inherited ())
                 storage = 'i';
 
+              std::ostringstream buf;
+              val.short_disp (buf);
+              std::string short_disp_str = buf.str ();
+
               workspace_element elt (storage, nm, val.class_name (),
-                                     val.short_disp (), dv.str (),
+                                     short_disp_str, dv.str (),
                                      val.is_complex_type ());
 
               retval.push_back (elt);
--- a/libinterp/corefcn/syscalls.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/syscalls.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -283,9 +283,10 @@
    @print{} are\n\
 @end example\n\
 \n\
-Note that @code{popen2}, unlike @code{popen}, will not @qcode{\"reap\"} the\n\
+Note that @code{popen2}, unlike @code{popen}, will not @nospell{\"reap\"} the\n\
 child process.  If you don't use @code{waitpid} to check the child's\n\
 exit status, it will linger until Octave exits.\n\
+@seealso{popen, waitpid}\n\
 @end deftypefn")
 {
   octave_value_list retval;
@@ -378,11 +379,19 @@
 
 /*
 %!test
+%! unix_sort = true;
+%! cmd = {"sort", "-r"};
+%! if (ispc ())
+%!   status = system ("sort /? 2>NUL 1>NUL");
+%!   if (status == 0)
+%!     unix_sort = false;
+%!     cmd = {"sort", "/R"};
+%!   endif
+%! endif
+%! [in, out, pid] = popen2 (cmd{:});
 %! if (isunix ())
-%!   [in, out, pid] = popen2 ("sort", "-r");
 %!   EAGAIN = errno ("EAGAIN");
 %! else
-%!   [in, out, pid] = popen2 ("sort", "/R");
 %!   EAGAIN = errno ("EINVAL");
 %! endif
 %! fputs (in, "these\nare\nsome\nstrings\n");
@@ -392,7 +401,7 @@
 %! idx = 0;
 %! errs = 0;
 %! do
-%!   if (!isunix ())
+%!   if (! isunix ())
 %!     errno (0);
 %!   endif
 %!   s = fgets (out);
@@ -410,7 +419,8 @@
 %!   endif
 %! until (done)
 %! fclose (out);
-%! if (isunix ())
+%! waitpid (pid);
+%! if (unix_sort)
 %!   assert (str, {"these\n","strings\n","some\n","are\n"});
 %! else
 %!   assert (str, {"these\r\n","strings\r\n","some\r\n","are\r\n"});
--- a/libinterp/corefcn/txt-eng-ft.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/txt-eng-ft.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -663,7 +663,7 @@
               if (r != 0)
                 ::warning ("ft_render: failed to decode string `%s' with "
                            "locale `%s'", str.c_str (),
-                           std::setlocale (LC_CTYPE, NULL));
+                           std::setlocale (LC_CTYPE, 0));
               break;
             }
         }
--- a/libinterp/corefcn/urlwrite.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/urlwrite.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -1055,7 +1055,7 @@
                     }
                   else
                     {
-                      // FIXME Does ascii mode need to be flagged here?
+                      // FIXME: Does ascii mode need to be flagged here?
                       std::ifstream ifile (file.c_str (), std::ios::in |
                                            std::ios::binary);
 
--- a/libinterp/corefcn/utils.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/utils.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -468,7 +468,7 @@
         {
           file_stat fs (name);
 
-          if (fs.exists ())
+          if (fs.exists () && ! fs.is_dir ())
             retval = name;
         }
       else if (len > 2 && name[len - 2] == '.' && name[len - 1] == 'm')
--- a/libinterp/corefcn/variables.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/corefcn/variables.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -388,8 +388,6 @@
 int
 symbol_exist (const std::string& name, const std::string& type)
 {
-  int retval = 0;
-
   std::string struct_elts;
   std::string symbol_name = name;
 
@@ -401,7 +399,70 @@
       symbol_name = name.substr (0, pos);
     }
   else if (is_keyword (symbol_name))
-    return retval;
+    return 0;
+
+  bool search_any = type == "any";
+  bool search_var = type == "var";
+  bool search_dir = type == "dir";
+  bool search_file = type == "file";
+  bool search_builtin = type == "builtin";
+
+  if (search_any || search_var)
+    {
+      bool not_a_struct = struct_elts.empty ();
+      bool var_ok = not_a_struct; // || val.is_map_element (struct_elts)
+
+      octave_value val = symbol_table::varval (name);
+
+      if (var_ok && (val.is_constant () || val.is_object ()
+                     || val.is_function_handle ()
+                     || val.is_anonymous_function ()
+                     || val.is_inline_function ()))
+        return 1;
+
+      if (search_var)
+        return 0;
+    }
+
+  if (search_any || search_file || search_dir)
+    {
+      std::string file_name = lookup_autoload (name);
+
+      if (file_name.empty ())
+        file_name = load_path::find_fcn (name);
+
+      size_t len = file_name.length ();
+
+      if (len > 0)
+        {
+          if (search_any || search_file)
+            {
+              if (len > 4 && (file_name.substr (len-4) == ".oct"
+                              || file_name.substr (len-4) == ".mex"))
+                return 3;
+              else
+                return 2;
+            }
+        }
+
+      file_name = file_in_path (name, "");
+
+      if (file_name.empty ())
+        file_name = name;
+
+      file_stat fs (file_name);
+
+      if (fs)
+        {
+          if (search_any || search_file)
+            return fs.is_dir () ? 7 : 2;
+          else if (search_dir && fs.is_dir ())
+            return 7;
+        }
+
+      if (search_file || search_dir)
+        return 0;
+    }
 
   // We shouldn't need to look in the global symbol table, since any
   // name that is visible in the current scope will be in the local
@@ -409,87 +470,23 @@
 
   octave_value val = safe_symbol_lookup (symbol_name);
 
-  if (val.is_defined ())
+  if (val.is_defined () && struct_elts.empty ())
     {
-      bool not_a_struct = struct_elts.empty ();
-      bool var_ok = not_a_struct /* || val.is_map_element (struct_elts) */;
-
-      if (! retval
-          && var_ok
-          && (type == "any" || type == "var")
-          && (val.is_constant () || val.is_object ()
-              || val.is_function_handle ()
-              || val.is_anonymous_function ()
-              || val.is_inline_function ()))
-        {
-          retval = 1;
-        }
-
-      if (! retval
-          && (type == "any" || type == "builtin"))
-        {
-          if (not_a_struct && val.is_builtin_function ())
-            {
-              retval = 5;
-            }
-        }
-
-      if (! retval
-          && not_a_struct
-          && (type == "any" || type == "file")
+      if ((search_any || search_builtin)
+          && val.is_builtin_function ())
+        return 5;
+
+      if ((search_any || search_file)
           && (val.is_user_function () || val.is_dld_function ()))
         {
           octave_function *f = val.function_value (true);
           std::string s = f ? f->fcn_file_name () : std::string ();
 
-          retval = s.empty () ? 103 : (val.is_user_function () ? 2 : 3);
+          return s.empty () ? 103 : (val.is_user_function () ? 2 : 3);
         }
     }
 
-  if (! (type == "var" || type == "builtin"))
-    {
-      if (! retval)
-        {
-          std::string file_name = lookup_autoload (name);
-
-          if (file_name.empty ())
-            file_name = load_path::find_fcn (name);
-
-          size_t len = file_name.length ();
-
-          if (len > 0)
-            {
-              if (type == "any" || type == "file")
-                {
-                  if (len > 4 && (file_name.substr (len-4) == ".oct"
-                                  || file_name.substr (len-4) == ".mex"))
-                    retval = 3;
-                  else
-                    retval = 2;
-                }
-            }
-        }
-
-      if (! retval)
-        {
-          std::string file_name = file_in_path (name, "");
-
-          if (file_name.empty ())
-            file_name = name;
-
-          file_stat fs (file_name);
-
-          if (fs)
-            {
-              if (type == "any" || type == "file")
-                retval = fs.is_dir () ? 7 : 2;
-              else if (type == "dir" && fs.is_dir ())
-                retval = 7;
-            }
-        }
-    }
-
-  return retval;
+  return 0;
 }
 
 #define GET_IDX(LEN) \
@@ -564,13 +561,17 @@
 
       if (! error_state)
         {
-          std::string type
-            = (nargin == 2) ? args(1).string_value () : std::string ("any");
-
-          if (! error_state)
-            retval = symbol_exist (name, type);
+          if (nargin == 2)
+            {
+              std::string type = args(1).string_value ();
+
+              if (! error_state)
+                retval = symbol_exist (name, type);
+              else
+                error ("exist: TYPE must be a string");
+            }
           else
-            error ("exist: TYPE must be a string");
+            retval = symbol_exist (name);
         }
       else
         error ("exist: NAME must be a string");
@@ -1563,7 +1564,7 @@
     {
       if (argv[i] == "-file")
         {
-          // FIXME. This is an inefficient manner to implement this as the
+          // FIXME: This is an inefficient manner to implement this as the
           // variables are loaded in to a temporary context and then treated.
           // It would be better to refecat symbol_info_list to not store the
           // symbol records and then use it in load-save.cc (do_load) to
--- a/libinterp/dldfcn/__init_fltk__.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/dldfcn/__init_fltk__.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -74,6 +74,7 @@
 #include "cmd-edit.h"
 #include "lo-ieee.h"
 
+#include "display.h"
 #include "file-ops.h"
 #include "gl-render.h"
 #include "gl2ps-renderer.h"
@@ -289,7 +290,7 @@
       {
         const Fl_Menu_Item *m = static_cast<const Fl_Menu_Item*> (&
                                 (menubar->menu ()[t]));
-        if ((m->label () != NULL) && m->visible ())
+        if (m->label () && m->visible ())
           n++;
       }
 
@@ -336,7 +337,7 @@
         else
           {
             // End of submenu? Pop back one level.
-            if (m->label () == NULL)
+            if (! m->label ())
               {
                 std::size_t idx = menupath.find_last_of ("/");
                 if (idx != std::string::npos)
@@ -420,7 +421,7 @@
       {
         Fl_Menu_Item* item = const_cast<Fl_Menu_Item*> (menubar->find_item (
                                fltk_label.c_str ()));
-        if (item != NULL)
+        if (item)
           {
             std::string acc = uimenup.get_accelerator ();
             if (acc.length () > 0)
@@ -439,13 +440,13 @@
       {
         Fl_Menu_Item* item = const_cast<Fl_Menu_Item*> (menubar->find_item (
                                fltk_label.c_str ()));
-        if (item != NULL)
+        if (item)
           {
             if (!uimenup.get_callback ().is_empty ())
               item->callback (static_cast<Fl_Callback*> (script_cb),
                               static_cast<void*> (&uimenup));
             else
-              item->callback (NULL, static_cast<void*> (0));
+              item->callback (0, static_cast<void*> (0));
           }
       }
   }
@@ -457,7 +458,7 @@
       {
         Fl_Menu_Item* item = const_cast<Fl_Menu_Item*> (menubar->find_item (
                                fltk_label.c_str ()));
-        if (item != NULL)
+        if (item)
           {
             if (uimenup.is_enable ())
               item->activate ();
@@ -474,7 +475,7 @@
       {
         Fl_Menu_Item* item = const_cast<Fl_Menu_Item*> (menubar->find_item (
                                fltk_label.c_str ()));
-        if (item != NULL)
+        if (item)
           {
             Matrix rgb = uimenup.get_foregroundcolor_rgb ();
 
@@ -503,7 +504,7 @@
             Fl_Menu_Item* item
               = const_cast<Fl_Menu_Item*> (&menubar->menu () [idx]);
             itemflags = item->flags;
-            if (item->label () != NULL)
+            if (item->label ())
               break;
           }
 
@@ -527,7 +528,7 @@
       {
         Fl_Menu_Item* item
           = const_cast<Fl_Menu_Item*> (menubar->find_item (fltk_label.c_str ()));
-        if (item != NULL)
+        if (item)
           {
             if (uimenup.is_visible ())
               item->show ();
@@ -550,19 +551,7 @@
             const Fl_Menu_Item* item
               = menubar->find_item (fltk_label.c_str ());
 
-            if (item == NULL)
-              {
-                Matrix uimenu_ch = find_uimenu_children (uimenup);
-                int len = uimenu_ch.numel ();
-                int flags = 0;
-                if (len > 0)
-                  flags = FL_SUBMENU;
-                if (len == 0 && uimenup.is_checked ())
-                  flags += FL_MENU_TOGGLE + FL_MENU_VALUE;
-                menubar->add (fltk_label.c_str (), 0, 0, 0, flags);
-                item_added = true;
-              }
-            else
+            if (item)
               {
                 //avoid duplicate menulabels
                 std::size_t idx1 = fltk_label.find_last_of ("(");
@@ -581,6 +570,18 @@
                 valstream << val;
                 fltk_label += "(" + valstream.str () + ")";
               }
+            else
+              {
+                Matrix uimenu_ch = find_uimenu_children (uimenup);
+                int len = uimenu_ch.numel ();
+                int flags = 0;
+                if (len > 0)
+                  flags = FL_SUBMENU;
+                if (len == 0 && uimenup.is_checked ())
+                  flags += FL_MENU_TOGGLE + FL_MENU_VALUE;
+                menubar->add (fltk_label.c_str (), 0, 0, 0, flags);
+                item_added = true;
+              }
           }
         while (!item_added);
         uimenup.set_fltk_label (fltk_label);
@@ -821,7 +822,7 @@
   {
     if (!uimenu->is_visible ())
       {
-        // FIXME - Toolbar and menubar do not update
+        // FIXME: Toolbar and menubar do not update
         uimenu->show ();
         mark_modified ();
       }
@@ -831,7 +832,7 @@
   {
     if (uimenu->is_visible ())
       {
-        // FIXME - Toolbar and menubar do not update
+        // FIXME: Toolbar and menubar do not update
         uimenu->hide ();
         mark_modified ();
       }
@@ -1085,6 +1086,7 @@
                      int px1 = -1, int py1 = -1)
   {
     double x0, y0, x1, y1;
+    x0 = y0 = x1 = y1 = octave_NaN;
     std::stringstream cbuf;
     cbuf.precision (4);
     cbuf.width (6);
@@ -1219,7 +1221,7 @@
 
   void draw (void)
   {
-    // FIXME - Toolbar and menubar do not update properly
+    // FIXME: Toolbar and menubar do not update properly
     Matrix pos = fp.get_boundingbox (true);
     int canvas_h = pos(3);
     int canvas_w = pos(2);
@@ -2050,7 +2052,7 @@
 
         input_event_hook_fcn_id = octave_value_list ();
 
-        // FIXME ???
+        // FIXME: ???
         Fl::wait (fltk_maxtime);
       }
   }
@@ -2090,7 +2092,9 @@
 @end deftypefn")
 {
 #ifdef HAVE_FLTK
-  if (! toolkit_loaded)
+  if (! display_info::display_available ())
+    error ("__init_fltk__: no graphics DISPLAY available");
+  else if (! toolkit_loaded)
     {
       mlock ();
 
--- a/libinterp/dldfcn/__magick_read__.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/dldfcn/__magick_read__.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -757,12 +757,35 @@
           frameidx(i)--;
           if (frameidx(i) < 0 || frameidx(i) > nFrames - 1)
             {
+              // We do this check inside the loop because frameidx does not
+              // need to be ordered (this is a feature and even allows for
+              // some frames to be read multiple times).
               error ("imread: index/frames specified are outside the number of images");
               return output;
             }
         }
     }
 
+  // Check that all frames have the same size. We don't do this at the same
+  // time we decode the image because that's done in many different places,
+  // to cover the different types of images which would lead to a lot of
+  // copy and paste.
+  {
+    const unsigned int nRows = imvec[frameidx(0)].rows ();
+    const unsigned int nCols = imvec[frameidx(0)].columns ();
+    const octave_idx_type n = frameidx.nelem ();
+    for (octave_idx_type frame = 0; frame < n; frame++)
+      {
+        if (nRows != imvec[frameidx(frame)].rows () ||
+            nCols != imvec[frameidx(frame)].columns ())
+          {
+            error ("imread: all frames must have the same size but frame %i is different",
+                   frameidx(frame) +1);
+            return output;
+          }
+      }
+  }
+
   const octave_idx_type depth = get_depth (imvec[frameidx(0)]);
   if (is_indexed (imvec[frameidx(0)]))
     {
@@ -1458,7 +1481,7 @@
         }
     }
 
-  // FIXME - LoopCount or animationIterations
+  // FIXME: LoopCount or animationIterations
   //  How it should work:
   //
   // This value is only set for the first image in the sequence. Trying
--- a/libinterp/dldfcn/chol.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/dldfcn/chol.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -160,8 +160,8 @@
           if (tmp.compare ("vector") == 0)
             vecout = true;
           else if (tmp.compare ("lower") == 0)
-            // FIXME currently the option "lower" is handled by transposing the
-            //  matrix, factorizing it with the lapack function
+            // FIXME: currently the option "lower" is handled by transposing
+            //  the matrix, factorizing it with the lapack function
             //  DPOTRF ('U', ...) and finally transposing the factor.  It would
             //  be more efficient to use DPOTRF ('L', ...) in this case.
             LLt = true;
--- a/libinterp/dldfcn/config-module.awk	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/dldfcn/config-module.awk	Tue Nov 26 12:38:46 2013 -0500
@@ -61,7 +61,7 @@
     sub (/\.cc$/, "", basename);
     print "";
     printf ("dldfcn_%s_la_SOURCES = dldfcn/%s\n",
-	    basename, files[i]);
+            basename, files[i]);
     if (cppflags[i])
       {
         printf ("dldfcn/%s.df: CPPFLAGS += %s\n",
--- a/libinterp/octave-value/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -156,6 +156,7 @@
 
 octave_value_liboctave_value_la_CPPFLAGS = \
   $(liboctinterp_la_CPPFLAGS) \
+  $(HDF5_CPPFLAGS) \
   $(JAVA_CPPFLAGS)
 
 octave_value_liboctave_value_la_LIBADD = $(JAVA_LIBS)
--- a/libinterp/octave-value/ov-base-mat.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-base-mat.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -450,6 +450,55 @@
 }
 
 template <class MT>
+void
+octave_base_matrix<MT>::short_disp (std::ostream& os) const
+{
+  if (matrix.is_empty ())
+    os << "[]";
+  else if (matrix.ndims () == 2)
+    {
+      // FIXME: should this be configurable?
+      octave_idx_type max_elts = 10;
+      octave_idx_type elts = 0;
+
+      octave_idx_type nel = matrix.numel ();
+
+      octave_idx_type nr = matrix.rows ();
+      octave_idx_type nc = matrix.columns ();
+
+      os << "[";
+
+      for (octave_idx_type i = 0; i < nr; i++)
+        {
+          for (octave_idx_type j = 0; j < nc; j++)
+            {
+              std::ostringstream buf;
+              octave_print_internal (buf, matrix(j*nr+i));
+              std::string tmp = buf.str ();
+              size_t pos = tmp.find_first_not_of (" ");
+              os << tmp.substr (pos);
+
+              if (++elts >= max_elts)
+                goto done;
+
+              if (j < nc - 1)
+                os << ", ";
+            }
+
+          if (i < nr - 1 && elts < max_elts)
+            os << "; ";
+        }
+
+    done:
+
+      if (nel <= max_elts)
+        os << "]";
+    }
+  else
+    os << "...";
+}
+
+template <class MT>
 octave_value
 octave_base_matrix<MT>::fast_elem_extract (octave_idx_type n) const
 {
--- a/libinterp/octave-value/ov-base-mat.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-base-mat.h	Tue Nov 26 12:38:46 2013 -0500
@@ -157,6 +157,8 @@
 
   void print_info (std::ostream& os, const std::string& prefix) const;
 
+  void short_disp (std::ostream& os) const;
+
   MT& matrix_ref (void)
   {
     clear_cached_info ();
--- a/libinterp/octave-value/ov-base-scalar.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-base-scalar.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -169,12 +169,14 @@
 }
 
 template <class ST>
-std::string
-octave_base_scalar<ST>::short_disp (void) const
+void
+octave_base_scalar<ST>::short_disp (std::ostream& os) const
 {
   std::ostringstream buf;
   octave_print_internal (buf, scalar);
-  return buf.str ();
+  std::string tmp = buf.str ();
+  size_t pos = tmp.find_first_not_of (" ");
+  os << tmp.substr (pos);
 }
 
 template <class ST>
--- a/libinterp/octave-value/ov-base-scalar.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-base-scalar.h	Tue Nov 26 12:38:46 2013 -0500
@@ -138,7 +138,7 @@
 
   bool print_name_tag (std::ostream& os, const std::string& name) const;
 
-  std::string short_disp (void) const;
+  void short_disp (std::ostream& os) const;
 
   // Unsafe.  This function exists to support the MEX interface.
   // You should not use it anywhere else.
--- a/libinterp/octave-value/ov-base.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-base.h	Tue Nov 26 12:38:46 2013 -0500
@@ -618,7 +618,7 @@
   print_with_name (std::ostream& output_buf, const std::string& name,
                    bool print_padding = true);
 
-  virtual std::string short_disp (void) const { return "..."; }
+  virtual void short_disp (std::ostream& os) const { os << "..."; }
 
   virtual void print_info (std::ostream& os, const std::string& prefix) const;
 
--- a/libinterp/octave-value/ov-bool-sparse.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-bool-sparse.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -144,7 +144,7 @@
   return tmp.convert_to_str (pad, force, type);
 }
 
-// FIXME These are inefficient ways of creating full matrices
+// FIXME: These are inefficient ways of creating full matrices
 
 Matrix
 octave_sparse_bool_matrix::matrix_value (bool) const
--- a/libinterp/octave-value/ov-cell.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-cell.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -750,6 +750,12 @@
     }
 }
 
+void
+octave_cell::short_disp (std::ostream& os) const
+{
+  os << (matrix.is_empty () ? "{}" : "...");
+}
+
 #define CELL_ELT_TAG "<cell-element>"
 
 bool
--- a/libinterp/octave-value/ov-cell.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-cell.h	Tue Nov 26 12:38:46 2013 -0500
@@ -151,6 +151,7 @@
 
   void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
 
+  void short_disp (std::ostream& os) const;
 
   bool save_ascii (std::ostream& os);
 
--- a/libinterp/octave-value/ov-fcn-handle.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-fcn-handle.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -1884,12 +1884,19 @@
   octave_user_function *usr_fcn = f.user_function_value (false);
   tree_parameter_list *param_list = usr_fcn ? usr_fcn->parameter_list () : 0;
 
-  // Verify that the body is a single expression (always true in theory).
+  tree_statement_list *cmd_list = 0;
+  tree_expression *body_expr = 0;
 
-  tree_statement_list *cmd_list = usr_fcn ? usr_fcn->body () : 0;
-  tree_expression *body_expr = (cmd_list->length () == 1
-                                ? cmd_list->front ()->expression () : 0);
-
+  if (usr_fcn)
+    {
+      cmd_list = usr_fcn->body ();
+      if (cmd_list)
+        {
+          // Verify that body is a single expression (always true in theory).
+          body_expr = (cmd_list->length () == 1
+                       ? cmd_list->front ()->expression () : 0);
+        }
+    }
 
   if (body_expr && body_expr->is_index_expression ()
       && ! (param_list && param_list->takes_varargs ()))
--- a/libinterp/octave-value/ov-fcn-inline.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-fcn-inline.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -294,8 +294,8 @@
   hid_t space_hid = -1, data_hid = -1, type_hid = -1;;
   bool retval = true;
 
-  // FIXME Is there a better way of saving string vectors, than a
-  // null padded matrix?
+  // FIXME: Is there a better way of saving string vectors,
+  //        than a null padded matrix?
 
   OCTAVE_LOCAL_BUFFER (hsize_t, hdims, 2);
 
--- a/libinterp/octave-value/ov-flt-re-mat.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-flt-re-mat.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -241,8 +241,8 @@
 SparseComplexMatrix
 octave_float_matrix::sparse_complex_matrix_value (bool) const
 {
-  // FIXME Need a SparseComplexMatrix (Matrix) constructor to make
-  // this function more efficient. Then this should become
+  // FIXME: Need a SparseComplexMatrix (Matrix) constructor to make
+  // this function more efficient.  Then this should become
   // return SparseComplexMatrix (matrix.matrix_value ());
   return SparseComplexMatrix (sparse_matrix_value ());
 }
--- a/libinterp/octave-value/ov-java.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-java.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -241,7 +241,7 @@
 {
   typedef BOOL (WINAPI *dllfcn_t) (LPCTSTR path);
 
-  static dllfcn_t dllfcn = NULL;
+  static dllfcn_t dllfcn = 0;
   static bool first = true;
 
   if (! dllfcn && first)
@@ -253,7 +253,7 @@
     }
 
   if (dllfcn)
-    dllfcn (dir.empty () ? NULL : dir.c_str ());
+    dllfcn (dir.empty () ? 0 : dir.c_str ());
 }
 #endif
 
@@ -424,7 +424,7 @@
     return;
 
   JNIEnv *current_env;
-  const char *static_locale = setlocale (LC_ALL, NULL);
+  const char *static_locale = setlocale (LC_ALL, 0);
   const std::string locale (static_locale);
 
 #if defined (__WIN32__)
@@ -433,7 +433,16 @@
   std::string jvm_lib_path;
   std::string old_cwd;
 
-  if (hMod == NULL)
+  if (hMod)
+    {
+      // JVM seems to be already loaded, better to use that DLL instead
+      // of looking in the registry, to avoid opening a different JVM.
+      jvm_lib_path = get_module_filename (hMod);
+
+      if (jvm_lib_path.empty ())
+        throw std::string ("unable to find Java Runtime Environment");
+    }
+  else
     {
       // In windows, find the location of the JRE from the registry
       // and load the symbol from the dll.
@@ -472,15 +481,6 @@
           octave_env::chdir (jvm_bin_path);
         }
     }
-  else
-    {
-      // JVM seems to be already loaded, better to use that DLL instead
-      // of looking in the registry, to avoid opening a different JVM.
-      jvm_lib_path = get_module_filename (hMod);
-
-      if (jvm_lib_path.empty ())
-        throw std::string ("unable to find Java Runtime Environment");
-    }
 
 #else  // Not Win32 system
 
@@ -544,7 +544,7 @@
           JavaVMAttachArgs vm_args;
           vm_args.version = JNI_VERSION_1_2;
           vm_args.name = const_cast<char *> ("octave");
-          vm_args.group = NULL;
+          vm_args.group = 0;
           if (jvm->AttachCurrentThread (reinterpret_cast<void **> (&current_env),
                                         &vm_args) < 0)
             throw std::string ("JVM internal error, unable to attach octave to existing JVM");
@@ -1595,7 +1595,7 @@
 JNIEnv *
 octave_java::thread_jni_env (void)
 {
-  JNIEnv *env = NULL;
+  JNIEnv *env = 0;
 
   if (jvm)
     jvm->GetEnv (reinterpret_cast<void **> (&env), JNI_VERSION_1_2);
--- a/libinterp/octave-value/ov-range.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-range.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -388,29 +388,25 @@
   return retval;
 }
 
-std::string
-octave_range::short_disp (void) const
+void
+octave_range::short_disp (std::ostream& os) const
 {
-  std::ostringstream buf;
-
   octave_idx_type len = range.nelem ();
 
   if (len == 0)
-    buf << "[]";
+    os << "[]";
   else
     {
-      buf << range.base () << ":";
+      os << range.base () << ":";
 
       if (len > 1)
         {
           if (range.inc () != 1)
-            buf << range.inc () << ":";
+            os << range.inc () << ":";
 
-          buf << range.limit ();
+          os << range.limit ();
         }
     }
-
-  return buf.str ();
 }
 
 // Skip white space and comments on stream IS.
--- a/libinterp/octave-value/ov-range.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-range.h	Tue Nov 26 12:38:46 2013 -0500
@@ -255,7 +255,7 @@
 
   bool print_name_tag (std::ostream& os, const std::string& name) const;
 
-  std::string short_disp (void) const;
+  void short_disp (std::ostream& os) const;
 
   bool save_ascii (std::ostream& os);
 
--- a/libinterp/octave-value/ov-re-mat.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-re-mat.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -250,8 +250,8 @@
 SparseComplexMatrix
 octave_matrix::sparse_complex_matrix_value (bool) const
 {
-  // FIXME Need a SparseComplexMatrix (Matrix) constructor to make
-  // this function more efficient. Then this should become
+  // FIXME: Need a SparseComplexMatrix (Matrix) constructor to make
+  // this function more efficient.  Then this should become
   // return SparseComplexMatrix (matrix.matrix_value ());
   return SparseComplexMatrix (sparse_matrix_value ());
 }
--- a/libinterp/octave-value/ov-str-mat.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-str-mat.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -235,7 +235,7 @@
     {
       charMatrix chm = matrix.matrix_value ();
 
-      retval = chm.row_as_string (0);  // FIXME???
+      retval = chm.row_as_string (0);  // FIXME?
     }
   else
     error ("invalid conversion of charNDArray to string");
@@ -270,25 +270,20 @@
                          current_print_indent_level (), true);
 }
 
-std::string
-octave_char_matrix_str::short_disp (void) const
+void
+octave_char_matrix_str::short_disp (std::ostream& os) const
 {
-  std::string retval;
-
   if (matrix.ndims () == 2 && numel () > 0)
     {
-      retval = string_value ();
-
-      // FIXME -- should this be configurable?
+      std::string tmp = string_value ();
 
-      if (retval.length () > 100)
-        retval = retval.substr (0, 100);
-    }
+      // FIXME: should this be configurable?
+      size_t max_len = 100;
 
-  return retval;
+      os << (tmp.length () > max_len ? tmp.substr (0, 100) : tmp);
+    }
 }
 
-
 bool
 octave_char_matrix_str::save_ascii (std::ostream& os)
 {
--- a/libinterp/octave-value/ov-str-mat.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov-str-mat.h	Tue Nov 26 12:38:46 2013 -0500
@@ -142,7 +142,7 @@
 
   void print_raw (std::ostream& os, bool pr_as_read_syntax = false) const;
 
-  std::string short_disp (void) const;
+  void short_disp (std::ostream& os) const;
 
   bool save_ascii (std::ostream& os);
 
--- a/libinterp/octave-value/ov.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/octave-value/ov.h	Tue Nov 26 12:38:46 2013 -0500
@@ -1027,7 +1027,7 @@
   void print_with_name (std::ostream& os, const std::string& name) const
   { rep->print_with_name (os, name, true); }
 
-  std::string short_disp (void) const { return rep->short_disp (); }
+  void short_disp (std::ostream& os) const { rep->short_disp (os); }
 
   int type_id (void) const { return rep->type_id (); }
 
--- a/libinterp/parse-tree/lex.ll	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/parse-tree/lex.ll	Tue Nov 26 12:38:46 2013 -0500
@@ -371,7 +371,7 @@
 // It's also a pain in the ass to decide whether to insert a comma
 // after seeing a ']' character...
 
-// FIXME -- we need to handle block comments here.
+// FIXME: we need to handle block comments here.
 %}
 
 <MATRIX_START>\] {
@@ -388,7 +388,7 @@
   }
 
 %{
-// FIXME -- we need to handle block comments here.
+// FIXME: we need to handle block comments here.
 %}
 
 <MATRIX_START>\} {
@@ -596,7 +596,7 @@
 
     if (full_line_comment)
       {
-        if (yytext[i++] == '{')
+        if (num_comment_chars == 1 && yytext[i++] == '{')
           {
             bool looks_like_block_comment = true;
 
--- a/libinterp/version.in.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/libinterp/version.in.h	Tue Nov 26 12:38:46 2013 -0500
@@ -34,22 +34,22 @@
 
 #include <string>
 
-extern std::string octave_www_statement (bool html = false);
+extern OCTINTERP_API std::string octave_www_statement (bool html = false);
 
-extern std::string octave_contrib_statement (bool html = false);
+extern OCTINTERP_API std::string octave_contrib_statement (bool html = false);
 
-extern std::string octave_bugs_statement (bool html = false);
+extern OCTINTERP_API std::string octave_bugs_statement (bool html = false);
 
-extern std::string octave_name_version_and_copyright (void);
+extern OCTINTERP_API std::string octave_name_version_and_copyright (void);
 
-extern std::string
+extern OCTINTERP_API std::string
 octave_name_version_copyright_copying_and_warranty
   (bool html = false, const std::string& extra_info = std::string ());
 
-extern std::string
+extern OCTINTERP_API std::string
 octave_name_version_copyright_copying_warranty_and_bugs
   (bool html = false, const std::string& extra_info = std::string ());
 
-extern std::string octave_startup_message (bool html = false);
+extern OCTINTERP_API std::string octave_startup_message (bool html = false);
 
 #endif
--- a/liboctave/numeric/SparseCmplxQR.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/numeric/SparseCmplxQR.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -99,7 +99,7 @@
 {
 #ifdef HAVE_CXSPARSE
   // Drop zeros from V and sort
-  // FIXME Is the double transpose to sort necessary?
+  // FIXME: Is the double transpose to sort necessary?
   BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
   CXSPARSE_ZNAME (_dropzeros) (N->L);
   CXSPARSE_ZNAME () *D = CXSPARSE_ZNAME (_transpose) (N->L, 1);
@@ -163,7 +163,7 @@
 {
 #ifdef HAVE_CXSPARSE
   // Drop zeros from R and sort
-  // FIXME Is the double transpose to sort necessary?
+  // FIXME: Is the double transpose to sort necessary?
   BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
   CXSPARSE_ZNAME (_dropzeros) (N->U);
   CXSPARSE_ZNAME () *D = CXSPARSE_ZNAME (_transpose) (N->U, 1);
--- a/liboctave/numeric/SparseQR.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/numeric/SparseQR.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -79,7 +79,7 @@
 {
 #ifdef HAVE_CXSPARSE
   // Drop zeros from V and sort
-  // FIXME Is the double transpose to sort necessary?
+  // FIXME: Is the double transpose to sort necessary?
   BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
   CXSPARSE_DNAME (_dropzeros) (N->L);
   CXSPARSE_DNAME () *D = CXSPARSE_DNAME (_transpose) (N->L, 1);
@@ -143,7 +143,7 @@
 {
 #ifdef HAVE_CXSPARSE
   // Drop zeros from R and sort
-  // FIXME Is the double transpose to sort necessary?
+  // FIXME: Is the double transpose to sort necessary?
   BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE;
   CXSPARSE_DNAME (_dropzeros) (N->U);
   CXSPARSE_DNAME () *D = CXSPARSE_DNAME (_transpose) (N->U, 1);
--- a/liboctave/numeric/lo-specfun.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/numeric/lo-specfun.h	Tue Nov 26 12:38:46 2013 -0500
@@ -41,75 +41,75 @@
 class FloatComplexColumnVector;
 class Range;
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ACOSH)
 extern OCTAVE_API double acosh (double);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ASINH)
 extern OCTAVE_API double asinh (double);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ATANH)
 extern OCTAVE_API double atanh (double);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ERF)
 extern OCTAVE_API double erf (double);
 #endif
 extern OCTAVE_API Complex erf (const Complex& x);
 extern OCTAVE_API FloatComplex erf (const FloatComplex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ERFC)
 extern OCTAVE_API double erfc (double);
 #endif
 extern OCTAVE_API Complex erfc (const Complex& x);
 extern OCTAVE_API FloatComplex erfc (const FloatComplex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ACOSHF)
 extern OCTAVE_API float acoshf (float);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ASINHF)
 extern OCTAVE_API float asinhf (float);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ATANHF)
 extern OCTAVE_API float atanhf (float);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ERFF)
 extern OCTAVE_API float erff (float);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_ERFCF)
 extern OCTAVE_API float erfcf (float);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_EXPM1)
 extern OCTAVE_API double expm1 (double x);
 #endif
 extern OCTAVE_API Complex expm1 (const Complex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_EXPM1F)
 extern OCTAVE_API float expm1f (float x);
 #endif
 extern OCTAVE_API FloatComplex expm1 (const FloatComplex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_LOG1P)
 extern OCTAVE_API double log1p (double x);
 #endif
 extern OCTAVE_API Complex log1p (const Complex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_LOG1PF)
 extern OCTAVE_API float log1pf (float x);
 #endif
 extern OCTAVE_API FloatComplex log1p (const FloatComplex& x);
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_CBRT)
 extern OCTAVE_API double cbrt (double x);
 #endif
 
-#if !defined (octave_lo_specfun_h)
+#if !defined (HAVE_CBRTF)
 extern OCTAVE_API float cbrtf (float x);
 #endif
 
--- a/liboctave/numeric/sparse-dmsolve.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/numeric/sparse-dmsolve.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -437,7 +437,7 @@
         }
 
       // Structurally non-singular blocks
-      // FIXME Should use fine Dulmange-Mendelsohn decomposition here.
+      // FIXME: Should use fine Dulmange-Mendelsohn decomposition here.
       if (dm->rr[1] < dm->rr[2] && dm->cc[2] < dm->cc[3] && !info)
         {
           ST m = dmsolve_extract (a, pinv, q, dm->rr[1], dm->rr[2],
--- a/liboctave/system/oct-uname.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/system/oct-uname.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -27,16 +27,13 @@
 #include <cerrno>
 #include <cstring>
 
-#ifdef HAVE_SYS_UTSNAME_H
 #include <sys/utsname.h>
-#endif
 
 #include "oct-uname.h"
 
 void
 octave_uname::init (void)
 {
-#if defined (HAVE_UNAME) && defined (HAVE_SYS_UTSNAME_H)
   struct utsname unm;
 
   err = ::uname (&unm);
@@ -51,5 +48,4 @@
       utsname_version = unm.version;
       utsname_machine = unm.machine;
     }
-#endif
 }
--- a/liboctave/util/cmd-hist.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/cmd-hist.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -27,6 +27,7 @@
 #include <cstring>
 
 #include <iostream>
+#include <sstream>
 #include <string>
 
 #include "cmd-edit.h"
@@ -302,7 +303,11 @@
       int status = ::octave_read_history (f.c_str ());
 
       if (status != 0 && must_exist)
-        error (status);
+        {
+          std::string msg = "reading file '" + f + "'";
+
+          error (status, msg);
+        }
       else
         {
           lines_in_file = do_where ();
@@ -326,7 +331,13 @@
       int status = ::octave_read_history_range (f.c_str (), from, to);
 
       if (status != 0 && must_exist)
-        error (status);
+        {
+          std::ostringstream buf;
+          buf << "reading lines " << from << " to " << to
+              << " from file '" << f << "'";
+
+          error (status, buf.str ());
+        }
       else
         {
           lines_in_file = do_where ();
@@ -353,7 +364,11 @@
           int status = ::octave_write_history (f.c_str ());
 
           if (status != 0)
-            error (status);
+            {
+              std::string msg = "writing file '" + f + "'";
+
+              error (status, msg);
+            }
         }
       else
         error ("gnu_history::write: missing file name");
@@ -392,7 +407,11 @@
                     = ::octave_append_history (lines_this_session, f.c_str ());
 
                   if (status != 0)
-                    error (status);
+                    {
+                      std::string msg = "appending to file '" + f_arg + "'";
+
+                      error (status, msg);
+                    }
                   else
                     lines_in_file += lines_this_session;
 
@@ -995,9 +1014,13 @@
 }
 
 void
-command_history::error (int err_num) const
+command_history::error (int err_num, const std::string& msg) const
 {
-  (*current_liboctave_error_handler) ("%s", gnulib::strerror (err_num));
+  if (msg.empty ())
+    (*current_liboctave_error_handler) ("%s", gnulib::strerror (err_num));
+  else
+    (*current_liboctave_error_handler) ("%s: %s", msg.c_str (),
+                                        gnulib::strerror (err_num));
 }
 
 void
--- a/liboctave/util/cmd-hist.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/cmd-hist.h	Tue Nov 26 12:38:46 2013 -0500
@@ -201,7 +201,7 @@
 
   virtual void do_clean_up_and_save (const std::string&, int);
 
-  void error (int) const;
+  void error (int, const std::string& msg = "") const;
 
   void error (const std::string&) const;
 
--- a/liboctave/util/lo-utils.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/lo-utils.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -90,8 +90,7 @@
 // This function was adapted from xputenv from Karl Berry's kpathsearch
 // library.
 
-// FIXME -- make this do the right thing if we don't have a
-// SMART_PUTENV.
+// FIXME: make this do the right thing if we don't have a SMART_PUTENV.
 
 void
 octave_putenv (const std::string& name, const std::string& value)
@@ -203,8 +202,7 @@
   return retval;
 }
 
-// Note that the caller is responsible for repositioning the stream on
-// failure.
+// Note that the caller is responsible for repositioning the stream on failure.
 
 template <typename T>
 T
@@ -239,7 +237,10 @@
             if (c2 == 'n' || c2 == 'N')
               val = std::numeric_limits<T>::quiet_NaN ();
             else
-              val = octave_numeric_limits<T>::NA ();
+              {
+                val = octave_numeric_limits<T>::NA ();
+                is.putback (c2);
+              }
           }
         else
           is.setstate (std::ios::failbit);
--- a/liboctave/util/oct-inttypes.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/oct-inttypes.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -25,6 +25,8 @@
 #include <config.h>
 #endif
 
+#include <fpucw.h>
+
 #include "lo-error.h"
 
 #include "oct-inttypes.h"
@@ -50,7 +52,140 @@
 DECLARE_OCTAVE_INT_TYPENAME (uint32_t, "uint32")
 DECLARE_OCTAVE_INT_TYPENAME (uint64_t, "uint64")
 
-#ifndef OCTAVE_INT_USE_LONG_DOUBLE
+#ifdef OCTAVE_INT_USE_LONG_DOUBLE
+
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+
+#define DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES(T) \
+  template <class xop> \
+  bool \
+  octave_int_cmp_op::external_mop (double x, T y) \
+  { \
+     DECL_LONG_DOUBLE_ROUNDING \
+   \
+     BEGIN_LONG_DOUBLE_ROUNDING (); \
+   \
+     bool retval = xop::op (static_cast<long double> (x), \
+                            static_cast<long double> (y)); \
+   \
+     END_LONG_DOUBLE_ROUNDING (); \
+   \
+     return retval; \
+  } \
+   \
+  template <class xop> \
+  bool \
+  octave_int_cmp_op::external_mop (T x, double y) \
+  { \
+     DECL_LONG_DOUBLE_ROUNDING \
+   \
+     BEGIN_LONG_DOUBLE_ROUNDING (); \
+   \
+     bool retval = xop::op (static_cast<long double> (x), \
+                            static_cast<long double> (y)); \
+   \
+     END_LONG_DOUBLE_ROUNDING (); \
+   \
+     return retval; \
+  }
+
+DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (int64_t)
+DEFINE_OCTAVE_LONG_DOUBLE_CMP_OP_TEMPLATES (uint64_t)
+
+#define INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP(OP, T) \
+  template OCTAVE_API bool \
+  octave_int_cmp_op::external_mop<octave_int_cmp_op::OP> (double, T); \
+  template OCTAVE_API bool \
+  octave_int_cmp_op::external_mop<octave_int_cmp_op::OP> (T, double)
+
+#define INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OPS(T) \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (lt, T); \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (le, T); \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (gt, T); \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (ge, T); \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (eq, T); \
+  INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OP (ne, T)
+
+INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OPS (int64_t);
+INSTANTIATE_LONG_DOUBLE_LONG_DOUBLE_CMP_OPS (uint64_t);
+
+uint64_t
+octave_external_uint64_uint64_mul (uint64_t x, uint64_t y)
+{
+  DECL_LONG_DOUBLE_ROUNDING
+
+  BEGIN_LONG_DOUBLE_ROUNDING ();
+
+  uint64_t retval = octave_int_arith_base<uint64_t, false>::mul_internal (x, y);
+
+  END_LONG_DOUBLE_ROUNDING ();
+
+  return retval;
+}
+
+int64_t
+octave_external_int64_int64_mul (int64_t x, int64_t y)
+{
+  DECL_LONG_DOUBLE_ROUNDING
+
+  BEGIN_LONG_DOUBLE_ROUNDING ();
+
+  int64_t retval = octave_int_arith_base<int64_t, true>::mul_internal (x, y);
+
+  END_LONG_DOUBLE_ROUNDING ();
+
+  return retval;
+}
+
+// Note that if we return long double it is apparently possible for
+// truncation to happen at the point of storing the result in retval,
+// which can happen after we end long double rounding.  Attempt to avoid
+// that problem by storing the full precision temporary value in the
+// integer value before we end the long double rounding mode.
+// Similarly, the conversion from the 64-bit integer type to long double
+// must also occur in long double rounding mode.
+
+#define OCTAVE_LONG_DOUBLE_OP(T, OP, NAME) \
+  T \
+  external_double_ ## T ## _ ## NAME (double x, T y) \
+  { \
+    DECL_LONG_DOUBLE_ROUNDING \
+ \
+    BEGIN_LONG_DOUBLE_ROUNDING (); \
+ \
+    T retval = T (x OP static_cast<long double> (y.value ())); \
+ \
+    END_LONG_DOUBLE_ROUNDING (); \
+ \
+    return retval; \
+  } \
+ \
+  T \
+  external_ ## T ## _double_ ## NAME (T x, double y) \
+  { \
+    DECL_LONG_DOUBLE_ROUNDING \
+ \
+    BEGIN_LONG_DOUBLE_ROUNDING (); \
+ \
+    T retval = T (static_cast<long double> (x.value ()) OP y); \
+ \
+    END_LONG_DOUBLE_ROUNDING (); \
+ \
+    return retval; \
+  }
+
+#define OCTAVE_LONG_DOUBLE_OPS(T) \
+  OCTAVE_LONG_DOUBLE_OP (T, +, add); \
+  OCTAVE_LONG_DOUBLE_OP (T, -, sub); \
+  OCTAVE_LONG_DOUBLE_OP (T, *, mul); \
+  OCTAVE_LONG_DOUBLE_OP (T, /, div)
+
+OCTAVE_LONG_DOUBLE_OPS(octave_int64);
+OCTAVE_LONG_DOUBLE_OPS(octave_uint64);
+
+#endif
+
+#else
 
 // Define comparison operators
 
@@ -142,7 +277,7 @@
 
 template <>
 uint64_t
-octave_int_arith_base<uint64_t, false>::mul (uint64_t x, uint64_t y)
+octave_int_arith_base<uint64_t, false>::mul_internal (uint64_t x, uint64_t y)
 {
   // Get upper words
   uint64_t ux = x >> 32, uy = y >> 32;
@@ -185,7 +320,7 @@
 
 template <>
 int64_t
-octave_int_arith_base<int64_t, true>::mul (int64_t x, int64_t y)
+octave_int_arith_base<int64_t, true>::mul_internal (int64_t x, int64_t y)
 {
   // The signed case is far worse. The problem is that
   // even if neither integer fits into signed 32-bit range, the result may
--- a/liboctave/util/oct-inttypes.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/oct-inttypes.h	Tue Nov 26 12:38:46 2013 -0500
@@ -174,39 +174,79 @@
   mop (double x, T y)
   { return xop::op (x, static_cast<double> (y)); }
 
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+#define DECLARE_EXTERNAL_LONG_DOUBLE_CMP_OPS(T) \
+  template <class xop> static OCTAVE_API bool \
+  external_mop (double, T); \
+  template <class xop> static OCTAVE_API bool \
+  external_mop (T, double)
+
+  DECLARE_EXTERNAL_LONG_DOUBLE_CMP_OPS (int64_t);
+  DECLARE_EXTERNAL_LONG_DOUBLE_CMP_OPS (uint64_t);
+#endif
+
   // Typecasting to doubles won't work properly for 64-bit integers --
   // they lose precision.
   // If we have long doubles, use them...
 #ifdef OCTAVE_INT_USE_LONG_DOUBLE
-#define DEFINE_LONG_DOUBLE_CMP_OP(T1, T2) \
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+#define DEFINE_LONG_DOUBLE_CMP_OP(T) \
+  template <class xop> \
+  static bool \
+  mop (double x, T y) \
+  { \
+    return external_mop<xop> (x, y); \
+  } \
   template <class xop> \
   static bool \
-  mop (T1 x, T2 y) \
-    { \
-      return xop::op (static_cast<long double> (x), \
-                      static_cast<long double> (y)); \
-    }
+  mop (T x, double y) \
+  { \
+    return external_mop<xop> (x, y); \
+  }
+#else
+#define DEFINE_LONG_DOUBLE_CMP_OP(T) \
+  template <class xop> \
+  static bool \
+  mop (double x, T y) \
+  { \
+    return xop::op (static_cast<long double> (x), \
+                    static_cast<long double> (y)); \
+  } \
+  template <class xop> \
+  static bool \
+  mop (T x, double y) \
+  { \
+    return xop::op (static_cast<long double> (x), \
+                    static_cast<long double> (y)); \
+  }
+#endif
 #else
   // ... otherwise, use external handlers
 
   // FIXME: We could declare directly the mop methods as external,
   // but we can't do this because bugs in gcc (<= 4.3) prevent
   // explicit instantiations later in that case.
-#define DEFINE_LONG_DOUBLE_CMP_OP(T1, T2) \
+#define DEFINE_LONG_DOUBLE_CMP_OP(T) \
   template <class xop> static OCTAVE_API bool \
-  emulate_mop (T1, T2); \
+  emulate_mop (double, T); \
   template <class xop> \
   static bool \
-  mop (T1 x, T2 y) \
+  mop (double x, T y) \
+    { \
+      return emulate_mop<xop> (x, y); \
+    } \
+  template <class xop> static OCTAVE_API bool \
+  emulate_mop (T, double); \
+  template <class xop> \
+  static bool \
+  mop (T x, double y) \
     { \
       return emulate_mop<xop> (x, y); \
     }
 #endif
 
-  DEFINE_LONG_DOUBLE_CMP_OP(double, uint64_t)
-  DEFINE_LONG_DOUBLE_CMP_OP(double, int64_t)
-  DEFINE_LONG_DOUBLE_CMP_OP(int64_t, double)
-  DEFINE_LONG_DOUBLE_CMP_OP(uint64_t, double)
+  DEFINE_LONG_DOUBLE_CMP_OP(int64_t)
+  DEFINE_LONG_DOUBLE_CMP_OP(uint64_t)
 
 #undef DEFINE_LONG_DOUBLE_CMP_OP
 };
@@ -215,13 +255,11 @@
 template <class T>
 class octave_int_base
 {
-protected:
+public:
 
   static T min_val () { return std::numeric_limits<T>:: min (); }
   static T max_val () { return std::numeric_limits<T>:: max (); }
 
-public:
-
   // Convert integer value.
   template <class S>
   static T
@@ -364,8 +402,10 @@
 
   // Multiplication is done using promotion to wider integer type. If there is
   // no suitable promotion type, this operation *MUST* be specialized.
+  static T mul (T x, T y) { return mul_internal (x, y); }
+
   static T
-  mul (T x, T y)
+  mul_internal (T x, T y)
   {
     // Promotion type for multiplication (if exists).
     typedef typename query_integer_type<2*sizeof (T), false>::type mptype;
@@ -406,24 +446,50 @@
 };
 
 #ifdef OCTAVE_INT_USE_LONG_DOUBLE
+
 // Handle 64-bit multiply using long double
+
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+
+extern OCTAVE_API uint64_t
+octave_external_uint64_uint64_mul (uint64_t, uint64_t);
+
+#endif
+
 template <>
 inline uint64_t
-octave_int_arith_base<uint64_t, false>:: mul (uint64_t x, uint64_t y)
+octave_int_arith_base<uint64_t, false>::mul_internal (uint64_t x, uint64_t y)
 {
+  uint64_t retval;
+
   long double p = static_cast<long double> (x) * static_cast<long double> (y);
+
   if (p > static_cast<long double> (octave_int_base<uint64_t>::max_val ()))
-    {
-      return octave_int_base<uint64_t>::max_val ();
-    }
+    retval = octave_int_base<uint64_t>::max_val ();
   else
-    return static_cast<uint64_t> (p);
+    retval = static_cast<uint64_t> (p);
+
+  return retval;
 }
+
+template <>
+inline uint64_t
+octave_int_arith_base<uint64_t, false>::mul (uint64_t x, uint64_t y)
+{
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+  return octave_external_uint64_uint64_mul (x, y);
 #else
+  return mul_internal (x, y);
+#endif
+}
+
+#else
+
 // Special handler for 64-bit integer multiply.
 template <>
 OCTAVE_API uint64_t
-octave_int_arith_base<uint64_t, false>::mul (uint64_t, uint64_t);
+octave_int_arith_base<uint64_t, false>::mul_internal (uint64_t, uint64_t);
+
 #endif
 
 // Signed integer arithmetics.
@@ -619,8 +685,10 @@
 
   // Multiplication is done using promotion to wider integer type. If there is
   // no suitable promotion type, this operation *MUST* be specialized.
+  static T mul (T x, T y) { return mul_internal (x, y); }
+
   static T
-  mul (T x, T y)
+  mul_internal (T x, T y)
   {
     // Promotion type for multiplication (if exists).
     typedef typename query_integer_type<2*sizeof (T), true>::type mptype;
@@ -694,31 +762,55 @@
 };
 
 #ifdef OCTAVE_INT_USE_LONG_DOUBLE
+
 // Handle 64-bit multiply using long double
+
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+
+extern OCTAVE_API int64_t
+octave_external_int64_int64_mul (int64_t, int64_t);
+
+#endif
+
 template <>
 inline int64_t
-octave_int_arith_base<int64_t, true>:: mul (int64_t x, int64_t y)
+octave_int_arith_base<int64_t, true>::mul_internal (int64_t x, int64_t y)
 {
+  int64_t retval;
+
   long double p = static_cast<long double> (x) * static_cast<long double> (y);
+
   // NOTE: We could maybe do it with a single branch if HAVE_FAST_INT_OPS,
   // but it would require one more runtime conversion, so the question is
   // whether it would really be faster.
   if (p > static_cast<long double> (octave_int_base<int64_t>::max_val ()))
-    {
-      return octave_int_base<int64_t>::max_val ();
-    }
+    retval = octave_int_base<int64_t>::max_val ();
   else if (p < static_cast<long double> (octave_int_base<int64_t>::min_val ()))
-    {
-      return octave_int_base<int64_t>::min_val ();
-    }
+    retval = octave_int_base<int64_t>::min_val ();
   else
-    return static_cast<int64_t> (p);
+    retval = static_cast<int64_t> (p);
+
+  return retval;
 }
+
+template <>
+inline int64_t
+octave_int_arith_base<int64_t, true>::mul (int64_t x, int64_t y)
+{
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+  return octave_external_int64_int64_mul (x, y);
 #else
+  return mul_internal (x, y);
+#endif
+}
+
+#else
+
 // Special handler for 64-bit integer multiply.
 template <>
 OCTAVE_API int64_t
-octave_int_arith_base<int64_t, true>::mul (int64_t, int64_t);
+octave_int_arith_base<int64_t, true>::mul_internal (int64_t, int64_t);
+
 #endif
 
 // This class simply selects the proper arithmetics.
@@ -969,6 +1061,25 @@
 typedef octave_int<uint32_t> octave_uint32;
 typedef octave_int<uint64_t> octave_uint64;
 
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+
+#define DECLARE_EXTERNAL_LONG_DOUBLE_OP(T, OP) \
+  extern OCTAVE_API T \
+  external_double_ ## T ## _ ## OP (double x, T y); \
+  extern OCTAVE_API T \
+  external_ ## T ## _double_ ## OP (T x, double y)
+
+#define DECLARE_EXTERNAL_LONG_DOUBLE_OPS(T) \
+  DECLARE_EXTERNAL_LONG_DOUBLE_OP (T, add); \
+  DECLARE_EXTERNAL_LONG_DOUBLE_OP (T, sub); \
+  DECLARE_EXTERNAL_LONG_DOUBLE_OP (T, mul); \
+  DECLARE_EXTERNAL_LONG_DOUBLE_OP (T, div)
+
+DECLARE_EXTERNAL_LONG_DOUBLE_OPS (octave_int64);
+DECLARE_EXTERNAL_LONG_DOUBLE_OPS (octave_uint64);
+
+#endif
+
 #define OCTAVE_INT_DOUBLE_BIN_OP0(OP) \
   template <class T> \
   inline octave_int<T> \
@@ -981,28 +1092,64 @@
 
 #ifdef OCTAVE_INT_USE_LONG_DOUBLE
 // Handle mixed op using long double
-#define OCTAVE_INT_DOUBLE_BIN_OP(OP) \
+#ifdef OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED
+#define OCTAVE_INT_DOUBLE_BIN_OP(OP, NAME) \
   OCTAVE_INT_DOUBLE_BIN_OP0(OP) \
   template <> \
   inline octave_int64 \
   operator OP (const double& x, const octave_int64& y) \
-  { return octave_int64 (x OP static_cast<long double> (y.value ())); } \
+  { \
+    return external_double_octave_int64_ ## NAME (x, y); \
+  } \
   template <> \
   inline octave_uint64 \
   operator OP (const double& x, const octave_uint64& y) \
-  { return octave_uint64 (x OP static_cast<long double> (y.value ())); } \
+  { \
+    return external_double_octave_uint64_ ## NAME (x, y); \
+  } \
   template <> \
   inline octave_int64 \
   operator OP (const octave_int64& x, const double& y) \
-  { return octave_int64 (static_cast<long double> (x.value ()) OP y); } \
+  { \
+    return external_octave_int64_double_ ## NAME (x, y); \
+  } \
   template <> \
   inline octave_uint64 \
   operator OP (const octave_uint64& x, const double& y) \
-  { return octave_uint64 (static_cast<long double> (x.value ()) OP y); }
-
+  { \
+    return external_octave_uint64_double_ ## NAME (x, y); \
+  }
+#else
+#define OCTAVE_INT_DOUBLE_BIN_OP(OP, NAME) \
+  OCTAVE_INT_DOUBLE_BIN_OP0(OP) \
+  template <> \
+  inline octave_int64 \
+  operator OP (const double& x, const octave_int64& y) \
+  { \
+    return octave_int64 (x OP static_cast<long double> (y.value ())); \
+  } \
+  template <> \
+  inline octave_uint64 \
+  operator OP (const double& x, const octave_uint64& y) \
+  { \
+    return octave_uint64 (x OP static_cast<long double> (y.value ())); \
+  } \
+  template <> \
+  inline octave_int64 \
+  operator OP (const octave_int64& x, const double& y) \
+  { \
+    return octave_int64 (static_cast<long double> (x.value ()) OP y);   \
+  } \
+  template <> \
+  inline octave_uint64 \
+  operator OP (const octave_uint64& x, const double& y) \
+  { \
+    return octave_uint64 (static_cast<long double> (x.value ()) OP y); \
+  }
+#endif
 #else
 // external handlers
-#define OCTAVE_INT_DOUBLE_BIN_OP(OP) \
+#define OCTAVE_INT_DOUBLE_BIN_OP(OP, NAME) \
   OCTAVE_INT_DOUBLE_BIN_OP0(OP) \
   template <> \
   OCTAVE_API octave_int64 \
@@ -1019,13 +1166,15 @@
 
 #endif
 
-OCTAVE_INT_DOUBLE_BIN_OP (+)
-OCTAVE_INT_DOUBLE_BIN_OP (-)
-OCTAVE_INT_DOUBLE_BIN_OP (*)
-OCTAVE_INT_DOUBLE_BIN_OP (/)
+OCTAVE_INT_DOUBLE_BIN_OP (+, add)
+OCTAVE_INT_DOUBLE_BIN_OP (-, sub)
+OCTAVE_INT_DOUBLE_BIN_OP (*, mul)
+OCTAVE_INT_DOUBLE_BIN_OP (/, div)
 
 #undef OCTAVE_INT_DOUBLE_BIN_OP0
 #undef OCTAVE_INT_DOUBLE_BIN_OP
+#undef DECLARE_EXTERNAL_LONG_DOUBLE_OP
+#undef DECLARE_EXTERNAL_LONG_DOUBLE_OPS
 
 #define OCTAVE_INT_DOUBLE_CMP_OP(OP,NAME) \
   template <class T> \
--- a/liboctave/util/oct-rl-edit.c	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/oct-rl-edit.c	Tue Nov 26 12:38:46 2013 -0500
@@ -395,6 +395,10 @@
 void
 octave_rl_initialize (void)
 {
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  rl_catch_signals = 0;
+#endif
+
   rl_initialize ();
 }
 
--- a/liboctave/util/sparse-util.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/sparse-util.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -31,7 +31,7 @@
 #include "oct-sparse.h"
 #include "sparse-util.h"
 
-// FIXME this overload is here due to API change in SuiteSparse (3.1 -> 3.2)
+// FIXME: this overload is here due to API change in SuiteSparse (3.1 -> 3.2)
 
 #ifdef HAVE_CHOLMOD
 
--- a/liboctave/util/unwind-prot.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/unwind-prot.h	Tue Nov 26 12:38:46 2013 -0500
@@ -32,7 +32,7 @@
 #include "action-container.h"
 
 class
-OCTINTERP_API
+OCTAVE_API
 unwind_protect : public action_container
 {
 public:
@@ -107,7 +107,7 @@
 // crash.
 
 class
-OCTINTERP_API
+OCTAVE_API
 unwind_protect_safe : public unwind_protect
 {
 private:
--- a/liboctave/util/url-transfer.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/url-transfer.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -180,7 +180,7 @@
                 }
               else
                 {
-                  // FIXME Does ascii mode need to be flagged here?
+                  // FIXME: Does ascii mode need to be flagged here?
                   std::ifstream ifile (realfile.c_str (), std::ios::in |
                                        std::ios::binary);
 
--- a/liboctave/util/url-transfer.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/liboctave/util/url-transfer.h	Tue Nov 26 12:38:46 2013 -0500
@@ -31,7 +31,9 @@
 #include <iosfwd>
 #include <string>
 
-class base_url_transfer
+class
+OCTAVE_API
+base_url_transfer
 {
 private:
 
@@ -158,7 +160,9 @@
   base_url_transfer& operator = (const base_url_transfer&);
 };
 
-class url_transfer
+class
+OCTAVE_API
+url_transfer
 {
 public:
 
--- a/m4/acinclude.m4	Tue Nov 05 12:27:42 2013 -0500
+++ b/m4/acinclude.m4	Tue Nov 26 12:38:46 2013 -0500
@@ -93,6 +93,93 @@
   fi
 ])
 dnl
+dnl Check for broken stl_algo.h header file in gcc versions 4.8.0, 4.8.1, 4.8.2
+dnl which leads to failures in nth_element.
+dnl
+AC_DEFUN([OCTAVE_CHECK_BROKEN_STL_ALGO_H], [
+  AC_CACHE_CHECK([whether stl_algo.h is broken],
+    [octave_cv_broken_stl_algo_h],
+    [AC_LANG_PUSH(C++)
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+// Based on code from a GCC test program.
+
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 25.3.2 [lib.alg.nth.element]
+
+// { dg-options "-std=gnu++11" }
+
+#include <algorithm>
+#include <vector>
+      ]], [[
+std::vector<int> v (7);
+
+v[0] = 207089;
+v[1] = 202585;
+v[2] = 180067;
+v[3] = 157549;
+v[4] = 211592;
+v[5] = 216096;
+v[6] = 207089;
+
+std::nth_element (v.begin (), v.begin () + 3, v.end ());
+
+return v[3] == 207089 ? 0 : 1;
+    ]])],
+    octave_cv_broken_stl_algo_h=no,
+    octave_cv_broken_stl_algo_h=yes,
+    [case "$GXX_VERSION" in
+       *4.8.2*)
+         octave_cv_broken_stl_algo_h=yes
+       ;;
+       *)
+         octave_cv_broken_stl_algo_h=no
+       ;;
+     esac
+    ])
+    AC_LANG_POP(C++)
+  ])
+  if test "$GXX" = yes; then
+    if test $octave_cv_broken_stl_algo_h = yes; then
+      case "$GXX_VERSION" in
+        4.8.[[012]])
+        ;;
+        *)
+          octave_cv_broken_stl_algo_h=no
+          warn_stl_algo_h="UNEXPECTED: found nth_element broken in g++ $GXX_VERSION.  Refusing to fix except for g++ 4.8.0, 4.8.1, or 4.8.2.  You appear to have g++ $GXX_VERSION."
+          OCTAVE_CONFIGURE_WARNING([warn_stl_algo_h])
+        ;;
+      esac
+    else
+      case "$GXX_VERSION" in
+        4.8.2)
+          warn_stl_algo_h="UNEXPECTED: found nth_element working in g++ 4.8.2.  Has it been patched on your system?"
+          OCTAVE_CONFIGURE_WARNING([warn_stl_algo_h])
+        ;;
+      esac
+    fi
+  else
+    octave_cv_broken_stl_algo_h=no
+    warn_stl_algo_h="UNEXPECTED: nth_element test failed.  Refusing to fix except for g++ 4.8.2."
+    OCTAVE_CONFIGURE_WARNING([warn_stl_algo_h])
+  fi
+])
+dnl
 dnl Check whether the FFTW library supports multi-threading. This macro
 dnl should be called once per FFTW precision passing in the library
 dnl variant (e.g. "fftw3") and a function in the thread support API
@@ -228,8 +315,8 @@
   AC_CACHE_CHECK([whether $F77 has the intrinsic function ISNAN],
     [octave_cv_func_fortran_isnan],
     [AC_LANG_PUSH(Fortran 77)
-    AC_COMPILE_IFELSE(
-[[      program foo
+    AC_COMPILE_IFELSE([[
+      program foo
       implicit none
       real x
       double precision y
@@ -240,7 +327,7 @@
         print *, 'y is NaN'
       end if
       end program
-]],
+      ]],
       octave_cv_func_fortran_isnan=yes, octave_cv_func_fortran_isnan=no)
     AC_LANG_POP(Fortran 77)
   ])
@@ -924,8 +1011,8 @@
     [ac_octave_save_FFLAGS="$FFLAGS"
     FFLAGS="$FFLAGS $F77_INTEGER_8_FLAG"
     AC_LANG_PUSH(Fortran 77)
-    AC_COMPILE_IFELSE(
-[[      subroutine foo(n, in, out)
+    AC_COMPILE_IFELSE([[
+      subroutine foo(n, in, out)
       integer n, in(n), out(n)
       integer i
       do 10 i = 1, n
@@ -933,14 +1020,15 @@
    10 continue
       return
       end
-]],
+      ]],
       [mv conftest.$ac_objext fintsize.$ac_objext
       ac_octave_save_LIBS="$LIBS"
       LIBS="fintsize.$ac_objext $[]_AC_LANG_PREFIX[]LIBS"
       AC_LANG_PUSH(C)
       AC_RUN_IFELSE([AC_LANG_PROGRAM([[
           #include <assert.h>
-          #include <stdint.h> ]], [[
+          #include <stdint.h>
+          ]], [[
           #ifdef USE_64_BIT_IDX_T
             typedef int64_t octave_idx_type;
           #else
@@ -2061,4 +2149,3 @@
 dnl ------------------------------------------------------------
 dnl
 
-##############################################################################
--- a/m4/ax_blas_f77_func.m4	Tue Nov 05 12:27:42 2013 -0500
+++ b/m4/ax_blas_f77_func.m4	Tue Nov 26 12:38:46 2013 -0500
@@ -55,20 +55,21 @@
 #serial 8
 
 AU_ALIAS([ACX_BLAS_F77_FUNC], [AX_BLAS_F77_FUNC])
+
 AC_DEFUN([AX_BLAS_F77_FUNC], [
-AC_PREREQ(2.50)
-AC_REQUIRE([AX_BLAS])
+  AC_PREREQ(2.50)
+  AC_REQUIRE([AX_BLAS])
 
-# F77 call-compatibility checks
-if test "$cross_compiling" = yes ; then
-	ifelse($3, ,$1,$3)
-elif test x"$ax_blas_ok" = xyes; then
-	save_ax_blas_f77_func_LIBS="$LIBS"
-	LIBS="$BLAS_LIBS $LIBS"
-	AC_LANG_PUSH(Fortran 77)
-# LSAME check (LOGICAL return values)
-	AC_MSG_CHECKING([whether LSAME is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+  ## F77 call-compatibility checks
+  if test "$cross_compiling" = yes ; then
+    ifelse($3, ,$1,$3)
+  elif test x"$ax_blas_ok" = xyes; then
+    save_ax_blas_f77_func_LIBS="$LIBS"
+    LIBS="$BLAS_LIBS $LIBS"
+    AC_LANG_PUSH(Fortran 77)
+    ## LSAME check (LOGICAL return values)
+    AC_MSG_CHECKING([whether LSAME is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       logical lsame,w
       external lsame
       character c1,c2
@@ -78,12 +79,13 @@
       if (w) stop 1
       w = lsame(c1,c1)
       if (.not. w) stop 1
-      ]]),[ax_blas_lsame_fcall_ok=yes],
-	[ax_blas_lsame_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_lsame_fcall_ok])
-# ISAMAX check (INTEGER return values)
-	AC_MSG_CHECKING([whether ISAMAX is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_lsame_fcall_ok=yes],
+      [ax_blas_lsame_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_lsame_fcall_ok])
+    ## ISAMAX check (INTEGER return values)
+    AC_MSG_CHECKING([whether ISAMAX is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       integer isamax,i
       external isamax
       real a(2)
@@ -91,61 +93,66 @@
       a(2) = -2e0
       i = isamax(2,a,1)
       if (i.ne.2) stop 1
-      ]]),[ax_blas_isamax_fcall_ok=yes],
-	[ax_blas_isamax_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_isamax_fcall_ok])
-# SDOT check (REAL return values)
-	AC_MSG_CHECKING([whether SDOT is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_isamax_fcall_ok=yes],
+      [ax_blas_isamax_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_isamax_fcall_ok])
+    ## SDOT check (REAL return values)
+    AC_MSG_CHECKING([whether SDOT is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       real sdot,a(1),b(1),w
       external sdot
       a(1) = 1e0
       b(1) = 2e0
       w = sdot(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_sdot_fcall_ok=yes],
-	[ax_blas_sdot_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_sdot_fcall_ok])
-# DDOT check (DOUBLE return values)
-	AC_MSG_CHECKING([whether DDOT is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_sdot_fcall_ok=yes],
+      [ax_blas_sdot_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_sdot_fcall_ok])
+    ## DDOT check (DOUBLE return values)
+    AC_MSG_CHECKING([whether DDOT is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       double precision ddot,a(1),b(1),w
       external ddot
       a(1) = 1d0
       b(1) = 2d0
       w = ddot(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_ddot_fcall_ok=yes],
-	[ax_blas_ddot_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_ddot_fcall_ok])
-# CDOTU check (COMPLEX return values)
-	AC_MSG_CHECKING([whether CDOTU is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_ddot_fcall_ok=yes],
+      [ax_blas_ddot_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_ddot_fcall_ok])
+    ## CDOTU check (COMPLEX return values)
+    AC_MSG_CHECKING([whether CDOTU is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       complex cdotu,a(1),b(1),w
       external cdotu
       a(1) = cmplx(1e0,1e0)
       b(1) = cmplx(1e0,2e0)
       w = cdotu(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_cdotu_fcall_ok=yes],
-	[ax_blas_cdotu_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_cdotu_fcall_ok])
-# ZDOTU check (DOUBLE COMPLEX return values)
-	AC_MSG_CHECKING([whether ZDOTU is called correctly from Fortran])
-	AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_cdotu_fcall_ok=yes],
+      [ax_blas_cdotu_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_cdotu_fcall_ok])
+    ## ZDOTU check (DOUBLE COMPLEX return values)
+    AC_MSG_CHECKING([whether ZDOTU is called correctly from Fortran])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       double complex zdotu,a(1),b(1),w
       external zdotu
       a(1) = dcmplx(1d0,1d0)
       b(1) = dcmplx(1d0,2d0)
       w = zdotu(1,a,1,b,1)
       if (w .ne. a(1)*b(1)) stop 1
-      ]]),[ax_blas_zdotu_fcall_ok=yes],
-	[ax_blas_zdotu_fcall_ok=no])
-	AC_MSG_RESULT([$ax_blas_zdotu_fcall_ok])
-# Check for correct integer size
-# FIXME: this may fail with things like -ftrapping-math.
-        AC_MSG_CHECKING([whether the integer size is correct])
-        AC_RUN_IFELSE(AC_LANG_PROGRAM(,[[
+      ]])],
+      [ax_blas_zdotu_fcall_ok=yes],
+      [ax_blas_zdotu_fcall_ok=no])
+    AC_MSG_RESULT([$ax_blas_zdotu_fcall_ok])
+    ## Check for correct integer size
+    ## FIXME: this may fail with things like -ftrapping-math.
+    AC_MSG_CHECKING([whether the integer size is correct])
+    AC_RUN_IFELSE([AC_LANG_PROGRAM([], [[
       integer n,nn(3)
       real s,a(1),b(1),sdot
       a(1) = 1.0
@@ -166,39 +173,40 @@
       nn(3) = -1
       s = sdot(nn(2),a,1,b,1)
       if (s .ne. 1.0) stop 1
-       ]]),[ax_blas_integer_size_ok=yes],
-	[ax_blas_integer_size_ok=no])
-	AC_MSG_RESULT([$ax_blas_integer_size_ok])
+      ]])],
+      [ax_blas_integer_size_ok=yes],
+      [ax_blas_integer_size_ok=no])
+    AC_MSG_RESULT([$ax_blas_integer_size_ok])
 
-	AC_LANG_POP(Fortran 77)
+    AC_LANG_POP(Fortran 77)
 
-# if any of the tests failed, reject the BLAS library
-	if test $ax_blas_lsame_fcall_ok = yes \
-		-a $ax_blas_sdot_fcall_ok = yes \
-		-a $ax_blas_ddot_fcall_ok = yes \
-		-a $ax_blas_cdotu_fcall_ok = yes \
-		-a $ax_blas_zdotu_fcall_ok = yes \
-		-a $ax_blas_integer_size_ok = yes; then
-		ax_blas_f77_func_ok=yes;
-		$1
-	else
-		ax_blas_f77_func_ok=no;
-		$2
-	fi
-	LIBS="$save_ax_blas_f77_func_LIBS"
-fi
-
+    ## if any of the tests failed, reject the BLAS library
+    if test $ax_blas_lsame_fcall_ok = yes \
+      -a $ax_blas_sdot_fcall_ok = yes \
+      -a $ax_blas_ddot_fcall_ok = yes \
+      -a $ax_blas_cdotu_fcall_ok = yes \
+      -a $ax_blas_zdotu_fcall_ok = yes \
+      -a $ax_blas_integer_size_ok = yes; then
+      ax_blas_f77_func_ok=yes;
+      $1
+    else
+      ax_blas_f77_func_ok=no;
+      $2
+    fi
+    LIBS="$save_ax_blas_f77_func_LIBS"
+  fi
 ])dnl AX_BLAS_F77_FUNC
 
 AC_DEFUN([AX_BLAS_WITH_F77_FUNC], [
-AC_PREREQ(2.50)
-AX_BLAS([# disable special action], [])
-if test x$ax_blas_ok = xyes ; then
-	AX_BLAS_F77_FUNC(
-	[ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])],
-	[ax_blas_ok=no; BLAS_LIBS=])
-fi
-if test x$ax_blas_ok = xno ; then
-	$2
-fi
+  AC_PREREQ(2.50)
+  AX_BLAS([# disable special action], [])
+  if test x$ax_blas_ok = xyes ; then
+    AX_BLAS_F77_FUNC(
+    [ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])],
+    [ax_blas_ok=no; BLAS_LIBS=],
+    [$3])
+  fi
+  if test x$ax_blas_ok = xno ; then
+    $2
+  fi
 ])dnl AX_BLAS_WITH_F77_FUNC
--- a/m4/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/m4/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -3,7 +3,7 @@
   m4/ax_blas.m4 \
   m4/ax_blas_f77_func.m4 \
   m4/ax_compare_version.m4 \
-  m4/ax_lapack.m4	\
+  m4/ax_lapack.m4 \
   m4/ax_pthread.m4 \
   m4/gnulib-cache.m4 \
   m4/libtool.m4 \
--- a/oct-conf-post.in.h	Tue Nov 05 12:27:42 2013 -0500
+++ b/oct-conf-post.in.h	Tue Nov 26 12:38:46 2013 -0500
@@ -107,7 +107,11 @@
    them at least 80 bits wide and we need roundl declared in math.h.
    FIXME: Maybe substitute this by a more precise check in the future?  */
 #if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
-#define OCTAVE_INT_USE_LONG_DOUBLE
+# define OCTAVE_INT_USE_LONG_DOUBLE
+# if (SIZEOF_LONG_DOUBLE < 16 \
+      && (defined __i386__ || defined __x86_64__) && defined __GNUC__)
+#define OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED 1
+# endif
 #endif
 
 #define OCTAVE_EMPTY_CPP_ARG
Binary file scripts/image/default.img has changed
--- a/scripts/image/private/__imread__.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/image/private/__imread__.m	Tue Nov 26 12:38:46 2013 -0500
@@ -80,7 +80,7 @@
 
   ## Check key/value options.
   indexes = cellfun ("isclass", varargin, "char");
-  indexes(indexes) &= ismember (varargin(indexes), {"frames", "index"});
+  indexes(indexes) &= ismember (tolower (varargin(indexes)), {"frames", "index"});
   indexes = find (indexes);
   if (indexes)
     options.index = varargin{indexes+1};
@@ -92,7 +92,11 @@
 
   try
     ## Use information from the first image to be read to set defaults.
-    info = __magick_ping__ (fn, options.index(1));
+    if (ischar (options.index) && strcmpi (options.index, "all"))
+      info = __magick_ping__ (fn, 1);
+    else
+      info = __magick_ping__ (fn, options.index(1));
+    endif
 
     ## Set default for options.
     options.region = {1:1:info.rows 1:1:info.columns};
@@ -100,6 +104,9 @@
     for idx = offset:2:(numel (varargin) - offset + 1)
       switch (tolower (varargin{idx}))
 
+        case {"frames", "index"}
+          ## Do nothing. This options were already processed before the loop.
+
         case "pixelregion",
           options.region = varargin{idx+1};
           if (! iscell (options.region) || numel (options.region) != 2)
--- a/scripts/image/rgb2ind.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/image/rgb2ind.m	Tue Nov 26 12:38:46 2013 -0500
@@ -1,6 +1,5 @@
 ## Copyright (C) 1994-2013 John W. Eaton
 ## Copyright (C) 2012 Carnë Draug
-## Copyright (C) 2013 Adam H Aitkenhead
 ##
 ## This file is part of Octave.
 ##
@@ -20,159 +19,66 @@
 
 ## -*- texinfo -*-
 ## @deftypefn  {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{map})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{n})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{tol})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{map}, @var{dither_option})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{n}, @var{dither_option})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb}, @var{tol}, @var{dither_option})
 ## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{map})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{n})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{tol})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{map}, @var{dither_option})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{n}, @var{dither_option})
-## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{R}, @var{G}, @var{B}, @var{tol}, @var{dither_option})
 ## Convert an image in red-green-blue (RGB) color space to an indexed image.
 ##
-## The input image @var{rgb} must be an N-dimensional RGB image
-## (@nospell{MxNxO}@dots{}x3 array) where M,N,O@dots{} are the image
-## dimensions, and the final dimension contains the values in the red, green
-## and blue channels.  Alternatively, the red, green and blue color channels
-## can be input as separate arrays @var{R}, @var{G}, and @var{B}.
+## The input image @var{rgb} can be specified as a single matrix of size
+## @nospell{MxNx3}, or as three separate variables, @var{R}, @var{G}, and
+## @var{B}, its three colour channels, red, green, and blue.
 ##
-## The input @var{map} defines the colormap to be used.  Alternatively, @var{n}
-## or @var{tol} may be used to define the maximum number of colors to use in an
-## automatically generated colormap.  @var{n} is related to @var{tol} by:
-## @var{n} = (floor (1/@var{tol}) + 1)^3; where 0 < @var{tol} @leq{} 1.
+## It outputs an indexed image @var{x} and a colormap @var{map} to interpret
+## an image exactly the same as the input.  No dithering or other form of color
+## quantization is performed.  The output class of the indexed image @var{x}
+## can be uint8, uint16 or double, whichever is required to specify the
+## number of unique colours in the image (which will be equal to the number
+## of rows in @var{map}) in order
 ##
-## @var{dither_option} is a string which enables or disables dithering:
-## @qcode{"dither"} (default) or @qcode{"nodither"}.
+## Multi-dimensional indexed images (of size @nospell{MxNx3xK}) are also
+## supported, both via a single input (@var{rgb}) or its three colour channels
+## as separate variables.
 ##
 ## @seealso{ind2rgb, rgb2hsv, rgb2ntsc}
 ## @end deftypefn
 
+## FIXME: This function has a very different syntax than the Matlab
+##        one of the same name.
+##        Octave function does not support N, MAP, DITHER, or TOL arguments.
+
 ## Author: Tony Richardson <arichard@stark.cc.oh.us>
 ## Created: July 1994
 ## Adapted-By: jwe
 
-function [x, map] = rgb2ind (varargin)
-
-  ## Gather the inputs
-  if (nargin < 1 || nargin > 6)
-    print_usage ();
-  else
-
-    ## Test for dither_option, by checking if the final input is a string
-    if (ischar (varargin{end}))
-      dither_option = varargin{end};
-      dither_check  = true;
-    else
-      dither_option = "dither";
-      dither_check  = false;
-    endif
-
-    ## Read the rgb input
-    if (nargin-dither_check==1 || nargin-dither_check==2)
-
-      rgb = varargin{1};
-      if (size (rgb)(end) != 3)
-        error ("rgb2ind: The input image must be an RGB image (MxNxO...x3 array).");
-      elseif (min (rgb(:)) < 0 || max (rgb(:)) > 1)
-        error ("rgb2ind: The input image must contain values between 0 and 1.");
-      endif
-      if (nargin-dither_check==2)
-        option = varargin{2};
-      else
-        dither_option = "nodither";
-      endif
-
-      ## Read the R,G,B inputs
-    elseif (nargin - dither_check==3 || nargin - dither_check==4)
-
-      R = varargin{1};
-      G = varargin{2};
-      B = varargin{3};
-      if (! size_equal (R, G, B))
-        error ("rgb2ind: R, G, and B must have the same size");
-      endif
-      if (nargin-dither_check==4)
-        option = varargin{4};
-      else
-        dither_option = "nodither";
-      endif
-      
-      rgb = reshape ([R(:), G(:), B(:)], [size(R), 3]);
+function [x, map] = rgb2ind (R, G, B)
 
-    endif
-  endif
-      
-  sz = size (rgb);
-
-  ## Apply a limited colormap if required
-  if (exist ("option","var"))
-
-    if (size (option, 1)==1)
-
-      if (option>0 && option<=1)
-        ## option: tol
-        tol = option;
-        n   = (floor (1/option) + 1)^3;
-      else
-        ## option: n
-        n   = option;
-      endif
-      optionstr = sprintf ("-colors %d",n);
-      
-    else
-
-      ## option: map
-      map = option;
-      if (isequal (map(:,1),map(:,2)) || isequal (map(:,1),map(:,3))
-          || isequal (map(:,2),map(:,3)))
-        error ("rgb2ind: The colormap cannot contain matching R,G, or B channels.")
-      endif
-      fnmap = tmpnam;
-      map = reshape (map, size (map, 1), 1, 3);
-      imwrite (map, fnmap, "tiff");
-      optionstr = sprintf ("-map %s", fnmap);
-      
-    endif
-  
-    ## If image is an ND array, convert it to a tiled 2D image
-    ## before processing it with Graphicsmagick
-    if (numel (sz) > 3)
-     rgb = reshape (rgb, [prod(sz(1:end-2)), sz(end-1), 3]);
-    endif
-
-    ## Prepare the Graphicsmagick dithering option
-    if (strcmp (dither_option, "nodither"))
-      ditherstr = "+dither";
-    elseif (strcmp (dither_option, "dither"))
-      ditherstr = "-dither";
-    endif
-      
-    ## Perform the image processing using Graphicsmagick
-    fna = tmpnam;
-    fnb = tmpnam;
-    imwrite (rgb, fna, "tiff");
-    gmstr = sprintf ("gm convert %s %s %s %s", fna, ditherstr, optionstr, fnb);
-    system (gmstr);
-    rgb = imread (fnb);
-    
+  if (nargin != 1 && nargin != 3)
+    print_usage ();
   endif
 
-  ## Conversion of rgb image to x,map
-  pr = prod (sz(1:end-1));
-  x = zeros (sz(1:end-1));
-  [map,~,x(:)] = unique (reshape (rgb, [pr, 3]), "rows");
+  if (nargin == 1)
+    rgb = R;
+    if (ndims (rgb) > 4 || size (rgb, 3) != 3)
+      error ("rgb2ind: argument is not an RGB image");
+    else
+      R = rgb(:,:,1,:);
+      G = rgb(:,:,2,:);
+      B = rgb(:,:,3,:);
+    endif
+  elseif (! size_equal (R, G, B))
+    error ("rgb2ind: R, G, and B must have the same size");
+  endif
+
+  x = reshape (1:numel (R), size (R));
+
+  map    = unique ([R(:) G(:) B(:)], "rows");
+  [~, x] = ismember ([R(:) G(:) B(:)], map, "rows");
+  x      = reshape (x, size (R));
 
   ## a colormap is of class double and values between 0 and 1
-  switch (class (rgb))
+  switch (class (R))
     case {"single", "double", "logical"}
       ## do nothing, return the same
     case {"uint8", "uint16"}
-      map = double (map) / double (intmax (class (rgb)));
+      map = double (map) / double (intmax (class (R)));
     case "int16"
       map = (double (im) + 32768) / 65535;
     otherwise
@@ -193,10 +99,49 @@
 
 endfunction
 
-
-%% FIXME: Need some functional tests or %!demo blocks
-
 %% Test input validation
 %!error rgb2ind ()
 %!error rgb2ind (1,2,3,4,5,6,7)
+%!error <RGB> rgb2ind (rand (10, 10, 4))
 
+## FIXME: the following tests simply make sure that rgb2ind and ind2rgb
+##        reverse each other. We should have better tests for this.
+
+## Typical usage
+%!test
+%! rgb = rand (10, 10, 3);
+%! [ind, map] = rgb2ind (rgb);
+%! assert (ind2rgb (ind, map), rgb);
+%!
+%! ## test specifying the RGB channels separated
+%! [ind, map] = rgb2ind (rgb(:,:,1), rgb(:,:,2), rgb(:,:,3));
+%! assert (ind2rgb (ind, map), rgb);
+
+## Test N-dimensional images
+%!test
+%! rgb = rand (10, 10, 3, 10);
+%! [ind, map] = rgb2ind (rgb);
+%! assert (ind2rgb (ind, map), rgb);
+%! [ind, map] = rgb2ind (rgb(:,:,1,:), rgb(:,:,2,:), rgb(:,:,3,:));
+%! assert (ind2rgb (ind, map), rgb);
+
+## Test output class
+%!test
+%! ## this should have more than 65536 unique colors
+%! rgb = rand (1000, 1000, 3);
+%! [ind, map] = rgb2ind (rgb);
+%! assert (class (ind), "double");
+%! assert (class (map), "double");
+%!
+%! ## and this should have between 255 and 65536 unique colors
+%! rgb = rand (20, 20, 3);
+%! [ind, map] = rgb2ind (rgb);
+%! assert (class (ind), "uint16");
+%! assert (class (map), "double");
+%!
+%! ## and this certainly less than 256 unique colors
+%! rgb = rand (10, 10, 3);
+%! [ind, map] = rgb2ind (rgb);
+%! assert (class (ind), "uint8");
+%! assert (class (map), "double");
+
--- a/scripts/java/org/octave/Matrix.java	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/java/org/octave/Matrix.java	Tue Nov 26 12:38:46 2013 -0500
@@ -47,7 +47,7 @@
     int n = (m > 0 ? data[0].length : 0);
     int idx = 0;
     double[] buf = new double[m*n];
-		
+
     for (int j = 0; j < n; j++)
       for (int i = 0; i < m; i++)
         buf[idx++] = data[i][j];
@@ -257,7 +257,7 @@
 
     return null;
   }
-	
+
   public double[][][] asDoubleMatrix3 ()
   {
     if (cache != null)
--- a/scripts/miscellaneous/dir.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/miscellaneous/dir.m	Tue Nov 26 12:38:46 2013 -0500
@@ -47,9 +47,13 @@
 ## @end table
 ##
 ## If @var{directory} is a filename, rather than a directory, then return
-## information about the named file.  @var{directory} may be a list of
-## directories specified either by name or with wildcard characters (like *
-## and ?) which will be expanded with @code{glob}.
+## information about the named file.  @var{directory} may also be a list rather
+## than a single directory or file.
+##
+## @var{directory} is subject to shell expansion if it contains any wildcard
+## characters @samp{*}, @samp{?}, @samp{[]}.  If you want to find a
+## literal example of a wildcard character you must escape it using the
+## backslash operator @samp{\}.
 ##
 ## Note that for symbolic links, @code{dir} returns information about
 ## the file that the symbolic link points to rather than the link itself.
--- a/scripts/miscellaneous/edit.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/miscellaneous/edit.m	Tue Nov 26 12:38:46 2013 -0500
@@ -23,7 +23,7 @@
 ## Edit the named function, or change editor settings.
 ##
 ## If @code{edit} is called with the name of a file or function as
-## its argument it will be opened in a text editor.
+## its argument it will be opened in the text editor defined by @code{EDITOR}.
 ##
 ## @itemize @bullet
 ## @item
@@ -70,34 +70,6 @@
 ## The following control fields are used:
 ##
 ## @table @samp
-## @item editor
-## This is the editor to use to modify the functions.  By default it uses
-## Octave's @env{EDITOR} built-in function, which comes from
-## @code{getenv ("EDITOR")} and defaults to @code{emacs}.  Use @code{%s}
-## In place of the function name.  For example,
-##
-## @table @asis
-## @item @code{[EDITOR, " %s"]}
-## Use the editor which Octave uses for @code{edit_history}.
-##
-## @item @nospell{"xedit %s &"}
-## pop up simple X11 editor in a separate window
-##
-## @item @nospell{"gnudoit -q \"(find-file \\\"%s\\\")\""}
-## Send it to current Emacs; must have @code{(gnuserv-start)} in @file{.emacs}.
-## @end table
-##
-## See also field @qcode{"mode"}, which controls how the editor is run by
-## Octave.
-##
-## On Cygwin, you will need to convert the Cygwin path to a Windows
-## path if you are using a native Windows editor.  For example:
-## @c Set example in small font to prevent overfull line in TeX
-##
-## @smallexample
-## @exdent '"C:/Program Files/Good Editor/Editor.exe" "$(cygpath -wa %s)"'
-## @end smallexample
-##
 ## @item home
 ## This is the location of user local m-files.  Be sure it is in your
 ## path.  The default is @file{~/octave}.
@@ -153,8 +125,7 @@
 
   ## Pick up globals or default them.
 
-  persistent FUNCTION = struct ("EDITOR", [EDITOR() " %s"],
-                                "HOME", fullfile (default_home, "octave"),
+  persistent FUNCTION = struct ("HOME", fullfile (default_home, "octave"),
                                 "AUTHOR", default_user(1),
                                 "EMAIL", [],
                                 "LICENSE", "GPL",
@@ -163,6 +134,9 @@
   ## Make sure the stateval variables survive "clear functions".
   mlock;
 
+  ## Get default editor every time in case the user has changed it
+  FUNCTION.EDITOR = [EDITOR() " %s"];
+
   if (nargin == 1)
     ## User has supplied one arg, this can be a single file name
     ## or a cell array of strings containing multiple files to be opened
@@ -185,7 +159,8 @@
     stateval = varargin{2};
     switch (toupper (statevar))
       case "EDITOR"
-        FUNCTION.EDITOR = stateval;
+        error ("Octave:deprecated-function",
+               "The EDITOR option of edit has been removed.  Use EDITOR() directly.")
         return;
       case "HOME"
         if (! isempty (stateval) && stateval(1) == "~")
@@ -353,14 +328,30 @@
       endif
     endif
 
-    ## If editing a new file that is neither an m-file or an oct-file,
+    ## If editing a new file, prompt for creation if gui is running
+    if (isguirunning ())
+      if (! __octave_link_edit_file__ (file,"prompt"));
+        return;
+      endif
+    endif
+
+    ## If editing a new file that is neither an m-file nor an oct-file,
     ## just edit it.
+    ## If in gui-mode, create it before or editor would prompt again.
     fileandpath = file;
     idx = rindex (file, ".");
     name = file(1:idx-1);
     ext = file(idx+1:end);
     if (! any (strcmp (ext, {"cc", "m"})))
-      ## Some unknown file.  Just open it up.
+      ## Some unknown file.  Create and open it or just open it.
+      if (isguirunning ())
+        ## Write the initial file (if there is anything to write)
+        fid = fopen (fileandpath, "wt");
+        if (fid < 0)
+          error ("edit: could not create %s", fileandpath);
+        endif
+        fclose (fid);
+      endif
       do_edit (FUNCTION.EDITOR, fileandpath, FUNCTION.MODE);
       return;
     endif
@@ -403,8 +394,8 @@
     switch (uclicense)
       case "GPL"
         head = cstrcat (copyright, "\n\n", "\
-This program is free software; you can redistribute it and/or modify\n\
-it under the terms of the GNU General Public License as published by\n\
+This program is free software; you can redistribute it and/or modify it\n\
+under the terms of the GNU General Public License as published by\n\
 the Free Software Foundation; either version 3 of the License, or\n\
 (at your option) any later version.\n\
 \n\
@@ -414,8 +405,7 @@
 GNU General Public License for more details.\n\
 \n\
 You should have received a copy of the GNU General Public License\n\
-along with Octave; see the file COPYING.  If not, see\n\
-<http://www.gnu.org/licenses/>.\
+along with this program.  If not, see <http://www.gnu.org/licenses/>.\
 ");
         tail = [author, "\n", revs];
 
@@ -483,17 +473,20 @@
         if (any (exists == [2, 103]))
           body = type (name){1};
         else
-          body = ["function [retval] = " name " ()\n\nendfunction\n"];
+          body = ["function [retval] = " name " (input1, input2)\n\n" ...
+                  "endfunction\n"];
         endif
         if (isempty (head))
           comment = ["## -*- texinfo -*- \n## @deftypefn {Function File} " ...
-                     "{@var{retval} =} " name " (@var{x}, @var{y})\n##\n"  ...
+                     "{@var{retval} =} " name                              ...
+                     " (@var{input1}, @var{input2})\n##\n"                 ...
                      "## @seealso{}\n## @end deftypefn\n\n"                ...
                      "## " strrep(tail, "\n", "\n## ") "\n\n"];
         else
           comment = ["## " strrep(head,"\n","\n## ") "\n\n"                ...
                      "## -*- texinfo -*- \n## @deftypefn {Function File} " ...
-                     "{@var{retval} =} " name " (@var{x} @var{y})\n##\n"   ...
+                     "{@var{retval} =} " name                              ...
+                     " (@var{input1}, @var{input2})\n##\n"                 ...
                      "## @seealso{}\n## @end deftypefn\n\n"                ...
                      "## " strrep(tail, "\n", "\n## ") "\n\n"];
         endif
@@ -569,14 +562,12 @@
 
 
 %!test
-%! s.editor = edit ("get", "editor");
 %! s.home = edit ("get", "home");
 %! s.author = edit ("get", "author");
 %! s.email = edit ("get", "email");
 %! s.license = edit ("get", "license");
 %! s.editinplace = edit ("get", "editinplace");
 %! s.mode = edit ("get", "mode");
-%! edit editor none
 %! edit home none
 %! edit author none
 %! edit email none
@@ -587,14 +578,12 @@
 %! else
 %!   edit mode async
 %! endif
-%! edit ("editor", s.editor);
 %! edit ("home", s.home);
 %! edit ("author", s.author);
 %! edit ("email", s.email);
 %! edit ("license", s.license);
 %! edit ("editinplace", s.editinplace);
 %! edit ("mode", s.mode);
-%! assert (edit ("get", "editor"), s.editor);
 %! assert (edit ("get", "home"), s.home);
 %! assert (edit ("get", "author"), s.author);
 %! assert (edit ("get", "email"), s.email);
--- a/scripts/miscellaneous/ls.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/miscellaneous/ls.m	Tue Nov 26 12:38:46 2013 -0500
@@ -17,7 +17,10 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Command} {} ls options
+## @deftypefn  {Command} {} ls
+## @deftypefnx {Command} {} ls filenames
+## @deftypefnx {Command} {} ls options
+## @deftypefnx {Command} {} ls options filenames
 ## List directory contents.  For example:
 ##
 ## @example
@@ -30,8 +33,13 @@
 ## @end example
 ##
 ## The @code{dir} and @code{ls} commands are implemented by calling your
-## system's directory listing command, so the available options may vary
+## system's directory listing command, so the available options will vary
 ## from system to system.
+##
+## Filenames are subject to shell expansion if they contain any wildcard
+## characters @samp{*}, @samp{?}, @samp{[]}.  If you want to find a
+## literal example of a wildcard character you must escape it using the
+## backslash operator @samp{\}.
 ## @seealso{dir, readdir, glob, what, stat, filesep, ls_command}
 ## @end deftypefn
 
--- a/scripts/miscellaneous/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/miscellaneous/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -24,7 +24,7 @@
   miscellaneous/dump_prefs.m \
   miscellaneous/edit.m \
   miscellaneous/error_ids.m \
-	miscellaneous/fact.m \
+  miscellaneous/fact.m \
   miscellaneous/fileattrib.m \
   miscellaneous/fileparts.m \
   miscellaneous/fullfile.m \
--- a/scripts/optimization/qp.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/optimization/qp.m	Tue Nov 26 12:38:46 2013 -0500
@@ -1,3 +1,4 @@
+## Copyright (C) 2013 Julien Bect
 ## Copyright (C) 2000-2013 Gabriele Pannocchia.
 ##
 ## This file is part of Octave.
@@ -364,7 +365,7 @@
             ub = [];
             ctype = repmat ("L", n_in, 1);
             [P, dummy, status] = glpk (ctmp, Atmp, btmp, lb, ub, ctype);
-            if ((status == 180 || status == 181 || status == 151)
+            if ((status == 0)
                 && all (abs (P(n-n_eq+1:end)) < rtol * (1 + norm (btmp))))
               ## We found a feasible starting point
               if (n_eq > 0)
@@ -406,3 +407,16 @@
 
 endfunction
 
+
+%% Test infeasible initial guess (bug #40536)
+%!testif HAVE_GLPK
+%!
+%! H = 1;  q = 0;                # objective: x -> 0.5 x^2
+%! A = 1;  lb = 1;  ub = +inf;   # constraint: x >= 1
+%! x0 = 0;                       # infeasible initial guess
+%!
+%! [x, obj_qp, INFO, lambda] = qp (x0, H, q, [], [], [], [], lb, A, ub);
+%!
+%! assert (isstruct (INFO) && isfield (INFO, "info") && (INFO.info == 0));
+%! assert ([x obj_qp], [1.0 0.5], eps);
+
--- a/scripts/plot/appearance/legend.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/appearance/legend.m	Tue Nov 26 12:38:46 2013 -0500
@@ -1004,7 +1004,16 @@
           addlistener (hlegend, "textcolor", @updatelegendtext);
           ## Properties which could change size of box, such as fontsize,
           ## require legend to be redrawn.
-          addlistener (hlegend, "fontsize", @updatelegend);
+          ## FIXME: fontsize is changed by print.m function during the
+          ##        production of a plot for output.  This screws things up
+          ##        because legend tries to return the axes size to what it
+          ##        was when the figure was created, versus what it is now
+          ##        when the figure is being printed.  Temporary hack is
+          ##        good enough for generating the Octave manual which still
+          ##        relies on gnuplot for generating images.  See bug #40333.
+          if (! gnuplot)
+            addlistener (hlegend, "fontsize", @updatelegend);
+          endif
           addlistener (hlegend, "fontunits", @updatelegend);
           addlistener (hlegend, "interpreter", @updatelegend);
           addlistener (hlegend, "location", @updatelegend);
--- a/scripts/plot/draw/private/__errplot__.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/draw/private/__errplot__.m	Tue Nov 26 12:38:46 2013 -0500
@@ -69,8 +69,8 @@
     args = __add_datasource__ ("__errplot__", hg,
                                {"x", "y", "l", "u", "xl", "xu"});
 
-    hl = [(__line__ (hg, "color", lc, "linestyle", ls, "marker", mk)),
-          (__line__ (hg, "color", lc, "linestyle", "-", "marker", "none"))];
+    hl = [(__line__ (hg, "color", lc, "linestyle", "-", "marker", "none")),
+          (__line__ (hg, "color", lc, "linestyle", ls, "marker", mk))];
 
     switch (numel (varargin))
       case 2
@@ -158,16 +158,16 @@
     addproperty ("xudata", hg, "data", xudata(:));
     addproperty ("format", hg, "string", ifmt);
 
-    addproperty ("color", hg, "linecolor", get (hl(1), "color"));
-    addproperty ("linestyle", hg, "linelinestyle", get (hl(1), "linestyle"));
-    addproperty ("linewidth", hg, "linelinewidth", get (hl(1), "linewidth"));
-    addproperty ("marker", hg, "linemarker", get (hl(1), "marker"));
+    addproperty ("color", hg, "linecolor", get (hl(2), "color"));
+    addproperty ("linestyle", hg, "linelinestyle", get (hl(2), "linestyle"));
+    addproperty ("linewidth", hg, "linelinewidth", get (hl(2), "linewidth"));
+    addproperty ("marker", hg, "linemarker", get (hl(2), "marker"));
     addproperty ("markeredgecolor", hg, "linemarkerfacecolor",
-                 get (hl(1), "markeredgecolor"));
+                 get (hl(2), "markeredgecolor"));
     addproperty ("markerfacecolor", hg, "linemarkerfacecolor",
-                 get (hl(1), "markerfacecolor"));
+                 get (hl(2), "markerfacecolor"));
     addproperty ("markersize", hg, "linemarkersize",
-                 get (hl(1), "markersize"));
+                 get (hl(2), "markersize"));
 
     ## Matlab property, although Octave does not implement it.
     addproperty ("hittestarea", hg, "radio", "on|{off}", "off");
@@ -309,7 +309,7 @@
 function update_props (hg, ~, hl)
   set (hl, "color", get (hg, "color"),
            "linewidth", get (hg, "linewidth"));
-  set (hl(1), "linestyle", get (hg, "linestyle"),
+  set (hl(2), "linestyle", get (hg, "linestyle"),
               "marker", get (hg, "marker"),
               "markeredgecolor", get (hg, "markeredgecolor"),
               "markerfacecolor", get (hg, "markerfacecolor"),
@@ -320,7 +320,7 @@
 
   if (strcmp (get (hg, "type"), "axes"))
     hax = hg;
-    hg = ancestor (hl(1), "hggroup");
+    hg = ancestor (hl(2), "hggroup");
   else
     hax = ancestor (hg, "axes");
   endif
@@ -335,15 +335,15 @@
   xudata = get (hg, "xudata");
   ifmt = get (hg, "format");
 
-  set (hl(1), "xdata", xdata);
-  set (hl(1), "ydata", ydata);
+  set (hl(2), "xdata", xdata);
+  set (hl(2), "ydata", ydata);
 
   [errorbar_xdata, errorbar_ydata] = ...
           errorbar_data (xdata, ydata, ldata, udata, xldata, xudata, ...
                          ifmt, xscale, yscale);
 
-  set (hl(2), "xdata", errorbar_xdata);
-  set (hl(2), "ydata", errorbar_ydata);
+  set (hl(1), "xdata", errorbar_xdata);
+  set (hl(1), "ydata", errorbar_ydata);
 
 endfunction
 
--- a/scripts/plot/util/allchild.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/allchild.m	Tue Nov 26 12:38:46 2013 -0500
@@ -53,7 +53,7 @@
 %! unwind_protect
 %!   l = line;
 %!   kids = allchild (hf);
-%!   assert (get (kids, "type"), {"axes"; "uimenu"; "uimenu"; "uimenu"});
+%!   assert (get (kids, "type"), {"axes"; "uimenu"; "uimenu"});
 %! unwind_protect_cleanup
 %!   close (hf);
 %!   graphics_toolkit (toolkit);
--- a/scripts/plot/util/findall.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/findall.m	Tue Nov 26 12:38:46 2013 -0500
@@ -56,7 +56,7 @@
 %! unwind_protect
 %!   h = findall (hf);
 %!   all_handles(1) = {"figure"};
-%!   all_handles(2:14,1) = {"uimenu"};
+%!   all_handles(2:12,1) = {"uimenu"};
 %!   assert (get (h, "type"), all_handles);
 %! unwind_protect_cleanup
 %!   close (hf);
--- a/scripts/plot/util/ndgrid.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/ndgrid.m	Tue Nov 26 12:38:46 2013 -0500
@@ -43,36 +43,40 @@
   if (nargin == 0)
     print_usage ();
   elseif (nargin == 1)
-    n = max ([nargout, 1]);
-    ## If only one input argument is given, repeat it n-times
-    varargin(1:n) = varargin(1);
+    nd = max (nargout, 1);
+    ## If only one input argument is given, repeat it nd-times
+    varargin(1:nd) = varargin(1);
   elseif (nargin >= nargout)
-    n = max ([nargin, 1]);
+    nd = max (nargin, 1);
   else
     error ("ndgrid: wrong number of input arguments");
   endif
 
   ## Determine the size of the output arguments
-
-  shape = zeros (1, n);
-  for i = 1:n
+  shape = zeros (1, nd);
+  for i = 1:nd
     if (! isvector (varargin{i}) && ! isempty (varargin{i}))
       error ("ndgrid: arguments must be vectors");
     endif
     shape(i) = length (varargin{i});
   endfor
 
-  for i = 1:n
-    ## size for reshape
-    r = ones (1, n);
-    r(i) = shape(i);
+  if (nd == 1)
+    ## Special case, single input vector
+    varargout{1} = varargin{1}(:);
+  else
+    for i = 1:nd
+      ## size for reshape
+      r = ones (1, nd+1);
+      r(i) = shape(i);
 
-    ## size for repmat
-    s = shape;
-    s(i) = 1;
+      ## size for repmat
+      s = shape;
+      s(i) = 1;
 
-    varargout{i} = repmat (reshape (varargin{i}, r), s);
-  endfor
+      varargout{i} = repmat (reshape (varargin{i}, r), s);
+    endfor
+  endif
 
 endfunction
 
--- a/scripts/plot/util/private/__add_default_menu__.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/private/__add_default_menu__.m	Tue Nov 26 12:38:46 2013 -0500
@@ -52,11 +52,7 @@
       gm = uimenu (__e, "label", "GUI &Mode");
         uimenu (gm, "label", "Pan+Zoom", "callback", @guimode_cb);
         uimenu (gm, "label", "Rotate+Zoom", "callback", @guimode_cb);
-        uimenu (gm, "label", "None", "callback", @guimode_cb);
-
-    __h = uimenu (fig, "label", "&Help", "handlevisibility", "off",
-                       "tag", "__default_menu__");
-      uimenu (__h, "label", "A&bout", "enable", "off");
+        uimenu (gm, "label", "None+Zoom", "callback", @guimode_cb);
 
     ## FIXME: This drawnow () must occur after at least one menu item has
     ##        been defined to avoid sizing issues in new figures.
--- a/scripts/plot/util/private/__go_draw_axes__.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/private/__go_draw_axes__.m	Tue Nov 26 12:38:46 2013 -0500
@@ -2158,10 +2158,10 @@
         nlabels = numel (labels);
         fprintf (plot_stream, "set format %s \"%%g\";\n", ax);
         if (mirror)
-          fprintf (plot_stream, "set %stics add %s %s %s mirror (", ax,
+          fprintf (plot_stream, "set %stics %s %s %s mirror (", ax,
                    tickdir, ticklength, axispos);
         else
-          fprintf (plot_stream, "set %stics add %s %s %s nomirror (", ax,
+          fprintf (plot_stream, "set %stics %s %s %s nomirror (", ax,
                    tickdir, ticklength, axispos);
         endif
 
--- a/scripts/plot/util/subplot.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/plot/util/subplot.m	Tue Nov 26 12:38:46 2013 -0500
@@ -192,84 +192,152 @@
 
     ## FIXME: At the moment we force gnuplot to use the aligned mode
     ##        which will set "activepositionproperty" to "position".
-    ##        Τhis can yield to text overlap between labels and titles
-    ##        see bug #31610
+    ##        This can yield to text overlap between labels and titles.
+    ##        See bug #31610.
     if (strcmp (get (cf, "__graphics_toolkit__"), "gnuplot"))
       align_axes = true;
     endif
 
+    ## Oh, the things we do for Matlab compatibility.  Using the "position"
+    ## argument changes things so much that it became clearer to replicate
+    ## large chunks of code rather than have lots of if/else statements.
     if (! have_position)
+      ## Normal case where subplot indices have been given
       pos = subplot_position (rows, cols, index, "position");
       outerpos = subplot_position (rows, cols, index, "outerposition");
       box = [pos(1:2), pos(1:2)+pos(3:4)];
       outerbox = [outerpos(1:2), outerpos(1:2)+outerpos(3:4)];
       looseinset = [box(1:2)-outerbox(1:2), outerbox(3:4)-box(3:4)];
+
       if (align_axes)
         activepositionproperty = "position";
       else
         activepositionproperty = "outerposition";
       endif
-    endif
 
-    set (cf, "nextplot", "add");
+      set (cf, "nextplot", "add");
 
-    found = false;
-    kids = get (cf, "children");
-    for child = kids(:)'
-      ## Check whether this child is still valid; this might not be the
-      ## case anymore due to the deletion of previous children (due to
-      ## "deletefcn" callback or for legends/colorbars that are deleted
-      ## with their corresponding axes).
-      if (! ishandle (child))
-        continue;
-      endif
-      if (strcmp (get (child, "type"), "axes"))
-        ## Skip legend and colorbar objects.
-        if (any (strcmp (get (child, "tag"), {"legend", "colorbar"})))
+      found = false;
+      kids = get (cf, "children");
+      for child = kids(:)'
+        ## Check whether this child is still valid; this might not be the
+        ## case anymore due to the deletion of previous children (due to
+        ## "deletefcn" callback or for legends/colorbars that are deleted
+        ## with their corresponding axes).
+        if (! ishandle (child))
           continue;
         endif
-        objpos = get (child, "outerposition");
-        if (all (abs (objpos - outerpos) < eps) && ! replace_axes)
-          ## If the new axes are in exactly the same position
-          ## as an existing axes object, use the existing axes.
-          found = true;
-          hsubplot = child;
-        else
-          ## If the new axes overlap an old axes object, delete the old axes.
-          if (align_axes)
-            objpos = get (child, "position");
+        if (strcmp (get (child, "type"), "axes"))
+          ## Skip legend and colorbar objects.
+          if (any (strcmp (get (child, "tag"), {"legend", "colorbar"})))
+            continue;
           endif
-          x0 = pos(1);
-          x1 = x0 + pos(3);
-          y0 = pos(2);
-          y1 = y0 + pos(4);
-          objx0 = objpos(1);
-          objx1 = objx0 + objpos(3);
-          objy0 = objpos(2);
-          objy1 = objy0 + objpos(4);
-          if (! (x0 >= objx1 || x1 <= objx0 || y0 >= objy1 || y1 <= objy0))
-            delete (child);
+          objpos = get (child, "outerposition");
+          if (all (abs (objpos - outerpos) < eps) && ! replace_axes)
+            ## If the new axes are in exactly the same position
+            ## as an existing axes object, use the existing axes.
+            found = true;
+            hsubplot = child;
+          else
+            ## If the new axes overlap an old axes object, delete the old axes.
+            if (align_axes)
+              objpos = get (child, "position");
+            endif
+            x0 = pos(1);
+            x1 = x0 + pos(3);
+            y0 = pos(2);
+            y1 = y0 + pos(4);
+            objx0 = objpos(1);
+            objx1 = objx0 + objpos(3);
+            objy0 = objpos(2);
+            objy1 = objy0 + objpos(4);
+            if (! (x0 >= objx1 || x1 <= objx0 || y0 >= objy1 || y1 <= objy0))
+              delete (child);
+            endif
           endif
         endif
-      endif
-    endfor
+      endfor
 
-    if (found)
-      ## Switch to existing subplot
-      set (cf, "currentaxes", hsubplot);
+      if (found)
+        ## Switch to existing subplot
+        set (cf, "currentaxes", hsubplot);
+      else
+        hsubplot = axes ("box", "off",
+                         "position", pos,
+                         "looseinset", looseinset,
+                         "activepositionproperty", activepositionproperty,
+                         varargin{:});
+        addproperty ("subplot_align", hsubplot, "boolean", true);
+        addlistener (hsubplot, "position", @subplot_align);
+        if (! align_axes)
+          set (hsubplot, "subplot_align", false)
+          subplot_align (hsubplot)
+        endif
+      endif
     else
-      hsubplot = axes ("box", "off",
-                       "position", pos,
-                       "looseinset", looseinset,
-                       "activepositionproperty", activepositionproperty,
-                       varargin{:});
-      addproperty ("subplot_align", hsubplot, "boolean", true);
-      addlistener (hsubplot, "position", @subplot_align);
-      if (! align_axes)
-        set (hsubplot, "subplot_align", false)
-        subplot_align (hsubplot)
+      ## "position" attribute given
+      if (align_axes)
+        activepositionproperty = "position";
+      else
+        activepositionproperty = "outerposition";
       endif
-    endif
+
+      set (cf, "nextplot", "add");
+
+      found = false;
+      kids = get (cf, "children");
+      for child = kids(:)'
+        ## Check whether this child is still valid; this might not be the
+        ## case anymore due to the deletion of previous children (due to
+        ## "deletefcn" callback or for legends/colorbars that are deleted
+        ## with their corresponding axes).
+        if (! ishandle (child))
+          continue;
+        endif
+        if (strcmp (get (child, "type"), "axes"))
+          ## Skip legend and colorbar objects.
+          if (any (strcmp (get (child, "tag"), {"legend", "colorbar"})))
+            continue;
+          endif
+          objpos = get (child, "position");
+          if (all (abs (objpos - pos) < eps) && ! replace_axes)
+            ## If the new axes are in exactly the same position
+            ## as an existing axes object, use the existing axes.
+            found = true;
+            hsubplot = child;
+          else
+            ## If the new axes overlap an old axes object, delete the old axes.
+            x0 = pos(1);
+            x1 = x0 + pos(3);
+            y0 = pos(2);
+            y1 = y0 + pos(4);
+            objx0 = objpos(1);
+            objx1 = objx0 + objpos(3);
+            objy0 = objpos(2);
+            objy1 = objy0 + objpos(4);
+            if (! (x0 >= objx1 || x1 <= objx0 || y0 >= objy1 || y1 <= objy0))
+              delete (child);
+            endif
+          endif
+        endif
+      endfor
+
+      if (found)
+        ## Switch to existing subplot
+        set (cf, "currentaxes", hsubplot);
+      else
+        hsubplot = axes ("box", "off",
+                         "position", pos,
+                         "activepositionproperty", activepositionproperty,
+                         varargin{:});
+        addproperty ("subplot_align", hsubplot, "boolean", true);
+        addlistener (hsubplot, "position", @subplot_align);
+        if (! align_axes)
+          set (hsubplot, "subplot_align", false)
+          subplot_align (hsubplot)
+        endif
+      endif
+    endif  # ! have_position
 
   unwind_protect_cleanup
     set (0, "defaultaxesunits", axesunits);
--- a/scripts/polynomial/spline.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/polynomial/spline.m	Tue Nov 26 12:38:46 2013 -0500
@@ -83,12 +83,12 @@
   ## Check the size and shape of y
   ndy = ndims (y);
   szy = size (y);
-  if (ndy == 2 && (szy(1) == n || szy(2) == n))
-    if (szy(2) == n)
+  if (ndy == 2 && (any (szy == n) || any (szy == n+2)))
+    if (szy(2) == n || szy(2) == n+2)
       a = y.';
     else
       a = y;
-      szy = fliplr (szy);
+      szy = szy([2 1]);
     endif
   else
     a = shiftdim (reshape (y, [prod(szy(1:end-1)), szy(end)]), 1);
@@ -283,18 +283,24 @@
 %! x = [2,1];
 %! y = [1,2,3,4];
 %! pp = spline (x,y);
+%! pp2 = spline (x', y');
 %! [x,P] = unmkpp (pp);
 %! assert (P, [7,-9,1,3], abserr);
+%! assert (pp2, pp);
 %!test
 %! x = [0,1,2];
 %! y = [0,0,1,0,0];
 %! pp = spline (x,y);
+%! pp2 = spline (x', y');
 %! [x,P] = unmkpp (pp);
 %! assert (P, [-2,3,0,0;2,-3,0,1], abserr);
+%! assert (pp2, pp);
 %!test
 %! x = [0,1,2,3];
 %! y = [0,0,1,1,0,0];
 %! pp = spline (x,y);
+%! pp2 = spline (x', y');
 %! [x,P] = unmkpp (pp);
 %! assert (P, [-1,2,0,0;0,-1,1,1;1,-1,-1,1], abserr);
+%! assert (pp2, pp);
 
--- a/scripts/sparse/module.mk	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/sparse/module.mk	Tue Nov 26 12:38:46 2013 -0500
@@ -1,7 +1,7 @@
 FCN_FILE_DIRS += sparse
 
 sparse_PRIVATE_FCN_FILES = \
-	sparse/private/__sprand_impl__.m
+  sparse/private/__sprand_impl__.m
 
 sparse_FCN_FILES = \
   sparse/bicg.m \
@@ -29,7 +29,7 @@
   sparse/svds.m \
   sparse/treelayout.m \
   sparse/treeplot.m \
-	$(sparse_PRIVATE_FCN_FILES)
+  $(sparse_PRIVATE_FCN_FILES)
 
 FCN_FILES += $(sparse_FCN_FILES)
 
--- a/scripts/startup/main-rcfile	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/startup/main-rcfile	Tue Nov 26 12:38:46 2013 -0500
@@ -7,8 +7,8 @@
 ## directory.
 
 readline_read_init_file (sprintf ("%s%s%s",
-				  octave_config_info ("startupfiledir"),
-				  filesep, "inputrc"));
+                                  octave_config_info ("startupfiledir"),
+                                  filesep, "inputrc"));
 
 if (strcmp (PAGER (), "less") && isempty (getenv ("LESS")))
   PAGER_FLAGS ('-e -X -P"-- less ?pB(%pB\\%):--. (f)orward, (b)ack, (q)uit$"');
--- a/scripts/statistics/base/moment.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/statistics/base/moment.m	Tue Nov 26 12:38:46 2013 -0500
@@ -22,7 +22,55 @@
 ## @deftypefnx {Function File} {} moment (@var{x}, @var{p}, @var{dim})
 ## @deftypefnx {Function File} {} moment (@var{x}, @var{p}, @var{type}, @var{dim})
 ## @deftypefnx {Function File} {} moment (@var{x}, @var{p}, @var{dim}, @var{type})
-## Compute the @var{p}-th moment of the vector @var{x} about zero.
+## Compute the @var{p}-th central moment of the vector @var{x}.
+##
+## @tex
+## $$
+## {\sum_{i=1}^N (x_i - \bar{x})^p \over N}
+## $$
+## @end tex
+## @ifnottex
+##
+## @example
+## @group
+## 1/N SUM_i (x(i) - mean(x))^p
+## @end group
+## @end example
+##
+## @end ifnottex
+## 
+## If @var{x} is a matrix, return the row vector containing the @var{p}-th
+## central moment of each column.
+##
+## The optional string @var{type} specifies the type of moment to be computed.
+## Valid options are:
+##
+## @table @asis
+## @item @qcode{"c"}
+##   Central Moment (default). 
+##
+## @item  @qcode{"a"}
+## @itemx @qcode{"ac"}
+##   Absolute Central Moment.  The moment about the mean ignoring sign
+## defined as
+## @tex
+## $$
+## {\sum_{i=1}^N {\left| x_i - \bar{x} \right|}^p \over N}
+## $$
+## @end tex
+## @ifnottex
+##
+## @example
+## @group
+## 1/N SUM_i (abs (x(i) - mean(x)))^p
+## @end group
+## @end example
+##
+## @end ifnottex
+##
+## @item @qcode{"r"}
+##   Raw Moment.  The moment about zero defined as 
+## 
 ## @tex
 ## $$
 ## {\rm moment} (x) = { \sum_{i=1}^N {x_i}^p \over N }
@@ -38,32 +86,8 @@
 ##
 ## @end ifnottex
 ##
-## If @var{x} is a matrix, return the row vector containing the
-## @var{p}-th moment of each column.
-##
-## The optional string @var{type} specifies the type of moment to be computed.
-## Valid options are:
-##
-## @table @asis
-## @item @qcode{"c"}
-##   Central Moment.  The moment about the mean defined as
-## @tex
-## $$
-## {\sum_{i=1}^N (x_i - \bar{x})^p \over N}
-## $$
-## @end tex
-## @ifnottex
-##
-## @example
-## @group
-## 1/N SUM_i (x(i) - mean(x))^p
-## @end group
-## @end example
-##
-## @end ifnottex
-##
-## @item @qcode{"a"}
-##   Absolute Moment.  The moment about zero ignoring sign defined as
+## @item @nospell{@qcode{"ar"}}
+##   Absolute Raw Moment.  The moment about zero ignoring sign defined as
 ## @tex
 ## $$
 ## {\sum_{i=1}^N {\left| x_i \right|}^p \over N}
@@ -78,25 +102,7 @@
 ## @end example
 ##
 ## @end ifnottex
-##
-## @item @qcode{"ac"}
-##   Absolute Central Moment.  Defined as
-## @tex
-## $$
-## {\sum_{i=1}^N {\left| x_i - \bar{x} \right|}^p \over N}
-## $$
-## @end tex
-## @ifnottex
-##
-## @example
-## @group
-## 1/N SUM_i ( abs (x(i) - mean(x)) )^p
-## @end group
-## @end example
-##
-## @end ifnottex
 ## @end table
-##
 ## If the optional argument @var{dim} is given, operate along this dimension.
 ##
 ## If both @var{type} and @var{dim} are given they may appear in any order.
@@ -115,7 +121,7 @@
     print_usage ();
   endif
 
-  if (!(isnumeric (x) || islogical (x)) || isempty (x))
+  if (! (isnumeric (x) || islogical (x)) || isempty (x))
     error ("moment: X must be a non-empty numeric matrix or vector");
   endif
 
@@ -162,7 +168,7 @@
 
   n = sz(dim);
 
-  if (any (type == "c"))
+  if (! any (type == "r"))
     x = center (x, dim);
   endif
   if (any (type == "a"))
@@ -174,26 +180,27 @@
 endfunction
 
 
-%!test
+%!shared x
 %! x = rand (10);
-%! assert (moment (x,1), mean (x), 1e1*eps);
-%! assert (moment (x,2), meansq (x), 1e1*eps);
-%! assert (moment (x,1,2), mean (x,2), 1e1*eps);
-%! assert (moment (x,1,"c"), mean (center (x)), 1e1*eps);
-%! assert (moment (x,1,"a"), mean (abs (x)), 1e1*eps);
+%!assert (moment (x,1), mean (center (x)), eps)
+%!assert (moment (x,2), meansq (center (x)), eps)
+%!assert (moment (x,1,2), mean (center (x, 2), 2), eps)
+%!assert (moment (x,1,"a"), mean (abs (center (x))), eps)
+%!assert (moment (x,1,"r"), mean (x), eps)
+%!assert (moment (x,1,"ar"), mean (abs (x)), eps)
 
-%!assert (moment (single ([1 2 3]), 1), single (2))
+%!assert (moment (single ([1 2 3]), 1, "r"), single (2))
 
 %% Test input validation
 %!error moment ()
 %!error moment (1)
 %!error moment (1, 2, 3, 4, 5)
-%!error moment (['A'; 'B'], 2)
-%!error moment (ones (2,0,3), 2)
-%!error moment (1, true)
-%!error moment (1, ones (2,2))
-%!error moment (1, 2, 3, 4)
-%!error moment (1, 2, ones (2,2))
-%!error moment (1, 2, 1.5)
-%!error moment (1, 2, 4)
+%!error <X must be a non-empty numeric matrix> moment (['A'; 'B'], 2)
+%!error <X must be a non-empty numeric matrix> moment (ones (2,0,3), 2)
+%!error <P must be a numeric scalar> moment (1, true)
+%!error <P must be a numeric scalar> moment (1, ones (2,2))
+%!error <expecting TYPE to be a string> moment (1, 2, 3, 4)
+%!error <DIM must be an integer and a valid dimension> moment (1, 2, ones (2,2))
+%!error <DIM must be an integer and a valid dimension> moment (1, 2, 1.5)
+%!error <DIM must be an integer and a valid dimension> moment (1, 2, 4)
 
--- a/scripts/strings/strcat.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/strings/strcat.m	Tue Nov 26 12:38:46 2013 -0500
@@ -56,7 +56,7 @@
 ## s = [ "ab"; "cde" ];
 ## strcat (s, s, s)
 ##     @result{}
-##         "ab ab ab "
+##         "ababab   "
 ##         "cdecdecde"
 ## @end group
 ## @end example
--- a/scripts/testfun/assert.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/testfun/assert.m	Tue Nov 26 12:38:46 2013 -0500
@@ -405,8 +405,8 @@
 %!error <Abs err 1 exceeds tol> assert (3, 4)
 %!assert (3+eps, 3, eps)
 %!assert (3, 3+eps, eps)
-%!error <Abs err 4.4409e-16 exceeds tol> assert (3+2*eps, 3, eps)
-%!error <Abs err 4.4409e-16 exceeds tol> assert (3, 3+2*eps, eps)
+%!error <Abs err 4.4409e-0?16 exceeds tol> assert (3+2*eps, 3, eps)
+%!error <Abs err 4.4409e-0?16 exceeds tol> assert (3, 3+2*eps, eps)
 
 ## vectors
 %!assert ([1,2,3],[1,2,3]);
@@ -443,9 +443,9 @@
 
 ## test relative vs. absolute tolerances
 %!test  assert (0.1+eps, 0.1,  2*eps);
-%!error <Rel err 2.2204e-15 exceeds tol> assert (0.1+eps, 0.1, -2*eps);
+%!error <Rel err 2.2204e-0?15 exceeds tol> assert (0.1+eps, 0.1, -2*eps);
 %!test  assert (100+100*eps, 100, -2*eps);
-%!error <Abs err 2.8422e-14 exceeds tol> assert (100+100*eps, 100,  2*eps);
+%!error <Abs err 2.8422e-0?14 exceeds tol> assert (100+100*eps, 100,  2*eps);
 
 ## Corner case of relative tolerance with 0 divider
 %!error <Abs err 2 exceeds tol 0.1> assert (2, 0, -0.1)
--- a/scripts/testfun/speed.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/scripts/testfun/speed.m	Tue Nov 26 12:38:46 2013 -0500
@@ -412,7 +412,11 @@
 %! disp ("This time, the for loop is done away with entirely.");
 %! disp ("Notice how much bigger the speedup is than in example 1.");
 
-%!test
+## FIXME: Tests are known to fail on operating systems with low resolution
+##        timers such as MinGW.  Therefore, tests are made xtests so that false
+##        failures are not reported.  However, it might be better to either
+##        force the tests to do more work, or use %!testif to check the OS.
+%!xtest
 %! [order, n, T_f1, T_f2] = speed ("airy (x)", "x = rand (n, 10)", [100, 1000]);
 %! assert (isstruct (order));
 %! assert (size (order), [1, 1]);
@@ -424,8 +428,6 @@
 %! assert (isnumeric (T_f2));
 %! assert (length (T_f2) > 10);
 
-%% This test is known to fail on operating systems with low resolution timers
-%% such as MinGW
 %!xtest
 %! [order, n, T_f1, T_f2] = speed ("sum (x)", "", [100, 1000], "v = 0; for i = 1:length (x), v += x(i); endfor");
 %! assert (isstruct (order));
--- a/src/Makefile.am	Tue Nov 05 12:27:42 2013 -0500
+++ b/src/Makefile.am	Tue Nov 26 12:38:46 2013 -0500
@@ -63,6 +63,8 @@
 
 octave_LDADD = \
   $(top_builddir)/libgnu/libgnu.la \
+  $(X11_LIBS) \
+  $(CARBON_LIBS) \
   $(GNULIB_LINK_DEPS)
 
 octave_LDFLAGS = \
--- a/src/main.in.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/src/main.in.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -102,6 +102,75 @@
 
 #endif
 
+#include <cstdlib>
+
+#if defined (OCTAVE_USE_WINDOWS_API)
+#include <windows.h>
+#elif defined (HAVE_FRAMEWORK_CARBON)
+#include <Carbon/Carbon.h>
+#elif defined (HAVE_X_WINDOWS)
+#include <X11/Xlib.h>
+#endif
+
+bool
+display_available (std::string& err_msg)
+{
+  bool dpy_avail = false;
+
+  err_msg = "";
+
+#if defined (OCTAVE_USE_WINDOWS_API)
+
+  HDC hdc = GetDC (0);
+
+  if (hdc)
+    dpy_avail = true;
+  else
+    err_msg = "no graphical display found";
+
+#elif defined (HAVE_FRAMEWORK_CARBON)
+
+  CGDirectDisplayID display = CGMainDisplayID ();
+
+  if (display)
+    dpy_avail = true;
+  else
+    err_msg = "no graphical display found";
+
+#elif defined (HAVE_X_WINDOWS)
+
+  const char *display_name = getenv ("DISPLAY");
+
+  if (display_name && *display_name)
+    {
+      Display *display = XOpenDisplay (display_name);
+
+      if (display)
+        {
+          Screen *screen = DefaultScreenOfDisplay (display);
+
+          if (! screen)
+            err_msg = "X11 display has no default screen";
+
+          XCloseDisplay (display);
+
+          dpy_avail = true;
+        }
+      else
+        err_msg = "unable to open X11 DISPLAY";
+    }
+  else
+    err_msg = "X11 DISPLAY environment variable not set";
+
+#else
+
+  err_msg = "no graphical display found";
+
+#endif
+
+  return dpy_avail;
+}
+
 #if (defined (HAVE_OCTAVE_GUI) \
      && ! defined (__WIN32__) || defined (__CYGWIN__))
 
@@ -118,11 +187,13 @@
 
 static pid_t gui_pid = 0;
 
+static int caught_signal = -1;
+
 static void
 gui_driver_sig_handler (int sig)
 {
   if (gui_pid > 0)
-    kill (gui_pid, sig);
+    caught_signal = sig;
 }
 
 static sig_handler *
@@ -364,14 +435,137 @@
   return obd.empty () ? subst_octave_home (std::string (OCTAVE_BINDIR)) : obd;
 }
 
+// Adapted from libtool wrapper.
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = new char* [argc + 1];
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+        new_argv[i] = strdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+        {
+          int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+          size_t length;
+          unsigned int backslashes;
+          const char *s;
+          char *quoted_string;
+          char *p;
+
+          length = 0;
+          backslashes = 0;
+          if (quote_around)
+            length++;
+          for (s = string; *s != '\0'; s++)
+            {
+              char c = *s;
+              if (c == '"')
+                length += backslashes + 1;
+              length++;
+              if (c == '\\')
+                backslashes++;
+              else
+                backslashes = 0;
+            }
+          if (quote_around)
+            length += backslashes + 1;
+
+          quoted_string = new char [length + 1];
+
+          p = quoted_string;
+          backslashes = 0;
+          if (quote_around)
+            *p++ = '"';
+          for (s = string; *s != '\0'; s++)
+            {
+              char c = *s;
+              if (c == '"')
+                {
+                  unsigned int j;
+                  for (j = backslashes + 1; j > 0; j--)
+                    *p++ = '\\';
+                }
+              *p++ = c;
+              if (c == '\\')
+                backslashes++;
+              else
+                backslashes = 0;
+            }
+          if (quote_around)
+            {
+              unsigned int j;
+              for (j = backslashes; j > 0; j--)
+                *p++ = '\\';
+              *p++ = '"';
+            }
+          *p = '\0';
+
+          new_argv[i] = quoted_string;
+        }
+      else
+        new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+
+#endif // __WIN32__ && ! __CYGWIN__
+
 static int
 octave_exec (const std::string& file, char **argv)
 {
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  argv = prepare_spawn (argv);
+  return _spawnv (_P_WAIT, file.c_str (), argv);
+#else
   execv (file.c_str (), argv);
 
   std::cerr << "octave: failed to exec '" << file << "'" << std::endl;
 
   return 1;
+#endif
 }
 
 static char *
@@ -391,11 +585,8 @@
 {
   int retval = 0;
 
-#if (defined (HAVE_OCTAVE_GUI) \
-     && (! defined (__WIN32__) || defined (__CYGWIN__)))
   bool start_gui = true;
   bool gui_libs = true;
-#endif
 
   std::string octave_bindir = get_octave_bindir ();
 
@@ -409,8 +600,14 @@
 
   char **new_argv = new char * [argc + 1];
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  int k = 1;
+#else
   int k = 0;
   new_argv[k++] = strsave ("octave");
+#endif
+
+  bool warn_display = true;
 
   for (int i = 1; i < argc; i++)
     {
@@ -422,10 +619,8 @@
           // require less memory.  Don't pass the --no-gui-libs option
           // on as that option is not recognized by Octave.
 
-#if (defined (HAVE_OCTAVE_GUI) \
-     && ! defined (__WIN32__) || defined (__CYGWIN__))
+          start_gui = false;
           gui_libs = false;
-#endif
           file = octave_bindir + dir_sep_char + "octave-cli";
         }
       else if (! strcmp (argv[i], "--no-gui"))
@@ -436,10 +631,13 @@
           // if the --no-gui option is given, we may be asked to do some
           // plotting or ui* calls.
 
-#if (defined (HAVE_OCTAVE_GUI) \
-     && ! defined (__WIN32__) || defined (__CYGWIN__))
           start_gui = false;
-#endif
+          new_argv[k++] = argv[i];
+        }
+      else if (! strcmp (argv[i], "--silent") || ! strcmp (argv[i], "--quiet")
+               || ! strcmp (argv[i], "-q"))
+        {
+          warn_display = false;
           new_argv[k++] = argv[i];
         }
       else
@@ -448,6 +646,25 @@
 
   new_argv[k] = 0;
 
+  if (gui_libs || start_gui)
+    {
+      std::string display_check_err_msg;
+
+      if (! display_available (display_check_err_msg))
+        {
+          start_gui = false;
+          gui_libs = false;
+
+          file = octave_bindir + dir_sep_char + "octave-cli";
+
+          if (warn_display)
+            {
+              std::cerr << "octave: " << display_check_err_msg << std::endl;
+              std::cerr << "octave: disabiling GUI features" << std::endl;
+            }
+        }
+    }
+
 #if (defined (HAVE_OCTAVE_GUI) \
      && ! defined (__WIN32__) || defined (__CYGWIN__))
 
@@ -478,19 +695,31 @@
         }
       else
         {
-          // Parent.  Forward signals to the child while waiting for it
-          // to exit.
+          // Parent.  Forward signals to child while waiting for it to exit.
 
           int status;
 
-          while (1)
+          while (true)
             {
               WAITPID (gui_pid, &status, 0);
 
-              if (WIFEXITED (status))
+              if (caught_signal > 0)
                 {
-                  retval = WIFEXITED (status) ? WEXITSTATUS (status) : 127;
+                  int sig = caught_signal;
+
+                  caught_signal = -1;
 
+                  kill (gui_pid, sig);
+                }
+              else if (WIFEXITED (status))
+                {
+                  retval = WEXITSTATUS (status);
+                  break;
+                }
+              else if (WIFSIGNALLED (status))
+                {
+                  std::cerr << "octave exited with signal "
+                            << WTERMSIG (status) << std::endl;
                   break;
                 }
             }
@@ -501,6 +730,10 @@
 
 #else
 
+#if defined (__WIN32__) && ! defined (__CYGWIN__)
+  file += ".exe";
+  new_argv[0] = strsave (file.c_str ());
+#endif
   retval = octave_exec (file, new_argv);
 
 #endif
--- a/src/mkoctfile.in.cc	Tue Nov 05 12:27:42 2013 -0500
+++ b/src/mkoctfile.in.cc	Tue Nov 26 12:38:46 2013 -0500
@@ -96,10 +96,10 @@
 get_variable (const char *name, const string& defval)
 {
   const char *val = getenv (name);
-  if (val == NULL || val[0] == '\0')
+  if (val && *val)
+    return string (val);
+  else
     return defval;
-  else
-    return string (val);
 }
 
 static string
--- a/test/bug-38576.tst	Tue Nov 05 12:27:42 2013 -0500
+++ b/test/bug-38576.tst	Tue Nov 26 12:38:46 2013 -0500
@@ -10,7 +10,11 @@
 %!  r = eval ("ls -1;");
 %!endfunction
 
-%!assert (f1 (), 0);
-%!assert (f2 (), 0);
-%!assert (ischar (f3 ()), true);
-%!assert (f3 (1), 0);
+%!test
+%! ## Windows systems can't run "ls -1"
+%! if (! ispc ())
+%!   assert (f1 (), 0);
+%!   assert (f2 (), 0);
+%!   assert (ischar (f3 ()), true);
+%!   assert (f3 (1), 0);
+%! endif
--- a/test/build-sparse-tests.sh	Tue Nov 05 12:27:42 2013 -0500
+++ b/test/build-sparse-tests.sh	Tue Nov 26 12:38:46 2013 -0500
@@ -231,7 +231,7 @@
 
 gen_function() {
     if $preset; then
-	cat >>$TESTS <<EOF
+        cat >>$TESTS <<EOF
 ##
 ## test_sparse
 ##
@@ -243,7 +243,7 @@
 
 EOF
     else
-	cat >>$TESTS <<EOF
+        cat >>$TESTS <<EOF
 ##
 ## test_sprandom
 ##
--- a/test/ctor-vs-method/@parent/parent.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/test/ctor-vs-method/@parent/parent.m	Tue Nov 26 12:38:46 2013 -0500
@@ -6,9 +6,9 @@
     switch class (a)
       case 'parent'
         %% copy constructor
-	rot = a;
+        rot = a;
       otherwise
-	error ('type mismatch in parent constructor')
+        error ('type mismatch in parent constructor')
     end
   end
   __trace__ ('end parent/parent');
--- a/test/nest/recursive_nest2.m	Tue Nov 05 12:27:42 2013 -0500
+++ b/test/nest/recursive_nest2.m	Tue Nov 26 12:38:46 2013 -0500
@@ -8,9 +8,9 @@
     v = Y;
     function BB (m)
       if m > 0
-	Y = Y + 1;
-	BB(m - 1);
-	C;
+        Y = Y + 1;
+        BB(m - 1);
+        C;
       end
     endfunction
   endfunction
--- a/test/system.tst	Tue Nov 05 12:27:42 2013 -0500
+++ b/test/system.tst	Tue Nov 26 12:38:46 2013 -0500
@@ -47,7 +47,6 @@
 %! assert (__prog_output_assert__ ("ok"));
 
 %!error <Invalid call to sleep> sleep ()
-
 %!error <Invalid call to sleep> sleep (1, 2)
 
 %!test
@@ -56,7 +55,6 @@
 %! assert (__prog_output_assert__ ("ok"));
 
 %!error <Invalid call to usleep> usleep ()
-
 %!error <Invalid call to usleep> usleep (1, 2)
 
 %!test
@@ -78,7 +76,6 @@
 %! endif
 
 %!error <Invalid call to rename> rename ()
-
 %!error <Invalid call to rename> rename ("foo", "bar", 1)
 
 %!test
@@ -92,7 +89,6 @@
 %! endif
 
 %!error <Invalid call to unlink> unlink ()
-
 %!error <Invalid call to unlink> unlink ("foo", 1)
 
 %!test
@@ -100,7 +96,6 @@
 %! assert (iscell (files) && status == 0 && strcmp (msg, ""));
 
 %!error <Invalid call to readdir> readdir ()
-
 %!error <Invalid call to readdir> readdir ("foo", 1)
 
 %!test
@@ -112,9 +107,7 @@
 %! assert ((e1 && strcmp (s2.modestr(1), "d") && e3 && e4 < 0));
 
 %!error <Invalid call to mkdir> mkdir ()
-
 %!error <Invalid call to mkdir> mkdir ("foo", 1, 2)
-
 %!error <Invalid call to rmdir> rmdir ()
 
 %!test
@@ -124,27 +117,29 @@
 %! confirm_recursive_rmdir (crr);
 
 %!test
-%! orig_umask = umask (0);
-%! nm = tmpnam ();
-%! id = fopen (nm, "wb");
-%! s1 = stat (nm);
-%! fclose (id);
-%! unlink (nm);
+%! ## Test makes no sense on Windows systems
+%! if (isunix () || ismac ())
+%!   orig_umask = umask (0);
+%!   nm = tmpnam ();
+%!   id = fopen (nm, "wb");
+%!   s1 = stat (nm);
+%!   fclose (id);
+%!   unlink (nm);
 %!
-%! umask (777);
-%! nm = tmpnam ();
-%! id = fopen (nm, "wb");
-%! s2 = stat (nm);
-%! fclose (id);
-%! unlink (nm);
+%!   umask (777);
+%!   nm = tmpnam ();
+%!   id = fopen (nm, "wb");
+%!   s2 = stat (nm);
+%!   fclose (id);
+%!   unlink (nm);
 %!
-%! assert (deblank (s1.modestr), "-rw-rw-rw-");
-%! assert (deblank (s2.modestr), "----------");
-%! ## Restore original umask value
-%! umask (orig_umask);
+%!   assert (deblank (s1.modestr), "-rw-rw-rw-");
+%!   assert (deblank (s2.modestr), "----------");
+%!   ## Restore original umask value
+%!   umask (orig_umask);
+%! endif
 
 %!error <Invalid call to umask> umask ()
-
 %!error <Invalid call to umask> umask (1, 2)
 
 %!test
@@ -164,7 +159,6 @@
 %! && ischar (msg)));
 
 %!error <Invalid call to stat> stat ()
-
 %!error <Invalid call to stat> stat ("foo", 1)
 
 %!test
@@ -184,13 +178,11 @@
 %! && ischar (msg)));
 
 %!error <Invalid call to lstat> lstat ()
-
 %!error <Invalid call to lstat> lstat ("foo", 1)
 
 %!assert (iscell (glob ([filesep "*"])))
 
 %!error <Invalid call to glob> glob ()
-
 %!error <Invalid call to glob> glob ("foo", 1)
 
 %!test
@@ -202,25 +194,21 @@
 %! && fnmatch ("x???y", {"xabcy"; "xy"}) == [1; 0]));
 
 %!error <Invalid call to fnmatch> fnmatch ()
-
 %!error <Invalid call to fnmatch> fnmatch ("foo", "bar", 3)
 
 %!assert (ischar (file_in_path (path (), "date.m")))
 
 %!error <invalid option> file_in_path ("foo", "bar", 1)
-
 %!error <Invalid call to file_in_path> file_in_path ()
-
 %!error <Invalid call to file_in_path> file_in_path ("foo", "bar", "baz", "ooka")
 
 %!testif HAVE_GETPWUID
 %! x = getpwuid (getuid ());
-%! assert ((strcmp (x.dir, tilde_expand ("~"))
-%! && strcmp (x.dir, tilde_expand (sprintf ("~%s", x.name)))
-%! && strcmp ("foobar", tilde_expand ("foobar"))));
+%! assert (x.dir, tilde_expand ("~"));
+%! assert (x.dir, tilde_expand (sprintf ("~%s", x.name)));
+%! assert ("foobar", tilde_expand ("foobar"));
 
 %!error <Invalid call to tilde_expand> tilde_expand ()
-
 %!error <Invalid call to tilde_expand> tilde_expand ("str", 2)
 
 %!testif HAVE_GETPGRP
@@ -256,7 +244,6 @@
 %!assert (getenv ("HOME"), tilde_expand ("~"))
 
 %!error <Invalid call to getenv> getenv ()
-
 %!error <Invalid call to getenv> getenv ("foo", 1)
 
 %!test
@@ -270,7 +257,6 @@
 %! assert (getenv ("foobar"), "baz");
 
 %!error <Invalid call to putenv> putenv ()
-
 %!error <Invalid call to putenv> putenv ("foo", "bar", 1)
 
 %!test
@@ -319,7 +305,6 @@
 %! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid);
 
 %!error <Invalid call to getpwuid> getpwuid ()
-
 %!error <Invalid call to getpwuid> getpwuid (1, 2)
 
 %!testif HAVE_GETPWNAM
@@ -329,7 +314,6 @@
 %! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid);
 
 %!error <Invalid call to getpwnam> getpwnam ()
-
 %!error <Invalid call to getpwnam> getpwnam ("foo", 1)
 
 %!testif HAVE_SETPWENT
@@ -340,7 +324,6 @@
 %! assert (strcmp (x.name, y.name) && x.uid == y.uid && x.gid == y.gid);
 
 %!error <Invalid call to setpwent> setpwent (1)
-
 %!error <Invalid call to endpwent> endpwent (1)
 
 %!testif HAVE_GETGRENT
@@ -361,7 +344,6 @@
 %! assert (strcmp (x.name, y.name) && x.gid == y.gid);
 
 %!error <Invalid call to getgrgid> getgrgid ()
-
 %!error <Invalid call to getgrgid> getgrgid (1, 2)
 
 %!testif HAVE_GETGRNAM
@@ -371,7 +353,6 @@
 %! assert (strcmp (x.name, y.name) && x.gid == y.gid);
 
 %!error <Invalid call to getgrnam> getgrnam ()
-
 %!error <Invalid call to getgrnam> getgrnam ("foo", 1)
 
 %!testif HAVE_SETGRENT
@@ -382,7 +363,6 @@
 %! assert (strcmp (x.name, y.name) && x.gid == y.gid);
 
 %!error <Invalid call to setgrent> setgrent (1)
-
 %!error <Invalid call to endgrent> endgrent (1)
 
 %!assert (isieee () == 1 || isieee () == 0)