Reverts commit c6aec42f213ec284e34648f3d69bcf927dccddb1 because putting the opening...
[citadel.git] / webcit / preferences.c
index 244be7ffcd56ed7760ba510138c7c2aa191f3405..ae381cc1e5b45afe68b9246c695f154a51b872a9 100644 (file)
@@ -1,4 +1,3 @@
-
 /*
  * Manage user preferences with a little help from the Citadel server.
  *
@@ -40,15 +39,17 @@ typedef struct _Preference {
        StrBuf *DeQPed;
 } Preference;
 
-void DestroyPrefDef(void *vPrefDef) {
-       PrefDef *Prefdef = (PrefDef *) vPrefDef;
+void DestroyPrefDef(void *vPrefDef)
+{
+       PrefDef *Prefdef = (PrefDef*) vPrefDef;
        FreeStrBuf(&Prefdef->Setting);
        FreeStrBuf(&Prefdef->OnLoadName);
        free(Prefdef);
 }
 
-void DestroyPreference(void *vPref) {
-       Preference *Pref = (Preference *) vPref;
+void DestroyPreference(void *vPref)
+{
+       Preference *Pref = (Preference*) vPref;
        FreeStrBuf(&Pref->Key);
        FreeStrBuf(&Pref->Val);
        FreeStrBuf(&Pref->DeQPed);
@@ -56,9 +57,13 @@ void DestroyPreference(void *vPref) {
 
 }
 
-void _RegisterPreference(const char *Setting, long SettingLen,
-                        const char *PrefStr, ePrefType Type, PrefEvalFunc OnLoad, const char *OnLoadName) {
-       PrefDef *Newpref = (PrefDef *) malloc(sizeof(PrefDef));
+void _RegisterPreference(const char *Setting, long SettingLen, 
+                        const char *PrefStr, 
+                        ePrefType Type, 
+                        PrefEvalFunc OnLoad, 
+                        const char *OnLoadName)
+{
+       PrefDef *Newpref = (PrefDef*) malloc(sizeof(PrefDef));
        Newpref->Setting = NewStrBufPlain(Setting, SettingLen);
        Newpref->PrefStr = PrefStr;
        Newpref->eType = Type;
@@ -71,10 +76,11 @@ void _RegisterPreference(const char *Setting, long SettingLen,
        Put(PreferenceHooks, Setting, SettingLen, Newpref, DestroyPrefDef);
 }
 
-const char *PrefGetLocalStr(const char *Setting, long len) {
+const char *PrefGetLocalStr(const char *Setting, long len)
+{
        void *hash_value;
        if (GetHash(PreferenceHooks, Setting, len, &hash_value) != 0) {
-               PrefDef *Newpref = (PrefDef *) hash_value;
+               PrefDef *Newpref = (PrefDef*) hash_value;
                return _(Newpref->PrefStr);
 
        }
@@ -82,16 +88,18 @@ const char *PrefGetLocalStr(const char *Setting, long len) {
 }
 
 #ifdef DBG_PREFS_HASH
-inline const char *PrintPref(void *vPref) {
-       Preference *Pref = (Preference *) vPref;
+inline const char *PrintPref(void *vPref)
+{
+       Preference *Pref = (Preference*) vPref;
        if (Pref->DeQPed != NULL)
                return ChrPtr(Pref->DeQPed);
-       else
+       else 
                return ChrPtr(Pref->Val);
 }
 #endif
 
-void GetPrefTypes(HashList * List) {
+void GetPrefTypes(HashList *List)
+{
        HashPos *It;
        long len;
        const char *Key;
@@ -101,18 +109,24 @@ void GetPrefTypes(HashList * List) {
        PrefDef *PrefType;
 
        It = GetNewHashPos(List, 0);
-       while (GetNextHashPos(List, It, &len, &Key, &vSetting)) {
-               Pref = (Preference *) vSetting;
-               if (GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && (vPrefDef != NULL)) {
-                       PrefType = (PrefDef *) vPrefDef;
+       while (GetNextHashPos(List, It, &len, &Key, &vSetting)) 
+       {
+               Pref = (Preference*) vSetting;
+               if (GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && 
+                   (vPrefDef != NULL)) 
+               {
+                       PrefType = (PrefDef*) vPrefDef;
                        Pref->Type = PrefType;
                        Pref->eFlatPrefType = Pref->Type->eType;
 
                        syslog(LOG_DEBUG, "Loading [%s]with type [%d] [\"%s\"]\n",
-                              ChrPtr(Pref->Key), Pref->Type->eType, ChrPtr(Pref->Val));
+                               ChrPtr(Pref->Key),
+                               Pref->Type->eType,
+                               ChrPtr(Pref->Val));
 
-                       switch (Pref->Type->eType) {
-                       case PRF_UNSET: /* WHUT? */
+                       switch (Pref->Type->eType)
+                       {
+                       case PRF_UNSET: /* WHUT? */
                                break;
                        case PRF_STRING:
                                break;
@@ -131,10 +145,12 @@ void GetPrefTypes(HashList * List) {
                                break;
                        }
 
-                       if (PrefType->OnLoad != NULL) {
+                       if (PrefType->OnLoad != NULL){
 
                                syslog(LOG_DEBUG, "Loading with: -> %s(\"%s\", %ld)\n",
-                                      ChrPtr(PrefType->OnLoadName), ChrPtr(Pref->Val), Pref->lval);
+                                       ChrPtr(PrefType->OnLoadName),
+                                       ChrPtr(Pref->Val),
+                                       Pref->lval);
                                PrefType->OnLoad(Pref->Val, Pref->lval);
                        }
                }
@@ -142,20 +158,23 @@ void GetPrefTypes(HashList * List) {
        DeleteHashPos(&It);
 }
 
