home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume7 / 2.11news / part19 < prev    next >
Text File  |  1986-11-30  |  32KB  |  1,331 lines

  1. Subject:  v07i059:  2.11 News Source, Part09/09
  2. Newsgroups: mod.sources
  3. Approved: mirror!rs
  4.  
  5. Submitted by: seismo!rick (Rick Adams)
  6. Mod.sources: Volume 7, Issue 59
  7. Archive-name: 2.11news/Part09
  8.  
  9. # To extract, sh this file
  10. #    news 2.11 source part 9 of 9
  11. if test ! -d src
  12. then
  13.     mkdir src
  14. fi
  15. echo x - src/fullname.c 1>&2
  16. sed 's/.//' >src/fullname.c <<'*-*-END-of-src/fullname.c-*-*'
  17. -/*
  18. - * fullname.c - this file is made separate so that different local
  19. - * conventions can be applied.  The stock version understands two
  20. - * conventions:
  21. - *
  22. - * (a) Berkeley finger: the gecos field in /etc/passwd begins with
  23. - *     the full name, terminated with comma, semicolon, or end of
  24. - *     field.  & expands to the login name.
  25. - * (b) BTL RJE: the gecos field looks like
  26. - *    : junk - full name ( junk :
  27. - *     where the "junk -" is optional.
  28. - *
  29. - * If you have a different local convention, modify this file accordingly.
  30. - */
  31. -
  32. -#ifdef SCCSID
  33. -static char    *SccsId = "@(#)fullname.c    1.11    9/16/86";
  34. -#endif /* SCCSID */
  35. -
  36. -#include "params.h"
  37. -
  38. -#ifndef LOCALNAME
  39. -/*
  40. - * Figure out who is sending the message and sign it.
  41. - * We attempt to look up the user in the gecos field of /etc/passwd.
  42. - */
  43. -char *
  44. -fullname(un)
  45. -char *un;
  46. -{
  47. -    static char inbuf[BUFLEN];
  48. -    struct passwd *pw;
  49. -
  50. -    pw = getpwnam(un);
  51. -    if (pw == NULL)
  52. -        return un;
  53. -    buildfname(pw->pw_gecos, un, inbuf);
  54. -    if (inbuf[0] == 0)
  55. -        return un;
  56. -    return inbuf;
  57. -}
  58. -
  59. -#else
  60. -
  61. -/*
  62. - * Alternative version of fullname which asks the user for his full name.
  63. - * This is mainly suitable for systems that don't have a full name
  64. - * database somewhere.  It puts the answer in $HOME/.name
  65. - */
  66. -char *
  67. -fullname(un)
  68. -char *un;
  69. -{
  70. -    static char inbuf[BUFLEN];
  71. -    char fbuf[BUFLEN];
  72. -    FILE *fd;
  73. -    char *p, *index(), *getenv();
  74. -    int pid;
  75. -
  76. -    if (!isatty(2))
  77. -        return un;
  78. -    printf("What is your full name (for news article signatures): ");
  79. -    fflush(stdout);
  80. -    read(2, inbuf, sizeof inbuf);
  81. -    if (inbuf[0] == 0)
  82. -        return un;
  83. -    p = index(inbuf, '\n');
  84. -    if (p)
  85. -        *p = 0;
  86. -    if ((p = getenv("HOME")) == NULL) {
  87. -        fprintf(stderr,
  88. -        "inews: no HOME environment variable - .name not written\n");
  89. -        return inbuf;
  90. -    }
  91. -    sprintf(fbuf, "%s/%s", p, ".name");
  92. -    if ((pid = vfork()) < 0) {
  93. -        perror("inews");
  94. -        return inbuf;
  95. -    }
  96. -    else if (pid != 0)
  97. -        while (wait((int *)0) != pid)
  98. -            ;
  99. -    else {
  100. -        setuid(getuid());    /* become the user */
  101. -        if ((fd = fopen(fbuf, "w")) == NULL)
  102. -            fprintf(stderr, "inews: can't create %s\n", fbuf);
  103. -        else {
  104. -            fprintf(fd, "%s\n", inbuf);
  105. -            fclose(fd);
  106. -        }
  107. -        exit(0);
  108. -    }
  109. -    return inbuf;
  110. -}
  111. -#endif
  112. -
  113. -#ifndef LOCALNAME
  114. -/*
  115. -**  BUILDFNAME -- build full name from gecos style entry.
  116. -**    (routine lifted from sendmail)
  117. -**
  118. -**    This routine interprets the strange entry that would appear
  119. -**    in the GECOS field of the password file.
  120. -**
  121. -**    Parameters:
  122. -**        p -- name to build.
  123. -**        login -- the login name of this user (for &).
  124. -**        buf -- place to put the result.
  125. -**
  126. -**    Returns:
  127. -**        none.
  128. -**
  129. -**    Side Effects:
  130. -**        none.
  131. -*/
  132. -
  133. -buildfname(p, login, buf)
  134. -    register char *p;
  135. -    char *login;
  136. -    char *buf;
  137. -{
  138. -    register char *bp = buf;
  139. -
  140. -    if (*p == '*')
  141. -        p++;
  142. -    while (*p != '\0' && *p != ',' && *p != ';' && *p != ':' && *p != '(')
  143. -    {
  144. -        if (*p == '-') {
  145. -            bp = buf;
  146. -            p++;
  147. -        }
  148. -        else if (*p == '&')
  149. -        {
  150. -            strcpy(bp, login);
  151. -            if ((bp == buf || !isalpha(bp[-1])) && islower(*bp))
  152. -                *bp = toupper(*bp);
  153. -            while (*bp != '\0')
  154. -                bp++;
  155. -            p++;
  156. -        }
  157. -        else
  158. -            *bp++ = *p++;
  159. -    }
  160. -    *bp = '\0';
  161. -}
  162. -#endif
  163. *-*-END-of-src/fullname.c-*-*
  164. echo x - src/berknews.c 1>&2
  165. sed 's/.//' >src/berknews.c <<'*-*-END-of-src/berknews.c-*-*'
  166. -/*
  167. - * berknews - send news article via Berknet
  168. - * 
  169. - * Synopsis:
  170. - *    berknews [-o] [-n newsgroup] host_net_command machine remote_rnews
  171. - */
  172. -
  173. -#ifdef SCCSID
  174. -static char *SccsId = "@(#)berknews.c    2.5    4/16/85";
  175. -#endif /* SCCSID */
  176. -
  177. -#include <stdio.h>
  178. -#include <ctype.h>
  179. -#ifndef USG
  180. -#include <whoami.h>
  181. -struct utsname {
  182. -    char    Sysname[9];
  183. -    char    nodename[33];
  184. -    char    release[9];
  185. -    char    version[9];
  186. -};
  187. -#else /* USG */
  188. -#include <sys/utsname.h>
  189. -#endif /* USG */
  190. -
  191. -
  192. -struct network {
  193. -    char *uucpname;
  194. -    char *berkname;
  195. -} berknet[] = {
  196. -/*    UUCP Net Name    BerkNet Name
  197. -    -------------    ------------    */    
  198. -    "ucbvax",    "CSVAX",
  199. -    "populi",    "G",
  200. -    "ucbarpa",    "ARPAVAX",
  201. -    "ucbcfo-c",    "C",
  202. -    "ucbopt",    "ESVAX",
  203. -    "ucbcad",    "ucbcad",
  204. -    "ucbcory",    "Cory",
  205. -    "ucb",        "C70",
  206. -    "ucbmathstat",    "MathStat",
  207. -    "ucbonyx",    "Onyx",
  208. -    "ucbkim",    "Kim",
  209. -    "ucbcfo-a",    "A",
  210. -    "ucbcfo-b",    "B",
  211. -    "ucbcfo-d",    "D",
  212. -    "ucbcfo-e",    "E",
  213. -    "ucbcfo-f",    "F",
  214. -    "ucbingvax",    "IngVAX",
  215. -    "ucbingres",    "Ingres",
  216. -    "ucbeecs40",    "EECS40",
  217. -    "ucbvlsi",    "VLSI",
  218. -    "ucbsrc",    "SRC",
  219. -    "ucbimage",    "Image",
  220. -    '\0',        '\0'
  221. -};
  222. -
  223. -char *index();
  224. -char buffer[BUFSIZ];
  225. -int linecount;
  226. -
  227. -FILE *popen();
  228. -main(argc, argv)
  229. -int argc;
  230. -char **argv;
  231. -{
  232. -    FILE *out;
  233. -    char sender[BUFSIZ],newsgroup[100];
  234. -    char *punct;
  235. -    char sysn[20];
  236. -    int sysnl;
  237. -    struct utsname ubuf;
  238. -
  239. -    if (argc < 4) {
  240. -        fprintf(stderr, "Too few arguments.\n");
  241. -        exit(1);
  242. -    }
  243. -
  244. -#ifdef debug
  245. -    printf("%s - -m%s %s\n", argv[1], argv[2], argv[3]);
  246. -    sprintf(buffer, "cat");
  247. -#else
  248. -    sprintf(buffer, "%s - -m%s %s", argv[1], argv[2], argv[3]);
  249. -#endif
  250. -    out = popen(buffer, "w");
  251. -    uname(&ubuf);
  252. -    strcpy(sysn, ubuf.nodename);
  253. -    strcat(sysn, "!");
  254. -    sysnl = strlen(sysn);
  255. -
  256. -    while (fgets(buffer, sizeof buffer, stdin)) {
  257. -        if (fromline()) {
  258. -            punct = index(buffer, '!');
  259. -            if (punct == NULL)
  260. -                printf("Bad from line: '%s'\n", buffer);
  261. -            else {
  262. -                *punct = ':';    /* berknet mail delimiter */
  263. -                if (!strncmp("From: ", buffer, 6))
  264. -                    punct = &buffer[6];
  265. -                else if (!strncmp("From ",buffer,5))
  266. -                    punct = &buffer[5];
  267. -                else
  268. -                    punct = buffer;
  269. -                fiddle(punct);
  270. -            }
  271. -        }
  272. -        fputs(buffer, out);
  273. -    }
  274. -    pclose(out);
  275. -    exit(0);
  276. -}
  277. -
  278. -fromline() {
  279. -    if (!linecount && (!strncmp("From: ", buffer, 6) || !strncmp("From ", buffer, 5)))
  280. -        return ++linecount;
  281. -    return 0;
  282. -}
  283. -
  284. -/*
  285. - * make sure the host name is a correct berknet address, since the
  286. - * internal names are not the berknet host names.
  287. - */
  288. -fiddle(buf)
  289. -char *buf;
  290. -{
  291. -    char uucpname[100];
  292. -    register struct network *netptr;
  293. -    char *rest;
  294. -
  295. -    strcpy(uucpname, buf);
  296. -    rest = index(uucpname, ':');
  297. -    *rest++ = 0;
  298. -#ifdef debug
  299. -    printf("uucpname = '%s', buf = '%s', rest = '%s'\n", uucpname, buf, rest);
  300. -#endif
  301. -    for (netptr = &berknet[0]; strcmp(netptr->uucpname, uucpname) && netptr->uucpname; netptr++)
  302. -        ;
  303. -    if (netptr->uucpname)
  304. -        sprintf(buf, "%s:%s", netptr->berkname, rest);
  305. -    else
  306. -        sprintf(buf, "UNKNOWN:%s", rest);
  307. -}
  308. *-*-END-of-src/berknews.c-*-*
  309. echo x - src/params.h 1>&2
  310. sed 's/.//' >src/params.h <<'*-*-END-of-src/params.h-*-*'
  311. -/*
  312. - * params.h - parameters for everyone.
  313. - */
  314. -
  315. -/*    @(#)params.h    2.21    10/23/86        */
  316. -
  317. -#include <stdio.h>
  318. -#include <signal.h>
  319. -#include <sys/types.h>
  320. -#include <grp.h>
  321. -#include <pwd.h>
  322. -#include <sys/stat.h>
  323. -#include <ctype.h>
  324. -
  325. -#include "defs.h"
  326. -
  327. -#if defined(BSD4_2) || defined(BSD4_1C)
  328. -#include <sys/time.h>
  329. -#else /* sane */
  330. -#include <time.h>
  331. -#endif /* sane */
  332. -
  333. -#ifndef UNAME
  334. -/*
  335. - * 9 bytes is for compatibility with USG, in case you forget to define UNAME.
  336. - * 33 bytes in nodename because many sites have names longer than 8 chars.
  337. - */
  338. -
  339. -struct utsname {
  340. -    char    sysname[9];
  341. -    char    nodename[33];
  342. -    char    release[9];
  343. -    char    version[9];
  344. -};
  345. -#else
  346. -#include <sys/utsname.h>
  347. -#endif
  348. -
  349. -#ifndef USG
  350. -#include <sys/timeb.h>
  351. -#else
  352. -struct timeb
  353. -{
  354. -    time_t    time;
  355. -    unsigned short millitm;
  356. -    short    timezone;
  357. -    short    dstflag;
  358. -};
  359. -#endif
  360. -
  361. -#include "header.h"
  362. -
  363. -/* line from SUBFILE */
  364. -struct    srec {
  365. -    char    s_name[2*BUFLEN];    /* system name        */
  366. -    char    *s_nosend;        /* systems that inhibit sending */
  367. -    char    s_nbuf[LBUFLEN];    /* system subscriptions */
  368. -    char    s_flags[BUFLEN];    /* system flags        */
  369. -    char    s_xmit[LBUFLEN];    /* system xmit routine    */
  370. -};
  371. -
  372. -extern    int    uid, gid, duid, dgid;
  373. -extern    int    savmask, SigTrap, mode, lockcount;
  374. -extern    struct    hbuf header;
  375. -extern    char    bfr[LBUFLEN], *username, *userhome;
  376. -
  377. -extern    char    *SPOOL, *LIB, *BIN, *SUBFILE, *ACTIVE;
  378. -extern    char    *LOCKFILE, *SEQFILE, *ARTFILE;
  379. -extern    char    *news_version, *Progname;
  380. -
  381. -#ifdef NOTIFY
  382. -extern    char    *TELLME;
  383. -#endif /* NOTIFY */
  384. -
  385. -#ifdef HIDDENNET
  386. -extern char    *LOCALSYSNAME;
  387. -#endif /* HIDDENNET */
  388. -
  389. -extern    char    *FULLSYSNAME;
  390. -#ifndef SHELL
  391. -extern char    *SHELL;
  392. -#endif /* !SHELL */
  393. -
  394. -/* external function declarations */
  395. -extern    FILE    *xfopen(), *hread();
  396. -extern    char    *strcpy(), *strncpy(), *strcat(), *index(), *rindex();
  397. -extern    char    *ctime(), *mktemp(), *malloc(), *realloc(), *getenv();
  398. -extern    char    *arpadate(), *dirname(), *AllocCpy(), *strpbrk();
  399. -extern    char    *errmsg();
  400. -extern    struct    passwd *getpwnam(), *getpwuid(), *getpwent();
  401. -extern    struct    group *getgrnam();
  402. -extern    time_t    time(), getdate(), cgtdate();
  403. -extern    int    broadcast(), save(), newssave(), ushell(), onsig();
  404. -extern    long    atol();
  405. -extern    struct    tm *localtime();
  406. -
  407. -#ifdef lint
  408. -/* This horrible gross kludge is the only way I know to
  409. - * convince lint that signal(SIGINT,SIG_IGN) is legal. It hates SIG_IGN.
  410. - */
  411. -#ifdef SIG_IGN
  412. -#undef SIG_IGN
  413. -#endif /* SIG_IGN */
  414. -#define SIG_IGN    main
  415. -extern int main();
  416. -#endif /* lint */
  417. -
  418. -#ifdef VMS
  419. -#define LINK(a,b)    vmslink(a,b)
  420. -#define UNLINK(a)    vmsdelete(a)
  421. -FILE *art_open(), *xart_open();
  422. -#else    
  423. -#define LINK(a,b)    link(a,b)
  424. -#define UNLINK(a)    unlink(a)
  425. -#define art_open fopen
  426. -#define xart_open xfopen
  427. -#endif /* !VMS */
  428. *-*-END-of-src/params.h-*-*
  429. echo x - src/uname.c 1>&2
  430. sed 's/.//' >src/uname.c <<'*-*-END-of-src/uname.c-*-*'
  431. -/*
  432. - * This software is Copyright (c) 1986 by Rick Adams.
  433. - *
  434. - * Permission is hereby granted to copy, reproduce, redistribute or
  435. - * otherwise use this software as long as: there is no monetary
  436. - * profit gained specifically from the use or reproduction or this
  437. - * software, it is not sold, rented, traded or otherwise marketed, and
  438. - * this copyright notice is included prominently in any copy
  439. - * made.
  440. - *
  441. - * The author make no claims as to the fitness or correctness of
  442. - * this software for any use whatsoever, and it is provided as is. 
  443. - * Any use of this software is at the user's own risk.
  444. - *
  445. - * This routine is compatible with the Unix T/S system call uname,
  446. - * which figures out the name of the local system.
  447. - * However, we do it by reading the file /usr/include/whoami.h.
  448. - * This avoids having to recompile uucp for each site and hence
  449. - * avoids having to distribute the source to uucp to people who
  450. - * have only binary licenses.
  451. - */
  452. -
  453. -#ifdef SCCSID
  454. -static char    *SccsId = "@(#)uname.c    2.11    10/23/86";
  455. -#endif /* SCCSID */
  456. -
  457. -#include "params.h"
  458. -
  459. -#ifdef UNAME
  460. -# define DONE
  461. -#endif /* UNAME */
  462. -
  463. -#ifdef GHNAME
  464. -uname(uptr)
  465. -struct utsname *uptr;
  466. -{
  467. -    char *cp;
  468. -    gethostname(uptr->nodename, sizeof (uptr->nodename));
  469. -    cp = index(uptr->nodename, '.');
  470. -    if (cp)
  471. -        *cp = '\0';
  472. -}
  473. -# define DONE
  474. -#endif
  475. -
  476. -#ifdef    UUNAME
  477. -uname(uptr)
  478. -struct utsname *uptr;
  479. -{
  480. -    FILE *uucpf;
  481. -    register char *p;
  482. -    /* uucp name is stored UUNAME */
  483. -
  484. -    if (((uucpf = fopen(UUNAME, "r")) == NULL) ||
  485. -        fgets(uptr->nodename, sizeof (uptr->nodename), uucpf) == NULL) {
  486. -            fprintf(stderr, "no sysname in %s\n", UUNAME);
  487. -            return;
  488. -    }
  489. -    p = index(uptr->nodename, '\n');
  490. -    if (p)
  491. -        *p = '\0';
  492. -    if (uucpf != NULL)
  493. -        fclose(uucpf);
  494. -}
  495. -#define DONE
  496. -#endif /* UUNAME */
  497. -
  498. -#ifndef DONE
  499. -#define    HDRFILE "/usr/include/whoami.h"
  500. -
  501. -uname(uptr)
  502. -struct utsname *uptr;
  503. -{
  504. -    char buf[BUFSIZ];
  505. -    FILE *fd;
  506. -    
  507. -    fd = fopen(HDRFILE, "r");
  508. -    if (fd == NULL) {
  509. -        fprintf(stderr, "Cannot open %s\n", HDRFILE);
  510. -        exit(1);
  511. -    }
  512. -    
  513. -    for (;;) {    /* each line in the file */
  514. -        if (fgets(buf, sizeof buf, fd) == NULL) {
  515. -            fprintf(stderr, "no sysname in %s\n", HDRFILE);
  516. -            fclose(fd);
  517. -            exit(2);
  518. -        }
  519. -        if (sscanf(buf, "#define sysname \"%[^\"]\"", uptr->nodename) == 1) {
  520. -            fclose(fd);
  521. -            return;
  522. -        }
  523. -    }
  524. -}
  525. -#endif
  526. *-*-END-of-src/uname.c-*-*
  527. echo x - src/logdir.c 1>&2
  528. sed 's/.//' >src/logdir.c <<'*-*-END-of-src/logdir.c-*-*'
  529. -/*
  530. - *    UNIX shell - logdir routine
  531. - *
  532. - *    Joe Steffen
  533. - *    Bell Telephone Laboratories
  534. - *
  535. - *    This routine does not use the getpwent(3) library routine
  536. - *    because the latter uses the stdio package.  The allocation of
  537. - *    storage in this package destroys the integrity of the shell's
  538. - *    storage allocation.
  539. - *
  540. - *    Modified 2/82 by DJ Molny
  541. - *
  542. - *    This routine now implements name cacheing, so multiple requests
  543. - *    for the same logdir do not result in multiple open/reads of
  544. - *    /etc/passwd.  If the previous request was successful and the name
  545. - *    is the same as the last request, the same login directory is returned.
  546. - */
  547. -#ifdef SCCSID
  548. -static char    *SccsId = "@(#)logdir.c    1.4    4/16/85";
  549. -#endif /* SCCSID */
  550. -
  551. -#define    BUFSIZ    160
  552. -
  553. -static char line[BUFSIZ+1];
  554. -
  555. -char *
  556. -logdir(name)
  557. -char *name;
  558. -{
  559. -    int    pwf;
  560. -    static char lastname[BUFSIZ+1];
  561. -    static char lastdir[BUFSIZ+1];
  562. -    register char *p;
  563. -    register int i, j;
  564. -    char *getenv(), *field(), *strcpy();
  565. -    
  566. -    if (*lastdir && !strcmp(lastname,name))        /* djm */
  567. -        return(lastdir);
  568. -
  569. -    strcpy(lastname, name);            /* djm */
  570. -    strcpy(lastdir, "");            /* djm */
  571. -    
  572. -#ifdef IHCC
  573. -    /* if the logname is exptools, see if $TOOLS is set */
  574. -    if (strcmp(name, "exptools") &&
  575. -        (p = getenv("TOOLS")) != 0 && *p != '\0') {
  576. -        strcpy(lastdir, p);
  577. -        return(lastdir);
  578. -    }
  579. -#endif
  580. -
  581. -    /* attempt to open the password file */
  582. -    if ((pwf = open("/etc/passwd", 0)) == -1)
  583. -        return(0);
  584. -        
  585. -    /* find the matching password entry */
  586. -    do {
  587. -        /* get the next line in the password file */
  588. -        i = read(pwf, line, BUFSIZ);
  589. -        for (j = 0; j < i; j++)
  590. -            if (line[j] == '\n')
  591. -                break;
  592. -        /* return a null pointer if the whole file has been read */
  593. -        if (j >= i)
  594. -            return(0);
  595. -        line[++j] = 0;            /* terminate the line */
  596. -        lseek(pwf, (long) (j - i), 1);    /* point at the next line */
  597. -        p = field(line);        /* get the logname */
  598. -    } while (strcmp(name, line) != 0);
  599. -    close(pwf);
  600. -    
  601. -    /* skip the intervening fields */
  602. -    p = field(p);
  603. -    p = field(p);
  604. -    p = field(p);
  605. -    p = field(p);
  606. -    
  607. -    /* return the login directory */
  608. -    field(p);
  609. -    strcpy(lastdir,p);            /* djm */
  610. -    return(p);
  611. -}
  612. -
  613. -static char *
  614. -field(p)
  615. -register char *p;
  616. -{
  617. -    while (*p && *p != ':')
  618. -        ++p;
  619. -    if (*p) *p++ = 0;
  620. -    return(p);
  621. -}
  622. *-*-END-of-src/logdir.c-*-*
  623. echo x - src/rparams.h 1>&2
  624. sed 's/.//' >src/rparams.h <<'*-*-END-of-src/rparams.h-*-*'
  625. -/*
  626. - * rparams.h - parameters for readnews, rfuncs, and readr.
  627. - */
  628. -
  629. -/*    @(#)rparams.h    2.23    10/23/86    */
  630. -
  631. -#include "params.h"
  632. -
  633. -/* flags for readnews */
  634. -#define pflag    options[0].flag
  635. -#define tflag    options[1].flag
  636. -#define aflag    options[2].flag
  637. -#define nflag    options[3].flag
  638. -#define cflag    options[4].flag
  639. -#define lflag    options[5].flag
  640. -#define rflag    options[6].flag
  641. -#define sflag    options[7].flag
  642. -#define xflag    options[8].flag
  643. -#define hflag    options[9].flag
  644. -#define Mflag    options[10].flag
  645. -#define fflag    options[11].flag
  646. -#define uflag    options[12].flag
  647. -#define eflag    options[13].flag
  648. -#define Kflag    options[14].flag
  649. -
  650. -#define    NEXT    0
  651. -#define SPEC    1
  652. -
  653. -#define    FORWARD    0
  654. -#define BACKWARD 1
  655. -
  656. -#define UNKNOWN 0001    /* possible modes for news program */
  657. -#define MAIL    0004
  658. -#define ANY    0007
  659. -
  660. -struct optable {            /* options table. */
  661. -    char    optlet;        /* option character. */
  662. -    char    filchar;    /* if to pickup string, fill character. */
  663. -    int    flag;        /* TRUE if have seen this opt. */
  664. -    int    newstate;    /* STRING if takes arg, else OPTION */
  665. -    int    oldmode;    /* OR of legal input modes. */
  666. -    int    newmode;    /* output mode. */
  667. -    char    *buf;        /* string buffer */
  668. -};
  669. -
  670. -/* external declarations specific to readnews */
  671. -extern    char    *infile, *outfile, *PAGER, *ALIASES;
  672. -extern    char    *bitmap, *MAILER, *MAILPARSER;
  673. -
  674. -#ifndef ROOTID
  675. -extern    int    ROOTID;
  676. -#endif
  677. -
  678. -#ifdef NOTIFY
  679. -extern    char    *TELLME;
  680. -#endif
  681. -
  682. -extern char    filename[],coptbuf[],datebuf[],afline[];
  683. -extern char    newsrc[],groupdir[],rcbuf[],*rcline[],*argvrc[];
  684. -extern int    mode, ngrp, line, newrc(), readmode, news;
  685. -extern long    bit, obit, last, ngsize, minartno;
  686. -extern FILE    *rcfp,*actfp;
  687. -extern time_t    atime;
  688. -extern struct optable *optpt, options[];
  689. -extern int    actdirect, rcreadok, zapng;
  690. -
  691. -#ifndef lint
  692. -/* lint gets very mad about i-minartno, this is one way of shutting it up */
  693. -/* macros */
  694. -#define get(i)    ((i<minartno)? 0 : (bitmap[(i-minartno) >> 3] & (1 << (i-minartno) % 8)))
  695. -#define set(i)    if (i>=minartno) bitmap[(i-minartno) >> 3] |= (1 << (i-minartno) % 8);else
  696. -#define clear(i) if (i>=minartno) bitmap[(i-minartno) >> 3] &= ~(1 << (i-minartno) % 8);else
  697. -#endif /* !lint */
  698. -
  699. -#define FCLOSE(fp)    {if (fp != NULL) {fclose(fp);fp = NULL;}}
  700. *-*-END-of-src/rparams.h-*-*
  701. echo x - src/ndir.c 1>&2
  702. sed 's/.//' >src/ndir.c <<'*-*-END-of-src/ndir.c-*-*'
  703. -#include "defs.h"
  704. -#if !defined(BSD4_2) && !defined(BSD4_1C)
  705. -#include <sys/param.h>
  706. -#include "ndir.h"
  707. -
  708. -#ifdef SCCSID
  709. -static char    *SccsId = "@(#)ndir.c    1.8    4/26/85";
  710. -#endif /* SCCSID */
  711. -
  712. -/*
  713. - * support for Berkeley directory reading routine on a V7 file system
  714. - */
  715. -
  716. -extern char *malloc();
  717. -
  718. -/*
  719. - * open a directory.
  720. - */
  721. -DIR *
  722. -opendir(name)
  723. -char *name;
  724. -{
  725. -    register DIR *dirp;
  726. -    register int fd;
  727. -
  728. -    if ((fd = open(name, 0)) == -1)
  729. -        return NULL;
  730. -    if ((dirp = (DIR *)malloc(sizeof(DIR))) == NULL) {
  731. -        close (fd);
  732. -        return NULL;
  733. -    }
  734. -    dirp->dd_fd = fd;
  735. -    dirp->dd_loc = 0;
  736. -    return dirp;
  737. -}
  738. -
  739. -/*
  740. - * read an old style directory entry and present it as a new one
  741. - */
  742. -#ifdef pyr
  743. -/* Pyramid in the AT&T universe */
  744. -#define ODIRSIZ 248
  745. -struct olddirect {
  746. -    long    od_ino;
  747. -    short    od_fill1, od_fill2;
  748. -    char od_name[ODIRSIZ];
  749. -};
  750. -#else /* V7 file system */
  751. -#define    ODIRSIZ    14
  752. -
  753. -struct    olddirect {
  754. -    short    od_ino;
  755. -    char    od_name[ODIRSIZ];
  756. -};
  757. -#endif /* V7 */
  758. -
  759. -/*
  760. - * get next entry in a directory.
  761. - */
  762. -struct direct *
  763. -readdir(dirp)
  764. -register DIR *dirp;
  765. -{
  766. -    register struct olddirect *dp;
  767. -    static struct direct dir;
  768. -
  769. -    for (;;) {
  770. -        if (dirp->dd_loc == 0) {
  771. -            dirp->dd_size = read(dirp->dd_fd, dirp->dd_buf, 
  772. -                DIRBLKSIZ);
  773. -            if (dirp->dd_size <= 0)
  774. -                return NULL;
  775. -        }
  776. -        if (dirp->dd_loc >= dirp->dd_size) {
  777. -            dirp->dd_loc = 0;
  778. -            continue;
  779. -        }
  780. -        dp = (struct olddirect *)(dirp->dd_buf + dirp->dd_loc);
  781. -        dirp->dd_loc += sizeof(struct olddirect);
  782. -        if (dp->od_ino == 0)
  783. -            continue;
  784. -        dir.d_ino = dp->od_ino;
  785. -        strncpy(dir.d_name, dp->od_name, ODIRSIZ);
  786. -        dir.d_name[ODIRSIZ] = '\0'; /* insure null termination */
  787. -        dir.d_namlen = strlen(dir.d_name);
  788. -        dir.d_reclen = DIRSIZ(&dir);
  789. -        return (&dir);
  790. -    }
  791. -}
  792. -
  793. -/*
  794. - * close a directory.
  795. - */
  796. -void
  797. -closedir(dirp)
  798. -register DIR *dirp;
  799. -{
  800. -    close(dirp->dd_fd);
  801. -    dirp->dd_fd = -1;
  802. -    dirp->dd_loc = 0;
  803. -    free((char *)dirp);
  804. -}
  805. -#endif /* !BSD4_2 && !BSD4_1C */
  806. *-*-END-of-src/ndir.c-*-*
  807. echo x - src/sendnews.c 1>&2
  808. sed 's/.//' >src/sendnews.c <<'*-*-END-of-src/sendnews.c-*-*'
  809. -/*
  810. - * sendnews - send news article by mail.
  811. - */
  812. -
  813. -#ifdef SCCSID
  814. -static char    *SccsId = "@(#)sendnews.c    2.11    9/19/86";
  815. -#endif /* SCCSID */
  816. -
  817. -#include <stdio.h>
  818. -#include <ctype.h>
  819. -
  820. -char buffer[BUFSIZ];
  821. -
  822. -int linecount, oflag = 0, aflag = 0, bflag = 0, toflag = 0;
  823. -
  824. -extern FILE *popen();
  825. -
  826. -/* ARGSUSED */
  827. -main(argc, argv)
  828. -char **argv;
  829. -{
  830. -    register FILE *out;
  831. -    char newsgroup[BUFSIZ];
  832. -
  833. -    while (**(++argv) == '-') {
  834. -        if (*++*argv == 'o')
  835. -            oflag++;
  836. -        else if (**argv == 'a')
  837. -            aflag++;
  838. -        else if (**argv == 'b')
  839. -            bflag++;
  840. -        else if (**argv == 'n')
  841. -            strcpy(newsgroup, *(++argv));
  842. -    }
  843. -    if (aflag && bflag) {
  844. -        fprintf(stderr, "'-a' and '-b' options mutually exclusive.\n");
  845. -        exit(1);
  846. -    }
  847. -
  848. -#ifdef DEBUG
  849. -    printf("/bin/mail %s\n", *argv);
  850. -    sprintf(buffer, "cat");
  851. -#else
  852. -#ifdef SENDMAIL
  853. -    (void) sprintf(buffer, "%s -i -odq %s", SENDMAIL, *argv);
  854. -#else /* !SENDMAIL */
  855. -    (void) sprintf(buffer, "/bin/mail %s", *argv);
  856. -#endif /* !SENDMAIL */
  857. -#endif
  858. -    if ((out = popen(buffer, "w")) == NULL) {
  859. -        perror(buffer);
  860. -        exit(1);
  861. -    }
  862. -
  863. -    /* Standard mail prelude to make the formatters happy */
  864. -    fprintf(out, "Subject: network news article\n");
  865. -    fprintf(out, "To: %s\n\n", *argv);
  866. -
  867. -    while (fgets(buffer, sizeof buffer, stdin)) {
  868. -        if (*newsgroup && ngline()) {
  869. -            if (oflag)
  870. -                sprintf(buffer, "%s\n", newsgroup);
  871. -            else
  872. -                sprintf(buffer, "Newsgroups: %s\n", newsgroup);
  873. -        }
  874. -        putc('N', out);
  875. -        fputs(buffer, out);
  876. -        if (ferror(out))
  877. -            exit(1);
  878. -    }
  879. -    pclose(out);
  880. -    exit(0);
  881. -}
  882. -
  883. -ngline()
  884. -{
  885. -    if (oflag)
  886. -        return linecount == 2;
  887. -    if (!toflag && (!strncmp("Newsgroups: ", buffer, 12) ||
  888. -        !strncmp("To: ",buffer, 4)))
  889. -        return ++toflag;
  890. -    return 0;
  891. -}
  892. *-*-END-of-src/sendnews.c-*-*
  893. echo x - src/vnews.help 1>&2
  894. sed 's/.//' >src/vnews.help <<'*-*-END-of-src/vnews.help-*-*'
  895. -Vnews commands:    (each may be preceded by a non-negative count)
  896. -
  897. -CR  Next page or article                D   Decrypt a rot 13 joke
  898. -n   Go to next article                  A   Go to article numbered count
  899. -e   Mark current article as unread      <   Go to article with given ID
  900. -+   Go forwards count articles          p   Go to parent article
  901. --   Go to previous article              ug  Unsubscribe to this group
  902. -^B  Go backwards count pages            ^L  Redraw screen
  903. -^N  Go forward count lines              v   Print netnews version
  904. -^P  Go backwards count lines            q   Quit
  905. -^D  Go forward half a page              x   Quit without updating .newsrc
  906. -^U  Go backwards half a page            c   Cancel the current article
  907. -h   Display article header              H   Display all article headers
  908. -!   Escape to shell                     ?   Display this message
  909. -r   Reply to article using editor       K   Mark rest of newsgroup read
  910. -R   Reply--put current article in reply b   Go back 1 article in same group
  911. -ESC-r  Reply directly using mailer      m   Move on to next item in a digest
  912. -f   Post a followup article             s   Save article in file
  913. -N   Go to newsgroup (next is default)   w   Save without header
  914. -l   Display article (use after !, r, f, or ?)
  915. -
  916. -[Press l to see article again]
  917. *-*-END-of-src/vnews.help-*-*
  918. echo x - src/header.h 1>&2
  919. sed 's/.//' >src/header.h <<'*-*-END-of-src/header.h-*-*'
  920. -/*
  921. - * header.h - Article header format
  922. - */
  923. -
  924. -/*    @(#)header.h    2.19    1/17/86    */
  925. -
  926. -#define NUNREC 50
  927. -
  928. -/* article header */
  929. -struct    hbuf {
  930. -    char    from[BUFLEN];        /* From:        */
  931. -    char    path[PATHLEN];        /* Path:        */
  932. -    char    nbuf[BUFLEN];        /* Newsgroups:        */
  933. -    char    title[BUFLEN];        /* Subject:        */
  934. -    char    ident[BUFLEN];        /* Message-ID:        */
  935. -    char    replyto[BUFLEN];    /* Reply-To:        */
  936. -    char    followid[BUFLEN];    /* References:        */
  937. -    char    subdate[DATELEN];    /* Date: (submission)    */
  938. -    time_t    subtime;        /* subdate in secs    */
  939. -    char    expdate[DATELEN];    /* Expires:        */
  940. -    char    ctlmsg[PATHLEN];    /* Control:        */
  941. -    char    sender[BUFLEN];        /* Sender:        */
  942. -    char    followto[BUFLEN];    /* Followup-to:        */
  943. -    char    distribution[BUFLEN];    /* Distribution:    */
  944. -    char    organization[BUFLEN];    /* Organization:    */
  945. -    char    numlines[8];        /* Lines:        */
  946. -    int    intnumlines;        /* Integer version    */
  947. -    char    keywords[BUFLEN];    /* Keywords:        */
  948. -    char    summary[BUFLEN];    /* Summary:        */
  949. -    char    approved[BUFLEN];    /* Approved:        */
  950. -    char    nf_id[BUFLEN];        /* Nf-ID:        */
  951. -    char    nf_from[BUFLEN];    /* Nf-From:        */
  952. -#ifdef DOXREFS
  953. -    char     xref[BUFLEN];        /* Xref:        */
  954. -#endif /* DOXREFS */
  955. -    char    *unrec[NUNREC];        /* unrecognized lines    */
  956. -};
  957. -
  958. -#define hwrite(hp,fp)    ihwrite(hp,fp,0)
  959. -#define lhwrite(hp,fp)    ihwrite(hp,fp,1)
  960. -
  961. -char *oident();
  962. *-*-END-of-src/header.h-*-*
  963. echo x - src/sendbatch.sh 1>&2
  964. sed 's/.//' >src/sendbatch.sh <<'*-*-END-of-src/sendbatch.sh-*-*'
  965. -: '@(#)sendbatch.sh    1.10    9/23/86'
  966. -
  967. -cflags=
  968. -LIM=50000
  969. -CMD='LIBDIR/batch BATCHDIR/$rmt $BLIM'
  970. -ECHO=
  971. -COMP=
  972. -C7=
  973. -DOIHAVE=
  974. -RNEWS=rnews
  975. -
  976. -for rmt in $*
  977. -do
  978. -    case $rmt in
  979. -    -[bBC]*)    cflags="$cflags $rmt"; continue;;
  980. -    -s*)    LIM=`expr "$rmt" : '-s\(.*\)'`
  981. -        continue;;
  982. -    -c7)     COMP='| LIBDIR/compress $cflags'
  983. -        C7='| LIBDIR/encode'
  984. -        ECHO='echo "#! c7unbatch"'
  985. -        continue;;
  986. -    -c)    COMP='| LIBDIR/compress $cflags'
  987. -        ECHO='echo "#! cunbatch"'
  988. -        continue;;
  989. -    -o*)    ECHO=`expr "$rmt" : '-o\(.*\)'`
  990. -        RNEWS='cunbatch'
  991. -        continue;;
  992. -    -i*)    DOIHAVE=`expr "$rmt" : '-i\(.*\)'`
  993. -        if test -z "$DOIHAVE"
  994. -        then
  995. -            DOIHAVE=`uuname -l`
  996. -        fi
  997. -        continue;;
  998. -    esac
  999. -
  1000. -    if test -n "$COMP"
  1001. -    then
  1002. -        BLIM=`expr $LIM \* 2`
  1003. -    else
  1004. -        BLIM=$LIM
  1005. -    fi
  1006. -
  1007. -    : make sure $? is zero
  1008. -    while test $? -eq 0 -a \( -s BATCHDIR/$rmt -o -s BATCHDIR/$rmt.work -o  \( -n "$DOIHAVE" -a -s BATCHDIR/$rmt.ihave \) \)
  1009. -    do
  1010. -        if test -n "$DOIHAVE" -a -s BATCHDIR/$rmt.ihave
  1011. -        then
  1012. -            mv BATCHDIR/$rmt.ihave BATCHDIR/$rmt.$$
  1013. -            LIBDIR/inews -t "cmsg ihave $DOIHAVE" -n to.$rmt.ctl < \
  1014. -                BATCHDIR/$rmt.$$
  1015. -            rm BATCHDIR/$rmt.$$
  1016. -                    
  1017. -        else
  1018. -            (eval $ECHO; eval $CMD $COMP $C7) |
  1019. -            if test -s BATCHDIR/$rmt.cmd
  1020. -            then
  1021. -                BATCHDIR/$rmt.cmd
  1022. -            else
  1023. -                uux - UUXFLAGS $rmt!$RNEWS
  1024. -            fi
  1025. -        fi
  1026. -    done
  1027. -done
  1028. *-*-END-of-src/sendbatch.sh-*-*
  1029. echo x - src/ndir.h 1>&2
  1030. sed 's/.//' >src/ndir.h <<'*-*-END-of-src/ndir.h-*-*'
  1031. -/* @(#)ndir.h    1.4    4/16/85 */
  1032. -#ifndef DEV_BSIZE
  1033. -#define    DEV_BSIZE    512
  1034. -#endif
  1035. -#define DIRBLKSIZ    DEV_BSIZE
  1036. -#define    MAXNAMLEN    255
  1037. -
  1038. -struct    direct {
  1039. -    long    d_ino;            /* inode number of entry */
  1040. -    short    d_reclen;        /* length of this record */
  1041. -    short    d_namlen;        /* length of string in d_name */
  1042. -    char    d_name[MAXNAMLEN + 1];    /* name must be no longer than this */
  1043. -};
  1044. -
  1045. -/*
  1046. - * The DIRSIZ macro gives the minimum record length which will hold
  1047. - * the directory entry.  This requires the amount of space in struct direct
  1048. - * without the d_name field, plus enough space for the name with a terminating
  1049. - * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary.
  1050. - */
  1051. -
  1052. -#ifdef DIRSIZ
  1053. -#undef DIRSIZ
  1054. -#endif /* DIRSIZ */
  1055. -#define DIRSIZ(dp) \
  1056. -    ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))
  1057. -
  1058. -/*
  1059. - * Definitions for library routines operating on directories.
  1060. - */
  1061. -typedef struct _dirdesc {
  1062. -    int    dd_fd;
  1063. -    long    dd_loc;
  1064. -    long    dd_size;
  1065. -    char    dd_buf[DIRBLKSIZ];
  1066. -} DIR;
  1067. -#ifndef NULL
  1068. -#define NULL 0
  1069. -#endif
  1070. -extern    DIR *opendir();
  1071. -extern    struct direct *readdir();
  1072. -extern    void closedir();
  1073. *-*-END-of-src/ndir.h-*-*
  1074. echo x - src/help 1>&2
  1075. sed 's/.//' >src/help <<'*-*-END-of-src/help-*-*'
  1076. -Command        Meaning
  1077. -
  1078. -y        Yes.  (Or just hit return.)  Prints this article and goes on.
  1079. -n        No.  Goes on to next article without printing current one.
  1080. -d        Digest.  Breaks a digest article up into seperate articles.
  1081. -q        Quit.  Update .newsrc if -l or -x not used.
  1082. -U        Unsubscribe.  You won't be shown this newsgroup anymore.
  1083. -c        Cancel an article you posted.
  1084. -r        Reply.  Reply to article's author via mail.
  1085. -f [title]    Submit a follow up article.
  1086. -N [newsgroup]    Go to next newsgroup or named newsgroup.
  1087. -s [file]    Save.  Article is appended to file (default is "Articles").
  1088. -s |program    Run program with article as standard input.
  1089. -e        Erase.  Forget that an article was read.
  1090. -h        Print verbose header.  Use H for extremely verbose header.
  1091. -!        Shell escape.
  1092. -<number>    Go to message #<number> in this newsgroup.
  1093. --        Go back to last article.
  1094. -b        Back up one article in the current group.
  1095. -K        Mark the rest of the articles in current group as read.
  1096. -x        Exit.  Don't update .newsrc.
  1097. -v        Version.  Print current news version number.
  1098. -
  1099. -c, f, r, e, h, and s can be followed by -'s to refer to the previous article
  1100. *-*-END-of-src/help-*-*
  1101. echo x - src/localize.7300 1>&2
  1102. sed 's/.//' >src/localize.7300 <<'*-*-END-of-src/localize.7300-*-*'
  1103. -#From philabs!hhb!kosman!kevin Mon Apr 28 15:56:44 1986
  1104. -rm -f Makefile
  1105. -cp Makefile.dst Makefile
  1106. -chmod u+w Makefile
  1107. -
  1108. -ed - Makefile  <<'EOF'
  1109. -g/^#USG /s///
  1110. -g/^#V7 /d
  1111. -g/^#VMS /d
  1112. -g/^#BSD4_[123] /d
  1113. -/CFLAGS[     ]*=/t.
  1114. -.s/CFLAGS/MFLAGS/p
  1115. -.s/-Dindex.*strrchr//p
  1116. -/-o compress compress.c/s//compress.c -o compress/p
  1117. -g/Makefile.dst/s//Makefile/p
  1118. -/-o postnews/s/$(CFLAGS) //
  1119. -g/$(CFLAGS) $(LFLAGS)/t.\
  1120. -.-1s/$(LFLAGS)/-c/\
  1121. -s/ -o .*//p\
  1122. -.+1s/ $(CFLAGS)//\
  1123. -s/\.c/.o/p
  1124. -/-c compress.c/s/CFLAGS/MFLAGS/p
  1125. -g/$(LFLAGS)/s;$(LFLAGS);& /lib/crt0s.o shlib.ifile;\
  1126. -s/$(CC)/$(LD)/\
  1127. -s/-ltermlib //
  1128. -g/chmod 755.*inews/s/755/6755/p
  1129. -/UUXFLAGS =/s/ -z//p
  1130. -w
  1131. -q
  1132. -EOF
  1133. -
  1134. -rm -f defs.h
  1135. -cp defs.dist defs.h
  1136. -chmod u+w defs.h
  1137. -
  1138. -ed - defs.h <<'EOF'
  1139. -/DFLTSUB/s/".*"/"all"/p
  1140. -/ROOTID/s/10/101/p
  1141. -/TMAIL/s;^;/*;p
  1142. -/PAGE/s;/usr/ucb/more;/usr/bin/less;p
  1143. -/DFTXMIT/s/ -z//p
  1144. -/UXMIT/s/ -z//p
  1145. -/UNAME/s;/\* ;;p
  1146. -/DOXREF/s;/\* ;;p
  1147. -/MYORG/s;".*";"/etc/MYORG";p
  1148. -w
  1149. -q
  1150. -EOF
  1151. -
  1152. -rm -f shlib.ifile
  1153. -cat /lib/shlib.ifile >shlib.ifile
  1154. -chmod u+w shlib.ifile
  1155. -
  1156. -ed - shlib.ifile <<'EOF'
  1157. -/^PC /d
  1158. -/^BC /d
  1159. -/^UP /d
  1160. -/^ospeed /d
  1161. -/^COLS /d
  1162. -/^_sibuf /i
  1163. -EOF
  1164. *-*-END-of-src/localize.7300-*-*
  1165. echo x - src/localize.4.3 1>&2
  1166. sed 's/.//' >src/localize.4.3 <<'*-*-END-of-src/localize.4.3-*-*'
  1167. -rm -f Makefile
  1168. -cp Makefile.dst Makefile
  1169. -chmod u+w Makefile
  1170. -ed - Makefile  <<'EOF'
  1171. -g/^#V7 /s///
  1172. -g/^#BSD4_3 /s///
  1173. -g/^#USG /d
  1174. -g/^#VMS /d
  1175. -g/^#BSD4_1 /d
  1176. -/^UUXFLAGS/s/-r -z/-r -z -n -gd/
  1177. -/^LIBDIR/s;/usr/lib/news;/usr/new/lib/news;
  1178. -/^BINDIR/s;/usr/bin;/usr/new;
  1179. -w
  1180. -q
  1181. -EOF
  1182. -rm -f defs.h
  1183. -cp defs.dist defs.h
  1184. -chmod u+w defs.h
  1185. -ed - defs.h <<'EOF'
  1186. -/N_UMASK/s/000/002/
  1187. -/DFTXMIT/s/-z/-z -gd/
  1188. -/UXMIT/s/-z/-z -gd/
  1189. -/INTERNET/s;/\* ;;
  1190. -/GHNAME/s;/\* ;;
  1191. -/DOXREFS/s;/\* ;;
  1192. -/BSD4_2/s;/\* ;;
  1193. -/SENDMAIL/s;/\* ;;
  1194. -w
  1195. -q
  1196. -EOF
  1197. -echo "Make sure that /usr/new is in PATH in /usr/lib/uucp/L.cmds; read ../misc/L.cmds"
  1198. *-*-END-of-src/localize.4.3-*-*
  1199. echo x - src/iparams.h 1>&2
  1200. sed 's/.//' >src/iparams.h <<'*-*-END-of-src/iparams.h-*-*'
  1201. -/*
  1202. - * iparams - parameters for inews.
  1203. - */
  1204. -
  1205. -/*    @(#)iparams.h    2.16    10/23/86    */
  1206. -
  1207. -#include "params.h"
  1208. -
  1209. -/* external declarations specific to inews */
  1210. -extern    char    nbuf[LBUFLEN], *ARTICLE, *INFILE, *ALIASES, *PARTIAL;
  1211. -#ifndef ROOTID
  1212. -extern    int    ROOTID;
  1213. -#endif
  1214. -
  1215. -#ifdef NOTIFY
  1216. -extern    char    *TELLME;
  1217. -#endif /* NOTIFY */
  1218. -
  1219. -struct msgtype {
  1220. -    char *m_name;
  1221. -    char *m_who_to;
  1222. -    int (*m_func)();
  1223. -};
  1224. -
  1225. -extern struct msgtype msgtype[];
  1226. -
  1227. -extern    FILE    *infp, *actfp;
  1228. -extern    int    tty, is_ctl;
  1229. -extern    char    filename[BUFLEN], is_mod[NAMELEN], not_here[SBUFLEN], *DFLTNG;
  1230. *-*-END-of-src/iparams.h-*-*
  1231. echo x - src/rmgroup.sh 1>&2
  1232. sed 's/.//' >src/rmgroup.sh <<'*-*-END-of-src/rmgroup.sh-*-*'
  1233. -: '@(#)rmgroup.sh    1.6    9/19/86'
  1234. -for group
  1235. -do
  1236. -    echo "Removing newsgroup $group"
  1237. -    qgrp="`echo $group | sed 's/\./\\\./g'`"
  1238. -    if
  1239. -        grep -s "^$qgrp " LIBDIR/active
  1240. -    then
  1241. -        cat << E_O_F >/tmp/$$
  1242. -/^$qgrp[     ]/d
  1243. -w
  1244. -q
  1245. -E_O_F
  1246. -        ed - LIBDIR/active < /tmp/$$
  1247. -        ed - LIBDIR/newsgroups < /tmp/$$
  1248. -        dir=SPOOLDIR/"`echo $group | sed 's/\./\//g'`"
  1249. -        if [ -d $dir ]
  1250. -        then
  1251. -            rm $dir/*
  1252. -            rmdir $dir
  1253. -        else
  1254. -            echo "$0: $dir: no spool directory" 2>&1
  1255. -        fi
  1256. -    else
  1257. -        echo "$0: $group: no such newsgroup" 2>&1
  1258. -    fi
  1259. -done
  1260. -rm -f /tmp/$$
  1261. -exit 0
  1262. *-*-END-of-src/rmgroup.sh-*-*
  1263. echo x - src/localize.vms 1>&2
  1264. sed 's/.//' >src/localize.vms <<'*-*-END-of-src/localize.vms-*-*'
  1265. -rm -f Makefile
  1266. -cp Makefile.dst Makefile
  1267. -chmod u+w Makefile
  1268. -ed - Makefile  <<'EOF'
  1269. -g/^#V7 /d
  1270. -g/^#USG /d
  1271. -g/^#VMS /s///
  1272. -g/#NOTVMS/d
  1273. -g/^#BSD4_[123] /d
  1274. -g/chgrp /d
  1275. -w
  1276. -q
  1277. -EOF
  1278. -rm -f defs.h
  1279. -cp defs.dist defs.h
  1280. -chmod u+w defs.h
  1281. -# ed - defs.h <<'EOF'
  1282. -# w
  1283. -# q
  1284. -# EOF
  1285. *-*-END-of-src/localize.vms-*-*
  1286. echo x - src/localize.usg 1>&2
  1287. sed 's/.//' >src/localize.usg <<'*-*-END-of-src/localize.usg-*-*'
  1288. -rm -f Makefile
  1289. -cp Makefile.dst Makefile
  1290. -chmod u+w Makefile
  1291. -ed - Makefile  <<'EOF'
  1292. -g/^#USG /s///
  1293. -g/^#V7 /d
  1294. -g/^#VMS /d
  1295. -g/^#BSD4_[123] /d
  1296. -g/termlib/s//curses/
  1297. -w
  1298. -q
  1299. -EOF
  1300. -rm -f defs.h
  1301. -cp defs.dist defs.h
  1302. -chmod u+w defs.h
  1303. -# ed - defs.h <<'EOF'
  1304. -# w
  1305. -# q
  1306. -# EOF
  1307. *-*-END-of-src/localize.usg-*-*
  1308. echo x - src/localize.v7 1>&2
  1309. sed 's/.//' >src/localize.v7 <<'*-*-END-of-src/localize.v7-*-*'
  1310. -rm -f Makefile
  1311. -cp Makefile.dst Makefile
  1312. -chmod u+w Makefile
  1313. -ed - Makefile  <<'EOF'
  1314. -g/^#V7 /s///
  1315. -g/^#USG /d
  1316. -g/^#VMS /d
  1317. -g/^#BSD4_[123] /d
  1318. -w
  1319. -q
  1320. -EOF
  1321. -rm -f defs.h
  1322. -cp defs.dist defs.h
  1323. -chmod u+w defs.h
  1324. -# ed - defs.h <<'EOF'
  1325. -# w
  1326. -# q
  1327. -# EOF
  1328. *-*-END-of-src/localize.v7-*-*
  1329. exit
  1330.  
  1331.