Mozilla/mozilla/xpfe/appshell/src/nsUserInfoMac.cpp
warren%netscape.com cc5d426fbe Renaming nsIAllocator to nsIMemory (and nsAllocator to nsMemory). API cleanup/freeze. Bug #18433
git-svn-id: svn://10.0.0.236/trunk@71450 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-03 09:46:12 +00:00

113 lines
2.6 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#include "nsUserInfo.h"
#include "nsInternetConfig.h"
#include "nsString.h"
nsUserInfo::nsUserInfo()
{
NS_INIT_REFCNT();
}
nsUserInfo::~nsUserInfo()
{
}
NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo);
NS_IMETHODIMP
nsUserInfo::GetFullname(PRUnichar **aFullname)
{
nsInternetConfig ic;
char* cName;
nsresult result = ic.GetString( kICRealName, &cName );
if ( NS_SUCCEEDED ( result ) )
{
nsString fullName;
fullName.AssignWithConversion( cName );
nsMemory::Free( cName );
*aFullname = fullName.ToNewUnicode();
}
return result;
}
NS_IMETHODIMP
nsUserInfo::GetEmailAddress(char * *aEmailAddress)
{
nsInternetConfig ic;
return ic.GetString( kICEmail, aEmailAddress );
}
NS_IMETHODIMP
nsUserInfo::GetUsername(char * *aUsername)
{
*aUsername = nsnull;
nsInternetConfig ic;
char* cString;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString(cString);
nsMemory::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
tempString.Truncate(atOffset);
*aUsername = tempString.ToNewCString();
return NS_OK;
}
NS_IMETHODIMP
nsUserInfo::GetDomain(char * *aDomain)
{
*aDomain = nsnull;
char* cString;
nsInternetConfig ic;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString( cString);
nsMemory::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
{
nsCAutoString domainString;
tempString.Right(domainString, atOffset + 1);
*aDomain = domainString.ToNewCString();
return NS_OK;
}
// no domain in the pref
return NS_ERROR_FAILURE;
}
#pragma mark -