-char *wxGetUserHome( const wxString &user )
-{
- struct passwd *who = (struct passwd *) NULL;
-
- if (user.IsNull() || (user== ""))
- {
- register char *ptr;
-
- if ((ptr = getenv("HOME")) != NULL)
- {
- return ptr;
- }
- if ((ptr = getenv("USER")) != NULL || (ptr = getenv("LOGNAME")) != NULL)
- {
- who = getpwnam(ptr);
- }
-
- /* We now make sure the the user exists! */
- if (who == NULL)
- {
- who = getpwuid(getuid());
- }
- }
- else
- {
- who = getpwnam (user);
- }
-
- return who ? who->pw_dir : (char*)NULL;
-}
-
-//------------------------------------------------------------------------
-// id routines
-//------------------------------------------------------------------------
-
-bool wxGetHostName(char *buf, int sz)
-{
- *buf = '\0';
-#if defined(__SVR4__) && !defined(__sgi)
- //KB: does this return the fully qualified host.domain name?
- return (sysinfo(SI_HOSTNAME, buf, sz) != -1);
-#else /* BSD Sockets */
- char name[255], domain[255];
- //struct hostent *h;
- // Get hostname
- if (gethostname(name, sizeof(name)/sizeof(char)-1) == -1)
- return FALSE;
- if (getdomainname(domain, sizeof(domain)/sizeof(char)-1) == -1)
- return FALSE;
- // Get official full name of host
- // doesn't return the full qualified name, replaced by following
- // code (KB)
- // strncpy(buf, (h=gethostbyname(name))!=NULL ? h->h_name : name, sz-1);
- if((unsigned)sz > strlen(name)+strlen(domain)+1)
- {
- strcpy(buf, name);
- if(strcmp(domain,"(none)") == 0) // standalone machine
- {
- strcat(buf,".");
- strcat(buf,domain);
- }
- }
- else
- return FALSE;
- return TRUE;
-#endif
-}
-
-bool wxGetUserId(char *buf, int sz)
-{
- struct passwd *who;
-
- *buf = '\0';
- if ((who = getpwuid(getuid ())) != NULL) {
- strncpy (buf, who->pw_name, sz-1);
- return TRUE;
- }
- return FALSE;
-}
-
-bool wxGetUserName(char *buf, int sz)
-{
- struct passwd *who;
- char *comma;
-
- *buf = '\0';
- if ((who = getpwuid (getuid ())) != NULL) {
- comma = strchr(who->pw_gecos,'c');
- if(comma) *comma = '\0'; // cut off non-name comment fields
- strncpy (buf, who->pw_gecos, sz - 1);
- return TRUE;
- }
- return FALSE;
-}
-
-//------------------------------------------------------------------------
-// error and debug output routines
-//------------------------------------------------------------------------
-
-void wxDebugMsg( const char *format, ... )
-{
- va_list ap;
- va_start( ap, format );
- vfprintf( stderr, format, ap );
- fflush( stderr );
- va_end(ap);
-}
-
-void wxError( const wxString &msg, const wxString &title )
-{
- fprintf( stderr, "Error " );
- if (!title.IsNull()) fprintf( stderr, "%s ", WXSTRINGCAST(title) );
- if (!msg.IsNull()) fprintf( stderr, ": %s", WXSTRINGCAST(msg) );
- fprintf( stderr, ".\n" );