2010 => 2011
[scilab.git] / scilab / modules / core / src / c / banier.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA
4  * Copyright (C) Calixte DENIZET - 2010
5  * Copyright (C) DIGITEO - 2010 - Allan CORNET
6  *
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at
11  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  */
14 #include <math.h>
15 #include <string.h>
16 #include "version.h"
17 #include "sciprint.h"
18 #include "banier.h"
19 #include "MALLOC.h"
20 #include "sciprint.h"
21 #include "localization.h"
22 #include "charEncoding.h"
23 /*--------------------------------------------------------------------------*/
24 static char *line = "        ___________________________________________        ";
25 /*--------------------------------------------------------------------------*/
26 static void centerLine(char *str);
27 static void centerPrint(char *str);
28 /*--------------------------------------------------------------------------*/
29 void banner(void)
30 {
31     sciprint("%s\n",line);
32
33     centerPrint(SCI_VERSION_STRING);
34     sciprint("\n\n");
35
36     centerPrint(_("Consortium Scilab (DIGITEO)\n"));
37     centerPrint(_("Copyright (c) 1989-2011 (INRIA)\n"));
38     centerPrint(_("Copyright (c) 1989-2007 (ENPC)\n"));
39
40     sciprint("%s\n",line);
41 }
42 /*--------------------------------------------------------------------------*/
43 static void centerLine(char *str)
44 {
45     int i = 0, start = 0;
46     wchar_t *wstr = to_wide_string(str);
47     
48     if (wstr)
49     {
50         char *whites = NULL;
51         start = (int)(floor((double)(strlen(line)/2)) - floor((double)(((int)wcslen(wstr) - 1)/2)));
52         FREE(wstr);
53         whites = (char*)MALLOC(sizeof(char) * (start + 1));
54         if (whites)
55         {
56             /* To center the string */
57             for( i = 0 ; i < start ; i++ )
58             {
59                 whites[i] = ' ';
60             }
61             whites[start] = '\0';
62             sciprint(whites);
63             FREE(whites);
64         }
65     }
66 }
67 /*--------------------------------------------------------------------------*/
68 static void centerPrint(char *str)
69 {
70     centerLine(str);
71     sciprint(str);
72 }
73 /*--------------------------------------------------------------------------*/
74 int C2F(banier)(int *flag)
75 {
76     if (*flag != 999)
77     {
78         banner();
79     }
80     return 0;
81 }
82 /*--------------------------------------------------------------------------*/