]> code.citadel.org Git - citadel.git/blobdiff - webcit/preferences.c
buybuy plaintext important message.
[citadel.git] / webcit / preferences.c
index 379fa6509dec76ee80bd5aaa28faff8f42088389..bae72a33ad118eec54f397c11eb196e66353c8ce 100644 (file)
@@ -1,10 +1,24 @@
 /*
- * $Id$
- *
  * Manage user preferences with a little help from the Citadel server.
  *
+ * Copyright (c) 1996-2011 by the citadel.org team
+ *
+ * This program is open source software.  You can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
+
 #include "webcit.h"
 #include "webserver.h"
 #include "groupdav.h"
@@ -111,7 +125,7 @@ void GetPrefTypes(HashList *List)
                        Pref->Type = PrefType;
                        Pref->eFlatPrefType = Pref->Type->eType;
 
-                       lprintf(1, "Loading [%s]with type [%ld] [\"%s\"]\n",
+                       syslog(1, "Loading [%s]with type [%d] [\"%s\"]\n",
                                ChrPtr(Pref->Key),
                                Pref->Type->eType,
                                ChrPtr(Pref->Val));
@@ -139,7 +153,7 @@ void GetPrefTypes(HashList *List)
 
                        if (PrefType->OnLoad != NULL){
 
-                               lprintf(1, "Loading with: -> %s(\"%s\", %ld)\n",
+                               syslog(1, "Loading with: -> %s(\"%s\", %ld)\n",
                                        ChrPtr(PrefType->OnLoadName),
                                        ChrPtr(Pref->Val),
                                        Pref->lval);
@@ -157,7 +171,8 @@ void ParsePref(HashList **List, StrBuf *ReadBuf)
        Preference *LastData = NULL;
                                
        while (!Done) {
-               StrBuf_ServGetln(ReadBuf);
+               if (StrBuf_ServGetln(ReadBuf) < 0)
+                       break;
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
@@ -185,7 +200,7 @@ void ParsePref(HashList **List, StrBuf *ReadBuf)
                        else 
                        {
                                StrBufTrim(ReadBuf);
-                               lprintf(1, "ignoring spurious preference line: [%s]\n", 
+                               syslog(1, "ignoring spurious preference line: [%s]\n", 
                                        ChrPtr(ReadBuf));
                                DestroyPreference(Data);
                                LastData = NULL;
@@ -224,7 +239,7 @@ void load_preferences(void)
                serv_puts("000");
        }
        while (!Done &&
-              StrBuf_ServGetln(ReadBuf)) {
+              (StrBuf_ServGetln(ReadBuf) >= 0)) {
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
@@ -237,7 +252,7 @@ void load_preferences(void)
                serv_printf("MSG0 %ld", msgnum);
                StrBuf_ServGetln(ReadBuf);
                if (GetServerStatus(ReadBuf, NULL) == 1) {
-                       while (StrBuf_ServGetln(ReadBuf),
+                       while ((StrBuf_ServGetln(ReadBuf) >= 0) && 
                               (strcmp(ChrPtr(ReadBuf), "text") && 
                                strcmp(ChrPtr(ReadBuf), "000"))) {
                        }
@@ -378,7 +393,7 @@ void save_preferences(void)
                serv_puts("000");
        }
        while (!Done &&
-              StrBuf_ServGetln(ReadBuf)) {
+              (StrBuf_ServGetln(ReadBuf) >= 0)) {
                if ( (StrLength(ReadBuf)==3) && 
                     !strcmp(ChrPtr(ReadBuf), "000")) {
                        Done = 1;
@@ -539,7 +554,7 @@ void set_preference_backend(const char *key, size_t keylen,
                Pref->Type = PrefType;
                Pref->eFlatPrefType = PrefType->eType;
                if (Pref->Type->eType != lPrefType)
-                       lprintf(1, "warning: saving preference with wrong type [%s] %ld != %ld \n",
+                       syslog(1, "warning: saving preference with wrong type [%s] %d != %ld \n",
                                key, Pref->Type->eType, lPrefType);
                switch (Pref->Type->eType)
                {
@@ -845,9 +860,7 @@ void GetPreferences(HashList *Setting)
 void set_preferences(void)
 {      
        if (!havebstr("change_button")) {
-               safestrncpy(WC->ImportantMessage, 
-                           _("Cancelled.  No settings were changed."),
-                           sizeof WC->ImportantMessage);
+               AppendImportantMessage(_("Cancelled.  No settings were changed."), -1);
                display_main_menu();
                return;
        }
@@ -1051,15 +1064,17 @@ void DeleteGVSNHash(HashList **KillMe)
 
 
 /*
- * Offer to make any page the user's "start page."
+ * Offer to make any page the user's "start page" (only if logged in)
  */
 void offer_start_page(StrBuf *Target, WCTemplputParams *TP)
 {
-       wc_printf("<a href=\"change_start_page?startpage=");
-       urlescputs(ChrPtr(WC->Hdr->this_page));
-       wc_printf("\">");
-       wc_printf(_("Make this my start page"));
-       wc_printf("</a>");
+       if (WC->logged_in) {
+               wc_printf("<a href=\"change_start_page?startpage=");
+               urlescputs(ChrPtr(WC->Hdr->this_page));
+               wc_printf("\">");
+               wc_printf(_("Make this my start page"));
+               wc_printf("</a>");
+       };
 }
 
 
@@ -1117,7 +1132,7 @@ void change_start_page(void)
                               NULL);
 
        output_headers(1, 1, 0, 0, 0, 0);
-       do_template("newstartpage", NULL);
+       do_template("newstartpage");
        wDumpContent(1);
 }