a3eb031c7384bd423ea7f7044b367d898fa6fd6d
[scilab.git] / scilab / modules / io / src / c / getenvc.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2006 - INRIA
4  * 
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at    
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifdef _MSC_VER
14         #include <Windows.h> /* GetEnvironmentVariable */
15 #else
16         #include <stdlib.h> /* getenv */
17 #endif
18 #include <string.h> /* strlen */
19 #include "getenvc.h"
20 #include "localization.h"
21 #include "sciprint.h"
22 /*--------------------------------------------------------------------------*/
23 void C2F(getenvc)(int *ierr,char *var,char *buf,int *buflen,int *iflag)
24 {
25         #ifdef _MSC_VER
26         if (GetEnvironmentVariable(var,buf,(DWORD)*buflen) == 0)
27         {
28                 if ( *iflag == 1 ) sciprint(_("Undefined environment variable %s.\n"),var);
29                 *ierr=1;
30         }
31         else
32         {
33                 *buflen = (int)strlen(buf);
34                 *ierr=0;
35         }
36         #else
37         char *local;
38         if ( (local=getenv(var)) == 0)
39         {
40                 if ( *iflag == 1 ) sciprint(_("Undefined environment variable %s.\n"),var);
41                 *ierr=1;
42         }
43         else
44         {
45                 strncpy(buf,local,*buflen);
46                 *buflen = strlen(buf);
47                 *ierr=0;
48         }
49         #endif
50 }
51 /*--------------------------------------------------------------------------*/
52