- declare *printf format specifiers if gcc detected
authorNathan Bryant <loanshark@uncensored.citadel.org>
Wed, 17 Oct 2001 20:41:08 +0000 (20:41 +0000)
committerNathan Bryant <loanshark@uncensored.citadel.org>
Wed, 17 Oct 2001 20:41:08 +0000 (20:41 +0000)
 - format string fixes (compiles w/o warnings on alpha osf/1)

20 files changed:
citadel/ChangeLog
citadel/citserver.c
citadel/commands.h
citadel/control.c
citadel/file_ops.c
citadel/imap_tools.c
citadel/internet_addressing.c
citadel/mime_parser.c
citadel/msgbase.c
citadel/serv_bio.c
citadel/serv_chat.c
citadel/serv_expire.c
citadel/serv_network.c
citadel/serv_pas2.c
citadel/serv_pop3.c
citadel/serv_smtp.c
citadel/serv_vandelay.c
citadel/snprintf.h
citadel/sysdep_decls.h
citadel/user_ops.c

index f50f3c0f452008307c9fad7ea536f41bdaf94368..7ee100478fcc539d63f65884f323b3cdedae62c2 100644 (file)
@@ -1,4 +1,8 @@
  $Log$
+ Revision 580.65  2001/10/17 20:41:07  nbryant
+  - declare *printf format specifiers if gcc detected
+  - format string fixes (compiles w/o warnings on alpha osf/1)
+
  Revision 580.64  2001/10/17 19:40:38  nbryant
  warning fixes and cleanups for 64-bit machines
 
@@ -2824,4 +2828,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import 
-
index 3d83bfe8c4544254731704879c318f865137aab2..562cd8905f4301417dcb32af5b8202989a3a2062 100644 (file)
@@ -353,7 +353,7 @@ void cmd_time(void)
    
    tv = time(NULL);
    
-   cprintf("%d %ld\n", OK, tv);
+   cprintf("%d %ld\n", OK, (long)tv);
 }
 
 /*
@@ -785,7 +785,7 @@ void generate_nonce(struct CitContext *con) {
        gettimeofday(&tv, NULL);
        memset(con->cs_nonce, NONCE_SIZE, 0);
        snprintf(con->cs_nonce, NONCE_SIZE, "<%d%ld@%s>",
-               rand(), tv.tv_usec, config.c_fqdn);
+               rand(), (long)tv.tv_usec, config.c_fqdn);
 }
 
 
index 9a70678815c502c6719b9596c90727ce523039fb..209dd06a67463bf5fb5373c17d066405ab66db2f 100644 (file)
@@ -55,7 +55,12 @@ void async_ka_start(void);
 void async_ka_end(void);
 int checkpagin(int lp, int pagin, int height);
 char was_a_key_pressed(void);
+
+#ifdef __GNUC__
+void pprintf(const char *format, ...) __attribute__((__format__(__printf__,1,2)));
+#else
 void pprintf(const char *format, ...);
+#endif
 
 
 
index c1a34fbc46dcd34e8e342f2300ec62f5111a940e..a60edf19c679a34a17b5f5c604a345203d816575 100644 (file)
@@ -178,7 +178,7 @@ void cmd_conf(char *argbuf) {
                cprintf("%d\n", config.c_roompurge);
                cprintf("%s\n", config.c_logpages);
                cprintf("%d\n", config.c_createax);
-               cprintf("%d\n", config.c_maxmsglen);
+               cprintf("%ld\n", config.c_maxmsglen);
                cprintf("%d\n", config.c_min_workers);
                cprintf("%d\n", config.c_max_workers);
                cprintf("%d\n", config.c_pop3_port);
index 61ad702d23d7f98b72e2f2a87e3ef762fa387b7f..b414dcb07de38e68a571a8484f305f15f6bfb631 100644 (file)
@@ -331,7 +331,7 @@ void OpenCmdResult(char *filename, char *mime_type)
        modtime = (time_t) statbuf.st_mtime;
 
        cprintf("%d %ld|%ld|%s|%s\n",
-               OK, filesize, modtime, filename, mime_type);
+               OK, filesize, (long)modtime, filename, mime_type);
 }
 
 
index c205dbd35bbfc07909e159e2c2a32c36a68cfa37..4f9809879a30262213e6fd84f8b88be96c81b724 100644 (file)
@@ -41,7 +41,7 @@ void imap_strout(char *buf)
        }
 
        if (is_literal) {
-               cprintf("{%d}\r\n%s", strlen(buf), buf);
+               cprintf("{%ld}\r\n%s", strlen(buf), buf);
        } else {
                cprintf("\"%s\"", buf);
        }
index 678189bb1b4b1ad7e947ea6d3100de21bcdbfbbb..f367cbf1b0add38470c2808c092805af97823e95 100644 (file)
@@ -422,7 +422,7 @@ int convert_field(struct CtdlMessage *msg, int beg, int end) {
        if (!strcasecmp(key, "Date")) {
                parsed_date = parsedate(value);
                if (parsed_date < 0L) parsed_date = time(NULL);
-               snprintf(buf, sizeof buf, "%ld", parsed_date );
+               snprintf(buf, sizeof buf, "%ld", (long)parsed_date );
                if (msg->cm_fields['T'] == NULL)
                        msg->cm_fields['T'] = strdoop(buf);
                processed = 1;
@@ -497,7 +497,7 @@ struct CtdlMessage *convert_internet_message(char *rfc822) {
        msg->cm_format_type = FMT_RFC822;       /* internet message */
        msg->cm_fields['M'] = rfc822;
 
