}
+long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Default)
+{
+ Preference *Pref;
+ int Ret;
+
+ Ret = get_room_prefs_backend(key, keylen, &Pref);
+
+ if (Ret == 0) {
+ *value = Default;
+ return 0;
+ }
+
+ if (Pref->decoded)
+ *value = Pref->lval;
+ else {
+ *value = Pref->lval = atol(ChrPtr(Pref->Val));
+ Pref->decoded = 1;
+ }
+ return Ret;
+}
+
+
StrBuf *get_ROOM_PREFS(const char *key, size_t keylen)
{
Preference *Pref;
if (SettingStr != NULL)
StrBufAppendBufPlain(Target, SettingStr, -1, 0);
}
+void tmplput_CFG_RoomValueLong(StrBuf *Target, WCTemplputParams *TP)
+{
+ long lvalue;
+ long defval;
+
+ defval = GetTemplateTokenNumber(Target, TP, 1, 0);
+ get_ROOM_PREFS_LONG(TKEY(0), &lvalue, defval);
+ StrBufAppendPrintf(Target, "%ld", lvalue);
+}
void tmplput_CFG_RoomValue(StrBuf *Target, WCTemplputParams *TP)
{
StrBuf *pref = get_ROOM_PREFS(TKEY(0));
RegisterNamespace("OFFERSTARTPAGE", 0, 0, offer_start_page, CTX_NONE);
RegisterNamespace("PREF:ROOM:VALUE", 1, 2, tmplput_CFG_RoomValue, CTX_NONE);
+ RegisterNamespace("PREF:ROOM:VALUE:INT", 1, 2, tmplput_CFG_RoomValueLong, CTX_NONE);
RegisterNamespace("PREF:VALUE", 1, 2, tmplput_CFG_Value, CTX_NONE);
+
RegisterNamespace("PREF:DESCR", 1, 1, tmplput_CFG_Descr, CTX_NONE);
RegisterConditional(HKEY("COND:PREF"), 4, ConditionalPreference, CTX_NONE);
#define set_room_pref(a, b, c) set_ROOM_PREFS(a, sizeof(a) - 1, b, c)
void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server);
+#define get_room_pref_long(a, b, c) get_ROOM_PREFS_LONG(a, sizeof(a) - 1, b, c)
+long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Default);
#define get_x_pref(a, b) get_ROOM_PREFS(a, sizeof(a) - 1, b, sizeof(b) - 1)