--- datasrc.c.orig	Mon Jan 18 01:01:22 1999
+++ datasrc.c	Wed Mar  3 20:14:12 1999
@@ -500,45 +500,72 @@
 	lbp_len = 0;
     }
 #ifdef SUPPORT_NNTP
-    if ((dp->flags & DF_USELISTACT)
-     && (DATASRC_NNTP_FLAGS(dp) & NNTP_NEW_CMD_OK)) {
-	DATASRC* save_datasrc = datasrc;
-	set_datasrc(dp);
-	switch (nntp_list("active", nam, len)) {
-	case 0:
+    if (DATASRC_NNTP_FLAGS(dp) & NNTP_NEW_CMD_OK) {
+	if (dp->flags & DF_USELISTACT) {
+	    DATASRC* save_datasrc = datasrc;
+	    set_datasrc(dp);
+	    switch (nntp_list("active", nam, len)) {
+	    case 0:
+		set_datasrc(save_datasrc);
+		return 0;
+	    case 1:
+		sprintf(outbuf, "%s\n", ser_line);
+		nntp_finish_list();
+		break;
+	    case -2:
+		/*$$$$*/
+		break;
+	    }
 	    set_datasrc(save_datasrc);
-	    return 0;
-	case 1:
-	    sprintf(outbuf, "%s\n", ser_line);
-	    nntp_finish_list();
-	    break;
-	case -2:
-	    /*$$$$*/
-	    break;
-	}
-	set_datasrc(save_datasrc);
-	if (!lbp_len) {
-	    if (fp)
-		(void) srcfile_append(&dp->act_sf, outbuf, len);
-	    return 1;
-	}
+	    if (!lbp_len) {
+		if (fp)
+		    (void) srcfile_append(&dp->act_sf, outbuf, len);
+		return 1;
+	    }
 # ifndef ANCIENT_NEWS
-	/* Safely update the low-water mark */
-	{
-	    char* f = rindex(outbuf, ' ');
-	    char* t = lbp + lbp_len;
-	    while (*--t != ' ') ;
-	    while (t > lbp) {
-		if (*--t == ' ')
-		    break;
-		if (f[-1] == ' ')
-		    *t = '0';
-		else
-		    *t = *--f;
+	    /* Safely update the low-water mark */
+	    {
+		char* f = rindex(outbuf, ' ');
+		char* t = lbp + lbp_len;
+		while (*--t != ' ') ;
+		while (t > lbp) {
+		    if (*--t == ' ')
+			break;
+		    if (f[-1] == ' ')
+			*t = '0';
+		    else
+			*t = *--f;
+		}
 	    }
-	}
 # endif
-	high = (ART_NUM)atol(outbuf+len+1);
+	    high = (ART_NUM)atol(outbuf+len+1);
+	} else {
+	    DATASRC* save_datasrc = datasrc;
+	    long count, first, last;
+	    set_datasrc(dp);
+	    sprintf(ser_line, "GROUP %s", nam);
+	    if (nntp_command(ser_line) <= 0
+		    || nntp_check() <= 0) {
+		set_datasrc(save_datasrc);
+		return 0;
+	    }
+	    set_datasrc(save_datasrc);
+	    (void) sscanf(ser_line,"%*d%ld%ld%ld",&count,&first,&last);
+	    if (!lbp_len) {
+		if (fp) {
+		    /* NNTP mangles the high/low values when no articles are present. */
+		    /* we guess that posting is allowed */
+		    if (!count)
+			sprintf(outbuf, "%s 0000000000 0000000000 y\n", nam, last, first);
+		    else
+			sprintf(outbuf, "%s %010ld %010ld y\n", nam, last, first);
+		    (void) srcfile_append(&dp->act_sf, outbuf, len);
+		}
+		return 1;
+	    }
+	    if (count)
+		high = last;
+	}
     }
 #endif
 
--- inews.c.orig	Mon Jan 18 01:01:23 1999
+++ inews.c	Wed Feb 24 18:41:36 1999
@@ -23,7 +23,7 @@
 #include "nntpclient.h"
 #include "nntpinit.h"
 
-#define	MAX_SIGNATURE	4
+#define	MAX_SIGNATURE	10
 
 int	debug = 0;
 int	new_connection = FALSE;
@@ -300,7 +300,7 @@
     if (fp == NULL)
 	return;
 
-    fprintf(nntplink.wr_fp, "-- \r\n");
+    /* fprintf(nntplink.wr_fp, "-- \r\n"); */
     while (fgets(ser_line, sizeof ser_line, fp)) {
 	count++;
 	if (count > MAX_SIGNATURE) {
--- Pnews.SH.orig	Thu Sep 16 23:39:05 1999
+++ Pnews.SH	Fri Feb 26 11:58:29 1999
@@ -405,8 +405,7 @@
 $echo ""
 
 if $test -r $news_sig; then
-    $echo "-- " >> $tmpart
-    $sed 4q $news_sig >> $tmpart
+    $cat $news_sig >> $tmpart
 fi
 
 while : ; do
@@ -638,6 +637,10 @@
 		}'
 	    case "$NNTPSERVER" in
 	    local|'') share_connection=no;;
+	    $NNTPAUTH_IF)
+		share_connection=no
+		NNTPAUTH=`echo echo '$NNTPAUTH_'$NNTPSERVER | sed -e 's/\./_/g' | /bin/sh`
+		export NNTPAUTH;;
 	    *) share_connection=$TRN_VERSION;;
 	    esac
 	    case "$share_connection" in
--- Rnmail.SH.orig	Tue Sep 21 14:03:39 1999
+++ Rnmail.SH	Tue Sep 21 15:00:55 1999
@@ -202,7 +202,6 @@
 $echo ""
 
 if $test -r $mail_sig; then
-    $echo "-- " >> $tmpart
     $cat $mail_sig >> $tmpart
 fi
 

