X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fpreferences.c;h=e56100900975d48fae2ecff8eb6089d5899cc0ec;hb=59d57c03ddbfbb96ae3c5264176e6856b48f3f30;hp=ad55f0483296f5e6ba9c28c38f85dc1d9c5987e9;hpb=a659ab73f8435b0aadfec50cf711765b0e6684cd;p=citadel.git diff --git a/webcit/preferences.c b/webcit/preferences.c index ad55f0483..e56100900 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -493,19 +493,53 @@ void set_PREF_YESNO(const char *key, size_t keylen, long value, int save_to_serv set_preference_backend(key, keylen, value, NULL, PRF_YESNO, save_to_server, NULL); } -int get_room_prefs_backend(const char *key, size_t keylen, Preference **Pref) +int get_room_prefs_backend(const char *key, size_t keylen, + Preference **Pref) { StrBuf *pref_name; int Ret; - pref_name = NewStrBuf (); - StrBufPrintf(pref_name, "%s:%s", key, ChrPtr(WC->wc_roomname)); + pref_name = NewStrBufPlain (HKEY("ROOM:")); + StrBufAppendBuf(pref_name, WC->wc_roomname, 0); + StrBufAppendBufPlain(pref_name, HKEY(":"), 0); + StrBufAppendBufPlain(pref_name, key, keylen, 0); Ret = get_pref_backend(SKEY(pref_name), Pref); FreeStrBuf(&pref_name); return Ret; } +const StrBuf *get_X_PREFS(const char *key, size_t keylen, + const char *xkey, size_t xkeylen) +{ + StrBuf *pref_name; + Preference *Prf; + + pref_name = NewStrBufPlain (HKEY("XPREF:")); + StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0); + StrBufAppendBufPlain(pref_name, HKEY(":"), 0); + StrBufAppendBufPlain(pref_name, key, keylen, 0); + + get_pref_backend(SKEY(pref_name), &Prf); + FreeStrBuf(&pref_name); + + return Prf->Val; +} + +void set_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen, StrBuf *value, int save_to_server) +{ + StrBuf *pref_name; + + pref_name = NewStrBufPlain (HKEY("XPREF:")); + StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0); + StrBufAppendBufPlain(pref_name, HKEY(":"), 0); + StrBufAppendBufPlain(pref_name, key, keylen, 0); + + set_preference_backend(SKEY(pref_name), 0, value, PRF_STRING, save_to_server, NULL); + FreeStrBuf(&pref_name); +} + + StrBuf *get_ROOM_PREFS(const char *key, size_t keylen) { Preference *Pref; @@ -524,8 +558,10 @@ void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_s { StrBuf *pref_name; - pref_name = NewStrBuf (); - StrBufPrintf(pref_name, "%s:%s", key, ChrPtr(WC->wc_roomname)); + pref_name = NewStrBufPlain (HKEY("ROOM:")); + StrBufAppendBuf(pref_name, WC->wc_roomname, 0); + StrBufAppendBufPlain(pref_name, HKEY(":"), 0); + StrBufAppendBufPlain(pref_name, key, keylen, 0); set_preference_backend(SKEY(pref_name), 0, value, PRF_STRING, save_to_server, NULL); FreeStrBuf(&pref_name); }