}
wprintf("</TEXTAREA></TD></TR>");
- /**
+ /*
* For a new event, the user creating the event should be the
* organizer. Set this field accordingly.
*/
);
}
- /**
+ /*
* Determine who is the organizer of this event.
* We need to determine "me" or "not me."
*/
wprintf("</I></FONT>\n");
}
- /**
+ /*
* Transmit the organizer as a hidden field. We don't want the user
* to be able to change it, but we do want it fed back to the server,
* especially if this is a new event and there is no organizer already
wprintf("</TD></TR>\n");
- /** Transparency */
+ /* Transparency */
wprintf("<TR><TD><B>");
wprintf(_("Show time as:"));
wprintf("</B></TD><TD>");
p = icalcomponent_get_first_property(vevent, ICAL_TRANSP_PROPERTY);
if (p == NULL) {
- /** No transparency found. Default to opaque (busy). */
+ /* No transparency found. Default to opaque (busy). */
p = icalproperty_new_transp(ICAL_TRANSP_OPAQUE);
if (p != NULL) {
icalcomponent_add_property(vevent, p);
wprintf("</TD></TR>\n");
- /** Done with properties. */
+ /* Done with properties. */
wprintf("</TABLE>\n");
end_tab(0, 3);
wprintf(_("(One per line)"));
wprintf("</font>\n");
- /** Pop open an address book -- begin **/
+ /* Pop open an address book -- begin */
wprintf(
" <a href=\"javascript:PopOpenAddressBook('attendees_box|%s');\" "
"title=\"%s\">"
_("Attendees"),
_("Contacts")
);
- /* Pop open an address book -- end **/
+ /* Pop open an address book -- end */
wprintf("</TD><TD>"
"<TEXTAREA %s NAME=\"attendees\" id=\"attendees_box\" wrap=soft "
strcpy(attendee_string, icalproperty_get_attendee(attendee));
if (!strncasecmp(attendee_string, "MAILTO:", 7)) {
- /** screen name or email address */
+ /* screen name or email address */
strcpy(attendee_string, &attendee_string[7]);
striplt(attendee_string);
if (i++) wprintf("\n");
escputs(attendee_string);
wprintf(" ");
- /** participant status */
+ /* participant status */
partstat_as_string(buf, attendee);
escputs(buf);
}
if (supplied_vevent != NULL) {
vevent = supplied_vevent;
- /**
+ /*
* If we're looking at a fully encapsulated VCALENDAR
* rather than a VEVENT component, attempt to use the first
* relevant VEVENT subcomponent. If there is none, the
if ( (havebstr("save_button"))
|| (havebstr("check_button")) ) {
- /** Replace values in the component with ones from the form */
+ /* Replace values in the component with ones from the form */
while (prop = icalcomponent_get_first_property(vevent,
ICAL_SUMMARY_PROPERTY), prop != NULL) {
icaltime_from_webform(&event_start, "dtstart");
}
- /**
+ /*
* The following odd-looking snippet of code looks like it
* takes some unnecessary steps. It is done this way because
* libical incorrectly turns an "all day event" into a normal
);
}
- /** See if transparency is indicated */
+ /* See if transparency is indicated */
if (havebstr("transp")) {
if (!strcasecmp(bstr("transp"), "opaque")) {
formtransp = ICAL_TRANSP_OPAQUE;
icalcomponent_add_property(vevent, icalproperty_new_transp(formtransp));
}
- /** Give this event a UID if it doesn't have one. */
+ /* Give this event a UID if it doesn't have one. */
if (icalcomponent_get_first_property(vevent,
ICAL_UID_PROPERTY) == NULL) {
generate_uuid(buf);
icalcomponent_add_property(vevent, icalproperty_new_uid(buf));
}
- /** Increment the sequence ID */
+ /* Increment the sequence ID */
while (prop = icalcomponent_get_first_property(vevent,
ICAL_SEQUENCE_PROPERTY), (prop != NULL) ) {
i = icalproperty_get_sequence(prop);
icalproperty_new_sequence(sequence)
);
- /**
+ /*
* Set the organizer, only if one does not already exist *and*
* the form is supplying one
*/
ICAL_ORGANIZER_PROPERTY) == NULL)
&& (!IsEmptyStr(buf)) ) {
- /** set new organizer */
+ /* set new organizer */
sprintf(organizer_string, "MAILTO:%s", buf);
icalcomponent_add_property(vevent,
icalproperty_new_organizer(organizer_string)
}
- /**
+ /*
* Add any new attendees listed in the web form
*/
}
}
- /** Now iterate! */
+ /* Now iterate! */
for (i=0; i<num_tokens(form_attendees, '\n'); ++i) {
extract_token(buf, form_attendees, i, '\n', sizeof buf);
striplt(buf);
}
}
- /**
+ /*
* Remove any attendees *not* listed in the web form
*/
STARTOVER: for (attendee = icalcomponent_get_first_property(vevent, ICAL_ATTENDEE_PROPERTY); attendee != NULL; attendee = icalcomponent_get_next_property(vevent, ICAL_ATTENDEE_PROPERTY)) {
}
}
- /**
+ /*
* Encapsulate event into full VCALENDAR component. Clone it first,
* for two reasons: one, it's easier to just free the whole thing
* when we're done instead of unbundling, but more importantly, we
/* Set the method to PUBLISH */
icalcomponent_set_method(encaps, ICAL_METHOD_PUBLISH);
- /** If the user clicked 'Save' then save it to the server. */
+ /* If the user clicked 'Save' then save it to the server. */
if ( (encaps != NULL) && (havebstr("save_button")) ) {
serv_puts("ENT0 1|||4|||1|");
serv_getln(buf, sizeof buf);
encaps = NULL;
}
- /** Or, check attendee availability if the user asked for that. */
+ /* Or, check attendee availability if the user asked for that. */
if ( (encaps != NULL) && (havebstr("check_button")) ) {
/* Call this function, which does the real work */
check_attendee_availability(encaps);
- /** This displays the form again, with our annotations */
+ /* This displays the form again, with our annotations */
display_edit_individual_event(encaps, msgnum, from, unread, NULL);
icalcomponent_free(encaps);
/*
* $Id$
*/
-/**
- * \defgroup RssRooms Generate some RSS for our rooms.
- * \ingroup WebcitHttpServerRSS
- */
-/*@{*/
+
#include "webcit.h"
#include "webserver.h"
#define ANON_RSS_PASS ""
time_t if_modified_since; /**< the last modified stamp */
-/**
- * \brief view rss Config menu
- * \param reply_to the original author
- * \param subject the subject of the feed
+/*
+ * view rss Config menu
+ * reply_to the original author
+ * subject the subject of the feed
*/
void display_rss_control(char *reply_to, char *subject)
{
}
-/**
- * \brief print the feed to the subscriber
- * \param roomname the room we sould print out as rss
- * \param request_method the way the rss is requested????
+/*
+ * print the feed to the subscriber
+ * roomname the room we sould print out as rss
+ * request_method the way the rss is requested????
*/
void display_rss(char *roomname, StrBuf *request_method)
{
}
-/*@}*/
/**
- * \brief Read Citadel variformat text and spit it out as HTML.
- * \param align html align string
+ * Read Citadel variformat text and spit it out as HTML.
+ * align html align string
*/
inline void fmout(char *align)
{
/**
- * \brief Read Citadel variformat text and spit it out as HTML in a form
+ * Read Citadel variformat text and spit it out as HTML in a form
* suitable for embedding in another message (forward/quote).
* (NO LINEBREAKS ALLOWED HERE!)
*/
/**
- * \brief Transmit message text (in memory) to the server.
+ * Transmit message text (in memory) to the server.
*
- * \param ptr Pointer to the message being transmitted
+ * ptr Pointer to the message being transmitted
*/
void text_to_server(char *ptr)
{
/**
- * \brief Transmit message text (in memory) to the server,
+ * Transmit message text (in memory) to the server,
* converting to Quoted-Printable encoding as we go.
*
- * \param ptr Pointer to the message being transmitted
+ * ptr Pointer to the message being transmitted
*/
void text_to_server_qp(char *ptr)
{
/**
- * \brief translate server message output to text
+ * translate server message output to text
* (used for editing room info files and such)
*/
void server_to_text()
/**
- * \brief Read text from server, appending to a string buffer until the
+ * Read text from server, appending to a string buffer until the
* usual 000 terminator is found. Caller is responsible for freeing
* the returned pointer.
*/
/*
- * \brief display all configuration items
+ * display all configuration items
*/
void display_siteconfig(void)
{
/*
- * \brief display all configuration items
+ * display all configuration items
*/
void load_siteconfig(void)
{
RegisterConditional(HKEY("COND:SERVCFG"), 3, ConditionalServCfg, CTX_NONE);
RegisterConditional(HKEY("COND:SERVCFG:SUBST"), 4, ConditionalServCfgSubst, CTX_NONE);
}
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup SnprintfReplacement modified from Sten Gunterberg's BUGTRAQ post of 22 Jul 1997
- * --nathan bryant <bryant@cs.usm.maine.edu>
- * \ingroup tools
- */
-/*@{*/
+
/**
- * \brief Replacements for snprintf() and vsnprintf()
+ * Replacements for snprintf() and vsnprintf()
*
* Use it only if you have the "spare" cycles needed to effectively
* do every snprintf operation twice! Why is that? Because everything
#include "webserver.h"
/**
- * \brief is it needed????
- * \param fmt the formatstring?
- * \param argp how many params?
+ * is it needed????
+ * fmt the formatstring?
+ * argp how many params?
*/
static int needed(const char *fmt, va_list argp)
{
}
/**
- * \brief vsnprintf wrapper
- * \param buf the output charbuffer
- * \param max maximal size of the buffer
- * \param fmt the formatstring (see man printf)
- * \param argp the variable argument list
+ * vsnprintf wrapper
+ * buf the output charbuffer
+ * max maximal size of the buffer
+ * fmt the formatstring (see man printf)
+ * argp the variable argument list
*/
int vsnprintf(char *buf, size_t max, const char *fmt, va_list argp)
{
}
/**
- * \brief snprintf wrapper
- * \param buf the output charbuffer
- * \param max maximal size of the buffer
- * \param fmt the formatstring (see man printf)
- * \param ... the variable argument list
+ * snprintf wrapper
+ * buf the output charbuffer
+ * max maximal size of the buffer
+ * fmt the formatstring (see man printf)
+ * ... the variable argument list
*/
int snprintf(char *buf, size_t max, const char *fmt,...)
{
}
-
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup ShowSysMsgs Editing of various text files on the Citadel server.
- * \ingroup WebcitDisplayItems
- */
-/*@{*/
#include "webcit.h"
/**
- * \brief display the form for editing something (room info, bio, etc)
- * \param description the descriptive text for the box
- * \param check_cmd command to check????
- * \param read_cmd read answer from citadel server???
- * \param save_cmd save comand to the citadel server??
- * \param with_room_banner should we bisplay a room banner?
+ * display the form for editing something (room info, bio, etc)
+ * description the descriptive text for the box
+ * check_cmd command to check????
+ * read_cmd read answer from citadel server???
+ * save_cmd save comand to the citadel server??
+ * with_room_banner should we bisplay a room banner?
*/
void display_edit(char *description, char *check_cmd,
char *read_cmd, char *save_cmd, int with_room_banner)
/**
- * \brief save a screen which was displayed with display_edit()
- * \param description the window title???
- * \param enter_cmd which command to enter at the citadel server???
- * \param regoto should we go to that room again after executing that command?
+ * save a screen which was displayed with display_edit()
+ * description the window title???
+ * enter_cmd which command to enter at the citadel server???
+ * regoto should we go to that room again after executing that command?
*/
void save_edit(char *description, char *enter_cmd, int regoto)
{
WebcitAddUrlHandler(HKEY("display_editbio"), display_editbio, 0);
WebcitAddUrlHandler(HKEY("editbio"), editbio, 0);
}
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup TcpSockets TCP client socket module for WebCit
- * \ingroup CitadelCommunitacion
- */
-/*@{*/
/*
* Uncomment this to log all communications with the Citadel server
#include "webcit.h"
#include "webserver.h"
-/**
- * \brief register the timeout
- * \param signum signalhandler number
+/*
+ * register the timeout
+ * signum signalhandler number
* \return signals
*/
RETSIGTYPE timeout(int signum)
}
-/**
- * \brief Connect a unix domain socket
- * \param sockpath where to open a unix domain socket
+/*
+ * Connect a unix domain socket
+ * sockpath where to open a unix domain socket
*/
int uds_connectsock(char *sockpath)
{
}
-/**
- * \brief Connect a TCP/IP socket
- * \param host the host to connect to
- * \param service the service on the host to call
+/*
+ * Connect a TCP/IP socket
+ * host the host to connect to
+ * service the service on the host to call
*/
int tcp_connectsock(char *host, char *service)
{
-/**
- * \brief Input binary data from socket
- * \param buf the buffer to get the input to
- * \param bytes the maximal number of bytes to read
+/*
+ * Input binary data from socket
+ * buf the buffer to get the input to
+ * bytes the maximal number of bytes to read
*/
inline void _serv_read(char *buf, int bytes, struct wcsession *WCC)
{
_serv_read(buf, bytes, WCC);
}
-/**
- * \brief input string from pipe
+/*
+ * input string from pipe
*/
int serv_getln(char *strbuf, int bufsize)
{
return rc;
}
-/**
- * \brief send binary to server
- * \param buf the buffer to write to citadel server
- * \param nbytes how many bytes to send to citadel server
+/*
+ * send binary to server
+ * buf the buffer to write to citadel server
+ * nbytes how many bytes to send to citadel server
*/
void serv_write(const char *buf, int nbytes)
{
}
-/**
- * \brief send line to server
- * \param string the line to send to the citadel server
+/*
+ * send line to server
+ * string the line to send to the citadel server
*/
void serv_puts(const char *string)
{
serv_write("\n", 1);
}
-/**
- * \brief send line to server
- * \param string the line to send to the citadel server
+/*
+ * send line to server
+ * string the line to send to the citadel server
*/
void serv_putbuf(const StrBuf *string)
{
}
-/**
- * \brief convenience function to send stuff to the server
- * \param format the formatstring
- * \param ... the entities to insert into format
+/*
+ * convenience function to send stuff to the server
+ * format the formatstring
+ * ... the entities to insert into format
*/
void serv_printf(const char *format,...)
{
#endif
}
-
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup AdminTasks Administrative screen to add/change/delete user accounts
- * \ingroup CitadelConfig
- *
- */
-/*@{*/
#include "webcit.h"
#include "webserver.h"
/**
- * \brief show a list of available users to edit them
- * \param message the header message???
- * \param preselect which user should be selected in the browser
+ * show a list of available users to edit them
+ * message the header message???
+ * preselect which user should be selected in the browser
*/
void select_user_to_edit(char *message, char *preselect)
{/*
}
/**
- * \brief Locate the message number of a user's vCard in the current room
- * \param username the plaintext name of the user
- * \param usernum the number of the user on the citadel server
+ * Locate the message number of a user's vCard in the current room
+ * username the plaintext name of the user
+ * usernum the number of the user on the citadel server
* \return the message id of his vcard
*/
long locate_user_vcard(char *username, long usernum) {
/**
- * \brief Display the form for editing a user's address book entry
- * \param username the name of the user
- * \param usernum the citadel-uid of the user
+ * Display the form for editing a user's address book entry
+ * username the name of the user
+ * usernum the citadel-uid of the user
*/
void display_edit_address_book_entry(char *username, long usernum) {
char roomname[SIZ];
/* *
- * \brief Edit a user.
+ * Edit a user.
* If supplied_username is null, look in the "username"
* web variable for the name of the user to edit.
*
* If "is_new" is set to nonzero, this screen will set the web variables
* to send the user to the vCard editor next.
- * \param supplied_username user to look up or NULL if to search in the environment
- * \param is_new should we create the user?
+ * supplied_username user to look up or NULL if to search in the environment
+ * is_new should we create the user?
* /
void display_edituser(char *supplied_username, int is_new) {
char buf[1024];
*/
/**
- * \brief do the backend operation of the user edit on the server
+ * do the backend operation of the user edit on the server
*/
void edituser(void) {
char message[SIZ];
}
/*
- * \brief burge a user
- * \param username the name of the user to remove
+ * burge a user
+ * username the name of the user to remove
*/
void delete_user(char *username) {
char buf[SIZ];
/**
- * \brief create a new user
+ * create a new user
* take the web environment username and create it on the citadel server
*/
void create_user(void) {
RegisterIterator("USERLIST", 0, NULL, iterate_load_userlist, NULL, DeleteHash, CTX_USERLIST);
}
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup AccDisplay Display a list of all accounts on a Citadel system.
- * \ingroup CitadelConfig
- */
-/*@{*/
#include "webcit.h"
-/**
- * \brief structure to keep namelists in
+/*
+ * structure to keep namelists in
*/
struct namelist {
struct namelist *next; /**< next item of the linked list */
char name[32]; /**< name of the userentry */
};
-/**
- * \brief display the userlist
+/*
+ * display the userlist
*/
void userlist(void)
{
}
-/**
- * \brief Display (non confidential) information about a particular user
+/*
+ * Display (non confidential) information about a particular user
*/
void showuser(void)
{
WebcitAddUrlHandler(HKEY("userlist"), userlist, 0);
WebcitAddUrlHandler(HKEY("showuser"), showuser, 0);
}
-/*@}*/
/*
* $Id$
*/
-/**
- * \defgroup vCardEdit Handles on-screen editing of vCard objects.
- * \ingroup VCards
- */
-/*@{*/
+
#include "webcit.h"
-/**
- * \brief Edit the vCard component of a MIME message.
+/*
+ * Edit the vCard component of a MIME message.
* Supply the message number
* and MIME part number to fetch. Or, specify -1 for the message number
* to start with a blank card.
- * \param msgnum number of the item on the citadel server
- * \param partnum what???
- * \param return_to where to go back in the browser after edit ????
*/
void do_edit_vcard(long msgnum, char *partnum, char *return_to, char *force_room) {
char buf[SIZ];
/**
- * \brief commit the edits to the citadel server
+ * commit the edits to the citadel server
*/
void edit_vcard(void) {
long msgnum;
/**
- * \brief parse edited vcard from the browser
+ * parse edited vcard from the browser
*/
void submit_vcard(void) {
struct vCard *v;
WebcitAddUrlHandler(HKEY("submit_vcard"), submit_vcard, 0);
}
-/*@}*/