home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume36 / uqwk / patch01 < prev    next >
Encoding:
Text File  |  1993-03-22  |  16.0 KB  |  629 lines

  1. Newsgroups: comp.sources.misc
  2. From: seb3@gte.com (Steve Belczyk)
  3. Subject: v36i022:  uqwk - A QWK "door" for Unix, Patch01
  4. Message-ID: <1993Mar19.202157.13202@sparky.imd.sterling.com>
  5. X-Md4-Signature: 062ef82c523641f8911d362a751bd004
  6. Date: Fri, 19 Mar 1993 20:21:57 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: seb3@gte.com (Steve Belczyk)
  10. Posting-number: Volume 36, Issue 22
  11. Archive-name: uqwk/patch01
  12. Environment: UNIX
  13. Patch-To: uqwk: Volume 36, Issue 8
  14.  
  15. This patch updates the previously posted uqwk to version 1.1.  Thanks
  16. to Thomas Bullinger, John Temples, and Russell Schultz for finding bugs
  17. and suggesting changes.
  18.  
  19. Changes:
  20.  
  21. - A new switch, "-l" to limit the length of newsgroup names.
  22. - Core dumps on unsubscribed, unread newsgroups fixed.
  23. - Control.dat now created in proper directory.
  24. - Some other small changes and code clean-up.
  25.  
  26. cd into the uqwk source directory and "patch -p1 < this-file"
  27.  
  28. diff -c uqwk1.0/Makefile uqwk1.1/Makefile
  29. *** uqwk1.0/Makefile    Mon Mar 15 13:48:48 1993
  30. --- uqwk1.1/Makefile    Thu Mar 18 10:39:52 1993
  31. ***************
  32. *** 7,12 ****
  33. --- 7,15 ----
  34.   #
  35.   #  Use this for SGI:
  36.   #CFLAGS=-cckr
  37. + #
  38. + #  Use this for SCO 3.2.2:
  39. + #CFLAGS=-Od
  40.   
  41.   uqwk:    uqwk.o options.o init.o mail.o misc.o close.o news.o reply.o offline.o
  42.       cc -o uqwk uqwk.o options.o init.o mail.o misc.o close.o news.o reply.o offline.o
  43. diff -c uqwk1.0/close.c uqwk1.1/close.c
  44. *** uqwk1.0/close.c    Mon Mar 15 13:48:48 1993
  45. --- uqwk1.1/close.c    Thu Mar 18 10:29:36 1993
  46. ***************
  47. *** 1,5 ****
  48. --- 1,6 ----
  49.   #include <stdio.h>
  50.   #include <string.h>
  51. + #include <sys/types.h>
  52.   #include <time.h>
  53.   #include "uqwk.h"
  54.   
  55. ***************
  56. *** 36,46 ****
  57.       struct conf_ent *cp;
  58.       struct tm *t;
  59.       char ctl_fname[PATH_LEN];
  60. !     int clock;
  61.   
  62.       strcpy (ctl_fname, home_dir);
  63. !     strcpy (ctl_fname, "/");
  64. !     strcpy (ctl_fname, "control.dat");
  65.   
  66.       if (NULL == (ctl_fd = fopen (ctl_fname, "w")))
  67.       {
  68. --- 37,47 ----
  69.       struct conf_ent *cp;
  70.       struct tm *t;
  71.       char ctl_fname[PATH_LEN];
  72. !     time_t clock;
  73.   
  74.       strcpy (ctl_fname, home_dir);
  75. !     strcat (ctl_fname, "/");
  76. !     strcat (ctl_fname, "control.dat");
  77.   
  78.       if (NULL == (ctl_fd = fopen (ctl_fname, "w")))
  79.       {
  80. ***************
  81. *** 65,71 ****
  82.       cp = conf_list;
  83.       while (cp != NULL)
  84.       {
  85. !         fprintf (ctl_fd, "%d\r\n%s\r\n", cp->number, cp->name);
  86.           cp = cp->next;
  87.       }
  88.   
  89. --- 66,80 ----
  90.       cp = conf_list;
  91.       while (cp != NULL)
  92.       {
  93. !         strcpy (buf, cp->name);
  94. !         /* Truncate the group name if desired */
  95. !         if ( (grp_len > 0) && (grp_len < BUF_LEN) )
  96. !         {
  97. !             buf[grp_len] = 0;
  98. !         }
  99. !         fprintf (ctl_fd, "%d\r\n%s\r\n", cp->number, buf);
  100.           cp = cp->next;
  101.       }
  102.   
  103. ***************
  104. *** 92,97 ****
  105. --- 101,107 ----
  106.       wn (nrc_list);
  107.   
  108.       fclose (nrc_fd);
  109. +     return (1);
  110.   }
  111.   
  112.   wn (np)
  113. ***************
  114. *** 111,115 ****
  115. --- 121,126 ----
  116.       {
  117.           fprintf (nrc_fd, "%s! 1-%d\n", np->name, np->hi);
  118.       }
  119. +     return (1);
  120.   }
  121.   
  122. diff -c uqwk1.0/mail.c uqwk1.1/mail.c
  123. *** uqwk1.0/mail.c    Mon Mar 15 13:48:49 1993
  124. --- uqwk1.1/mail.c    Thu Mar 18 10:30:08 1993
  125. ***************
  126. *** 54,59 ****
  127. --- 54,60 ----
  128.               fclose (mail_fd);
  129.           }
  130.       }
  131. +     return (1);
  132.   }
  133.   
  134.   MakeMailList ()
  135. ***************
  136. *** 118,124 ****
  137.   {
  138.       struct qwk_hdr hdr;
  139.       char c[PATH_LEN], *eof, ndx[5];
  140. !     int out_bytes, n;
  141.   
  142.       /* Write the ndx file entry */
  143.       inttoms (blk_cnt, ndx);
  144. --- 119,125 ----
  145.   {
  146.       struct qwk_hdr hdr;
  147.       char c[PATH_LEN], *eof, ndx[5];
  148. !     int out_bytes, n, i;
  149.   
  150.       /* Write the ndx file entry */
  151.       inttoms (blk_cnt, ndx);
  152. ***************
  153. *** 201,206 ****
  154. --- 202,215 ----
  155.       do
  156.       {
  157.           n = strlen (buf);
  158. +         /* MMDF puts funny things in messages -- change to spaces */
  159. +         for (i=0; i<n; i++)
  160. +         {
  161. +             if (buf[i] == 1) buf[i] = ' ';
  162. +             if (buf[i] == 0) buf[i] = ' ';
  163. +         }
  164.           fwrite (buf, n, 1, msg_fd);
  165.           out_bytes += n;
  166.           if (n < BUF_LEN-1)
  167. diff -c uqwk1.0/misc.c uqwk1.1/misc.c
  168. *** uqwk1.0/misc.c    Mon Mar 15 13:48:49 1993
  169. --- uqwk1.1/misc.c    Sat Mar 13 21:54:56 1993
  170. ***************
  171. *** 186,192 ****
  172.           for (i=0; i<n; i++)
  173.           {
  174.                   if ( (line[i] == ' ') || (line[i] == '-') ||
  175. !                      (line[i] == ',') || (line[i] == ':') )
  176.                           last_delim = i;
  177.           }
  178.   
  179. --- 186,193 ----
  180.           for (i=0; i<n; i++)
  181.           {
  182.                   if ( (line[i] == ' ') || (line[i] == '-') ||
  183. !                      (line[i] == ',') || (line[i] == ':') ||
  184. !              (line[i] == '!') )
  185.                           last_delim = i;
  186.           }
  187.   
  188. diff -c uqwk1.0/news.c uqwk1.1/news.c
  189. *** uqwk1.0/news.c    Mon Mar 15 13:48:49 1993
  190. --- uqwk1.1/news.c    Thu Mar 18 10:28:56 1993
  191. ***************
  192. *** 39,44 ****
  193. --- 39,45 ----
  194.           }
  195.           np = np->next;
  196.       }
  197. +     return (1);
  198.   }
  199.   
  200.   int ReadNewsrc()
  201. ***************
  202. *** 214,219 ****
  203. --- 215,222 ----
  204.   
  205.       /* Reset hi article number */
  206.       np->hi = ap->hi;
  207. +     return (1);
  208.   }
  209.   
  210.   DoArticle (art_file)
  211. ***************
  212. *** 325,330 ****
  213. --- 328,334 ----
  214.       for (;n<128;n++) fputc (' ', msg_fd);
  215.   
  216.       fclose (art_fd);
  217. +     return (1);
  218.   }
  219.   
  220.   OutOfMemory()
  221. diff -c uqwk1.0/offline.c uqwk1.1/offline.c
  222. *** uqwk1.0/offline.c    Mon Mar 15 13:48:50 1993
  223. --- uqwk1.1/offline.c    Thu Mar 18 10:32:23 1993
  224. ***************
  225. *** 77,82 ****
  226. --- 77,83 ----
  227.   
  228.       fprintf (pfd, "\nEnd of commands.\n");
  229.       pclose (pfd);
  230. +     return (1);
  231.   }
  232.   
  233.   int GetLine (bytes)
  234. ***************
  235. *** 183,188 ****
  236. --- 184,191 ----
  237.   
  238.       WriteNewsrc();
  239.       fprintf (pfd, "Okay, you are now subscribed to %s.\n", group);
  240. +     return (1);
  241.   }
  242.   
  243.   Unsubscribe (pfd)
  244. ***************
  245. *** 234,239 ****
  246. --- 237,244 ----
  247.   
  248.       WriteNewsrc();
  249.       fprintf (pfd, "Okay, you are unsubscribed from %s.\n", group);
  250. +     return (1);
  251.   }
  252.   
  253.   Groups (pfd)
  254. ***************
  255. *** 255,260 ****
  256. --- 260,266 ----
  257.           fprintf (pfd, "    %s\n", np->name);
  258.           np = np->next;
  259.       }
  260. +     return (1);
  261.   }
  262.   
  263.   Allgroups (pfd)
  264. ***************
  265. *** 277,280 ****
  266. --- 283,287 ----
  267.               ap->name, ap->hi - ap->lo);
  268.           ap = ap->next;
  269.       }
  270. +     return (1);
  271.   }
  272. diff -c uqwk1.0/options.c uqwk1.1/options.c
  273. *** uqwk1.0/options.c    Mon Mar 15 13:48:50 1993
  274. --- uqwk1.1/options.c    Mon Mar 15 14:23:19 1993
  275. ***************
  276. *** 35,40 ****
  277. --- 35,41 ----
  278.       prt_opts = DEF_PRT_OPTS;
  279.       read_only = DEF_READ_ONLY;
  280.       max_blks = DEF_MAX_BLKS;
  281. +     grp_len = DEF_GRP_LEN;
  282.   
  283.       strcpy (mail_dir, DEF_MAIL_DIR);
  284.       strcpy (mail_file, DEF_MAIL_FILE);
  285. ***************
  286. *** 63,68 ****
  287. --- 64,70 ----
  288.       if (NULL != (c = getenv ("UQ_PRT_OPTS"))) prt_opts = atoi (c);
  289.       if (NULL != (c = getenv ("UQ_READ_ONLY"))) read_only = atoi (c);
  290.       if (NULL != (c = getenv ("UQ_MAX_BLKS"))) max_blks = atoi (c);
  291. +     if (NULL != (c = getenv ("UQ_GRP_LEN"))) grp_len = atoi (c);
  292.   
  293.       if (NULL != (c = getenv ("UQ_HOME_DIR"))) strcpy (home_dir, c);
  294.       if (NULL != (c = getenv ("UQ_MAIL_FILE"))) strcpy (mail_file, c);
  295. ***************
  296. *** 175,180 ****
  297. --- 177,185 ----
  298.               case 'R':    strcpy (rep_file, &argv[i][2]);
  299.                       break;
  300.   
  301. +             case 'l':    grp_len = atoi (&argv[i][2]);
  302. +                     break;
  303.               default:    BadFlag (argv[i]);
  304.                       break;
  305.               }
  306. ***************
  307. *** 217,227 ****
  308. --- 222,234 ----
  309.   
  310.   PrintOptions ()
  311.   {
  312. +     printf ("Version: %s\n", UQWK_VERSION);
  313.       printf ("Do mail: %d\n", do_mail);
  314.       printf ("Do news: %d\n", do_news);
  315.       printf ("Include headers: %d\n", inc_hdrs);
  316.       printf ("Read only: %d\n", read_only);
  317.       printf ("Maximum blocks: %d\n", max_blks);
  318. +     printf ("Group name limit: %d\n", grp_len);
  319.       printf ("Mail directory: %s\n", mail_dir);
  320.       printf ("News directory: %s\n", news_dir);
  321.       printf ("Mail file: %s\n", mail_file);
  322. diff -c uqwk1.0/reply.c uqwk1.1/reply.c
  323. *** uqwk1.0/reply.c    Mon Mar 15 13:48:50 1993
  324. --- uqwk1.1/reply.c    Thu Mar 18 10:33:10 1993
  325. ***************
  326. *** 51,56 ****
  327. --- 51,58 ----
  328.   
  329.       fclose (rep_fd);
  330.       printf ("%s: sent %d replies\n", progname, rep_cnt);
  331. +     return (1);
  332.   }
  333.   
  334.   SendReply ()
  335. ***************
  336. *** 174,179 ****
  337. --- 176,182 ----
  338.       }
  339.   
  340.       if (pfd != NULL) pclose (pfd);
  341. +     return (1);
  342.   }
  343.   
  344.   SendWarning (to)
  345. ***************
  346. *** 213,216 ****
  347. --- 216,220 ----
  348.   "HELP in the body of the message (not the subject). Thanks!\n");
  349.   
  350.       pclose (pfd);
  351. +     return (1);
  352.   }
  353. diff -c uqwk1.0/uqwk.c uqwk1.1/uqwk.c
  354. *** uqwk1.0/uqwk.c    Mon Mar 15 13:48:51 1993
  355. --- uqwk1.1/uqwk.c    Thu Mar 18 10:33:55 1993
  356. ***************
  357. *** 1,5 ****
  358. --- 1,7 ----
  359.   #include <stdio.h>
  360.   #include <string.h>
  361. + #define ALLOCATE
  362.   #include "uqwk.h"
  363.   
  364.   /*
  365. diff -c uqwk1.0/uqwk.h uqwk1.1/uqwk.h
  366. *** uqwk1.0/uqwk.h    Mon Mar 15 13:48:51 1993
  367. --- uqwk1.1/uqwk.h    Thu Mar 18 10:37:51 1993
  368. ***************
  369. *** 2,7 ****
  370. --- 2,15 ----
  371.    *  Header for uqwk
  372.    */
  373.   
  374. + #define UQWK_VERSION    "1.1"
  375. + #ifdef ALLOCATE
  376. + #define EXTERN
  377. + #else
  378. + #define EXTERN extern
  379. + #endif
  380.   #define    PATH_LEN    (128)    /* Length for file names, etc. */
  381.   #define BUF_LEN        (1024)    /* Length of general purpose buffer */
  382.   
  383. ***************
  384. *** 37,64 ****
  385.   #define DEF_NRC_FILE    "unknown"
  386.   #define DEF_NEWS_DIR    "/usr/spool/news"
  387.   #define DEF_REP_FILE    "none"
  388.   
  389.   /* Runtime options */
  390. ! int do_mail;            /* Process mail? */
  391. ! int do_news;            /* Process news? */
  392. ! int inc_hdrs;            /* Include headers in messages? */
  393. ! int prt_opts;            /* Just display options; no processing */
  394. ! int read_only;            /* Don't rewrite mail spool and .newsrc */
  395. ! int max_blks;            /* Maximum blocks per QWK packet */
  396.   
  397. ! char mail_file[PATH_LEN];    /* mail spool */
  398. ! char mail_dir[PATH_LEN];    /* dir for mail spool */
  399. ! char home_dir[PATH_LEN];    /* home directory */
  400. ! char user_name[PATH_LEN];    /* user's login name */
  401. ! char bbs_name[PATH_LEN];    /* BBS name */
  402. ! char bbs_city[PATH_LEN];    /* BBS city */
  403. ! char bbs_phone[PATH_LEN];    /* BBS phone number */
  404. ! char bbs_sysop[PATH_LEN];    /* BBS sysop name */
  405. ! char bbs_id[PATH_LEN];        /* BBS ID */
  406. ! char act_file[PATH_LEN];    /* Active file */
  407. ! char nrc_file[PATH_LEN];    /* .newsrc file */
  408. ! char news_dir[PATH_LEN];    /* News spool dir */
  409. ! char rep_file[PATH_LEN];    /* Reply packet file name */
  410.   
  411.   char *getenv();
  412.   char *Fgets();
  413. --- 45,74 ----
  414.   #define DEF_NRC_FILE    "unknown"
  415.   #define DEF_NEWS_DIR    "/usr/spool/news"
  416.   #define DEF_REP_FILE    "none"
  417. + #define DEF_GRP_LEN    (15)
  418.   
  419.   /* Runtime options */
  420. ! EXTERN    int do_mail;            /* Process mail? */
  421. ! EXTERN    int do_news;            /* Process news? */
  422. ! EXTERN    int inc_hdrs;            /* Include headers in messages? */
  423. ! EXTERN    int prt_opts;            /* Display options; no processing */
  424. ! EXTERN    int read_only;            /* Don't rewrite mail and .newsrc */
  425. ! EXTERN    int max_blks;            /* Maximum blocks per QWK packet */
  426. ! EXTERN    int grp_len;            /* Maximum newsgroup name length */
  427.   
  428. ! EXTERN    char mail_file[PATH_LEN];    /* mail spool */
  429. ! EXTERN    char mail_dir[PATH_LEN];    /* dir for mail spool */
  430. ! EXTERN    char home_dir[PATH_LEN];    /* home directory */
  431. ! EXTERN    char user_name[PATH_LEN];    /* user's login name */
  432. ! EXTERN    char bbs_name[PATH_LEN];    /* BBS name */
  433. ! EXTERN    char bbs_city[PATH_LEN];    /* BBS city */
  434. ! EXTERN    char bbs_phone[PATH_LEN];    /* BBS phone number */
  435. ! EXTERN    char bbs_sysop[PATH_LEN];    /* BBS sysop name */
  436. ! EXTERN    char bbs_id[PATH_LEN];        /* BBS ID */
  437. ! EXTERN    char act_file[PATH_LEN];    /* Active file */
  438. ! EXTERN    char nrc_file[PATH_LEN];    /* .newsrc file */
  439. ! EXTERN    char news_dir[PATH_LEN];    /* News spool dir */
  440. ! EXTERN    char rep_file[PATH_LEN];    /* Reply packet file name */
  441.   
  442.   char *getenv();
  443.   char *Fgets();
  444. ***************
  445. *** 65,84 ****
  446.   struct act_ent *FindActive();
  447.   
  448.   /* Various globals */
  449. ! char *progname;            /* Program name */
  450. ! int msg_cnt;            /* Total number of messages */
  451. ! int conf_cnt;            /* Total number of conferences */
  452. ! FILE *msg_fd;            /* MESSAGES.DAT file desc */
  453. ! FILE *ctl_fd;            /* CONTROL.DAT file desc */
  454. ! FILE *ndx_fd;            /* xxx.NDX file desc */
  455. ! FILE *act_fd;            /* Active file file desc */
  456. ! FILE *nrc_fd;            /* .newsrc file desc */
  457. ! FILE *rep_fd;            /* Reply packet file desc */
  458. ! unsigned char buf[BUF_LEN];    /* General purpose buffer */
  459. ! int blk_cnt;            /* Blocks written to messages.dat */
  460.   
  461.   /* This is the stuff we remember about each spooled mail message */
  462. ! struct mail_ent
  463.   {
  464.       long begin;        /* Offset of start of header */
  465.       long text;        /* Offset to end of header, start of text */
  466. --- 75,94 ----
  467.   struct act_ent *FindActive();
  468.   
  469.   /* Various globals */
  470. ! EXTERN    char *progname;            /* Program name */
  471. ! EXTERN    int msg_cnt;            /* Total number of messages */
  472. ! EXTERN    int conf_cnt;            /* Total number of conferences */
  473. ! EXTERN    FILE *msg_fd;            /* MESSAGES.DAT file desc */
  474. ! EXTERN    FILE *ctl_fd;            /* CONTROL.DAT file desc */
  475. ! EXTERN    FILE *ndx_fd;            /* xxx.NDX file desc */
  476. ! EXTERN    FILE *act_fd;            /* Active file file desc */
  477. ! EXTERN    FILE *nrc_fd;            /* .newsrc file desc */
  478. ! EXTERN    FILE *rep_fd;            /* Reply packet file desc */
  479. ! EXTERN    unsigned char buf[BUF_LEN];    /* General purpose buffer */
  480. ! EXTERN    int blk_cnt;            /* Blocks written to messages.dat */
  481.   
  482.   /* This is the stuff we remember about each spooled mail message */
  483. ! EXTERN    struct mail_ent
  484.   {
  485.       long begin;        /* Offset of start of header */
  486.       long text;        /* Offset to end of header, start of text */
  487. ***************
  488. *** 87,93 ****
  489.   } *mail_list;
  490.   
  491.   /* This is stuff we remember about each "conference" */
  492. ! struct conf_ent
  493.   {
  494.       char *name;        /* Conference name */
  495.       int number;        /* Conference number */
  496. --- 97,103 ----
  497.   } *mail_list;
  498.   
  499.   /* This is stuff we remember about each "conference" */
  500. ! EXTERN    struct conf_ent
  501.   {
  502.       char *name;        /* Conference name */
  503.       int number;        /* Conference number */
  504. ***************
  505. *** 95,101 ****
  506.   } *conf_list, *last_conf;
  507.   
  508.   /* This is the QWK message header format */
  509. ! struct qwk_hdr
  510.   {
  511.       unsigned char status;
  512.       unsigned char number[7];
  513. --- 105,111 ----
  514.   } *conf_list, *last_conf;
  515.   
  516.   /* This is the QWK message header format */
  517. ! EXTERN    struct qwk_hdr
  518.   {
  519.       unsigned char status;
  520.       unsigned char number[7];
  521. ***************
  522. *** 113,122 ****
  523.       unsigned char tag;
  524.   };
  525.   
  526. ! struct qwk_hdr rep_hdr;        /* Header for replies */
  527.   
  528.   /* Stuff we remember about each active newsgroup */
  529. ! struct act_ent
  530.   {
  531.       char *name;        /* Newsgroup name */
  532.       int hi;            /* High article number */
  533. --- 123,132 ----
  534.       unsigned char tag;
  535.   };
  536.   
  537. ! EXTERN    struct qwk_hdr rep_hdr;        /* Header for replies */
  538.   
  539.   /* Stuff we remember about each active newsgroup */
  540. ! EXTERN    struct act_ent
  541.   {
  542.       char *name;        /* Newsgroup name */
  543.       int hi;            /* High article number */
  544. ***************
  545. *** 125,131 ****
  546.   } *act_list;
  547.   
  548.   /* Stuff we remember about the .newsrc file */
  549. ! struct nrc_ent
  550.   {
  551.       char *name;        /* Newsgroup name */
  552.       int subscribed;        /* Subscribed flag */
  553. --- 135,141 ----
  554.   } *act_list;
  555.   
  556.   /* Stuff we remember about the .newsrc file */
  557. ! EXTERN    struct nrc_ent
  558.   {
  559.       char *name;        /* Newsgroup name */
  560.       int subscribed;        /* Subscribed flag */
  561. diff -c uqwk1.0/uqwk.man uqwk1.1/uqwk.man
  562. *** uqwk1.0/uqwk.man    Mon Mar 15 13:48:51 1993
  563. --- uqwk1.1/uqwk.man    Tue Mar 16 13:05:14 1993
  564. ***************
  565. *** 152,157 ****
  566. --- 152,163 ----
  567.   QWK files.  Use a \fImaxblocks\fR value of zero to suppress this
  568.   check.  The default is 4000 blocks (half a megabyte).
  569.   .TP
  570. + .B -l\fIlen\fR
  571. + Truncate the names of newsgroups to \fIlen\fR characters.  Some
  572. + offline readers cannot handle long newsgroup names.  The default
  573. + is 15 characters.  Specify a value of zero for unlimited
  574. + newsgroup name lengths.
  575. + .TP
  576.   .B -R\fIreplyfile\fR
  577.   Process \fIreplyfile\fR as a reply packet.  Messages and articles
  578.   created by the offline reader must be uploaded as a reply packet
  579. ***************
  580. *** 224,229 ****
  581. --- 230,241 ----
  582.   .B UQ_NRC_FILE
  583.   Specifies the name of the user's .newsrc file.
  584.   .TP
  585. + .B UQ_MAX_BLKS
  586. + Specifies the maximum size of the QWK packet in 128-byte blocks.
  587. + .TP
  588. + .B UQ_GRP_LEN
  589. + Specifies the maximum length of newsgroup names.
  590. + .TP
  591.   .B UQ_REP_FILE
  592.   Specifies the name of the reply packet, if any.
  593.   .SH "COMMAND LANGUAGE"
  594. ***************
  595. *** 255,264 ****
  596.   List all the available newsgroups and the number of articles in
  597.   each one.
  598.   .SH BUGS
  599. ! Karl J. Vesterling reported that some .newsrc files cause a core dump.
  600. ! This may be related to the size of the .newsrc file or to long
  601. ! lines in the file.  I was unable to reproduce the problem.  Increasing
  602. ! BUF_LEN in uqwk.h may help.
  603.   .SH "SEE ALSO"
  604.   .PD
  605.   .BR mail(1),
  606. --- 267,273 ----
  607.   List all the available newsgroups and the number of articles in
  608.   each one.
  609.   .SH BUGS
  610. ! The handling of MMDF mail files is kludgy and should be fixed.
  611.   .SH "SEE ALSO"
  612.   .PD
  613.   .BR mail(1),
  614.  
  615.  
  616. exit 0 # Just in case...
  617.