static void _sg_jscontextpool__force_config_bool(SG_context * pCtx, SG_vhash * pConfig, const char * szSettingName, SG_bool * pValue)
{
	SG_bool has = SG_FALSE;
	SG_bool value = SG_FALSE;
	
	SG_ASSERT(pCtx!=NULL);
	SG_ASSERT(pConfig!=NULL);
	SG_ASSERT(szSettingName!=NULL);
	
	SG_ERR_CHECK(  SG_vhash__has(pCtx, pConfig, szSettingName, &has)  );
	if(has)
	{
		SG_uint16 type_of_value = 0;
		SG_ERR_CHECK(  SG_vhash__typeof(pCtx, pConfig, szSettingName, &type_of_value)  );
		if(type_of_value==SG_VARIANT_TYPE_SZ)
		{
			const char *szValue = NULL;
			SG_ERR_CHECK(  SG_vhash__get__sz(pCtx, pConfig, szSettingName, &szValue)  );
			value = strcmp(szValue, "true")==0;
		}
		else if(type_of_value==SG_VARIANT_TYPE_BOOL)
		{
			SG_ERR_CHECK(  SG_vhash__get__bool(pCtx, pConfig, szSettingName, &value)  );
		}
	}
	SG_ERR_CHECK(  SG_vhash__update__bool(pCtx, pConfig, szSettingName, value)  );
	if(pValue!=NULL)
	{
		*pValue = value;
	}
	
	return;
fail:
	;
}
Exemple #2
0
void SG_vfile__update__bool(SG_context* pCtx, const SG_pathname* pPath, const char* putf8Key, SG_bool value)
{
    SG_vfile* pvf = NULL;
    SG_vhash* pvh = NULL;
    SG_ERR_CHECK(  SG_vfile__begin(pCtx, pPath, SG_FILE_RDWR | SG_FILE_OPEN_OR_CREATE, &pvh, &pvf)  );
    if (!pvh)
        SG_ERR_CHECK(  SG_VHASH__ALLOC(pCtx, &pvh)  );
    SG_ERR_CHECK(  SG_vhash__update__bool(pCtx, pvh, putf8Key, value)  );
    SG_ERR_CHECK(  SG_vfile__end(pCtx, &pvf, pvh)  );
    SG_VHASH_NULLFREE(pCtx, pvh);
    return;
fail:
    SG_ERR_IGNORE(  sg_vfile__dispose(pCtx, pvf)  );
    SG_VHASH_NULLFREE(pCtx, pvh);
}