1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#include <fortran.h>
/*
**GRUSER -- get user name (Cray)
*+
* SUBROUTINE GRUSER(STRING, L)
* CHARACTER*(*) STRING
* INTEGER L
*
* Return the name of the user running the program.
*
* Arguments:
* STRING : receives user name, truncated or extended with
* blanks as necessary.
* L : receives the number of characters in VALUE, excluding
* trailing blanks.
*--
* 09-Nov-1994 - [mcs] Fortran callable C version for CRAY.
*-----------------------------------------------------------------------
*/
char *getlogin();
void GRUSER(_fcd fortran_string, int *length)
{
int i;
/*
* Extract the return string pointer and length from the fortran string.
*/
char *string = _fcdtocp(fortran_string);
int maxlen = _fcdlen(fortran_string);
/*
* Get the login name of the PGPLOT user.
*/
char *user = getlogin();
/*
* If the user name is not available substitute an empty string.
*/
if(!user)
user = "";
/*
* Copy the user name to the output string.
*/
for(i=0; i<maxlen && user[i]; i++)
string[i] = user[i];
/*
* Return the un-padded length of the user name string.
*/
*length = i;
/*
* Pad to the end of the output string with spaces.
*/
for( ; i<maxlen; i++)
string[i] = ' ';
return;
}
|