char *escaped_name = NET_Escape(rating_value->name, URL_PATH);
char *escaped_name = NET_Escape( illegal_to_underscore(rating_value->name), URL_PATH);
PICS_RStoURL(PICS_RatingsStruct *rs, char *cur_page_url){    char *rv;     char *escaped_cur_page=NULL;    if(cur_page_url)    {        escaped_cur_page = NET_Escape(cur_page_url, URL_PATH);            if(!escaped_cur_page)            return NULL;    }    rv = PR_smprintf("%s?Destination=%s",                      PICS_URL_PREFIX,                      escaped_cur_page ? escaped_cur_page : "none");    XP_FREE(escaped_cur_page);    if(!rs || !rs->service)    {        StrAllocCat(rv, "&NO_RATING");        return(rv);    }    else    {		XP_List *list_ptr = rs->ratings;		PICS_RatingValue *rating_value;    	char *escaped_service = NET_Escape(rs->service, URL_PATH);        	if(!escaped_service)        	return NULL;        StrAllocCat(rv, "&Service=");        StrAllocCat(rv, escaped_service);        XP_FREE(escaped_service);        while((rating_value = XP_ListNextObject(list_ptr)) != NULL)        {            char *add;            char *escaped_name = NET_Escape(rating_value->name, URL_PATH);            if(!escaped_name)            {                XP_FREE(rv);                 return NULL;            }                        add = PR_smprintf("&%s=%f", escaped_name, rating_value->value);            XP_FREE(escaped_name);            StrAllocCat(rv, add);            XP_FREE(add);        }        return rv;    }    XP_ASSERT(0); /* should never get here */    return NULL;}