13182 [PI] Internet Config support for MIME type mapping

switch to using nsInternetConfig of nsUserInfoMac


git-svn-id: svn://10.0.0.236/trunk@68022 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
davidm%netscape.com 2000-05-03 02:53:30 +00:00
parent 5cb2757c4b
commit 38135a2a1c
3 changed files with 56 additions and 220 deletions

View File

@ -20,29 +20,17 @@
* Contributor(s):
*/
#include "nsUserInfoMac.h"
#include "nsUserInfo.h"
#include "nsInternetConfig.h"
#include "nsString.h"
#include <Processes.h>
#include <CodeFragments.h>
//-----------------------------------------------------------
nsUserInfo::nsUserInfo()
//-----------------------------------------------------------
: mInstance(0)
, mInitted(PR_FALSE)
{
NS_INIT_REFCNT();
}
//-----------------------------------------------------------
nsUserInfo::~nsUserInfo()
//-----------------------------------------------------------
{
if (mInstance)
::ICStop(mInstance);
mInstance = 0;
}
NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo);
@ -50,60 +38,42 @@ NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo);
NS_IMETHODIMP
nsUserInfo::GetFullname(PRUnichar **aFullname)
{
*aFullname = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICRealName, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
*aFullname = PStringToNewUCS2(resultString);
return NS_OK;
nsInternetConfig ic;
char* cName;
nsresult result = ic.GetString( kICRealName, &cName );
if ( NS_SUCCEEDED ( result ) )
{
nsString fullName;
fullName.AssignWithConversion( cName );
*aFullname = fullName.ToNewUnicode();
}
return result;
}
NS_IMETHODIMP
nsUserInfo::GetEmailAddress(char * *aEmailAddress)
{
*aEmailAddress = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICEmail, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
*aEmailAddress = tempString.ToNewCString();
return NS_OK;
nsInternetConfig ic;
return ic.GetString( kICEmail, aEmailAddress );
}
NS_IMETHODIMP
nsUserInfo::GetUsername(char * *aUsername)
{
*aUsername = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
nsInternetConfig ic;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICMailAccount, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
char* cString;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString(cString);
nsAllocator::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
tempString.Truncate(atOffset);
*aUsername = tempString.ToNewCString();
return NS_OK;
}
@ -112,17 +82,12 @@ NS_IMETHODIMP
nsUserInfo::GetDomain(char * *aDomain)
{
*aDomain = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICMailAccount, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
char* cString;
nsInternetConfig ic;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString( cString);
nsAllocator::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
@ -140,54 +105,7 @@ nsUserInfo::GetDomain(char * *aDomain)
#pragma mark -
//-----------------------------------------------------------
PRUnichar* nsUserInfo::PStringToNewUCS2(ConstStr255Param str)
//-----------------------------------------------------------
{
NS_ConvertASCIItoUCS2 tempString((const char*)&str[1], str[0]);
return tempString.ToNewUnicode();
}
//-----------------------------------------------------------
OSType nsUserInfo::GetAppCreatorCode()
//-----------------------------------------------------------
{
ProcessSerialNumber psn = { 0, kCurrentProcess } ;
ProcessInfoRec procInfo;
procInfo.processInfoLength = sizeof(ProcessInfoRec);
procInfo.processName = nsnull;
procInfo.processAppSpec = nsnull;
GetProcessInformation(&psn, &procInfo);
return procInfo.processSignature;
}
//-----------------------------------------------------------
nsresult nsUserInfo::EnsureInitted()
//-----------------------------------------------------------
{
if (mInitted)
return (mInstance) ? NS_OK : NS_ERROR_NOT_INITIALIZED;
mInitted = PR_TRUE; // shows that we've tried to init
if ((long)ICStart == kUnresolvedCFragSymbolAddress)
return NS_ERROR_FAILURE;
OSType creator = GetAppCreatorCode();
ICError err = ::ICStart(&mInstance, creator);
if (err != noErr) return NS_ERROR_FAILURE;
err = ::ICFindConfigFile(mInstance, 0, nsnull);
if (err != noErr) {
::ICStop(mInstance);
mInstance = 0;
return NS_ERROR_FAILURE;
}
return NS_OK;
}

View File

@ -20,29 +20,17 @@
* Contributor(s):
*/
#include "nsUserInfoMac.h"
#include "nsUserInfo.h"
#include "nsInternetConfig.h"
#include "nsString.h"
#include <Processes.h>
#include <CodeFragments.h>
//-----------------------------------------------------------
nsUserInfo::nsUserInfo()
//-----------------------------------------------------------
: mInstance(0)
, mInitted(PR_FALSE)
{
NS_INIT_REFCNT();
}
//-----------------------------------------------------------
nsUserInfo::~nsUserInfo()
//-----------------------------------------------------------
{
if (mInstance)
::ICStop(mInstance);
mInstance = 0;
}
NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo);
@ -50,60 +38,42 @@ NS_IMPL_ISUPPORTS1(nsUserInfo,nsIUserInfo);
NS_IMETHODIMP
nsUserInfo::GetFullname(PRUnichar **aFullname)
{
*aFullname = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICRealName, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
*aFullname = PStringToNewUCS2(resultString);
return NS_OK;
nsInternetConfig ic;
char* cName;
nsresult result = ic.GetString( kICRealName, &cName );
if ( NS_SUCCEEDED ( result ) )
{
nsString fullName;
fullName.AssignWithConversion( cName );
*aFullname = fullName.ToNewUnicode();
}
return result;
}
NS_IMETHODIMP
nsUserInfo::GetEmailAddress(char * *aEmailAddress)
{
*aEmailAddress = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICEmail, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
*aEmailAddress = tempString.ToNewCString();
return NS_OK;
nsInternetConfig ic;
return ic.GetString( kICEmail, aEmailAddress );
}
NS_IMETHODIMP
nsUserInfo::GetUsername(char * *aUsername)
{
*aUsername = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
nsInternetConfig ic;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICMailAccount, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
char* cString;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString(cString);
nsAllocator::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
tempString.Truncate(atOffset);
*aUsername = tempString.ToNewCString();
return NS_OK;
}
@ -112,17 +82,12 @@ NS_IMETHODIMP
nsUserInfo::GetDomain(char * *aDomain)
{
*aDomain = nsnull;
if (NS_FAILED(EnsureInitted()))
return NS_ERROR_FAILURE;
ICAttr dummyAttr;
Str255 resultString;
long stringLen;
OSErr err = ::ICGetPref(mInstance, kICMailAccount, &dummyAttr, (Ptr)resultString, &stringLen);
if (err != noErr) return NS_ERROR_FAILURE;
nsCAutoString tempString((const char*)&resultString[1], resultString[0]);
char* cString;
nsInternetConfig ic;
nsresult rv = ic.GetString( kICEmail, &cString );
if ( NS_FAILED( rv ) ) return rv;
nsCAutoString tempString( cString);
nsAllocator::Free( cString );
const char* atString = "@";
PRInt32 atOffset = tempString.Find(atString);
if (atOffset != kNotFound)
@ -140,54 +105,7 @@ nsUserInfo::GetDomain(char * *aDomain)
#pragma mark -
//-----------------------------------------------------------
PRUnichar* nsUserInfo::PStringToNewUCS2(ConstStr255Param str)
//-----------------------------------------------------------
{
NS_ConvertASCIItoUCS2 tempString((const char*)&str[1], str[0]);
return tempString.ToNewUnicode();
}
//-----------------------------------------------------------
OSType nsUserInfo::GetAppCreatorCode()
//-----------------------------------------------------------
{
ProcessSerialNumber psn = { 0, kCurrentProcess } ;
ProcessInfoRec procInfo;
procInfo.processInfoLength = sizeof(ProcessInfoRec);
procInfo.processName = nsnull;
procInfo.processAppSpec = nsnull;
GetProcessInformation(&psn, &procInfo);
return procInfo.processSignature;
}
//-----------------------------------------------------------
nsresult nsUserInfo::EnsureInitted()
//-----------------------------------------------------------
{
if (mInitted)
return (mInstance) ? NS_OK : NS_ERROR_NOT_INITIALIZED;
mInitted = PR_TRUE; // shows that we've tried to init
if ((long)ICStart == kUnresolvedCFragSymbolAddress)
return NS_ERROR_FAILURE;
OSType creator = GetAppCreatorCode();
ICError err = ::ICStart(&mInstance, creator);
if (err != noErr) return NS_ERROR_FAILURE;
err = ::ICFindConfigFile(mInstance, 0, nsnull);
if (err != noErr) {
::ICStop(mInstance);
mInstance = 0;
return NS_ERROR_FAILURE;
}
return NS_OK;
}