[time] calendar() uses argn(1)==0 instead of 'display' 42/21242/4
Samuel GOUGEON [Tue, 21 Jan 2020 12:03:40 +0000 (13:03 +0100)]
  Since since a few days we can use argn(1)==0,
  we can avoid introducing 'display' option.

  Strangely, for me the unit test now fails on Windows with a code 1 exit.

Change-Id: Ib9d49b063c06a46a890c30d04268b2605686cb47

scilab/modules/time/help/en_US/calendar.xml
scilab/modules/time/help/fr_FR/calendar.xml
scilab/modules/time/help/ja_JP/calendar.xml
scilab/modules/time/macros/calendar.sci
scilab/modules/time/tests/unit_tests/calendar.dia.ref
scilab/modules/time/tests/unit_tests/calendar.tst

index ee04085..054c19f 100644 (file)
@@ -24,8 +24,8 @@
     <refsynopsisdiv>
         <title>Syntax</title>
         <synopsis>
-            calendar display;
-            calendar(y, m, "display");
+            calendar
+            calendar(y, m)
             c = calendar()
             c = calendar(y,m)
         </synopsis>
     <refsection>
         <title>Description</title>
         <para>
-            <emphasis role="bold">calendar display</emphasis>; displays in the console the
+            <emphasis role="bold">calendar</emphasis> displays in the console the
             calendar of the current month.
         </para>
         <para>
-            <emphasis role="bold">calendar(y,m,"display")</emphasis>; displays in the console the
+            <emphasis role="bold">calendar(y, m)</emphasis> displays in the console the
             calendar of the month <varname>m</varname> for the year <varname>y</varname>.
         </para>
         <para>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-calendar
