216717f08b26ed977483ab8277314c159966df38
[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(_("Scilab Enterprises\n"));
37     centerPrint(_("Consortium Scilab (DIGITEO)\n"));
38     centerPrint(_("Copyright (c) 2011-2012 (Scilab Enterprises)\n"));
39     centerPrint(_("Copyright (c) 1989-2012 (INRIA)\n"));
40     centerPrint(_("Copyright (c) 1989-2007 (ENPC)\n"));
41
42     sciprint("%s\n", line);
43 }
44 /*--------------------------------------------------------------------------*/
45 static void centerLine(char *str)
46 {
47     int i = 0, start = 0;
48     wchar_t *wstr = to_wide_string(str);
49
50     if (wstr)
51     {
52         char *whites = NULL;
53         start = (int)(floor((double)(strlen(line) / 2)) - floor((double)(((int)wcslen(wstr) - 1) / 2)));
54         FREE(wstr);
55         whites = (char*)MALLOC(sizeof(char) * (start + 1));
56         if (whites)
57         {
58             /* To center the string */
59             for ( i = 0 ; i < start ; i++ )
60             {
61                 whites[i] = ' ';
62             }
63             whites[start] = '\0';
64             sciprint(whites);
65             FREE(whites);
66         }
67     }
68 }
69 /*--------------------------------------------------------------------------*/
70 static void centerPrint(char *str)
71 {
72     centerLine(str);
73     sciprint(str);
74 }
75 /*--------------------------------------------------------------------------*/
76 int C2F(banier)(int *flag)
77 {
78     if (*flag != 999)
79     {
80         banner();
81     }
82     return 0;
83 }
84 /*--------------------------------------------------------------------------*/