cSection = PascalToC(pSection);
PopulateTermWinKeys(char *cfgText){	OSErr 	err = noErr;	short 	i;	Str255 	pSection, pDomainRoot, pDescRoot, pURLRoot;	char  	*cSection = NULL, *cDesc = NULL, *cDomain = NULL, *cIndex = NULL, *cURL = NULL;	Boolean bMoreSites = true;		/* TerminalWin: start install msg */	gControls->cfg->startMsg = NewHandleClear(kValueMaxLen);	FillKeyValueUsingResID(sTermDlg, sMsg0, gControls->cfg->startMsg, cfgText);		/* site selector keys */	gControls->cfg->numSites = 0;	GetIndString(pSection, rParseKeys, sSiteSelector);	GetIndString(pDomainRoot, rParseKeys, sDomain);	GetIndString(pDescRoot, rParseKeys, sDescription);	cDesc = NewPtrClear(pDescRoot[0] + 4);	cDomain = NewPtrClear(pDomainRoot[0] + 4);	cSection = PascalToC(pSection);	if (!cSection || !cDesc || !cDomain)		return eParseFailed;	for (i = 0; i < kMaxSites; i++)	{			cIndex = ltoa(i);		if (!cIndex) 			break;				memset(cDesc, 0, pDescRoot[0] + 4);		strncpy(cDesc, (char*)&pDescRoot[1], pDescRoot[0]);		strcat(cDesc, cIndex);				memset(cDomain, 0 , pDomainRoot[0] + 4);		strncpy(cDomain, (char*)&pDomainRoot[1], pDomainRoot[0]);		strcat(cDomain, cIndex);				gControls->cfg->site[i].desc = NewHandleClear(kValueMaxLen);		if (!FillKeyValueUsingName(cSection, cDesc, gControls->cfg->site[i].desc, cfgText))			bMoreSites = false;		if (bMoreSites)		{			gControls->cfg->site[i].domain = NewHandleClear(kValueMaxLen);			if (!FillKeyValueUsingName(cSection, cDomain, gControls->cfg->site[i].domain, cfgText))				bMoreSites = false;			else				gControls->cfg->numSites++;		}				if (cIndex)			free(cIndex);		cIndex = NULL;				if (!bMoreSites)			break;	}		if (cSection)		DisposePtr((Ptr) cSection);	if (cDesc)		DisposePtr((Ptr) cDesc);	if (cDomain)		DisposePtr((Ptr) cDomain);			/* redirect for remote site selector section */	gControls->cfg->redirect.numURLs = 0;	GetIndString(pSection, rParseKeys, sRedirect);	GetIndString(pURLRoot, rParseKeys, sURL);	cSection = PascalToC(pSection);	cDesc = PascalToC(pDescRoot);	cURL = NewPtrClear(pURLRoot[0] + 4);	if (!cURL || !cSection || !cDesc)		return eMem;			gControls->cfg->redirect.desc = NewHandleClear(kValueMaxLen);	if (FillKeyValueUsingResID(sRedirect, sDescription, gControls->cfg->redirect.desc, cfgText))	{		for (i = 0; i < kMaxSites; i++)		{			cIndex = ltoa(i);			if (!cIndex)				break;							memset(cURL, 0 , pURLRoot[0] + 4);			strncpy(cURL, (char*)&pURLRoot[1], pURLRoot[0]);			strcat(cURL, cIndex);						gControls->cfg->redirect.url[i] = NewHandleClear(kValueMaxLen);			if (!FillKeyValueUsingName(cSection, cURL, gControls->cfg->redirect.url[i], cfgText))				break;							gControls->cfg->redirect.numURLs++;						if (cIndex)				free(cIndex);			cIndex = NULL;		}	}		/* save bits msg */	gControls->cfg->saveBitsMsg = NewHandleClear(kValueMaxLen);	FillKeyValueUsingResID(sTermDlg, sMsg1, gControls->cfg->saveBitsMsg, cfgText);		if (cSection)		DisposePtr((Ptr)cSection);	if (cDesc)		DisposePtr((Ptr)cDesc);	if (cURL)		DisposePtr((Ptr)cURL);			return err;}