|
|
|
@ -252,7 +252,6 @@ PRIVATE BOOL match ARGS2 (WWW_CONST char *,unknown, WWW_CONST char *,template)
|
|
|
|
|
*/
|
|
|
|
|
char *parseemail (char *str, char *name, char *em)
|
|
|
|
|
{
|
|
|
|
|
char *c, d;
|
|
|
|
|
char *email, *end;
|
|
|
|
|
|
|
|
|
|
/* Pull out email address */
|
|
|
|
@ -400,7 +399,6 @@ static char b64_tab[256] = {
|
|
|
|
|
|
|
|
|
|
int base64line(FILE *fp, char *buf)
|
|
|
|
|
{
|
|
|
|
|
int last_data = 0;
|
|
|
|
|
unsigned char *p = (unsigned char *) buf;
|
|
|
|
|
|
|
|
|
|
if(!buf || !*buf || isspace(*buf)){
|
|
|
|
@ -441,7 +439,6 @@ int base64line(FILE *fp, char *buf)
|
|
|
|
|
|
|
|
|
|
if (*p == '=') {
|
|
|
|
|
fputc(c1 << 2 | c2 >> 4,fp);
|
|
|
|
|
last_data = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -865,7 +862,7 @@ static char qline[LINE_LENGTH+1];
|
|
|
|
|
char *NNTPgetquoteline(char *art)
|
|
|
|
|
{
|
|
|
|
|
char *p;
|
|
|
|
|
int i,f,status ;
|
|
|
|
|
int i,status;
|
|
|
|
|
|
|
|
|
|
if (!initialized)
|
|
|
|
|
initialized = initialize();
|
|
|
|
@ -1347,7 +1344,7 @@ void news_index(char *url)
|
|
|
|
|
/* Returns the status of the news buttons */
|
|
|
|
|
void news_status(char *url, int *prevt, int *nextt, int *prev, int *next, int *follow)
|
|
|
|
|
{
|
|
|
|
|
NewsArt *art,*tmp;
|
|
|
|
|
NewsArt *art;
|
|
|
|
|
|
|
|
|
|
if( art = is_news_url(url) ) {
|
|
|
|
|
if(prevUnread(art,!newsNoThreadJumping))
|
|
|
|
@ -1435,16 +1432,16 @@ PRIVATE void read_article ARGS1 (char *, artID)
|
|
|
|
|
char *references=NULL; /* Hrefs for other articles */
|
|
|
|
|
char *newsgroups=NULL; /* Newsgroups list */
|
|
|
|
|
char *from=NULL,*subj=NULL,*org=NULL,*date=NULL;
|
|
|
|
|
char *filename;
|
|
|
|
|
char *filename=NULL;
|
|
|
|
|
char *l = line;
|
|
|
|
|
int f; /* ':' flag */
|
|
|
|
|
int decode=0; /*uudecoding...*/
|
|
|
|
|
FILE *fp;
|
|
|
|
|
FILE *fp = NULL;
|
|
|
|
|
|
|
|
|
|
char *p = line,*pp,*m;
|
|
|
|
|
BOOL done = NO;
|
|
|
|
|
|
|
|
|
|
NewsArt *art,*art2,*art_t, *next;
|
|
|
|
|
NewsArt *art,*art2,*next;
|
|
|
|
|
int ll;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1828,7 +1825,7 @@ PRIVATE void read_article ARGS1 (char *, artID)
|
|
|
|
|
|
|
|
|
|
NextArt = next;
|
|
|
|
|
if (CurrentArt) {
|
|
|
|
|
char *tok, d, *last;
|
|
|
|
|
char *tok;
|
|
|
|
|
newsgroup_t *ng;
|
|
|
|
|
|
|
|
|
|
if (newsgroups) {
|
|
|
|
@ -1868,7 +1865,6 @@ PRIVATE void read_list NOARGS
|
|
|
|
|
postable, *p;
|
|
|
|
|
int first, last, junk, m=0, next_m=20, done=0, intr, g=0, next_g = 50, l=0, lastg=0,mark=0;
|
|
|
|
|
newsgroup_t *n=NULL, *nn=NULL;
|
|
|
|
|
extern int twirl_increment;
|
|
|
|
|
|
|
|
|
|
START (HTML_TITLE);
|
|
|
|
|
PUTS ("Newsgroup Listing");
|
|
|
|
@ -2111,17 +2107,15 @@ PRIVATE void XBuildArtList ARGS3(
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
NewsArt *art;
|
|
|
|
|
char *p,*aname=NULL, *author=NULL, *aref, abuf[1024+1];
|
|
|
|
|
BOOL done;
|
|
|
|
|
char *p,*aname=NULL, *aref, abuf[1024+1];
|
|
|
|
|
|
|
|
|
|
char *num,*title,*date,*msgid,*ref,*bytes,*lines,*from=NULL;
|
|
|
|
|
|
|
|
|
|
char buf[2048];
|
|
|
|
|
|
|
|
|
|
char *reference=0; /* Href for article */
|
|
|
|
|
int status, count, first, last; /* Response fields */
|
|
|
|
|
/* count is only an upper limit */
|
|
|
|
|
int c,i,lineinc;
|
|
|
|
|
int lineinc;
|
|
|
|
|
|
|
|
|
|
HTMeter(0,NULL);
|
|
|
|
|
|
|
|
|
@ -2250,12 +2244,11 @@ PRIVATE void BuildArtList ARGS3(
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
NewsArt *art;
|
|
|
|
|
char *p,*aname, *author, *aref, abuf[1024+1];
|
|
|
|
|
BOOL done;
|
|
|
|
|
char *p,*aname, *aref, abuf[1024+1];
|
|
|
|
|
|
|
|
|
|
char buffer[LINE_LENGTH];
|
|
|
|
|
char line[LINE_LENGTH];
|
|
|
|
|
char *reference=0; /* Href for article */
|
|
|
|
|
int artno; /* Article number WITHIN GROUP */
|
|
|
|
|
int status, count, first, last; /* Response fields */
|
|
|
|
|
/* count is only an upper limit */
|
|
|
|
@ -2266,6 +2259,7 @@ PRIVATE void BuildArtList ARGS3(
|
|
|
|
|
if(www2Trace) fprintf(stderr,"[%s]",response_text);
|
|
|
|
|
#endif
|
|
|
|
|
sscanf(response_text, "%d %d %d %d", &status, &count, &first, &last);
|
|
|
|
|
|
|
|
|
|
#ifndef DISABLE_TRACE
|
|
|
|
|
if(www2Trace) fprintf(stderr,"Newsgroup status=%d, count=%d, (%d-%d)",
|
|
|
|
|
status, count, first, last);
|
|
|
|
@ -2475,17 +2469,10 @@ PRIVATE void read_group ARGS3(
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
NewsArt *art,*art2, *f;
|
|
|
|
|
char *p;
|
|
|
|
|
BOOL done;
|
|
|
|
|
char buffer[LINE_LENGTH], subj[LINE_LENGTH];
|
|
|
|
|
char line[LINE_LENGTH], from[LINE_LENGTH];
|
|
|
|
|
char from[LINE_LENGTH];
|
|
|
|
|
char efrom[LINE_LENGTH], esubj[LINE_LENGTH];
|
|
|
|
|
char *reference=0;
|
|
|
|
|
int i,artno, mark=0;
|
|
|
|
|
int tc=0;
|
|
|
|
|
int status, count; /* Response fields */
|
|
|
|
|
/* count is only an upper limit */
|
|
|
|
|
char em[255+1];
|
|
|
|
|
int i,mark=0;
|
|
|
|
|
|
|
|
|
|
if ((NewsGroupS = findgroup (groupName)) == NULL) {
|
|
|
|
|
/* Add group unsub'd to hash table */
|
|
|
|
@ -2605,7 +2592,7 @@ PUBLIC int HTLoadNews ARGS4(
|
|
|
|
|
{
|
|
|
|
|
char command[257]; /* The whole command */
|
|
|
|
|
char groupName[GROUP_NAME_LENGTH]; /* Just the group name */
|
|
|
|
|
char buf[LINE_LENGTH+1], *pt, *p1;
|
|
|
|
|
char buf[LINE_LENGTH+1], *p1;
|
|
|
|
|
int status; /* tcp return */
|
|
|
|
|
int retries; /* A count of how hard we have tried */
|
|
|
|
|
BOOL group_wanted; /* Flag: group was asked for, not article */
|
|
|
|
@ -2662,6 +2649,8 @@ PUBLIC int HTLoadNews ARGS4(
|
|
|
|
|
*/
|
|
|
|
|
if (!my_strncasecmp (arg, "news:", 5))
|
|
|
|
|
p1 = arg + 5; /* Skip "news:" prefix */
|
|
|
|
|
else
|
|
|
|
|
p1 = arg;
|
|
|
|
|
if (group_wanted) {
|
|
|
|
|
strcpy (command, "GROUP ");
|
|
|
|
|
first = 0;
|
|
|
|
|