varargout is now list() by default 36/20836/3
Samuel GOUGEON [Tue, 12 Feb 2019 05:20:20 +0000 (06:20 +0100)]
  http://bugzilla.scilab.org/1805

  CHANGES updated @ https://codereview.scilab.org/20827

Change-Id: I206c350371f7c91d43c5d7d1de40454da148f364

scilab/modules/core/tests/nonreg_tests/bug_1805.dia.ref [deleted file]
scilab/modules/core/tests/nonreg_tests/bug_1805.tst
scilab/modules/functions/help/en_US/varargin.xml
scilab/modules/functions/help/en_US/varargout.xml
scilab/modules/functions/help/ja_JP/varargin.xml
scilab/modules/functions/help/ja_JP/varargout.xml
scilab/modules/functions/help/pt_BR/varargin.xml
scilab/modules/functions/help/pt_BR/varargout.xml
scilab/modules/functions/help/ru_RU/varargin.xml
scilab/modules/functions/help/ru_RU/varargout.xml

diff --git a/scilab/modules/core/tests/nonreg_tests/bug_1805.dia.ref b/scilab/modules/core/tests/nonreg_tests/bug_1805.dia.ref
deleted file mode 100644 (file)
index 7f0fb37..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-//<-- CLI SHELL MODE -->
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2005-2008 - INRIA - Serge Steer
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- Non-regression test for bug 1805 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=1805
-//
-// <-- Short Description -->
-//    avaragout oddities
-// <-- ENGLISH IMPOSED -->
-funcprot(0);
-function varargout=test(),varargout="";a=1,endfunction
-if execstr("test()","errcatch")==0 then bugmes();quit;end
-function varargout=test();a=1,endfunction
-if execstr("test()","errcatch")==0 then bugmes();quit;end
index 6bded5f..09fbc6c 100644 (file)
@@ -2,26 +2,26 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2005-2008 - INRIA - Serge Steer
+// Copyright (C) 2019 - Samuel GOUGEON
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
 // <-- Non-regression test for bug 1805 -->
 //
 // <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=1805
+// http://bugzilla.scilab.org/1805
 //
 // <-- Short Description -->
-//    avaragout oddities
-
-// <-- ENGLISH IMPOSED -->
+//    varargout must be a list. It is initialized to list() by default
 
 funcprot(0);
 
-function varargout=test(),varargout="";a=1,endfunction
-if execstr("test()","errcatch")==0 then pause,end
-
-
-function varargout=test();a=1,endfunction
-if execstr("test()","errcatch")==0 then pause,end
+function varargout = test(), varargout = ""; a = 1, endfunction
+assert_checkfalse(execstr("test()","errcatch")==0);
 
+function varargout = test(); a = 1, endfunction
+assert_checkequal(execstr("test()","errcatch"), 0);
index 2cfcd60..049d3fa 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="en">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="en">
     <refnamediv>
         <refname>varargin</refname>
-        <refpurpose>variable number of arguments in an input argument
-            list
+        <refpurpose>variable number of arguments in an input argument list
         </refpurpose>
     </refnamediv>
     <refsection>
@@ -40,7 +42,8 @@
         <para>
             <literal>function y = ex(varargin)</literal> may be called with any
             number of input arguments. Within function <literal>ex</literal> input
-            arguments may be retrieved in <literal>varargin(i)</literal>, <literal>i=1:length(varargin)</literal>.
+            arguments may be retrieved in <literal>varargin(i)</literal>,
+            <literal>i=1:length(varargin)</literal>.
         </para>
         <para>
             If it is not the last input argument of a function,
     <refsection>
         <title>Remark</title>
         <para>
