]> code.citadel.org Git - citadel.git/blobdiff - webcit/preferences.c
* Moved to the new string tokenizer API
[citadel.git] / webcit / preferences.c
index 9ae4de5f9e448b06518c69fba9267fd05d8d1368..36ec5c2408cd1e46c99eb00d2cba70628bd24fe6 100644 (file)
@@ -1,9 +1,8 @@
 /*
- * preferences.c
+ * $Id$
  *
  * Manage user preferences with a little help from the Citadel server.
  *
- * $Id$
  */
 
 #include <ctype.h>
@@ -133,7 +132,7 @@ void save_preferences(void) {
        serv_gets(buf);
 }
 
-void get_preference(char *key, char *value) {
+void get_preference(char *key, char *value, size_t value_len) {
        int num_prefs;
        int i;
        char buf[SIZ];
@@ -143,10 +142,10 @@ void get_preference(char *key, char *value) {
 
        num_prefs = num_tokens(WC->preferences, '\n');
        for (i=0; i<num_prefs; ++i) {
-               extract_token(buf, WC->preferences, i, '\n');
-               extract_token(thiskey, buf, 0, '|');
+               extract_token(buf, WC->preferences, i, '\n', sizeof buf);
+               extract_token(thiskey, buf, 0, '|', sizeof thiskey);
                if (!strcasecmp(thiskey, key)) {
-                       extract_token(value, buf, 1, '|');
+                       extract_token(value, buf, 1, '|', value_len);
                }
        }
 }
@@ -160,9 +159,9 @@ void set_preference(char *key, char *value) {
 
        num_prefs = num_tokens(WC->preferences, '\n');
        for (i=0; i<num_prefs; ++i) {
-               extract_token(buf, WC->preferences, i, '\n');
+               extract_token(buf, WC->preferences, i, '\n', sizeof buf);
                if (num_tokens(buf, '|') == 2) {
-                       extract_token(thiskey, buf, 0, '|');
+                       extract_token(thiskey, buf, 0, '|', sizeof thiskey);
                        if (strcasecmp(thiskey, key)) {
                                if (newprefs == NULL) newprefs = strdup("");
                                newprefs = realloc(newprefs,