Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/packages/uucpbb/src/unsubscribe.c @ 3295:6b7a7b233925 default tip
makefile: Allow PORTS with level1/2 mix
https://sourceforge.net/p/nitros9/feature-requests/10/
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Tue, 19 Apr 2022 18:12:17 +0200 |
parents | 5ba8e711a1a3 |
children |
line wrap: on
line source
/* unsubscribe.c This program lets a user unsubscribe from newsgroups. Copyright (C) 1990, 1993 Rick Adams and Bob Billson This file is part of the OS-9 UUCP package, UUCPbb. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author of UUCPbb, Bob Billson, can be contacted at: bob@kc2wz.bubble.org or uunet!kc2wz!bob or by snail mail: 21 Bates Way, Westfield, NJ 07090 */ #define MAIN #include "uucp.h" char line[512]; main (argc, argv) int argc; char *argv[]; { register int i; char *p; if (argc < 2 || (argc >= 2 && (argv[1][0] == '-' && argv[1][1] == '?'))) { usage(); } if ((homedir = getenv ("HOME")) != NULL) homedir = strdup (homedir); else fatal ("can't get HOME environment"); p = line; #ifdef _OSK sprintf (p, "%s", homedir); #else sprintf (p, "%s/%s", homedir, uudir); #endif if (chdir (p) == -1) { #ifdef _OSK sprintf (p, "can't change to %s", homedir); #else sprintf (p, "can't change to %s/%s", homedir, uudir); #endif fatal (p); } for (i = 1; i < argc; i++) unsubscribe (argv[i]); exit (0); } int unsubscribe (newsgroup) char *newsgroup; { FILE *infile, *outfile; char group[512], flag, articles[512], newnewsrc[15]; register char *p; char *newsrc = _NEWSRC; p = line; sprintf (newnewsrc, "new.%s", newsrc); if ((infile = fopen (newsrc, "r")) == NULL) { sprintf (p, "can't open %s file", newsrc); fatal (p); } if ((outfile = fopen (newnewsrc, "w")) == NULL) { sprintf (p, "can't create %s", newnewsrc); fatal (p); } while (fgets (p, sizeof (line), infile) != NULL) { *articles = '\0'; sscanf (p, "%[^!:]%c %[^\n]\n", group, &flag, articles); if ((strcmp (newsgroup, "all") == 0) || (strcmp (newsgroup, group) == 0)) { if (flag == '!') printf ("Newsgroup % is already unsubscribed.\n", group); else { printf ("Newsgroup %s is now unsubscribed.\n", group); flag = '!'; } } fprintf (outfile, "%s%c %s\n", group, flag, articles); } fclose (infile); fclose (outfile); filemove (newnewsrc, newsrc); } int fatal (msg) char *msg; { fprintf (stderr, "unsubscribe: %s...error %d\n", msg, errno); exit (0); } int usage() { fputs ("unsubscribe: unsubscribe from Usenet newsgroup(s)\n\n", stderr); fputs ("usage: unsubscribe <newsgroup> [newsgroup...]\n", stderr); fputs (" if <newsgroup> is 'all', all newsgroups will be unsubscribed\n\n", stderr); fprintf (stderr, "v%s (%s) This is free software released under the GNU General Public\n", version, VERDATE); fputs ("License. Please send suggestions/bug reports to: bob@kc2wz.bubble.org\n", stderr); exit (0); }