PrefHashEntry* pref;
PrefResult PREF_GetCharPref(const char *pref_name, char * return_buffer, int * length, PRBool get_default){    PrefResult result = PREF_ERROR;    char* stringVal;        PrefHashEntry* pref;    if (!gHashTable.ops)        return PREF_NOT_INITIALIZED;    pref = pref_HashTableLookup(pref_name);    if (pref)    {        if (get_default || PREF_IS_LOCKED(pref) || !PREF_HAS_USER_VALUE(pref))            stringVal = pref->defaultPref.stringVal;        else            stringVal = pref->userPref.stringVal;                if (stringVal)        {            if (*length <= 0)                *length = PL_strlen(stringVal) + 1;            else            {                PL_strncpy(return_buffer, stringVal, PR_MIN((size_t)*length - 1, PL_strlen(stringVal) + 1));                return_buffer[*length - 1] = '\0';            }            result = PREF_OK;        }    }    return result;}