}
JSBool PR_CALLBACK pref_NativeGetLDAPAttr	(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv, jsval *rval){#ifdef MOZ_ADMIN_LIB	ldap_func get_ldap_attributes = NULL;#if (defined (XP_MAC) && defined(powerc)) || defined (XP_PC) || defined(XP_UNIX)	if (gAutoAdminLib == NULL) {		gAutoAdminLib = pref_LoadAutoAdminLib();	}			if (gAutoAdminLib) {		get_ldap_attributes = (ldap_func)			PR_FindSymbol(			 gAutoAdminLib,#ifndef XP_WIN16			"pref_get_ldap_attributes"#else			MAKEINTRESOURCE(1)#endif			);	}	if (get_ldap_attributes == NULL)	{		/* This indicates the AutoAdmin dll was not found. */		*rval = JSVAL_NULL;		return JS_TRUE;	}#else	get_ldap_attributes = pref_get_ldap_attributes;#endif /* MOZ_ADMIN_LIB */	if (argc >= 4 && JSVAL_IS_STRING(argv[0])		&& JSVAL_IS_STRING(argv[1])		&& JSVAL_IS_STRING(argv[2])		&& JSVAL_IS_STRING(argv[3]))	{		char *return_error = NULL;		char *value = get_ldap_attributes(			JS_GetStringBytes(JSVAL_TO_STRING(argv[0])),			JS_GetStringBytes(JSVAL_TO_STRING(argv[1])),			JS_GetStringBytes(JSVAL_TO_STRING(argv[2])),			JS_GetStringBytes(JSVAL_TO_STRING(argv[3])),			&return_error );				if (value)		{			JSString* str = JS_NewStringCopyZ(cx, value);			PR_Free(value);			if (str)			{				*rval = STRING_TO_JSVAL(str);				return JS_TRUE;			}		}		if (return_error)			pref_Alert(return_error);	}#endif		*rval = JSVAL_NULL;	return JS_TRUE;}