-            Named argument syntax like <literal>foo(...,key=value)</literal> is
-            incompatible with the use of <literal>varargin</literal>. The reason is that the names (i.e.
-            keys) associated with values are not stored in the <literal>varargin</literal> list. Consider
-            for instance:
+            Named argument syntax like <literal>foo(...,key=value)</literal> is incompatible
+            with the use of <literal>varargin</literal>. The reason is that the names (i.e.
+            keys) associated with values are not stored in the <literal>varargin</literal> list.
+            Consider for instance:
         </para>
         <programlisting role="no-scilab-exec"><![CDATA[
 function foo(varargin)
@@ -94,6 +97,9 @@ exampl(1,l(2:3))
         <title>See also</title>
         <simplelist type="inline">
             <member>
+                <link linkend="varargout">varargout</link>
+            </member>
+            <member>
                 <link linkend="argn">argn</link>
             </member>
             <member>
@@ -102,9 +108,6 @@ exampl(1,l(2:3))
             <member>
                 <link linkend="list">list</link>
             </member>
-            <member>
-                <link linkend="varargout">varargout</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 119cd89..338b5f7 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="en">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="en">
     <refnamediv>
         <refname>varargout</refname>
-        <refpurpose>variable numbers of arguments in an output argument
-            list
+        <refpurpose>arbitrarily long list of output arguments
         </refpurpose>
     </refnamediv>
     <refsection>
         <title>Description</title>
-        <para>A function whose output argument list contains
-            <literal>varargout</literal> must be called with more output arguments
-            than indicated in the output argument list. The calling arguments passed
-            form <literal>varargout</literal> keyword onwards are extracted out of the
-            <literal>varargout</literal> list defined in the function.
+        <para>A function whose output argument list ends with
+            <literal>varargout</literal> may be called with more output arguments
+            than indicated in the output argument list. The Left-Hand-Side output arguments passed
+            at calling time from the <literal>varargout</literal> keyword onwards are extracted
+            out of the <literal>varargout</literal> list defined in the function.
         </para>
         <para>
             <literal>varargout = function ex()</literal> may be called with any
             the function as well as <literal>varargout(i)</literal>.
         </para>
         <para>
-            The actual total number of output argument is given <code>argn(1)</code>.
-        </para>
-    </refsection>
-    <refsection>
-        <title>Remark</title>
-        <para>
-            The <literal>varargout</literal> variable must be created within the
-            function and assigned to a <link linkend="list">list</link>. If <literal>varargout</literal>
-            is the only formal output variable the list must contain at least one
-            entry.
+            <literal>argn(1)</literal> returns the actual total number of output arguments.
         </para>
+        <note>
+            <literal>varargout</literal> is by default initialized to <literal>list()</literal>.
+        </note>
     </refsection>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-function varargout=exampl()
-  varargout=list(1,2,3,4)
+function varargout = exampl()
+    varargout = list(1,2,3,4)
 endfunction
 
-x=exampl()
-[x,y]=exampl()
-[x,y,z]=exampl()
+x = exampl()
+[x, y]    = exampl()
+[x, y, z] = exampl()
 
 function [a,b,varargout]=exampl1()
-  a='first'
-  b='second'
-  varargout=list(1,2,3,4)
+    a = 'first'
+    b = 'second'
+    varargout = list(1,2,3,4)
 endfunction
 
 exampl1()
-[a,b]=exampl1()
-[a,b,c]=exampl1()
+[a, b]  = exampl1()
+[a,b,c] = exampl1()
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -90,4 +86,15 @@ exampl1()
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    varargout is now initialized to list() by default.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 46f8fa2..4531f06 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="ja">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="ja">
     <refnamediv>
         <refname>varargin</refname>
         <refpurpose>入力引数リストの引数の数を可変にする</refpurpose>
@@ -95,6 +98,9 @@ exampl(1,l(2:3))
         <title>参照</title>
         <simplelist type="inline">
             <member>
+                <link linkend="varargout">varargout</link>
+            </member>
+            <member>
                 <link linkend="argn">argn</link>
             </member>
             <member>
@@ -103,9 +109,6 @@ exampl(1,l(2:3))
             <member>
                 <link linkend="list">list</link>
             </member>
-            <member>
-                <link linkend="varargout">varargout</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index ceb7669..189e347 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="ja">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="ja">
     <refnamediv>
         <refname>varargout</refname>
         <refpurpose>出力変数リストの引数の数を可変にする</refpurpose>
         <para>
             出力引数の実際の総数は,<code>argn(1)</code>で取得できます.
         </para>
-    </refsection>
-    <refsection>
-        <title>注記</title>
-        <para>
-            <literal>varargout</literal> 変数は関数内で作成され,
-            <link linkend="list">list</link>に代入される必要があります.
-            <literal>varargout</literal> が唯一の形式上の出力変数の場合,
-            リストには最低でも一つのエントリを含む必要があります.
-        </para>
+        <note>
+            <literal>varargout</literal> is by default initialized to <literal>list()</literal>.
+        </note>
     </refsection>
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-function varargout=exampl()
-  varargout=list(1,2,3,4)
+function varargout = exampl()
+    varargout = list(1,2,3,4)
 endfunction
-x=exampl()
-[x,y]=exampl()
-[x,y,z]=exampl()
+
+x = exampl()
+[x, y]    = exampl()
+[x, y, z] = exampl()
+
 function [a,b,varargout]=exampl1()
-  a='first'
-  b='second'
-  varargout=list(1,2,3,4)
+    a = 'first'
+    b = 'second'
+    varargout = list(1,2,3,4)
 endfunction
+
 exampl1()
-[a,b]=exampl1()
-[a,b,c]=exampl1()
+[a, b]  = exampl1()
+[a,b,c] = exampl1()
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -90,4 +90,15 @@ exampl1()
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    varargout is now initialized to list() by default.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index e6ff107..c6fb981 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="pt">
     <refnamediv>
         <refname>varargin</refname>
         <refpurpose>variável do número de argumentos de saída em uma lista de
@@ -54,7 +57,8 @@
     <refsection>
         <title>Observações</title>
         <para>
-            Sintaxe de argumento nomeada, como <literal>foo(...,key=value)</literal>, é incompatível com o uso de <literal>varargin</literal>. A razão é que os nomes
+            Sintaxe de argumento nomeada, como <literal>foo(...,key=value)</literal>,
+            é incompatível com o uso de <literal>varargin</literal>. A razão é que os nomes
             (i.e. keys) associados aos valores value não são armazenados na lista
             <literal>varargin</literal>. Considere por exemplo:
         </para>
@@ -91,6 +95,9 @@ exampl(1,l(2:3))
         <title>Ver Também</title>
         <simplelist type="inline">
             <member>
+                <link linkend="varargout">varargout</link>
+            </member>
+            <member>
                 <link linkend="argn">argn</link>
             </member>
             <member>
@@ -99,9 +106,6 @@ exampl(1,l(2:3))
             <member>
                 <link linkend="list">list</link>
             </member>
-            <member>
-                <link linkend="varargout">varargout</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 46e404d..adf4a74 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="pt">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="pt">
     <refnamediv>
         <refname>varargout</refname>
         <refpurpose>variável do número de argumentos de saída em uma lista de
             atribuídas na função tanto quanto <literal>varargout(i)</literal>.
         </para>
         <para>
-            O número total real de argumentos de saída é dado por <code>argn(1)</code>
-        </para>
-    </refsection>
-    <refsection>
-        <title>Observação</title>
-        <para>
-            A variável <literal>varargout</literal> deve ser criada dentro de
-            uma função e atribuída a uma <link linkend="list">list</link>. Se
-            <literal>varargout</literal> for a única variável de saída formal, a lista deve conter pelo
-            menos uma entrada.
+            O número total real de argumentos de saída é dado por <literal>argn(1)</literal>.
         </para>
+        <note>
+            <literal>varargout</literal> is by default initialized to <literal>list()</literal>.
+        </note>
     </refsection>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-function varargout=exampl()
-  varargout=list(1,2,3,4)
+function varargout = exampl()
+    varargout = list(1,2,3,4)
 endfunction
 
-x=exampl()
-[x,y]=exampl()
-[x,y,z]=exampl()
+x = exampl()
+[x, y]    = exampl()
+[x, y, z] = exampl()
 
 function [a,b,varargout]=exampl1()
-  a='first'
-  b='second'
-  varargout=list(1,2,3,4)
+    a = 'first'
+    b = 'second'
+    varargout = list(1,2,3,4)
 endfunction
 
 exampl1()
-[a,b]=exampl1()
-[a,b,c]=exampl1()
+[a, b]  = exampl1()
+[a,b,c] = exampl1()
  ]]></programlisting>
     </refsection>
     <refsection>