+c = calendar()
  ]]></programlisting>
       <screen><![CDATA[
---> calendar
- ans  =
-       ans(1)
+--> c = calendar()
+ c  =
+       c(1)
  Dec 2019
 
-       ans(2)
+       c(2)
  Mon  Tue  Wed  Thu  Fri  Sat  Sun
 
-       ans(3)
+       c(3)
    0.    0.    0.    0.    0.    0.    1.
    2.    3.    4.    5.    6.    7.    8.
    9.    10.   11.   12.   13.   14.   15.
@@ -107,10 +107,10 @@ calendar
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar display;
+calendar
  ]]></programlisting>
       <screen><![CDATA[
---> calendar display;
+--> calendar
 
              Dec 2019
  Mon  Tue  Wed  Thu  Fri  Sat  Sun
@@ -123,10 +123,10 @@ calendar display;
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar(1973, 8, "display");
+calendar(1973, 8)
  ]]></programlisting>
       <screen><![CDATA[
---> calendar(1973, 8, "display");
+--> calendar(1973, 8)
  
              Aug 1973
  Mon  Tue  Wed  Thu  Fri  Sat  Sun
@@ -157,7 +157,7 @@ calendar(1973, 8, "display");
             <revision>
                 <revnumber>6.1</revnumber>
                 <revdescription>
-                    "display" option added.
+                    Formated display in the console added.
                 </revdescription>
             </revision>
         </revhistory>
index 1c957fe..12706b5 100644 (file)
@@ -24,8 +24,8 @@
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
         <synopsis>
-            calendar display;
-            calendar(y, m, "display");
+            calendar
+            calendar(y, m)
             c = calendar()
             c = calendar(y,m)
         </synopsis>
     <refsection>
         <title>Description</title>
         <para>
-            <emphasis role="bold">calendar display</emphasis>; affiche dans la console le
+            <emphasis role="bold">calendar</emphasis> affiche dans la console le
             calendrier du mois en cours.
             Les semaines commencent le lundi et se terminent le dimanche.
         </para>
         <para>
-            <emphasis role="bold">calendar(y,m,"display")</emphasis>; affiche dans la console
+            <emphasis role="bold">calendar(y, m)</emphasis> affiche dans la console
             le calendrier du mois <varname>m</varname> pour l'année <varname>y</varname>.
         </para>
         <para>
     <refsection>
         <title>Exemples</title>
         <programlisting role="example"><![CDATA[
-calendar
+c = calendar()
  ]]></programlisting>
       <screen><![CDATA[
---> calendar
- ans  =
-       ans(1)
+--> c = calendar()
+ c  =
+       c(1)
  Déc. 2019
 
-       ans(2)
+       c(2)
  Lun  Mar  Mer  Jeu  Ven  Sam  Dim
 
-       ans(3)
+       c(3)
    0.    0.    0.    0.    0.    0.    1.
    2.    3.    4.    5.    6.    7.    8.
    9.    10.   11.   12.   13.   14.   15.
@@ -108,10 +108,10 @@ calendar
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar display;
+calendar
  ]]></programlisting>
       <screen><![CDATA[
---> calendar display;
+--> calendar
 
             Déc. 2019
  Lun  Mar  Mer  Jeu  Ven  Sam  Dim
@@ -124,10 +124,10 @@ calendar display;
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar(1973, 8, "display");
+calendar(1973, 8)
  ]]></programlisting>
       <screen><![CDATA[
---> calendar(1973, 8, "display");
+--> calendar(1973, 8)
 
          Août 1973
  Lun  Mar  Mer  Jeu  Ven  Sam  Dim
@@ -158,7 +158,7 @@ calendar(1973, 8, "display");
             <revision>
                 <revnumber>6.1</revnumber>
                 <revdescription>
-                    Option "display" ajoutée.
+                    Ajout de l'affichage formaté dans la console.
                 </revdescription>
             </revision>
         </revhistory>
index ef7e201..88fa942 100644 (file)
@@ -24,8 +24,8 @@
     <refsynopsisdiv>
         <title>呼び出し手順</title>
         <synopsis>
-            calendar display;
-            calendar(y, m, "display");
+            calendar
+            calendar(y, m)
             c = calendar()
             c = calendar(y,m)
         </synopsis>
     </refsection>
     <refsection>
         <title>説明</title>
-        <para>c = calendar() は現在の月に関するカレンダーを含むリストを返します.
-            週は月曜日に始まり、日曜日に終わる.
-        </para>
-        <para>c = calendar(y,m), ただし, y および m は整数で, 指定した年の
-            指定した月のカレンダーを返します.
-        </para>
         <para>
-            <emphasis role="bold">calendar display</emphasis>; displays in the console the
+            <emphasis role="bold">calendar</emphasis> displays in the console the
             calendar of the current month.
         </para>
         <para>
-            <emphasis role="bold">calendar(y,m,"display")</emphasis>; displays in the console the
+            <emphasis role="bold">calendar(y, m)</emphasis> displays in the console the
             calendar of the month <varname>m</varname> for the year <varname>y</varname>.
         </para>
+        <para>c = calendar() は現在の月に関するカレンダーを含むリストを返します.
+            週は月曜日に始まり、日曜日に終わる.
+        </para>
+        <para>c = calendar(y,m), ただし, y および m は整数で, 指定した年の
+            指定した月のカレンダーを返します.
+        </para>
     </refsection>
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-calendar
+c = calendar()
  ]]></programlisting>
       <screen><![CDATA[
---> calendar
- ans  =
-       ans(1)
+--> c = calendar()
+ c  =
+       c(1)
  12月 2019
 
-       ans(2)
+       c(2)
  月   火   水    木   金    土   日
 
-       ans(3)
+       c(3)
    0.    0.    0.    0.    0.    0.    1. 
    2.    3.    4.    5.    6.    7.    8. 
    9.    10.   11.   12.   13.   14.   15.
@@ -105,10 +105,10 @@ calendar
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar display;
+calendar
  ]]></programlisting>
       <screen><![CDATA[
---> calendar display
+--> calendar
  
              12月 2019
  月   火   水    木   金    土   日
@@ -121,10 +121,10 @@ calendar display;
 ]]></screen>
         <para/>
         <programlisting role="example"><![CDATA[
-calendar(1973, 8, "display");
+calendar(1973, 8)
  ]]></programlisting>
       <screen><![CDATA[
---> calendar(1973, 8, "display");
+--> calendar(1973, 8)
  
              8月 1973
  月   火   水    木   金    土   日
@@ -155,7 +155,7 @@ calendar(1973, 8, "display");
             <revision>
                 <revnumber>6.1</revnumber>
                 <revdescription>
-                    "display" option added.
+                    Formated display in the console added.
                 </revdescription>
             </revision>
         </revhistory>
index 4423d8d..c8b0af3 100644 (file)
 // along with this program.
 //------------------------------------------------------------------------
 
-function listcal = calendar(varargin)
-    lhs = argn(1);
-    rhs = argn(2);
+function varargout = calendar(varargin)
 
     c = [0,0,0];
-    
-    // Looking for the "display" keyword
-    display = %F
-    if rhs > 0 then
-        v = varargin($)
-        if type(v)==10 & v(1)==part("display",1:length(v))
-            display = %T
-            varargin($) = null()
-            rhs = rhs-1
-            break
-        end
-    end
 
-    select rhs
+    select argn(2)
     case 0
         ct = getdate();
         c = [ct(1),ct(2),1]
@@ -47,17 +33,13 @@ function listcal = calendar(varargin)
         end
         if (M < 1) | (M > 12) then
             msg = gettext("%s: Argument #%d: Must be in the interval [%d, %d].\n")
-            error(msprintf(msg, "calendar", 1, 12));
+            error(msprintf(msg, "calendar", 2, 1, 12));
         end
         c = [Y, M, 1];
         break
     else
         msg = gettext("%s: Wrong number of input arguments: %d or %d expected.\n")
-        if display
-            error(msprintf(msg, "calendar", 1, 3));
-        else
-            error(msprintf(msg, "calendar", 0, 2));
-        end
+        error(msprintf(msg, "calendar", 0, 2));
     end
 
 
@@ -80,7 +62,7 @@ function listcal = calendar(varargin)
     //!\\ Glyphs for ja, zh, .. are not monospaced, even in the Monospaced font
     // .po translations have been tuned and tested for alignments with Monospaced 12.
     Title = sprintf("%s %d", month, c(1))
-    if display then
+    if ~argn(1) then
         k = vectorfind(cal, zeros(1,7), "r")
         cal(k,:) = []
         t = matrix(msprintf("%d\n",cal(:)), -1, 7)
@@ -89,8 +71,7 @@ function listcal = calendar(varargin)
         Title = blanks((length(t(2))-length(Title))/2) + Title
         t = strsubst(["" ; Title ; dayNames ; t], " ", ascii(160))  // non-breakable spaces
         mprintf(" %s\n", t)
-        listcal = [];
     else
-        listcal = list(Title, dayNames, cal);
+        varargout = list(list(Title, dayNames, cal));
     end
 endfunction
index 44a04b5..802e5d6 100644 (file)
@@ -16,7 +16,7 @@ cal_ref   = [0,0,0,1,2,3,4;5,6,7,8,9,10,11;12,13,14,15,16,17,18;19,20,21,22,23,2
 assert_checkequal(cal(1), title_ref);
 assert_checkequal(cal(2), week_ref);
 assert_checkequal(cal(3), cal_ref);
-calendar(2019, 12, "display");
+calendar(2019, 12)
  
              Dec 2019
  Mon  Tue  Wed  Thu  Fri  Sat  Sun
index ae1a096..a6c3db9 100644 (file)
@@ -23,4 +23,4 @@ assert_checkequal(cal(1), title_ref);
 assert_checkequal(cal(2), week_ref);
 assert_checkequal(cal(3), cal_ref);
 
-calendar(2019, 12, "display");
+calendar(2019, 12)