From 3482e283b4bb131f0957be5dfe18004d918c38f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Thu, 15 Oct 2009 12:43:16 +0000 Subject: [PATCH] * add numeric floor setting reader --- webcit/preferences.c | 33 +++++++++++++++++++++++++++++++++ webcit/preferences.h | 2 ++ 2 files changed, 35 insertions(+) diff --git a/webcit/preferences.c b/webcit/preferences.c index c46d0ad1c..8a04213c8 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -624,6 +624,28 @@ void set_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeyle } +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; @@ -783,6 +805,15 @@ void tmplput_CFG_Descr(StrBuf *Target, WCTemplputParams *TP) 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)); @@ -978,7 +1009,9 @@ InitModule_PREFERENCES 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); diff --git a/webcit/preferences.h b/webcit/preferences.h index 64d0c04ed..2d8fb1227 100644 --- a/webcit/preferences.h +++ b/webcit/preferences.h @@ -41,6 +41,8 @@ StrBuf *get_ROOM_PREFS(const char *key, size_t keylen); #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) -- 2.30.2