]> code.citadel.org Git - citadel.git/blobdiff - citadel/citadel.h
* Bump internal version number to 6.08
[citadel.git] / citadel / citadel.h
index bd30e3029c94b11c029db5f98716ad395de4b4ff..038a17f6e1217af939a6942d19c3b1160b3ae0d5 100644 (file)
 #ifndef CITADEL_H
 #define CITADEL_H
 
+/* Build Citadel with the calendar service only if the header *and*
+ * library for libical are both present.
+ */
+#ifdef HAVE_LIBICAL
+#ifdef HAVE_ICAL_H
+#define CITADEL_WITH_CALENDAR_SERVICE 1
+#endif
+#endif
+
 #include "sysdep.h"
 #include <limits.h>
 #include "sysconfig.h"
+#include "typesize.h"
 #include "ipcdef.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*
  * Text description of this software
  */
-#define CITADEL        "Citadel/UX 5.91"
+#define CITADEL        "Citadel/UX 6.08"
 
 /*
  * REV_LEVEL is the current version number (multiplied by 100 to avoid having
  * are older than REV_MIN, none of the programs will work until the setup
  * program is run again to bring things up to date.
  */
-#define REV_LEVEL      591             /* This version */
+#define REV_LEVEL      608             /* This version */
 #define REV_MIN                591             /* Oldest compatible version */
 
 #define SERVER_TYPE 0  /* zero for stock Citadel/UX; other developers please
                           obtain SERVER_TYPE codes for your implementations */
 
-/*
- * This is a better implementation of tolower() than that found on some
- * systems (there are operating systems out there on which tolower() will
- * screw up if you give it a character that is already lower case).
- */
-#ifdef  tolower
-#undef tolower
-#endif
-#define tolower(x)     ( ((x>='A')&&(x<='Z')) ? (x+'a'-'A') : x )
-#define NEW_CONFIG
-
-/* 
- * The only typedef we do is an 8-bit unsigned, for screen dimensions.
- * All other defs are done using standard C types.  The code assumes that
- * 'int' 'unsigned' and 'short' are at least 16 bits, and that 'long' is at
- * least 32 bits.  There are no endian dependencies in any of the Citadel
- * programs.
- */
-typedef unsigned char CIT_UBYTE;
-
 /* Various length constants */
 
-#define UGLISTLEN   100   /* you get a ungoto list of this size */
-#define ROOMNAMELEN    128             /* The size of a roomname string */
-#define NONCE_SIZE     128             /* Added by <bc> to allow for APOP auth 
-                                        * it is BIG becuase there is a hostname
-                                        * in the nonce, as per the APOP RFC.
-                                        */
+#define UGLISTLEN      100     /* you get a ungoto list of this size */
+#define ROOMNAMELEN    128     /* The size of a roomname string */
+#define NONCE_SIZE     128     /* Added by <bc> to allow for APOP auth 
+                                * it is BIG becuase there is a hostname
+                                * in the nonce, as per the APOP RFC.
+                                */
                                         
-#define USERNAME_SIZE  32              /* The size of a username string */
+#define USERNAME_SIZE  64      /* The size of a username string */
+#define MAX_EDITORS    5       /* # of external editors supported */
+                               /* MUST be at least 1 */
 
 /*
  * Message expiration policy stuff
@@ -114,7 +110,7 @@ struct config {
        int c_max_workers;              /* Upper limit on number of threads */
        int c_pop3_port;                /* POP3 listener port (usually 110) */
        int c_smtp_port;                /* SMTP listener port (usually 25)  */
-       int c_unused_1;                 /* Nothin' here anymore...          */
+       int c_rfc822_strict_from;       /* 1 = don't correct From: forgeries*/
        int c_aide_zap;                 /* Are Aides allowed to zap rooms?  */
        int c_imap_port;                /* IMAP listener port (usually 143) */
        time_t c_net_freq;              /* how often to run the networker   */
@@ -127,8 +123,11 @@ struct config {
 struct march {
        struct march *next;
        char march_name[ROOMNAMELEN];
+       unsigned int march_flags;
        char march_floor;
        char march_order;
+       unsigned int march_flags2;
+       int march_access;
 };
 
 #define NODENAME               config.c_nodename
@@ -142,8 +141,9 @@ struct march {
 #define TWITROOM               config.c_twitroom
 #define RESTRICT_INTERNET      config.c_restrict
 
-/* Defines the actual user record */
+/*
+ * User records
+ */
 struct usersupp {                      /* User record                      */
        int version;                    /* Cit vers. which created this rec */
        uid_t uid;                      /* Associate with a unix account?   */
@@ -151,13 +151,13 @@ struct usersupp {                 /* User record                      */
        unsigned flags;                 /* See US_ flags below              */
        long timescalled;               /* Total number of logins           */
        long posted;                    /* Number of messages posted (ever) */
-       CIT_UBYTE axlevel;              /* Access level                     */
+       cit_uint8_t axlevel;            /* Access level                     */
        long usernum;                   /* User number (never recycled)     */
        time_t lastcall;                /* Last time the user called        */
        int USuserpurge;                /* Purge time (in days) for user    */
        char fullname[64];              /* Name for Citadel messages & mail */
-       CIT_UBYTE USscreenwidth;        /* Screen width (for textmode users)*/
-       CIT_UBYTE USscreenheight;       /* Screen height(for textmode users)*/
+       cit_uint8_t USscreenwidth;      /* Screen width (for textmode users)*/
+       cit_uint8_t USscreenheight;     /* Screen height(for textmode users)*/
 };
 
 
@@ -206,19 +206,8 @@ struct quickroom {
  */
 
 /*
- * Events which might show up in the Citadel Log
+ * Miscellaneous
  */
-#define CL_CONNECT     8               /* Connect to server                */
-#define CL_LOGIN       16              /* CLfullname logged in             */
-#define CL_NEWUSER     32              /* CLfullname is a new user         */
-#define CL_BADPW       64              /* Bad attempt at CLfullname's pw   */
-#define CL_TERMINATE   128             /* Logout - proper termination      */
-#define CL_DROPCARR    256             /* Logout - dropped carrier         */
-#define CL_SLEEPING    512             /* Logout - sleeping                */
-#define CL_PWCHANGE    1024            /* CLfullname changed passwords     */
-
-/* Miscellaneous                                                            */
-
 #define MES_NORMAL     65              /* Normal message                   */
 #define MES_ANONONLY   66              /* "****" header                    */
 #define MES_ANONOPT    67              /* "Anonymous" header               */
@@ -301,8 +290,6 @@ enum {
 #define LONG_MAX 2147483647L
 #endif
 
-#endif /* CITADEL_H */
-
 
 /*
  * Views
@@ -310,3 +297,19 @@ enum {
 #define        VIEW_BBS                0       /* Traditional Citadel BBS view */
 #define VIEW_MAILBOX           1       /* Mailbox summary */
 #define VIEW_ADDRESSBOOK       2       /* Address book view */
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef tmpnam
+#undef tmpnam
+#endif
+#define tmpnam(x)      CtdlTempFileName(__FILE__, __LINE__)
+
+#ifdef tmpfile
+#undef tmpfile
+#endif
+#define tmpfile()      CtdlTempFile()
+
+#endif /* CITADEL_H */