greg@unlv.UUCP (Greg Wohletz) (02/11/86)
I recently modified expire.c to allow for the -o option which is the same
as the -n option except that it excludes the named groups from those expired
instead of expireing only those groups (ie expire -o mod.sources runs expire
on all groups except mod.sources). The patch follows, I thought someone
might find it usefull:
--Greg Wohletz
greg%unlv@CSNet-Relay
seismo!unrvax!unlv!greg
---------------------------cut here------------------------------
*** /tmp/,RCSt1001149 Tue Feb 11 02:43:49 1986
--- /tmp/,RCSt2001149 Tue Feb 11 02:43:53 1986
***************
*** 42,47 ****
--- 42,48 ----
int usepost = 0;
int frflag = 0;
int updateactive = 0;
+ int invert = 0;
char baduser[BUFLEN];
extern char filename[], nbuf[];
***************
*** 146,157 ****
ignorexp = 1;
break;
case 'n':
if (argc > 2) {
argv++;
argc--;
while (argc > 1 && argv[1][0] != '-') {
if (ngpatlen + strlen(argv[1]) + 2 > LBUFLEN) {
! fprintf(stderr,"Too many groups specified for -n\n");
xxit(1);
}
strcat(ngpat, argv[1]);
--- 147,160 ----
ignorexp = 1;
break;
case 'n':
+ case 'o':
+ invert = (argv[1][1] == 'o');
if (argc > 2) {
argv++;
argc--;
while (argc > 1 && argv[1][0] != '-') {
if (ngpatlen + strlen(argv[1]) + 2 > LBUFLEN) {
! fprintf(stderr,"Too many groups specified for -%c\n",argv[1][1]);
xxit(1);
}
strcat(ngpat, argv[1]);
***************
*** 373,379 ****
grpsleft[0] = '\0';
goto checkdate;
}
! if (!ngmatch(nbuf, ngpat) ||
((h.rectime+expincr > now) && !dorebuild && !frflag
&& !usepost && h.recdate[0] != ' '))
goto keephist;
--- 376,383 ----
grpsleft[0] = '\0';
goto checkdate;
}
! if ((invert && ngmatch(nbuf, ngpat)) ||
! (!invert && !ngmatch(nbuf, ngpat)) ||
((h.rectime+expincr > now) && !dorebuild && !frflag
&& !usepost && h.recdate[0] != ' '))
goto keephist;
***************
*** 381,386 ****
--- 385,392 ----
** Look for the file--possibly several times,
** if it was posted to several news groups.
*/
+ if(verbose > 1 && invert)
+ printf("Looking at %s\n",nbuf);
dc = ' ';
p3 = p2;
while (dc != '\n') {
***************
*** 745,751 ****
/* should be impossible to get here */
}
fn = dirname(artlist);
! if (ngmatch(newname, ngpat)) {
if (doarchive){
if (ngmatch(newname, arpat)) {
q = fn + strlen(SPOOL) + 1;
--- 751,757 ----
/* should be impossible to get here */
}
fn = dirname(artlist);
! if ((ngmatch(newname, ngpat) && !invert) || (!ngmatch(newname,ngpat) && invert)) {
if (doarchive){
if (ngmatch(newname, arpat)) {
q = fn + strlen(SPOOL) + 1;avolio@decuac.UUCP (Frederick M. Avolio) (02/14/86)
In article <131@csee-vax.unlv.UUCP>, greg@unlv.UUCP writes: > > I recently modified expire.c to allow for the -o option which is the same > as the -n option except that it excludes the named groups from those expired You can use a ! in front of a news group such as /usr/lib/news/expire -v -e7 -n all,!uig.meetings,!uig.notes 2>&1 -- Fred @ DEC Ultrix Applications Center {decvax,seismo,cbosgd}!decuac!avolio avolio@decuac.DEC.COM