-void ParsePref(HashList ** List, StrBuf * ReadBuf) {
+void ParsePref(HashList **List, StrBuf *ReadBuf)
+{
        int Done = 0;
        Preference *Data = NULL;
        Preference *LastData = NULL;
-
+                               
        while (!Done) {
                if (StrBuf_ServGetln(ReadBuf) < 0)
                        break;
-               if ((StrLength(ReadBuf) == 3) && !strcmp(ChrPtr(ReadBuf), "000")) {
+               if ( (StrLength(ReadBuf)==3) && 
+                    !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
                        break;
                }
 
-               if ((ChrPtr(ReadBuf)[0] == ' ') && (LastData != NULL)) {
+               if ((ChrPtr(ReadBuf)[0] == ' ') &&
+                   (LastData != NULL)) {
                        StrBufAppendBuf(LastData->Val, ReadBuf, 1);
                }
                else {
@@ -170,21 +189,27 @@ void ParsePref(HashList ** List, StrBuf * ReadBuf) {
 
                        /* some users might still have this start page configured, which now breaks */
 
-                       if ((!strcasecmp(ChrPtr(Data->Key), "startpage"))
-                           && (!strcasecmp(ChrPtr(Data->Val), "/do_template?template=summary_page"))
-                           ) {
+                       if (    (!strcasecmp(ChrPtr(Data->Key), "startpage"))
+                               && (!strcasecmp(ChrPtr(Data->Val), "/do_template?template=summary_page"))
+                       ) {
                                FreeStrBuf(&Data->Val);
                                Data->Val = NewStrBufPlain(HKEY("/summary"));
                        }
 
                        /******************* END VILE SLEAZY HACK ************************/
 
-                       if (!IsEmptyStr(ChrPtr(Data->Key))) {
-                               Put(*List, SKEY(Data->Key), Data, DestroyPreference);
+                       if (!IsEmptyStr(ChrPtr(Data->Key)))
+                       {
+                               Put(*List, 
+                                   SKEY(Data->Key),
+                                   Data, 
+                                   DestroyPreference);
                        }
-                       else {
+                       else 
+                       {
                                StrBufTrim(ReadBuf);
-                               syslog(LOG_INFO, "ignoring spurious preference line: [%s]\n", ChrPtr(ReadBuf));
+                               syslog(LOG_INFO, "ignoring spurious preference line: [%s]\n", 
+                                       ChrPtr(ReadBuf));
                                DestroyPreference(Data);
                                LastData = NULL;
                        }
@@ -198,20 +223,21 @@ void ParsePref(HashList ** List, StrBuf * ReadBuf) {
 /*
  * display preferences dialog
  */
-void load_preferences(void) {
+void load_preferences(void) 
+{
        folder Room;
        wcsession *WCC = WC;
        int Done = 0;
        StrBuf *ReadBuf;
        long msgnum = 0L;
-
+       
        memset(&Room, 0, sizeof(folder));
        ReadBuf = NewStrBufPlain(NULL, SIZ * 4);
        if (goto_config_room(ReadBuf, &Room) != 0) {
                FreeStrBuf(&ReadBuf);
                FlushFolder(&Room);
 
-               return;         /* oh well. */
+               return; /* oh well. */
        }
 
        serv_puts("MSGS ALL|0|1");
@@ -221,7 +247,7 @@ void load_preferences(void) {
                serv_puts("000");
        }
        while (!Done && (StrBuf_ServGetln(ReadBuf) >= 0)) {
-               if ((StrLength(ReadBuf) == 3) && !strcmp(ChrPtr(ReadBuf), "000")) {
+               if ( (StrLength(ReadBuf)==3) && !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
                        break;
                }
@@ -232,10 +258,10 @@ void load_preferences(void) {
                serv_printf("MSG0 %ld", msgnum);
                StrBuf_ServGetln(ReadBuf);
                if (GetServerStatus(ReadBuf, NULL) == 1) {
-                       while ((StrBuf_ServGetln(ReadBuf) >= 0)
-                              && (strcmp(ChrPtr(ReadBuf), "text")
-                                  && strcmp(ChrPtr(ReadBuf), "000"))
-                           ) {
+                       while ( (StrBuf_ServGetln(ReadBuf) >= 0)
+                               && (strcmp(ChrPtr(ReadBuf), "text")
+                               && strcmp(ChrPtr(ReadBuf), "000"))
+                       ) {
                                /* flush */
                        }
                        if (!strcmp(ChrPtr(ReadBuf), "text")) {
@@ -259,7 +285,8 @@ void load_preferences(void) {
  * Go to the user's configuration room, creating it if necessary.
  * returns 0 on success or nonzero upon failure.
  */
-int goto_config_room(StrBuf * Buf, folder * Room) {
+int goto_config_room(StrBuf *Buf, folder *Room) 
+{
        serv_printf("GOTO %s", USERCONFIGROOM);
        StrBuf_ServGetln(Buf);
        if (GetServerStatus(Buf, NULL) != 2) {  /* try to create the config room if not there */
@@ -270,14 +297,15 @@ int goto_config_room(StrBuf * Buf, folder * Room) {
                serv_printf("GOTO %s", USERCONFIGROOM);
                StrBuf_ServGetln(Buf);
                if (GetServerStatus(Buf, NULL) != 2) {
-                       return (1);
+                       return(1);
                }
        }
        ParseGoto(Room, Buf);
-       return (0);
+       return(0);
 }
 
-void WritePrefsToServer(HashList * Hash) {
+void WritePrefsToServer(HashList *Hash)
+{
        wcsession *WCC = WC;
        long len;
        HashPos *HashPos;
@@ -285,19 +313,20 @@ void WritePrefsToServer(HashList * Hash) {
        const char *Key;
        Preference *Pref;
        StrBuf *SubBuf = NULL;
-
+       
        Hash = WCC->hash_prefs;
 #ifdef DBG_PREFS_HASH
        dbg_PrintHash(Hash, PrintPref, NULL);
 #endif
        HashPos = GetNewHashPos(Hash, 0);
-       while (GetNextHashPos(Hash, HashPos, &len, &Key, &vPref) != 0) {
+       while (GetNextHashPos(Hash, HashPos, &len, &Key, &vPref)!=0)
+       {
                size_t nchars;
                if (vPref == NULL)
                        continue;
-               Pref = (Preference *) vPref;
+               Pref = (Preference*) vPref;
                nchars = StrLength(Pref->Val);
-               if (nchars > 80) {
+               if (nchars > 80){
                        int n = 0;
                        size_t offset, nchars;
                        if (SubBuf == NULL)
@@ -307,28 +336,28 @@ void WritePrefsToServer(HashList * Hash) {
                        while (nchars > 0) {
                                if (n == 0)
                                        nchars = 70;
-                               else
+                               else 
                                        nchars = 80;
-
+                               
                                nchars = StrBufSub(SubBuf, Pref->Val, offset, nchars);
-
+                               
                                if (n == 0) {
                                        serv_printf("%s|%s", ChrPtr(Pref->Key), ChrPtr(SubBuf));
                                }
                                else {
                                        serv_printf(" %s", ChrPtr(SubBuf));
                                }
-
+                               
                                offset += nchars;
                                nchars = StrLength(Pref->Val) - offset;
                                n++;
                        }
-
+                       
                }
                else {
                        serv_printf("%s|%s", ChrPtr(Pref->Key), ChrPtr(Pref->Val));
                }
-
+               
        }
        FreeStrBuf(&SubBuf);
        DeleteHashPos(&HashPos);
@@ -337,20 +366,21 @@ void WritePrefsToServer(HashList * Hash) {
 /*
  * save the modifications
  */
-void save_preferences(void) {
+void save_preferences(void) 
+{
        folder Room;
        wcsession *WCC = WC;
        int Done = 0;
        StrBuf *ReadBuf;
        long msgnum = 0L;
-
+       
        ReadBuf = NewStrBuf();
        memset(&Room, 0, sizeof(folder));
        if (goto_config_room(ReadBuf, &Room) != 0) {
                FreeStrBuf(&ReadBuf);
                FlushFolder(&Room);
 
-               return;         /* oh well. */
+               return; /* oh well. */
        }
 
        /* make shure the config room has the right type, else it might reject our config */
@@ -363,7 +393,7 @@ void save_preferences(void) {
                else if (goto_config_room(ReadBuf, &Room) != 0) {
                        FreeStrBuf(&ReadBuf);
                        FlushFolder(&Room);
-
+                       
                        return; /* oh well. */
                }
        }
@@ -375,7 +405,7 @@ void save_preferences(void) {
                serv_puts("000");
        }
        while (!Done && (StrBuf_ServGetln(ReadBuf) >= 0)) {
-               if ((StrLength(ReadBuf) == 3) && !strcmp(ChrPtr(ReadBuf), "000")) {
+               if ( (StrLength(ReadBuf)==3) && !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
                        break;
                }
@@ -415,7 +445,8 @@ void save_preferences(void) {
  * value       StrBuf-value to the key to get
  * returns:    found?
  */
-int get_pref_backend(const char *key, size_t keylen, Preference ** Pref) {
+int get_pref_backend(const char *key, size_t keylen, Preference **Pref)
+{
        void *hash_value = NULL;
 #ifdef DBG_PREFS_HASH
        dbg_PrintHash(WC->hash_prefs, PrintPref, NULL);
@@ -425,12 +456,13 @@ int get_pref_backend(const char *key, size_t keylen, Preference ** Pref) {
                return 0;
        }
        else {
-               *Pref = (Preference *) hash_value;
+               *Pref = (Preference*) hash_value;
                return 1;
        }
 }
 
-int get_PREFERENCE(const char *key, size_t keylen, StrBuf ** value) {
+int get_PREFERENCE(const char *key, size_t keylen, StrBuf **value)
+{
        Preference *Pref;
        int Ret;
 
@@ -450,7 +482,8 @@ int get_PREFERENCE(const char *key, size_t keylen, StrBuf ** value) {
  * value               value to set
  * save_to_server      1 = flush all data to the server, 0 = cache it for now
  */
-long compare_preference(const Preference * PrefA, const Preference * PrefB) {
+long compare_preference(const Preference *PrefA, const Preference *PrefB)
+{
        ePrefType TypeA, TypeB;
 
        if (PrefA->Type != NULL) {
@@ -467,14 +500,14 @@ long compare_preference(const Preference * PrefA, const Preference * PrefB) {
                TypeB = PrefB->eFlatPrefType;
        }
 
-       if ((TypeA != PRF_UNSET)
-           && (TypeB != PRF_UNSET)
-           && (TypeA != TypeB)
-           ) {
+       if (    (TypeA != PRF_UNSET)
+               && (TypeB != PRF_UNSET)
+               && (TypeA != TypeB)
+       ) {
                if (TypeA > TypeB) {
                        return 1;
                }
-               else {          /* (PrefA->Type < PrefB->Type) */
+               else {  /* (PrefA->Type < PrefB->Type) */
                        return -1;
                }
        }
@@ -482,8 +515,9 @@ long compare_preference(const Preference * PrefA, const Preference * PrefB) {
        if (TypeB == PRF_UNSET) {
                TypeA = PRF_UNSET;
        }
-
-       switch (TypeA) {
+                   
+       switch (TypeA)
+       {
        default:
        case PRF_UNSET:
        case PRF_STRING:
@@ -497,7 +531,8 @@ long compare_preference(const Preference * PrefA, const Preference * PrefB) {
                else
                        return -1;
        case PRF_QP_STRING:
-               return strcmp(ChrPtr(PrefA->DeQPed), ChrPtr(PrefB->DeQPed));
+               return strcmp(ChrPtr(PrefA->DeQPed), 
+                             ChrPtr(PrefB->DeQPed));
        }
 }
 
@@ -510,28 +545,37 @@ long compare_preference(const Preference * PrefA, const Preference * PrefB) {
  * value               value to set
  * save_to_server      1 = flush all data to the server, 0 = cache it for now
  */
-void set_preference_backend(const char *key, size_t keylen,
-                           long lvalue, StrBuf * value, long lPrefType, int save_to_server, PrefDef * PrefType) {
+void set_preference_backend(const char *key, size_t keylen, 
+                           long lvalue, 
+                           StrBuf *value, 
+                           long lPrefType,
+                           int save_to_server, 
+                           PrefDef *PrefType) 
+{
        wcsession *WCC = WC;
        void *vPrefDef;
        void *vPrefB;
        Preference *Pref;
 
-       Pref = (Preference *) malloc(sizeof(Preference));
+       Pref = (Preference*) malloc(sizeof(Preference));
        memset(Pref, 0, sizeof(Preference));
        Pref->Key = NewStrBufPlain(key, keylen);
 
-       if ((PrefType == NULL) && GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && (vPrefDef != NULL))
-               PrefType = (PrefDef *) vPrefDef;
+       if ((PrefType == NULL) &&
+           GetHash(PreferenceHooks, SKEY(Pref->Key), &vPrefDef) && 
+           (vPrefDef != NULL))
+               PrefType = (PrefDef*) vPrefDef;
 
-       if (PrefType != NULL) {
+       if (PrefType != NULL)
+       {
                Pref->Type = PrefType;
                Pref->eFlatPrefType = PrefType->eType;
                if (Pref->Type->eType != lPrefType)
                        syslog(LOG_WARNING, "warning: saving preference with wrong type [%s] %d != %ld \n",
-                              key, Pref->Type->eType, lPrefType);
-               switch (Pref->Type->eType) {
-               case PRF_UNSET: /* default to string... */
+                               key, Pref->Type->eType, lPrefType);
+               switch (Pref->Type->eType)
+               {
+               case PRF_UNSET: /* default to string... */
                case PRF_STRING:
                        Pref->Val = value;
                        Pref->decoded = 1;
@@ -552,7 +596,7 @@ void set_preference_backend(const char *key, size_t keylen,
                        break;
                case PRF_YESNO:
                        Pref->lval = lvalue;
-                       if (lvalue)
+                       if (lvalue) 
                                Pref->Val = NewStrBufPlain(HKEY("yes"));
                        else
                                Pref->Val = NewStrBufPlain(HKEY("no"));
@@ -564,7 +608,8 @@ void set_preference_backend(const char *key, size_t keylen,
        }
        else {
                Pref->eFlatPrefType = lPrefType;
-               switch (lPrefType) {
+               switch (lPrefType)
+               {
                case PRF_STRING:
                        Pref->Val = value;
                        Pref->decoded = 1;
@@ -585,7 +630,7 @@ void set_preference_backend(const char *key, size_t keylen,
                        break;
                case PRF_YESNO:
                        Pref->lval = lvalue;
-                       if (lvalue)
+                       if (lvalue) 
                                Pref->Val = NewStrBufPlain(HKEY("yes"));
                        else
                                Pref->Val = NewStrBufPlain(HKEY("no"));
@@ -594,21 +639,24 @@ void set_preference_backend(const char *key, size_t keylen,
                }
        }
 
-       if ((save_to_server != 0) &&
-           GetHash(WCC->hash_prefs, key, keylen, &vPrefB) && (vPrefB != NULL) && (compare_preference(Pref, vPrefB) == 0))
+       if ((save_to_server != 0) && 
+           GetHash(WCC->hash_prefs, key, keylen, &vPrefB) && 
+           (vPrefB != NULL) && 
+           (compare_preference (Pref, vPrefB) == 0))
                save_to_server = 0;
 
        Put(WCC->hash_prefs, key, keylen, Pref, DestroyPreference);
-
-       if (save_to_server)
-               WCC->SavePrefsToServer = 1;
+       
+       if (save_to_server) WCC->SavePrefsToServer = 1;
 }
 
-void set_PREFERENCE(const char *key, size_t keylen, StrBuf * value, int save_to_server) {
+void set_PREFERENCE(const char *key, size_t keylen, StrBuf *value, int save_to_server) 
+{
        set_preference_backend(key, keylen, 0, value, PRF_STRING, save_to_server, NULL);
 }
 
-int get_PREF_LONG(const char *key, size_t keylen, long *value, long Default) {
+int get_PREF_LONG(const char *key, size_t keylen, long *value, long Default)
+{
        Preference *Pref;
        int Ret;
 
@@ -628,11 +676,13 @@ int get_PREF_LONG(const char *key, size_t keylen, long *value, long Default) {
 }
 
 
-void set_PREF_LONG(const char *key, size_t keylen, long value, int save_to_server) {
+void set_PREF_LONG(const char *key, size_t keylen, long value, int save_to_server)
+{
        set_preference_backend(key, keylen, value, NULL, PRF_INT, save_to_server, NULL);
 }
 
-int get_PREF_YESNO(const char *key, size_t keylen, int *value, int Default) {
+int get_PREF_YESNO(const char *key, size_t keylen, int *value, int Default)
+{
        Preference *Pref;
        int Ret;
 
@@ -651,15 +701,18 @@ int get_PREF_YESNO(const char *key, size_t keylen, int *value, int Default) {
        return Ret;
 }
 
-void set_PREF_YESNO(const char *key, size_t keylen, long value, int save_to_server) {
+void set_PREF_YESNO(const char *key, size_t keylen, long value, int save_to_server)
+{
        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 = NewStrBufPlain(HKEY("ROOM:"));
+       pref_name = NewStrBufPlain (HKEY("ROOM:"));
        StrBufAppendBuf(pref_name, WC->CurRoom.name, 0);
        StrBufAppendBufPlain(pref_name, HKEY(":"), 0);
        StrBufAppendBufPlain(pref_name, key, keylen, 0);
@@ -669,12 +722,14 @@ int get_room_prefs_backend(const char *key, size_t keylen, Preference ** Pref) {
        return Ret;
 }
 
-const StrBuf *get_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen) {
+const StrBuf *get_X_PREFS(const char *key, size_t keylen, 
+                         const char *xkey, size_t xkeylen)
+{
        int ret;
        StrBuf *pref_name;
        Preference *Prf;
-
-       pref_name = NewStrBufPlain(HKEY("XPREF:"));
+       
+       pref_name = NewStrBufPlain (HKEY("XPREF:"));
        StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0);
        StrBufAppendBufPlain(pref_name, HKEY(":"), 0);
        StrBufAppendBufPlain(pref_name, key, keylen, 0);
@@ -684,14 +739,14 @@ const StrBuf *get_X_PREFS(const char *key, size_t keylen, const char *xkey, size
 
        if (ret)
                return Prf->Val;
-       else
-               return NULL;
+       else return NULL;
 }
 
-void set_X_PREFS(const char *key, size_t keylen, const char *xkey, size_t xkeylen, StrBuf * value, int save_to_server) {
+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:"));
+       
+       pref_name = NewStrBufPlain (HKEY("XPREF:"));
        StrBufAppendBufPlain(pref_name, xkey, xkeylen, 0);
        StrBufAppendBufPlain(pref_name, HKEY(":"), 0);
        StrBufAppendBufPlain(pref_name, key, keylen, 0);
@@ -701,7 +756,8 @@ 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) {
+long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Default)
+{
        Preference *Pref;
        int Ret;
 
@@ -722,7 +778,8 @@ long get_ROOM_PREFS_LONG(const char *key, size_t keylen, long *value, long Defau
 }
 
 
-StrBuf *get_ROOM_PREFS(const char *key, size_t keylen) {
+StrBuf *get_ROOM_PREFS(const char *key, size_t keylen)
+{
        Preference *Pref;
        int Ret;
 
@@ -731,14 +788,15 @@ StrBuf *get_ROOM_PREFS(const char *key, size_t keylen) {
        if (Ret == 0) {
                return NULL;
        }
-       else
+       else 
                return Pref->Val;
 }
 
-void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf * value, int save_to_server) {
+void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server)
+{
        StrBuf *pref_name;
-
-       pref_name = NewStrBufPlain(HKEY("ROOM:"));
+       
+       pref_name = NewStrBufPlain (HKEY("ROOM:"));
        StrBufAppendBuf(pref_name, WC->CurRoom.name, 0);
        StrBufAppendBufPlain(pref_name, HKEY(":"), 0);
        StrBufAppendBufPlain(pref_name, key, keylen, 0);
@@ -747,8 +805,9 @@ void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf * value, int save_to_
 }
 
 
-void GetPreferences(HashList * Setting) {
-       wcsession *WCC = WC;
+void GetPreferences(HashList *Setting)
+{
+        wcsession *WCC = WC;
        HashPos *It;
        long len;
        const char *Key;
@@ -763,7 +822,7 @@ void GetPreferences(HashList * Setting) {
 
        It = GetNewHashPos(PreferenceHooks, 0);
        while (GetNextHashPos(PreferenceHooks, It, &len, &Key, &vSetting)) {
-               PrefType = (PrefDef *) vSetting;
+               PrefType = (PrefDef*) vSetting;
 
                if (!HaveBstr(SKEY(PrefType->Setting)))
                        continue;
@@ -771,19 +830,39 @@ void GetPreferences(HashList * Setting) {
                case PRF_UNSET:
                case PRF_STRING:
                        Buf = NewStrBufDup(SBstr(SKEY(PrefType->Setting)));
-                       set_preference_backend(SKEY(PrefType->Setting), 0, Buf, PRF_STRING, 1, PrefType);
+                       set_preference_backend(SKEY(PrefType->Setting),
+                                              0, 
+                                              Buf, 
+                                              PRF_STRING,
+                                              1, 
+                                              PrefType);
                        break;
                case PRF_INT:
                        lval = LBstr(SKEY(PrefType->Setting));
-                       set_preference_backend(SKEY(PrefType->Setting), lval, NULL, PRF_INT, 1, PrefType);
+                       set_preference_backend(SKEY(PrefType->Setting),
+                                              lval, 
+                                              NULL, 
+                                              PRF_INT,
+                                              1, 
+                                              PrefType);
                        break;
                case PRF_QP_STRING:
                        Buf = NewStrBufDup(SBstr(SKEY(PrefType->Setting)));
-                       set_preference_backend(SKEY(PrefType->Setting), 0, Buf, PRF_QP_STRING, 1, PrefType);
+                       set_preference_backend(SKEY(PrefType->Setting),
+                                              0, 
+                                              Buf, 
+                                              PRF_QP_STRING,
+                                              1, 
+                                              PrefType);
                        break;
                case PRF_YESNO:
                        lval = YesBstr(SKEY(PrefType->Setting));
-                       set_preference_backend(SKEY(PrefType->Setting), lval, NULL, PRF_YESNO, 1, PrefType);
+                       set_preference_backend(SKEY(PrefType->Setting),
+                                              lval, 
+                                              NULL, 
+                                              PRF_YESNO,
+                                              1, 
+                                              PrefType);
                        break;
                }
        }
@@ -795,7 +874,8 @@ void GetPreferences(HashList * Setting) {
 /*
  * Commit new preferences and settings
  */
-void set_preferences(void) {
+void set_preferences(void)
+{      
        if (!havebstr("change_button")) {
                AppendImportantMessage(_("Cancelled.  No settings were changed."), -1);
                display_main_menu();
@@ -806,14 +886,17 @@ void set_preferences(void) {
 }
 
 
-void tmplput_CFG_Value(StrBuf * Target, WCTemplputParams * TP) {
+void tmplput_CFG_Value(StrBuf *Target, WCTemplputParams *TP)
+{
        Preference *Pref;
-       if (get_pref_backend(TKEY(0), &Pref)) {
+       if (get_pref_backend(TKEY(0), &Pref))
+       {
                if (Pref->Type == NULL) {
                        StrBufAppendTemplate(Target, TP, Pref->Val, 1);
                }
-               switch (Pref->Type->eType) {
-               case PRF_UNSET: /* default to string... */
+               switch (Pref->Type->eType)
+               {
+               case PRF_UNSET: /* default to string... */
                case PRF_STRING:
                        StrBufAppendTemplate(Target, TP, Pref->Val, 1);
                        break;
@@ -830,7 +913,7 @@ void tmplput_CFG_Value(StrBuf * Target, WCTemplputParams * TP) {
                        if (Pref->decoded != 1) {
                                if (Pref->DeQPed == NULL)
                                        Pref->DeQPed = NewStrBufPlain(NULL, StrLength(Pref->Val));
-
+                                       
                                StrBufEUid_unescapize(Pref->DeQPed, Pref->Val);
                                Pref->decoded = 1;
                        }
@@ -847,13 +930,15 @@ void tmplput_CFG_Value(StrBuf * Target, WCTemplputParams * TP) {
        }
 }
 
-void tmplput_CFG_Descr(StrBuf * Target, WCTemplputParams * TP) {
+void tmplput_CFG_Descr(StrBuf *Target, WCTemplputParams *TP)
+{
        const char *SettingStr;
        SettingStr = PrefGetLocalStr(TKEY(0));
-       if (SettingStr != NULL)
+       if (SettingStr != NULL) 
                StrBufAppendBufPlain(Target, SettingStr, -1, 0);
 }
-void tmplput_CFG_RoomValueLong(StrBuf * Target, WCTemplputParams * TP) {
+void tmplput_CFG_RoomValueLong(StrBuf *Target, WCTemplputParams *TP)
+{
        long lvalue;
        long defval = 0;
 
@@ -862,46 +947,55 @@ void tmplput_CFG_RoomValueLong(StrBuf * Target, WCTemplputParams * TP) {
        get_ROOM_PREFS_LONG(TKEY(0), &lvalue, defval);
        StrBufAppendPrintf(Target, "%ld", lvalue);
 }
-void tmplput_CFG_RoomValue(StrBuf * Target, WCTemplputParams * TP) {
+void tmplput_CFG_RoomValue(StrBuf *Target, WCTemplputParams *TP)
+{
        StrBuf *pref = get_ROOM_PREFS(TKEY(0));
-       if (pref != NULL)
+       if (pref != NULL) 
                StrBufAppendBuf(Target, pref, 0);
 }
-int ConditionalHasRoomPreference(StrBuf * Target, WCTemplputParams * TP) {
-       if (get_ROOM_PREFS(TP->Tokens->Params[0]->Start, TP->Tokens->Params[0]->len) != NULL)
+int ConditionalHasRoomPreference(StrBuf *Target, WCTemplputParams *TP) 
+{
+       if (get_ROOM_PREFS(TP->Tokens->Params[0]->Start, 
+                          TP->Tokens->Params[0]->len) != NULL) 
                return 1;
-
+  
        return 0;
 }
 
-int ConditionalPreference(StrBuf * Target, WCTemplputParams * TP) {
+int ConditionalPreference(StrBuf *Target, WCTemplputParams *TP)
+{
        StrBuf *Pref;
 
-       if (!get_PREFERENCE(TKEY(2), &Pref))
+       if (!get_PREFERENCE(TKEY(2), &Pref)) 
                return 0;
-
+       
        if (!HAVE_PARAM(3)) {
                return 1;
        }
-       else if (IS_NUMBER(TP->Tokens->Params[3]->Type)) {
-               return StrTol(Pref) == GetTemplateTokenNumber(Target, TP, 3, 0);
+       else if (IS_NUMBER(TP->Tokens->Params[3]->Type))
+       {
+               return StrTol(Pref) == GetTemplateTokenNumber (Target, TP, 3, 0);
        }
-       else {
+       else 
+       {
                const char *pch;
                long len;
-
+               
                GetTemplateTokenString(Target, TP, 3, &pch, &len);
-
-               return ((len == StrLength(Pref)) && (strcmp(pch, ChrPtr(Pref)) == 0));
+               
+               return ((len == StrLength(Pref)) &&
+                       (strcmp(pch, ChrPtr(Pref)) == 0));
        }
 }
 
-int ConditionalHasPreference(StrBuf * Target, WCTemplputParams * TP) {
+int ConditionalHasPreference(StrBuf *Target, WCTemplputParams *TP)
+{
        StrBuf *Pref;
 
-       if (!get_PREFERENCE(TKEY(2), &Pref) || (Pref == NULL))
+       if (!get_PREFERENCE(TKEY(2), &Pref) || 
+           (Pref == NULL)) 
                return 0;
-       else
+       else 
                return 1;
 }
 
@@ -913,22 +1007,26 @@ CtxType CTX_VEA = CTX_NONE;
 typedef struct __ValidEmailAddress {
        StrBuf *Address;
        int IsDefault;
-} ValidEmailAddress;
+}ValidEmailAddress;
 
-void DeleteValidEmailAddress(void *v) {
-       ValidEmailAddress *VEA = (ValidEmailAddress *) v;
+void DeleteValidEmailAddress(void *v)
+{
+       ValidEmailAddress *VEA = (ValidEmailAddress*)v;
        FreeStrBuf(&VEA->Address);
        free(VEA);
 }
-void tmplput_VEA(StrBuf * Target, WCTemplputParams * TP) {
-       ValidEmailAddress *VEA = (ValidEmailAddress *) CTX((CTX_VEA));
+void tmplput_VEA(StrBuf *Target, WCTemplputParams *TP)
+{
+       ValidEmailAddress* VEA = (ValidEmailAddress*) CTX((CTX_VEA));
        StrBufAppendTemplate(Target, TP, VEA->Address, 0);
 }
-int ConditionalPreferenceIsDefaulVEA(StrBuf * Target, WCTemplputParams * TP) {
-       ValidEmailAddress *VEA = (ValidEmailAddress *) CTX((CTX_VEA));
+int ConditionalPreferenceIsDefaulVEA(StrBuf *Target, WCTemplputParams *TP)
+{
+       ValidEmailAddress* VEA = (ValidEmailAddress*) CTX((CTX_VEA));
        return VEA->IsDefault;
 }
-HashList *GetGVEAHash(StrBuf * Target, WCTemplputParams * TP) {
+HashList *GetGVEAHash(StrBuf *Target, WCTemplputParams *TP)
+{
        StrBuf *Rcp;
        HashList *List = NULL;
        int Done = 0;
@@ -946,12 +1044,14 @@ HashList *GetGVEAHash(StrBuf * Target, WCTemplputParams * TP) {
        if (GetServerStatus(Rcp, NULL) == 1) {
                FlushStrBuf(Rcp);
                List = NewHash(1, NULL);
-               while (!Done && (StrBuf_ServGetln(Rcp) >= 0)) {
-                       if ((StrLength(Rcp) == 3) && !strcmp(ChrPtr(Rcp), "000")) {
+               while (!Done && (StrBuf_ServGetln(Rcp)>=0)) {
+                       if ( (StrLength(Rcp)==3) && 
+                            !strcmp(ChrPtr(Rcp), "000")) 
+                       {
                                Done = 1;
                        }
                        else {
-                               VEA = (ValidEmailAddress *) malloc(sizeof(ValidEmailAddress));
+                               VEA = (ValidEmailAddress*) malloc(sizeof(ValidEmailAddress));
                                i = snprintf(N, sizeof(N), "%d", n);
                                StrBufTrim(Rcp);
                                VEA->Address = Rcp;
@@ -971,11 +1071,13 @@ HashList *GetGVEAHash(StrBuf * Target, WCTemplputParams * TP) {
        FreeStrBuf(&Rcp);
        return List;
 }
-void DeleteGVEAHash(HashList ** KillMe) {
+void DeleteGVEAHash(HashList **KillMe)
+{
        DeleteHash(KillMe);
 }
 
-HashList *GetGVSNHash(StrBuf * Target, WCTemplputParams * TP) {
+HashList *GetGVSNHash(StrBuf *Target, WCTemplputParams *TP)
+{
        StrBuf *Rcp;
        HashList *List = NULL;
        int Done = 0;
@@ -988,8 +1090,10 @@ HashList *GetGVSNHash(StrBuf * Target, WCTemplputParams * TP) {
        if (GetServerStatus(Rcp, NULL) == 1) {
                FlushStrBuf(Rcp);
                List = NewHash(1, NULL);
-               while (!Done && (StrBuf_ServGetln(Rcp) >= 0)) {
-                       if ((StrLength(Rcp) == 3) && !strcmp(ChrPtr(Rcp), "000")) {
+               while (!Done && (StrBuf_ServGetln(Rcp)>=0)) {
+                       if ( (StrLength(Rcp)==3) && 
+                            !strcmp(ChrPtr(Rcp), "000")) 
+                       {
                                Done = 1;
                        }
                        else {
@@ -1004,7 +1108,8 @@ HashList *GetGVSNHash(StrBuf * Target, WCTemplputParams * TP) {
        FreeStrBuf(&Rcp);
        return List;
 }
-void DeleteGVSNHash(HashList ** KillMe) {
+void DeleteGVSNHash(HashList **KillMe)
+{
        DeleteHash(KillMe);
 }
 
@@ -1014,7 +1119,8 @@ void DeleteGVSNHash(HashList ** KillMe) {
 /*
  * Offer to make any page the user's "start page" (only if logged in)
  */
-void offer_start_page(StrBuf * Target, WCTemplputParams * TP) {
+void offer_start_page(StrBuf *Target, WCTemplputParams *TP)
+{
        if (WC->logged_in) {
                wc_printf("<a href=\"change_start_page?startpage=");
                urlescputs(ChrPtr(WC->Hdr->this_page));
@@ -1028,7 +1134,8 @@ void offer_start_page(StrBuf * Target, WCTemplputParams * TP) {
 /*
  * Change the user's start page
  */
-void change_start_page(void) {
+void change_start_page(void) 
+{
        const char *pch;
        void *vHandler;
        int ProhibitSave = 0;
@@ -1037,13 +1144,24 @@ void change_start_page(void) {
        if (pStartPage != NULL) {
                pch = strchr(ChrPtr(pStartPage), '?');
 
-               if ((pch != NULL) && (GetHash(HandlerHash, ChrPtr(pStartPage), pch - ChrPtr(pStartPage), &vHandler), (vHandler != NULL) && ((((WebcitHandler *) vHandler)->Flags & PROHIBIT_STARTPAGE) != 0))) {        /* OK, This handler doesn't want to be set as start page, prune it. */
+               if ((pch != NULL) && (
+                           GetHash(HandlerHash, ChrPtr(pStartPage), pch - ChrPtr(pStartPage), &vHandler), 
+                           (vHandler != NULL) &&
+                           ((((WebcitHandler*)vHandler)->Flags & PROHIBIT_STARTPAGE) != 0)))
+               { /* OK, This handler doesn't want to be set as start page, prune it. */
                        ProhibitSave = 1;
                }
        }
 
-       if ((pStartPage == NULL) || (ProhibitSave == 1)) {
-               set_preference_backend(HKEY("startpage"), 0, NewStrBufPlain(HKEY("")), PRF_STRING, 1, NULL);
+       if ((pStartPage == NULL) || 
+           (ProhibitSave == 1))
+       {
+               set_preference_backend(HKEY("startpage"), 
+                                      0, 
+                                      NewStrBufPlain(HKEY("")),
+                                      PRF_STRING,
+                                      1, 
+                                      NULL);
                if (ProhibitSave == 1)
                        AppendImportantMessage(_("This isn't allowed to become the start page."), -1);
                else
@@ -1054,7 +1172,12 @@ void change_start_page(void) {
 
 
 
-       set_preference_backend(HKEY("startpage"), 0, NewStrBufDup(pStartPage), PRF_STRING, 1, NULL);
+       set_preference_backend(HKEY("startpage"), 
+                              0, 
+                              NewStrBufDup(pStartPage),
+                              PRF_STRING,
+                              1, 
+                              NULL);
 
        output_headers(1, 1, 0, 0, 0, 0);
        do_template("newstartpage");
@@ -1062,7 +1185,8 @@ void change_start_page(void) {
 }
 
 
-void LoadStartpage(StrBuf * URL, long lvalue) {
+void LoadStartpage(StrBuf *URL, long lvalue)
+{
        const char *pch;
        void *vHandler;
        pch = strchr(ChrPtr(URL), '?');
@@ -1074,14 +1198,20 @@ void LoadStartpage(StrBuf * URL, long lvalue) {
                        WC->SavePrefsToServer = 1;
                }
        }
-       else if (GetHash(HandlerHash, ChrPtr(URL), pch - ChrPtr(URL), &vHandler), (vHandler != NULL) && ((((WebcitHandler *) vHandler)->Flags & PROHIBIT_STARTPAGE) != 0)) {    /* OK, This handler doesn't want to be set as start page, prune it. */
+       else if (GetHash(HandlerHash, ChrPtr(URL), pch - ChrPtr(URL), &vHandler), 
+                (vHandler != NULL) &&
+                ((((WebcitHandler*)vHandler)->Flags & PROHIBIT_STARTPAGE) != 0))
+       { /* OK, This handler doesn't want to be set as start page, prune it. */
                FlushStrBuf(URL);
                WC->SavePrefsToServer = 1;
        }
 }
 
 
-void InitModule_PREFERENCES(void) {
+void 
+InitModule_PREFERENCES
+(void)
+{
        RegisterCTX(CTX_VEA);
 
        WebcitAddUrlHandler(HKEY("set_preferences"), "", 0, set_preferences, 0);
@@ -1090,46 +1220,63 @@ void InitModule_PREFERENCES(void) {
        RegisterPreference("startpage", _("Prefered startpage"), PRF_STRING, LoadStartpage);
 
        RegisterNamespace("OFFERSTARTPAGE", 0, 0, offer_start_page, NULL, CTX_NONE);
-       RegisterNamespace("PREF:ROOM:VALUE", 1, 2, tmplput_CFG_RoomValue, NULL, CTX_NONE);
-       RegisterNamespace("PREF:ROOM:VALUE:INT", 1, 2, tmplput_CFG_RoomValueLong, NULL, CTX_NONE);
+       RegisterNamespace("PREF:ROOM:VALUE", 1, 2, tmplput_CFG_RoomValue,  NULL, CTX_NONE);
+       RegisterNamespace("PREF:ROOM:VALUE:INT", 1, 2, tmplput_CFG_RoomValueLong,  NULL, CTX_NONE);
        RegisterNamespace("PREF:VALUE", 1, 2, tmplput_CFG_Value, NULL, CTX_NONE);
-
+       
        RegisterNamespace("PREF:DESCR", 1, 1, tmplput_CFG_Descr, NULL, CTX_NONE);
 
        RegisterConditional("COND:PREF", 4, ConditionalPreference, CTX_NONE);
        RegisterConditional("COND:PREF:SET", 4, ConditionalHasPreference, CTX_NONE);
        RegisterConditional("COND:ROOM:SET", 4, ConditionalHasRoomPreference, CTX_NONE);
-
-       RegisterIterator("PREF:VALID:EMAIL:ADDR", 0, NULL, GetGVEAHash, NULL, DeleteGVEAHash, CTX_VEA, CTX_NONE, IT_NOFLAG);
+       
+       RegisterIterator("PREF:VALID:EMAIL:ADDR", 0, NULL, 
+                        GetGVEAHash, NULL, DeleteGVEAHash, CTX_VEA, CTX_NONE, IT_NOFLAG);
        RegisterNamespace("PREF:VALID:EMAIL:ADDR:STR", 1, 1, tmplput_VEA, NULL, CTX_VEA);
        RegisterConditional("COND:PREF:VALID:EMAIL:ADDR:STR", 4, ConditionalPreferenceIsDefaulVEA, CTX_VEA);
 
-       RegisterIterator("PREF:VALID:EMAIL:NAME", 0, NULL, GetGVSNHash, NULL, DeleteGVSNHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+       RegisterIterator("PREF:VALID:EMAIL:NAME", 0, NULL, 
+                        GetGVSNHash, NULL, DeleteGVSNHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
 
 }
 
 
-void ServerStartModule_PREFERENCES(void) {
+void 
+ServerStartModule_PREFERENCES
+(void)
+{
        PreferenceHooks = NewHash(1, NULL);
 }
 
 
 
-void ServerShutdownModule_PREFERENCES(void) {
+void 
+ServerShutdownModule_PREFERENCES
+(void)
+{
        DeleteHash(&PreferenceHooks);
 }
 
-void SessionDetachModule__PREFERENCES(wcsession * sess) {
+void
+SessionDetachModule__PREFERENCES
+(wcsession *sess)
+{
        if (sess->SavePrefsToServer) {
                save_preferences();
                sess->SavePrefsToServer = 0;
        }
 }
 
-void SessionNewModule_PREFERENCES(wcsession * sess) {
-       sess->hash_prefs = NewHash(1, NULL);
+void
+SessionNewModule_PREFERENCES
+(wcsession *sess)
+{
+       sess->hash_prefs = NewHash(1,NULL);
 }
 
-void SessionDestroyModule_PREFERENCES(wcsession * sess) {
+void 
+SessionDestroyModule_PREFERENCES
+(wcsession *sess)
+{
        DeleteHash(&sess->hash_prefs);
 }