}
-long DrawMessageDropdown(StrBuf *Selector, long maxmsgs, long startmsg, int nMessages)
+/* startmsg is an index within the message list.
+ * starting_from is the Citadel message number to be supplied to a "MSGS GT" operation
+ */
+long DrawMessageDropdown(StrBuf *Selector, long maxmsgs, long startmsg, int nMessages, long starting_from)
{
StrBuf *TmpBuf;
wcsession *WCC = WC;
vector[2] = 1;
vector[1] = startmsg;
vector[3] = 0;
+ vector[7] = starting_from;
while (!done) {
vector[3] = abs(nMessages);
BBViewToolBar = NewStrBufPlain(NULL, SIZ);
MessageDropdown = NewStrBufPlain(NULL, SIZ);
- maxmsgs = DrawMessageDropdown(MessageDropdown, maxmsgs, startmsg, num_displayed);
+ maxmsgs = DrawMessageDropdown(MessageDropdown, maxmsgs, startmsg,
+ num_displayed, lowest_found-1);
if (num_displayed < 0) {
startmsg += maxmsgs;
if (num_displayed != maxmsgs)
/*
* $Id$
*/
-/**
- * \defgroup Subst Variable substitution type stuff
- * \ingroup CitadelConfig
- */
-
-/*@{*/
#include "sysdep.h"
#include <sys/types.h>
#include "webcit.h"
#include "webserver.h"
-extern char *static_dirs[PATH_MAX]; /**< Disk representation */
+extern char *static_dirs[PATH_MAX]; /* Disk representation */
HashList *WirelessTemplateCache;
HashList *WirelessLocalTemplateCache;
/*
- * \brief Dynamic content for variable substitution in templates
+ * Dynamic content for variable substitution in templates
*/
typedef struct _wcsubst {
ContextFilter Filter;
- int wcs_type; /* which type of Substitution are we */
- char wcs_key[32]; /* copy of our hashkey for debugging */
- StrBuf *wcs_value; /* if we're a string, keep it here */
- long lvalue; /* type long? keep data here */
- WCHandlerFunc wcs_function; /* funcion hook ???*/
+ int wcs_type; /* which type of Substitution are we */
+ char wcs_key[32]; /* copy of our hashkey for debugging */
+ StrBuf *wcs_value; /* if we're a string, keep it here */
+ long lvalue; /* type long? keep data here */
+ WCHandlerFunc wcs_function; /* funcion hook ???*/
} wcsubst;
}
-/**
- * \brief debugging function to print array to log
+/*
+ * debugging function to print array to log
*/
void VarPrintTransition(void *vVar1, void *vVar2, int odd){}
-/**
- * \brief debugging function to print array to log
+
+/*
+ * debugging function to print array to log
*/
void VarPrintEntry(const char *Key, void *vSubst, int odd)
{
-/**
- * \brief Clear out the list of substitution variables local to this session
+/*
+ * Clear out the list of substitution variables local to this session
*/
void clear_substs(wcsession *wc) {
}
}
-/**
- * \brief Clear out the list of substitution variables local to this session
+/*
+ * Clear out the list of substitution variables local to this session
*/
void clear_local_substs(void) {
clear_substs (WC);
}
-/**
- * \brief destructor; kill one entry.
+/*
+ * destructor; kill one entry.
*/
void deletevar(void *data)
{
}
-/**
- * \brief Add a substitution variable (local to this session) (strlen version...)
- * \param keyname the replacementstring to substitute
- * \param keytype the kind of the key
- * \param format the format string ala printf
- * \param ... the arguments to substitute in the formatstring
+/*
+ * Add a substitution variable (local to this session) (strlen version...)
+ * keyname the replacementstring to substitute
+ * keytype the kind of the key
+ * format the format string ala printf
+ * ... the arguments to substitute in the formatstring
*/
void SVPRINTF(char *keyname, int keytype, const char *format,...)
{
wcsession *WCC = WC;
keylen = strlen(keyname);
- /**
+ /*
* First look if we're doing a replacement of
* an existing key
*/
ptr = NewSubstVar(keyname, keylen, keytype);
}
- /** Format the string */
+ /* Format the string */
va_start(arg_ptr, format);
StrBufVAppendPrintf(ptr->wcs_value, format, arg_ptr);
va_end(arg_ptr);
}
-/**
- * \brief Add a substitution variable (local to this session)
- * \param keyname the replacementstring to substitute
- * \param keytype the kind of the key
- * \param format the format string ala printf
- * \param ... the arguments to substitute in the formatstring
+/*
+ * Add a substitution variable (local to this session)
+ * keyname the replacementstring to substitute
+ * keytype the kind of the key
+ * format the format string ala printf
+ * ... the arguments to substitute in the formatstring
*/
void svprintf(char *keyname, size_t keylen, int keytype, const char *format,...)
{
wcsubst *ptr = NULL;
wcsession *WCC = WC;
- /**
+ /*
* First look if we're doing a replacement of
* an existing key
*/
va_end(arg_ptr);
}
-/**
- * \brief Add a substitution variable (local to this session)
- * \param keyname the replacementstring to substitute
- * \param keytype the kind of the key
- * \param format the format string ala printf
- * \param ... the arguments to substitute in the formatstring
+/*
+ * Add a substitution variable (local to this session)
+ * keyname the replacementstring to substitute
+ * keytype the kind of the key
+ * format the format string ala printf
+ * ... the arguments to substitute in the formatstring
*/
void SVPut(char *keyname, size_t keylen, int keytype, char *Data)
{
wcsession *WCC = WC;
- /**
+ /*
* First look if we're doing a replacement of
* an existing key
*/
{
}
-
-
-
-
-/*@}*/