@@ -91,4 +88,15 @@ exampl1()
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    varargout is now initialized to list() by default.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 8fb89b6..587f3cf 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="ru">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargin" xml:lang="ru">
     <refnamediv>
         <refname>varargin</refname>
         <refpurpose>
@@ -26,7 +29,8 @@
             Функция, чьим последним входным аргументом является
             <literal>varargin</literal>, может быть вызвана с
             бОльшим числом входных аргументов, чем указано в списке
-            входных аргументов. Аргументы вызова, переданные внутрь в форме ключевого слова <literal>varargin</literal> затем могут быть получены внутри функции в
+            входных аргументов. Аргументы вызова, переданные внутрь в форме ключевого слова
+            <literal>varargin</literal> затем могут быть получены внутри функции в
             списке с именем <literal>varargin</literal>.
         </para>
         <para>
     <refsection>
         <title>Примечание</title>
         <para>
-            Синтаксис именованных аргументов, такой как <literal>foo(...,key=value)</literal>, не совместим с использованием <literal>varargin</literal>. Причина в том, что имена (то есть ключи), связанные со значениями, не хранятся в списке <literal>varargin</literal>. Рассмотрим пример:
+            Синтаксис именованных аргументов, такой как <literal>foo(...,key=value)</literal>,
+            не совместим с использованием <literal>varargin</literal>. Причина в том, что имена
+            (то есть ключи), связанные со значениями, не хранятся в списке
+            <literal>varargin</literal>. Рассмотрим пример:
         </para>
         <programlisting role="no-scilab-exec"><![CDATA[
 function foo(varargin)
@@ -97,6 +104,9 @@ exampl(1,l(2:3))
         <title>Смотрите также</title>
         <simplelist type="inline">
             <member>
+                <link linkend="varargout">varargout</link>
+            </member>
+            <member>
                 <link linkend="argn">argn</link>
             </member>
             <member>
@@ -105,9 +115,6 @@ exampl(1,l(2:3))
             <member>
                 <link linkend="list">list</link>
             </member>
-            <member>
-                <link linkend="varargout">varargout</link>
-            </member>
         </simplelist>
     </refsection>
 </refentry>
index 926b204..787ee50 100644 (file)
  * along with this program.
  *
  -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="ru">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+          xmlns:scilab="http://www.scilab.org" xml:id="varargout" xml:lang="ru">
     <refnamediv>
         <refname>varargout</refname>
         <refpurpose>
     <refsection>
         <title>Описание</title>
         <para>
-            Функция, чей список выходных аргументов содержит <literal>varargout</literal> должен вызываться с бОльшим числом аргументов, чем указано в списке выходных аргументов. Аргументы вызова, переданные внутрь в форме ключевого слова <literal>varargout</literal>, извлекаются из списка <literal>varargout</literal>, определённого внутри функции.
+            Функция, чей список выходных аргументов содержит <literal>varargout</literal>
+            должен вызываться с бОльшим числом аргументов, чем указано в списке выходных аргументов.
+            Аргументы вызова, переданные внутрь в форме ключевого слова <literal>varargout</literal>,
+            извлекаются из списка <literal>varargout</literal>, определённого внутри функции.
         </para>
         <para>
-            <literal>varargout = function ex()</literal> может вызываться с любым количеством выходных аргументов. Внутри функции <literal>ex</literal> выходные аргументы могут храниться в <literal>varargout(i)</literal>.
+            <literal>varargout = function ex()</literal> может вызываться с любым количеством
+            выходных аргументов. Внутри функции <literal>ex</literal> выходные аргументы могут
+            храниться в <literal>varargout(i)</literal>.
         </para>
         <para>
-            Может также использоваться <literal>[X1,...,Xn,varargout] = function ex()</literal>. В этом случае переменные <literal>Xi</literal> и <literal>varargout(i)</literal> должны быть определены в функции.
+            Может также использоваться <literal>[X1,...,Xn,varargout] = function ex()</literal>.
+            В этом случае переменные <literal>Xi</literal> и <literal>varargout(i)</literal>
+            должны быть определены в функции.
         </para>
         <para>
             Фактическое общее количество выходных аргументов даётся с помощью <code>argn(1)</code>.
         </para>
-    </refsection>
-    <refsection>
-        <title>Примечание</title>
-        <para>
-            Переменная <literal>varargout</literal> должна быть создана внутри функции и определена в виде <link linkend="list">списка</link>. Если <literal>varargout</literal> является единственной формальной выходной переменой, то список должен содержать хотя бы один элемент.
-        </para>
+        <note>
+            <literal>varargout</literal> is by default initialized to <literal>list()</literal>.
+        </note>
     </refsection>
     <refsection>
         <title>Примеры</title>
         <programlisting role="example"><![CDATA[
-function varargout=exampl()
-  varargout=list(1,2,3,4)
+function varargout = exampl()
+    varargout = list(1,2,3,4)
 endfunction
 
-x=exampl()
-[x,y]=exampl()
-[x,y,z]=exampl()
+x = exampl()
+[x, y]    = exampl()
+[x, y, z] = exampl()
 
 function [a,b,varargout]=exampl1()
-  a='first'
-  b='second'
-  varargout=list(1,2,3,4)
+    a = 'first'
+    b = 'second'
+    varargout = list(1,2,3,4)
 endfunction
 
 exampl1()
-[a,b]=exampl1()
-[a,b,c]=exampl1()
+[a, b]  = exampl1()
+[a,b,c] = exampl1()
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>Смотрите также</title>
         <simplelist type="inline">
             <member>
+                <link linkend="varargin">varargin</link>
+            </member>
+            <member>
                 <link linkend="argn">argn</link>
             </member>
             <member>
@@ -75,9 +85,17 @@ exampl1()
             <member>
                 <link linkend="list">list</link>
             </member>
-            <member>
-                <link linkend="varargin">varargin</link>
-            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0.0</revnumber>
+                <revdescription>
+                    varargout is now initialized to list() by default.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>