* usually more strict because you're not really supposed to dump/load and
* upgrade at the same time.
*/
-#define REV_LEVEL 733 /* This version */
+#define REV_LEVEL 735 /* This version */
#define REV_MIN 591 /* Oldest compatible database */
#define EXPORT_REV_MIN 733 /* Oldest compatible export files */
#define LIBCITADEL_MIN 109 /* Minimum required version of libcitadel */
!include "${NSISDIR}\Contrib\Modern UI\System.nsh"
!define MUI_PRODUCT "Citadel"
-!define MUI_VERSION "7.30"
+!define MUI_VERSION "7.35"
!define MUI_WELCOMEPAGE
!define MUI_LICENSEPAGE
!define MUI_COMPONENTSPAGE
;!define MUI_ICON "${NSISDIR}\Contrib\Icons\modern-install.ico"
;!define MUI_UNICON "${NSISDIR}\Contrib\Icons\modern-uninstall.ico"
-OutFile "citadel-7.30.exe"
+OutFile "citadel-7.35.exe"
BGGradient off
LangString DESC_Citadel ${LANG_ENGLISH} "Citadel client and core libraries (required)"
dnl Process this file with autoconf to produce a configure script.
dnl $Id$
AC_PREREQ(2.52)
-AC_INIT([Citadel], [7.33], [http://www.citadel.org/])
+AC_INIT([Citadel], [7.35], [http://www.citadel.org/])
AC_REVISION([$Revision: 5108 $])
AC_CONFIG_SRCDIR([citserver.c])
AC_PREFIX_DEFAULT(/usr/local/citadel)
struct HashKey {
/**
- * \brief Hash key element; sorted by Keye
+ * \brief Hash key element; sorted by key
*/
long Key; /**< Numeric Hashkey comperator for hash sorting */
long Position; /**< Pointer to a Payload struct in the Payload Aray */
if (inbuf[i]==10) inbuf[i]=32;
if (inbuf[i]==13) inbuf[i]=32;
if (inbuf[i]==9) inbuf[i]=32;
- /*** we like foreign characters now.
- if ((inbuf[i]<32) || (inbuf[i]>126)) {
- inbuf[i] = '?';
- } */
}
for (i=0; !IsEmptyStr(&inbuf[i]); ++i) {
- while ((inbuf[i]==32)&&(inbuf[i+1]==32))
+ while ((inbuf[i]==32)&&(inbuf[i+1]==32)) {
strcpy(&inbuf[i], &inbuf[i+1]);
+ }
}
for (i=0; !IsEmptyStr(&inbuf[i]); ++i) {
*/
-
/*
* since we reference time_t...
*/
const char *GuessMimeType(char *data, size_t dlen);
const char* GuessMimeByFilename(const char *what, size_t len);
-/** Run once at Programstart */
+/* Run once at Programstart */
int LoadIconDir(const char *DirName);
-/** guess an icon to the mimetype */
+
+/* Select the icon for a given MIME type */
const char *GetIconFilename(char *MimeType, size_t len);
+
void ShutDownLibCitadel(void);
void vcard_fn_to_n(char *vname, char *n, size_t vname_size);
void remove_charset_attribute(char *strbuf);
-/**
- * Citadels Hashlist Implementation
+/*
+ * Hash list implementation for Citadel
*/
#define HKEY(a) a, sizeof(a) - 1
typedef struct HashList HashList;
128, 128, 0
};
-/**
- * \brief copy a string into a buffer of a known size. abort if we exceed the limits
- * \param dest the targetbuffer
- * \param src the source string
- * \param n the size od dest
- * \returns the number of characters copied if dest is big enough, -n if not.
+/*
+ * copy a string into a buffer of a known size. abort if we exceed the limits
+ *
+ * dest the targetbuffer
+ * src the source string
+ * n the size od dest
+ *
+ * returns the number of characters copied if dest is big enough, -n if not.
*/
int safestrncpy(char *dest, const char *src, size_t n)
{
/*
* $Id$
*
- * \defgroup AjaxAutoCompletion ajax-powered autocompletion...
- * \ingroup ClientPower
+ * AJAX-powered auto-completion
*/
-/*@{*/
#include "webcit.h"
-/**
- * \brief Call this right before wDumpContent() on any page which requires the address book popup
+/*
+ * Call this right before wDumpContent() on any page which requires the address book popup
*/
void address_book_popup(void) {
/* Open a new div, hidden initially, for address book popups. */
/* The 'address_book_popup' div will be closed by wDumpContent() */
}
-/**
- * \brief Address book popup window
+/*
+ * Address book popup window
*/
void display_address_book_middle_div(void) {
char buf[256];
-/**
- * \brief Address book popup results
+/*
+ * Address book popup results
*/
void display_address_book_inner_div() {
char buf[256];
end_ajax_response();
}
-
-
-/** @} */
/*
* $Id$
- */
-/**
*
- * \defgroup WebcitAuth WebcitAuth; Handles authentication of users to a Citadel server.
- * \ingroup CitadelConfig
+ * WebcitAuth; Handles authentication of users to a Citadel server.
*/
-/*@{*/
#include "webcit.h"
-
-
-/**
- * \brief user states
+/*
+ * user states
* the plain text states of a user. filled in at \ function TODO initialize_ax_defs()
* due to NLS
*/
-/**
- * \brief Display the login screen
- * \param mesg The error message if last attempt failed.
+/*
+ * Display the login screen
+ * mesg = the error message if last attempt failed.
*/
void display_login(char *mesg)
{
-/** \brief Initialize the session
+/* Initialize the session
+ *
* This function needs to get called whenever the session changes from
* not-logged-in to logged-in, either by an explicit login by the user or
* by a timed-out session automatically re-establishing with a little help
* from the browser cookie. Either way, we need to load access controls and
* preferences from the server.
*
- * \param user the username
- * \param pass his password
- * \param serv_response The parameters returned from a Citadel USER or NEWU command
+ * user the username
+ * pass his password
+ * serv_response The parameters returned from a Citadel USER or NEWU command
*/
void become_logged_in(char *user, char *pass, char *serv_response)
{
}
-/**
- * \brief Login Checks
- * the logics to detect invalid passwords not to get on citservers nerves
+/*
+ * Login Checks
+ * the logic to detect invalid passwords not to get on citservers nerves
*/
void do_login(void)
{
}
-/**
- * \brief display the user a welcome screen.
+/*
+ * display the user a welcome screen.
+ *
* if this is the first time login, and the web based setup is enabled,
* lead the user through the setup routines
*/
}
#endif
- /**
+ /*
* Go to the user's preferred start page
*/
get_preference("startpage", buf, sizeof buf);
}
-/**
+/*
* Disconnect from the Citadel server, and end this WebCit session
*/
void end_webcit_session(void) {
/* close() of citadel socket will be done by do_housekeeping() */
}
-/**
+/*
* execute the logout
*/
void do_logout(void)
}
-/* *
+/*
* validate new users
*/
void validate(void)
wprintf("<div id=\"content\" class=\"service\">\n");
- /** If the user just submitted a validation, process it... */
+ /* If the user just submitted a validation, process it... */
safestrncpy(buf, bstr("user"), sizeof buf);
if (!IsEmptyStr(buf)) {
if (havebstr("axlevel")) {
}
}
- /** Now see if any more users require validation. */
+ /* Now see if any more users require validation. */
serv_puts("GNUR");
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
-/**
- * \brief Display form for registration.
+/*
+ * Display form for registration.
+ *
* (Set during_login to 1 if this registration is being performed during
* new user login and will require chaining to the proper screen.)
- * \param during_login are we just in the login phase?
*/
void display_reg(int during_login)
{
-/**
+/*
* display form for changing your password
*/
void display_changepw(void)
wDumpContent(1);
}
-/**
- * \brief change password
+/*
+ * change password
* if passwords match, propagate it to citserver.
*/
void changepw(void)
display_changepw();
}
}
-
-
-
-/** @} */
/*
* $Id$
- *//**
- * \defgroup AjaxAutoCompletion ajax-powered autocompletion...
- * \ingroup ClientPower
+ *
+ * ajax-powered autocompletion...
*/
-/*@{*/
#include "webcit.h"
-/**
- * \brief Recipient autocompletion results
- * \param partial the account to search for ??????
+/*
+ * Recipient autocompletion results
*/
void recp_autocomplete(char *partial) {
char buf[1024];
wprintf("\r\n\r\n");
wDumpContent(0);
}
-
-
-/** @} */
#include "webserver.h"
/*
- * \brief verify users avaiability
- * Utility function to fetch a VFREEBUSY type of thing for
- * any specified user.
- * \param who string of the user to search
+ * Utility function to fetch a VFREEBUSY type of thing for any specified user.
*/
icalcomponent *get_freebusy_for_user(char *who) {
char buf[SIZ];
}
-/**
- * \brief Check if dates are overlapping
+/*
* Check to see if two events overlap.
* (This function is used in both Citadel and WebCit. If you change it in
- * one place, change it in the other. Better yet, put it in a library.)
- * \param t1start date one start
- * \param t1end date one end
- * \param t2start date one start
- * \param t2end date two end
- * \returns nonzero if they do.
+ * one place, change it in the other. We should seriously consider moving
+ * this function upstream into libical.)
+ *
+ * Returns nonzero if they do overlap.
*/
int ical_ctdl_is_overlap(
struct icaltimetype t1start,
if (icaltime_is_null_time(t1start)) return(0);
if (icaltime_is_null_time(t2start)) return(0);
- /** First, check for all-day events */
+ /* First, check for all-day events */
if (t1start.is_date) {
if (!icaltime_compare_date_only(t1start, t2start)) {
return(1);
t2start.hour, t2start.minute, t2end.hour, t2end.minute);
*/
- /** Now check for overlaps using date *and* time. */
+ /* Now check for overlaps using date *and* time. */
- /** First, bail out if either event 1 or event 2 is missing end time. */
+ /* First, bail out if either event 1 or event 2 is missing end time. */
if (icaltime_is_null_time(t1end)) return(0);
if (icaltime_is_null_time(t2end)) return(0);
- /** If event 1 ends before event 2 starts, we're in the clear. */
+ /* If event 1 ends before event 2 starts, we're in the clear. */
if (icaltime_compare(t1end, t2start) <= 0) return(0);
// lprintf(9, "first passed\n");
- /** If event 2 ends before event 1 starts, we're also ok. */
+ /* If event 2 ends before event 1 starts, we're also ok. */
if (icaltime_compare(t2end, t1start) <= 0) return(0);
// lprintf(9, "second passed\n");
- /** Otherwise, they overlap. */
+ /* Otherwise, they overlap. */
return(1);
}
dnl Process this file with autoconf to produce a configure script.
dnl $Id$
-AC_INIT([WebCit], [7.34], [http://www.citadel.org/])
+AC_INIT([WebCit], [7.35], [http://www.citadel.org/])
AC_SUBST(PROG_SUBDIRS)
AC_DEFINE(PROG_SUBDIRS, [], [Program dirs])
#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 734 /* This version of WebCit */
+#define CLIENT_VERSION 735 /* This version of WebCit */
#define MINIMUM_CIT_VERSION 730 /* min required Citadel ver */
#define LIBCITADEL_MIN 109 /* min required libcitadel ver */
#define DEFAULT_HOST "localhost" /* Default Citadel server */