-       lprintf(9, "Unconverted RFC822 message length = %d\n", strlen(rfc822));
+       lprintf(9, "Unconverted RFC822 message length = %ld\n", strlen(rfc822));
        pos = 0;
        done = 0;
 
@@ -552,11 +552,11 @@ struct CtdlMessage *convert_internet_message(char *rfc822) {
 
        /* If there's no timestamp on this message, set it to now. */
        if (msg->cm_fields['T'] == NULL) {
-               snprintf(buf, sizeof buf, "%ld", time(NULL));
+               snprintf(buf, sizeof buf, "%ld", (long)time(NULL));
                msg->cm_fields['T'] = strdoop(buf);
        }
 
-       lprintf(9, "RFC822 length remaining after conversion = %d\n",
+       lprintf(9, "RFC822 length remaining after conversion = %ld\n",
                strlen(rfc822));
        return msg;
 }
index 94a508cb3d2b051d21f17313cb19fe3b33b87d5c..fc8133df670e53f74c69afda529c07ded79f7f9f 100644 (file)
@@ -413,7 +413,7 @@ void the_mime_parser(char *partnum,
                /* Truncate if the header told us to */
                if ( (content_length > 0) && (length > content_length) ) {
                        length = content_length;
-                       lprintf(9, "truncated to %d\n", content_length);
+                       lprintf(9, "truncated to %ld\n", content_length);
                }
                
                mime_decode(partnum,
index e5c1bcac02e760bf4d21ce666ad7492387a07016..ff346d3d71f5996db4aa912085d256c414744902 100644 (file)
@@ -679,7 +679,7 @@ void list_this_part(char *name, char *filename, char *partnum, char *disp,
                    void *cbuserdata)
 {
 
-       cprintf("part=%s|%s|%s|%s|%s|%d\n",
+       cprintf("part=%s|%s|%s|%s|%s|%ld\n",
                name, filename, partnum, disp, cbtype, length);
 }
 
@@ -907,7 +907,7 @@ void fixed_output(char *name, char *filename, char *partnum, char *disp,
                        phree(ptr);
                }
                else if (strncasecmp(cbtype, "multipart/", 10)) {
-                       cprintf("Part %s: %s (%s) (%d bytes)\r\n",
+                       cprintf("Part %s: %s (%s) (%ld bytes)\r\n",
                                partnum, filename, cbtype, length);
                }
        }
@@ -1579,7 +1579,7 @@ void serialize_message(struct ser_ret *ret,               /* return values */
                ret->len = ret->len +
                        strlen(msg->cm_fields[(int)forder[i]]) + 2;
 
-       lprintf(9, "serialize_message() calling malloc(%d)\n", ret->len);
+       lprintf(9, "serialize_message() calling malloc(%ld)\n", ret->len);
        ret->ser = mallok(ret->len);
        if (ret->ser == NULL) {
                ret->len = 0;
@@ -1596,7 +1596,7 @@ void serialize_message(struct ser_ret *ret,               /* return values */
                strcpy(&ret->ser[wlen], msg->cm_fields[(int)forder[i]]);
                wlen = wlen + strlen(msg->cm_fields[(int)forder[i]]) + 1;
        }
-       if (ret->len != wlen) lprintf(3, "ERROR: len=%d wlen=%d\n",
+       if (ret->len != wlen) lprintf(3, "ERROR: len=%ld wlen=%ld\n",
                ret->len, wlen);
 
        return;
@@ -2015,7 +2015,7 @@ char *CtdlReadMessageBody(char *terminator,       /* token signalling EOT */
                        } else {
                                buffer_len = (buffer_len * 2);
                                m = ptr;
-                               lprintf(9, "buffer_len is %d\n", buffer_len);
+                               lprintf(9, "buffer_len is %ld\n", buffer_len);
                        }
                }
 
index 7915bbfb5d367f255b7ddd0487a08e1057ec1963..bb435d2e51bc408859990bb096b633f48b4f29d7 100644 (file)
@@ -89,7 +89,7 @@ void cmd_rbio(char *cmdbuf)
        }
        sprintf(buf,"./bio/%ld",ruser.usernum);
        
-       cprintf("%d OK|%s|%ld|%d|%ld|%ld|%ld\n", LISTING_FOLLOWS,
+       cprintf("%d OK|%s|%ld|%d|%d|%ld|%ld\n", LISTING_FOLLOWS,
                ruser.fullname, ruser.usernum, ruser.axlevel,
                ruser.lastcall, ruser.timescalled, ruser.posted);
        fp = fopen(buf,"r");
index 4ac4ce50f6b533917e221d7a96f27687dc9d8294..0ac6799e3e349849506fb8d01fb49621ee26e106 100644 (file)
@@ -334,7 +334,7 @@ void cmd_chat(char *argbuf)
                                                if (strcasecmp(CC->curr_user, t_context->curr_user))
                                                        allwrite(strptr1, 2, t_context->curr_user);
                                        } else
-                                               cprintf(":|User not found.\n", cmdbuf);
+                                               cprintf(":|User not found.\n");
                                        cprintf("\n");
                                }
                                if ((cmdbuf[0] != '/') && (strlen(cmdbuf) > 0)) {
@@ -447,7 +447,7 @@ void cmd_gexp(char *argbuf) {
        cprintf("%d %d|%ld|%d|%s|%s\n",
                LISTING_FOLLOWS,
                ((ptr->next != NULL) ? 1 : 0),          /* more msgs? */
-               ptr->timestamp,                         /* time sent */
+               (long)ptr->timestamp,                           /* time sent */
                ptr->flags,                             /* flags */
                ptr->sender,                            /* sender of msg */
                config.c_nodename);                     /* static for now */
index e153b99bfb26faf3e09d5e4e9a51a4a6f02768c6..cffe99032193b2faf25ee7ab15588079f318549b 100644 (file)
@@ -283,7 +283,7 @@ void DoPurgeRooms(struct quickroom *qrbuf, void *data) {
                age = time(NULL) - (qrbuf->QRmtime);
                purge_secs = (time_t)config.c_roompurge * (time_t)86400;
                if (purge_secs <= (time_t)0) return;
-               lprintf(9, "<%s> is <%ld> seconds old\n", qrbuf->QRname, age);
+               lprintf(9, "<%s> is <%ld> seconds old\n", qrbuf->QRname, (long)age);
                if (age > purge_secs) do_purge = 1;
        } /* !QR_MAILBOX */
 
index 37feb4079c198d6be6a93217795252b6c3df80cf..380974398f48b0b81f05102213a482df0897e9e4 100644 (file)
@@ -439,7 +439,7 @@ void network_spool_msg(long msgnum, void *userdata) {
                lprintf(9, "Generating delivery instructions\n");
                instr = mallok(instr_len);
                if (instr == NULL) {
-                       lprintf(1, "Cannot allocate %d bytes for instr...\n",
+                       lprintf(1, "Cannot allocate %ld bytes for instr...\n",
                                instr_len);
                        abort();
                }
@@ -1369,7 +1369,7 @@ void cmd_netp(char *cmdbuf)
        }
 
        if (network_talking_to(node, NTT_CHECK)) {
-               cprintf("%d Already talking to %s right now\n", ERROR);
+               cprintf("%d Already talking to %s right now\n", ERROR, node);
                return;
        }
 
index 8ed5dccd91559811f863f829002795b22a4df4a6..b988af94e81b17f24a8d0a9053fa706638d25b1a 100644 (file)
@@ -63,7 +63,7 @@ void cmd_pas2(char *argbuf)
        
        if (strlen(pw) != (MD5_HEXSTRING_SIZE-1))
        {
-               cprintf("%d Auth string of length %d is the wrong length (should be %d).\n", ERROR, strlen(pw), MD5_HEXSTRING_SIZE-1);
+               cprintf("%d Auth string of length %ld is the wrong length (should be %d).\n", ERROR, strlen(pw), MD5_HEXSTRING_SIZE-1);
                return;
        }
        
index 0906e837113827fa5159c4d85ac2d81a92b65640..c143e0d095792bfd10968d26f32e5a919cdacf82 100644 (file)
@@ -100,7 +100,7 @@ void pop3_greeting(void) {
        POP3->num_msgs = 0;
 
        cprintf("+OK Citadel/UX POP3 server %s\r\n",
-               CC->cs_nonce, config.c_fqdn);
+               CC->cs_nonce);
 }
 
 
@@ -294,7 +294,7 @@ void pop3_list(char *argbuf) {
                        return;
                }
                else {
-                       cprintf("+OK %d %d\r\n",
+                       cprintf("+OK %d %ld\r\n",
                                which_one,
                                POP3->msgs[which_one-1].rfc822_length
                                );
@@ -307,7 +307,7 @@ void pop3_list(char *argbuf) {
                cprintf("+OK Here's your mail:\r\n");
                if (POP3->num_msgs > 0) for (i=0; i<POP3->num_msgs; ++i) {
                        if (! POP3->msgs[i].deleted) {
-                               cprintf("%d %d\r\n",
+                               cprintf("%d %ld\r\n",
                                        i+1,
                                        POP3->msgs[i].rfc822_length);
                        }
@@ -332,7 +332,7 @@ void pop3_stat(char *argbuf) {
                }
        }
 
-       cprintf("+OK %d %d\r\n", total_msgs, total_octets);
+       cprintf("+OK %d %ld\r\n", total_msgs, total_octets);
 }
 
 
index 2d3ef0ceb15cd629fba46c21ec2a5caab73b3803..53a54881b1feb5f6c18adf80fd34f35db05e9673 100644 (file)
@@ -558,7 +558,7 @@ int smtp_message_delivery(struct CtdlMessage *msg) {
        snprintf(instr, 1024,
                        "Content-type: %s\n\nmsgid|%ld\nsubmitted|%ld\n"
                        "bounceto|%s\n",
-               SPOOLMIME, msgid, time(NULL),
+               SPOOLMIME, msgid, (long)time(NULL),
                SMTP->from );
 
        for (i=0; i<SMTP->number_of_recipients; ++i) {
@@ -1427,7 +1427,7 @@ void smtp_do_procmsg(long msgnum, void *userdata) {
                        "Content-type: %s\n\n%s\n"
                        "attempted|%ld\n"
                        "retry|%ld\n",
-                       SPOOLMIME, instr, time(NULL), retry );
+                       SPOOLMIME, instr, (long)time(NULL), (long)retry );
                phree(instr);
                CtdlSaveMsg(msg, "", SMTP_SPOOLOUT_ROOM, MES_LOCAL);
                CtdlFreeMessage(msg);
index bd613e0c0cd544d2f40fa534c248207bfb7907ad..d364740cbd027c664775a77ba3024067a996f1bc 100644 (file)
@@ -60,7 +60,7 @@ void artv_export_users_backend(struct usersupp *usbuf, void *data) {
        cprintf("%ld\n", usbuf->posted);
        cprintf("%d\n", usbuf->axlevel);
        cprintf("%ld\n", usbuf->usernum);
-       cprintf("%ld\n", usbuf->lastcall);
+       cprintf("%ld\n", (long)usbuf->lastcall);
        cprintf("%d\n", usbuf->USuserpurge);
        cprintf("%s\n", usbuf->fullname);
        cprintf("%d\n", usbuf->USscreenwidth);
@@ -86,12 +86,12 @@ void artv_export_rooms_backend(struct quickroom *qrbuf, void *data) {
        cprintf("%s\n", qrbuf->QRpasswd);
        cprintf("%ld\n", qrbuf->QRroomaide);
        cprintf("%ld\n", qrbuf->QRhighest);
-       cprintf("%ld\n", qrbuf->QRgen);
+       cprintf("%ld\n", (long)qrbuf->QRgen);
        cprintf("%u\n", qrbuf->QRflags);
        cprintf("%s\n", qrbuf->QRdirname);
        cprintf("%ld\n", qrbuf->QRinfo);
        cprintf("%d\n", qrbuf->QRfloor);
-       cprintf("%ld\n", qrbuf->QRmtime);
+       cprintf("%ld\n", (long)qrbuf->QRmtime);
        cprintf("%d\n", qrbuf->QRep.expire_mode);
        cprintf("%d\n", qrbuf->QRep.expire_value);
        cprintf("%ld\n", qrbuf->QRnumber);
@@ -238,7 +238,7 @@ void artv_export_messages(void) {
                }
        }
        fclose(artv_global_message_list);
-       lprintf(7, "Exported %ld messages.\n", count);
+       lprintf(7, "Exported %d messages.\n", count);
 }
 
 
@@ -465,7 +465,7 @@ void artv_import_visit(void) {
 void artv_import_message(void) {
        struct SuppMsgInfo smi;
        long msgnum;
-       int msglen;
+       long msglen;
        FILE *fp;
        char buf[SIZ];
        char tempfile[SIZ];
index 1a27cdf138c8977bd18d934d717fb72b0f640e8a..13c7c8e3257c376e56a26c572c631c1c9a88a516 100644 (file)
@@ -1,5 +1,12 @@
 /* $Id$ */
 #ifndef __DECC
+
+#ifdef __GNUC__
+int snprintf (char *buf, size_t max, const char *fmt, ...) __attribute__((__format__(__printf__,3,4)));
+int vsnprintf (char *buf, size_t max, const char *fmt, va_list argp) __attribute__((__format__(__printf__,3,0)));
+#else
 int snprintf (char *buf, size_t max, const char *fmt, ...);
 int vsnprintf (char *buf, size_t max, const char *fmt, va_list argp);
 #endif
+
+#endif
index fc977fe04fcf5240e2f8e0d0298c905f8ecf2a62..2078182c07a8d3fd624c1d76d9e499a2d3baf8bb 100644 (file)
@@ -4,7 +4,14 @@
 #include "sysdep.h"
 #include "server.h"
 
+#ifdef __GNUC__
+void lprintf (int loglevel, const char *format, ...) __attribute__((__format__(__printf__,2,3)));
+void cprintf (const char *format, ...) __attribute__((__format__(__printf__,1,2)));
+#else
 void lprintf (int loglevel, const char *format, ...);
+void cprintf (const char *format, ...);
+#endif
+
 void init_sysdep (void);
 void begin_critical_section (int which_one);
 void end_critical_section (int which_one);
@@ -14,7 +21,6 @@ struct CitContext *MyContext (void);
 struct CitContext *CreateNewContext (void);
 void InitMyContext (struct CitContext *con);
 void client_write (char *buf, int nbytes);
-void cprintf (const char *format, ...);
 int client_read_to (char *buf, int bytes, int timeout);
 int client_read (char *buf, int bytes);
 int client_gets (char *buf);
index cedb01e4af5d403db8a9b2441aadf388f313e148..1a07e6f02d2fb7f216efb37fc36aa2fb6f498d7a 100644 (file)
@@ -410,7 +410,7 @@ void session_startup(void)
 
 void logged_in_response(void)
 {
-       cprintf("%d %s|%d|%d|%d|%u|%ld\n",
+       cprintf("%d %s|%d|%ld|%ld|%u|%ld\n",
                OK, CC->usersupp.fullname, CC->usersupp.axlevel,
                CC->usersupp.timescalled, CC->usersupp.posted,
                CC->usersupp.flags,
@@ -750,7 +750,7 @@ void cmd_newu(char *cmdbuf)
        if ((!strcasecmp(username, "bbs")) ||
            (!strcasecmp(username, "new")) ||
            (!strcasecmp(username, "."))) {
-               cprintf("%d '%s' is an invalid login name.\n", ERROR);
+               cprintf("%d '%s' is an invalid login name.\n", ERROR, username);
                return;
        }
        if (a == ERROR + ALREADY_EXISTS) {
@@ -1123,7 +1123,7 @@ void ListThisUser(struct usersupp *usbuf, void *data)
                if ((CC->usersupp.axlevel >= 6)
                    || ((usbuf->flags & US_UNLISTED) == 0)
                    || ((CC->internal_pgm))) {
-                       cprintf("%s|%d|%ld|%ld|%d|%d|",
+                       cprintf("%s|%d|%ld|%d|%ld|%ld|",
                                usbuf->fullname,
                                usbuf->axlevel,
                                usbuf->usernum,
@@ -1212,7 +1212,7 @@ void cmd_agup(char *cmdbuf)
                cprintf("%d No such user.\n", ERROR + NO_SUCH_USER);
                return;
        }
-       cprintf("%d %s|%s|%u|%d|%d|%d|%ld|%ld|%d\n",
+       cprintf("%d %s|%s|%u|%ld|%ld|%d|%ld|%d|%d\n",
                OK,
                usbuf.fullname,
                usbuf.password,