* Began (but did not finish) applying GPL3+ declarations to each source file. This...
[citadel.git] / citadel / citadel.c
index b2d2b5d3884e33681a1ba4d6381a7c95f825f01d..7e5ef874a2351bf2233c80e1a4b657bdce81c01f 100644 (file)
@@ -2,6 +2,22 @@
  * $Id$
  *
  * Main source module for the client program.
+ *
+ * Copyright (c) 1987-2009 by the citadel.org team
+ *
+ *  This program is free 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 "sysdep.h"
@@ -113,13 +129,12 @@ int enable_syslog = 0;
 
 
 /*
- * lprintf()  ...   Write logging information; 
+ * CtdlLogPrintf()  ...   Write logging information; 
  *                  simple here to have the same 
  *                  symbols in the client.
  */
-enum LogLevel {CTDL_EMERG};
 
-void lprintf(enum LogLevel loglevel, const char *format, ...) {   
+void CtdlLogPrintf(enum LogLevel loglevel, const char *format, ...) {   
        va_list arg_ptr;
 
        va_start(arg_ptr, format);
@@ -369,6 +384,7 @@ void dotgoto(CtdlIPC *ipc, char *towhere, int display_name, int fromungoto)
        int ugpos = uglistsize;
        int r;                          /* IPC result code */
        struct ctdlipcroom *room = NULL;
+       int rv = 0;
 
        /* store ungoto information */
        if (fromungoto == 0) {
@@ -503,7 +519,7 @@ void dotgoto(CtdlIPC *ipc, char *towhere, int display_name, int fromungoto)
                }
                color(DIM_WHITE);
                if (!IsEmptyStr(rc_gotmail_cmd)) {
-                       system(rc_gotmail_cmd);
+                       rv = system(rc_gotmail_cmd);
                }
        }
        status_line(ipc->ServInfo.humannode, ipc->ServInfo.site_location,
@@ -769,16 +785,6 @@ void  gotoroomstep(CtdlIPC *ipc, int direction, int mode)
        char rmname[ROOMNAMELEN];
        int rmslot = 0;
        int rmtotal;
-       struct ctdlroom *attr = NULL;
-
-       /* Fetch the existing room config */
-       r = CtdlIPCGetRoomAttributes(ipc, &attr, buf);
-       if (r / 100 != 2) {
-               scr_printf("%s\n", buf);
-               return;
-       }
-       strcpy (room_name , attr->QRname); 
-       free(attr);
 
        /* Ask the server for a room list */
        r = CtdlIPCKnownRooms(ipc, SubscribedRooms, (-1), &listing, buf);
@@ -1020,11 +1026,12 @@ void system_info(CtdlIPC *ipc)
 
        scr_printf("You are connected to %s (%s) @%s\n", ipc->ServInfo.nodename, ipc->ServInfo.humannode, ipc->ServInfo.fqdn);
        scr_printf("running %s with text client v%.2f,\n", ipc->ServInfo.software, (float)REV_LEVEL/100);
+       scr_printf("server build %s,\n", ipc->ServInfo.svn_revision, (float)REV_LEVEL/100);
     scr_printf("and located in %s.\n", ipc->ServInfo.site_location);
     scr_printf("Connected users %d / Active users %d / Highest message #%ld\n", mrtg_users, mrtg_active_users, mrtg_himessage);
     scr_printf("Server uptime: %s\n", mrtg_server_uptime);
     scr_printf("Your system administrator is %s.\n", ipc->ServInfo.sysadm);
-    scr_printf("Copyright (C)1987-2008 by the Citadel development team\n");
+    scr_printf("Copyright (C)1987-2009 by the Citadel development team\n");
 }
 
 /*
@@ -1145,6 +1152,14 @@ void get_serv_info(CtdlIPC *ipc, char *supplied_hostname)
                 /* Look up the , in the bible if you're confused */
                 (locate_host(ipc, buf), buf), buf);
 
+       /* Indicate to the server that we prefer to decode Base64 and
+        * quoted-printable on the client side.
+        */
+       if ((CtdlIPCSpecifyPreferredFormats(ipc, buf, "dont_decode") / 100 ) != 2) {
+               scr_printf("ERROR: Extremely old server; MSG4 framework not supported.\n");
+               logoff(ipc, 0);
+       }
+
        /*
         * Tell the server what our preferred content formats are.
         *
@@ -1152,14 +1167,7 @@ void get_serv_info(CtdlIPC *ipc, char *supplied_hostname)
         * it to the reader's screen width, but since our HTML-to-text parser
         * isn't really all that great, it's probably better to just go with
         * the plain text when we have it available.
-        *
-        * We also indicate to the server that we prefer to decode Base64 and
-        * quoted-printable on the client side.
         */
-       if ((CtdlIPCSpecifyPreferredFormats(ipc, buf, "dont_decode") / 100 ) != 2) {
-               scr_printf("ERROR: Extremely old server; MSG4 framework not supported.\n");
-               logoff(ipc, 0);
-       }
        if ((CtdlIPCSpecifyPreferredFormats(ipc, buf, "text/plain|text/html") / 100 ) != 2) {
                scr_printf("ERROR: Extremely old server; MSG4 framework not supported.\n");
                logoff(ipc, 0);
@@ -1407,6 +1415,7 @@ int main(int argc, char **argv)
        struct ctdluser *myself = NULL;
        CtdlIPC* ipc;                   /* Our server connection */
        int r;                          /* IPC result code */
+       int rv = 0;                     /* fetch but ignore syscall return value to suppress warnings */
 
        int relh=0;
        int home=0;
@@ -1743,7 +1752,7 @@ NEWUSR:   if (IsEmptyStr(rc_password)) {
                                scr_printf("*** You have %d new private messages in Mail>\n", b);
                        color(DIM_WHITE);
                        if (!IsEmptyStr(rc_gotmail_cmd)) {
-                               system(rc_gotmail_cmd);
+                               rv = system(rc_gotmail_cmd);
                        }
                }
                if ((axlevel >= 6) && (chek.needvalid > 0)) {
@@ -2213,10 +2222,6 @@ NEWUSR:  if (IsEmptyStr(rc_password)) {
                                deletefile(ipc);
                                break;
 
-                       case 53:
-                               netsendfile(ipc);
-                               break;
-
                        case 54:
                                movefile(ipc);
                                break;