home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 April / PCO_04_97.ISO / filesbbs / os2 / vsoup127.arj / VSOUP127.ZIP / vsoup.src < prev    next >
Encoding:
Text File  |  1997-02-12  |  99.5 KB  |  3,406 lines

  1. ■if false
  2. $Id: vsoup.src 1.13 1997/02/12 10:05:41 hardy Exp $
  3. ■endif
  4.  
  5. ■language english
  6. ■replace VS VSoup1.2.7
  7. ■replace VSZip ■bf{VSOUP127.ZIP}
  8. ■format bold VSoup1.2.7 VSoup1.2.5 VSoup1.2 VSoup
  9. ■replace LOGINISP ■hpt{LOGINISP.CMD}
  10. ■replace LOGOUTISP ■hpt{LOGOUTISP.CMD}
  11. ■replace YARNIOSET ■hpt{YARNIO.SET}
  12. ■replace YIO ■hpt{YarnIo}
  13. ■replace ConvS ■hpt{ConvSoup}
  14. ■replace CONVSOUPEXE ■hpt{CONVSOUP.EXE}
  15. ■replace OwnS ■hpt{OwnSoup}
  16. ■replace OWNSOUPEXE ■hpt{OWNSOUP.EXE}
  17. ■replace QS ■hpt{QSoup}
  18. ■replace QSOUPEXE ■hpt{QSOUP.EXE}
  19. ■replace ImportProg ■bf{import}
  20. ■replace FilterProg ■bf{filter}
  21. ■format bold Yarn emxrev emxdoc REXXTRY
  22. ■format bold YARNIO VSOUP.EXE YARNIO.CMD MODIFYEMXH.CMD RMHIGH.CMD FILTER.EXE
  23. ■format bold VSOUP.INF VSOUP.TXT
  24. ■format bold emx emx09a emx09b emx09c SOUP Souper Souper16 USENET UNIX Changi Chanx RNews sendmail inews GNU
  25. ■format abbrev e.g. i.e. etc. Str. D.
  26. ■format tty ETC EMXOPT HOME MAILER NNTPSERVER PATH POSTER TMP TZ
  27. ■format tty NNTP POP3 SMTP
  28. ■format tty nntp:// pop3:// smtp://
  29. ■format tty %HOME% %HOME%\NEWSRC %HOME%\NEWSTIME %HOME%\NEWSAUTH %HOME%\KILL NEWSRC NEWSTIME KILL
  30. ■format tty %HOME%\YARN\CONFIG %HOME%\YARN\IN\NEWS2
  31. ■format tty NEWSRC NEWSTIME
  32. ■format tty %TMP%
  33. ■format tty %ETC%\SERVICES %ETC%\TCPOS2.INI
  34. ■format tty .\COMMANDS
  35. ■format tty .\STSMAIL.MSG .\NEWS.MSG .\MAIL.MSG .\REPLIES .\AREAS CONFIG.SYS
  36. ■format tty .\*.MSG .\00*.MSG .\00*.IDX
  37. ■format tty RCVNEWS RCVNEWS2 RCVMAIL SEND
  38. ■format tty reply-packet sendmail.uml sendmail.cf
  39. ■replace ReplyPacket ■sl{reply packet}
  40. ■replace VSoupSend ■sy{"VSoup -s"}
  41. ■replace LESS ■bf{Less}
  42. ■replace GNU ■bf{GNU}
  43. ■replace GNUs ■bf{GNU}s
  44. ■format syntax -i -h40 -M -h<dir> -m -n -r -s -T<n> -K -N -h -l -c -T-1 -t8 -D
  45. ■format syntax -a -c[n] -k<n> -K<file> -l<n> -L<n> -N<file> -S<n> -t<n> -u -x -S0 -S1 -S2
  46. ■format bold Q- A- Q1- Q2- A1- A2-
  47.  
  48. ■if text
  49. ■replace LINEBREAK ■break ---------------------- ■break
  50. ■endif
  51.  
  52. ■if ipf
  53. ■replace LINEBREAK ■break
  54. ■endif
  55.  
  56. ■if html
  57. ■replace LINEBREAK ■em{}
  58. ■endif
  59.  
  60.  
  61. ■text
  62. ===============================================================================
  63. VSoup1.2.7                     NNTP/POP3/SMTP client                12-Feb-1997
  64. ===============================================================================
  65.                                         Copyright (c) 1996-1997 by Hardy Griech
  66. ■endtext
  67.  
  68. ■html
  69. <hr size=4><center>
  70. <h1>VSoup1.2.7   12-Feb-1997</h1><p>
  71. <h2>The multithreaded Souper for OS/2</h2><p>
  72. <i>Copyright (c) 1996-1997 by Hardy Griech</i><p>
  73. </center><hr size=4>
  74. ■endhtml
  75.  
  76.  
  77.  
  78. ■title VSoup1.2.7 - the multithreaded Souper for OS/2
  79.  
  80. ■if text
  81. ■h= Table of Contents
  82. ■toc
  83. ■endif
  84.  
  85. ■if html
  86. ■html
  87. <h1>Table of Contents</h1>
  88. ■endhtml
  89. ■toc
  90. ■endif
  91.  
  92.  
  93. ■h1 Introduction to VSoup
  94.  
  95. ■ipf
  96. :font facename=Helv size=24x14.
  97. :hp2.
  98. .ce VSoup1.2.7   12-Feb-1997
  99. :p.
  100. .ce The multithreaded Souper for OS/2
  101. :ehp2.
  102. :p.
  103. :font facename=Helv size=16x10.
  104. .ce Copyright (c) 1996-1997 by Hardy Griech
  105. :font facename=default size=0x0.
  106. :p.
  107. :p.
  108. ■endipf
  109.  
  110.   VS is a multithreaded network mail and news client program for OS/2
  111.   Warp with TCP/IP (or the Internet Access Kit) installed.  It
  112.   transfers mail and news fetched from a POP3 server and NNTP server
  113.   respectively to packets in SOUP format.  It can also send messages
  114.   in SOUP reply packets to NNTP / SMTP servers.
  115.  
  116.   VS is especially designed to work with Yarn, but it is probable
  117.   that VS will work with most offline newsreaders which expect SOUP as
  118.   their input and output.
  119.  
  120.   The program requires the emx run-time DLLs.  You can get these from
  121.   e.g.
  122.  
  123. ■typewriter
  124.    ■url{ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/emxrt.zip}
  125. ■endtypewriter
  126.  
  127.   The emx09c run-times or newer are required.  emxrev should show at
  128.   least revision 50 for the DLLs.  VS may work with an earlier version
  129.   such as emx09b, but keep in mind that there were many changes in the
  130.   DLLs concerning multithreading / sockets since emx09a.
  131.  
  132.  ■break
  133.  
  134. ■text
  135. -------------------------------------------------------------------------------
  136. !!!!!       MAKE SURE THAT YOU ARE USING THE CORRECT EMX DLL-VERSIONS     !!!!!
  137. -------------------------------------------------------------------------------
  138. ■endtext
  139.  
  140. ■ipf
  141. :hp2.
  142. .ce !!!!! MAKE SURE THAT YOU ARE USING THE CORRECT EMX DLL-VERSIONS !!!!!
  143. :ehp2.
  144. ■endipf
  145.  
  146. ■html
  147. <p><center>
  148. <hr size=2,width=20%>
  149. <tt><b>MAKE SURE THAT YOU ARE USING THE CORRECT EMX DLL-VERSIONS</tt></b>
  150. <hr size=2,width=20%>
  151. </center><p>
  152. ■endhtml
  153.  
  154.  
  155. ■h1 Legal Issues
  156.  
  157.   This program is heavily based on ideas and modules from Chin Huangs
  158.   (cthuang@io.org) Souper15.  Thanks to him for both Souper and Yarn.
  159.  
  160.  ■em{Please note that bug reports and everything else concerning VSoup}
  161.  ■em{should be directed to Hardy Griech (rgriech@swol.de), not to Chin}
  162.  ■em{Huang!}
  163.  
  164. ■h- Standard Disclaimer
  165.  
  166.   VS is free software; you can redistribute it and/or modify it under
  167.   the terms of the GNU General Public License (GPL) as published by
  168.   the Free Software Foundation; either version 2, or (at your option)
  169.   any later version.  For more details about the GPL see the file
  170.   ■bf{COPYING} contained in this archive.
  171.  
  172.   VS is distributed in the hope that it will be useful, but ■em{without
  173.   any warranty}; without even the implied warranty of ■em{merchantability}
  174.   or ■em{fitness for a particular purpose}.  See the GNU General Public
  175.   License for more details.
  176.  
  177.  
  178. ■h- Warning
  179.  
  180.   Some news sites might see VSoup as a news sucking utility and might
  181.   feel offended by its use.
  182.  
  183.   The intention is that VSoup is to be used to receive news for your
  184.   personal use from a reasonable number of newsgroups.
  185.  
  186.   Misuse of this program could conceivably result in a general ban on
  187.   the use of this or similar programs to the detriment of responsible
  188.   VSoup users who certainly don't want a general ban of VSoup.
  189.  
  190.  
  191. ■h1 Features
  192. ■index Features of VSoup
  193.  
  194. ■itemize
  195. ■item 
  196.  
  197.    Multithreaded news receiving is supported, anything between 1 and
  198.    10 threads can be started (default 4), and in addition there are
  199.    several possible strategies for fine tuning.
  200.  
  201.    Multithreading gives a speed gain of 200%-500% depending on the
  202.    overall speed of the connection and the number of threads; on the
  203.    other hand multiple connections have a communication overhead
  204.    (i.e. the connections must be established, the groups selected).
  205.    Estimated loss is around 5%...
  206.  
  207. ■item
  208.  
  209.    all the packets are exchanged in SOUP format files, i.e. offline
  210.    readers expecting as input format either SOUP or USENET batch
  211.    format can be used together with VSoup.
  212.  
  213. ■item
  214.  
  215.    VS generates a status message as incoming mail. (this is not in
  216.    the SOUP standard, but is recognized by Yarn). Normally this
  217.    message is only generated in case of failure (eg., cannot select
  218.    newsgroup) or when special events occur (eg., when new newsgroups
  219.    are added), but the generation can be forced to always occur by
  220.    means of a command line option.
  221.  
  222. ■item
  223.  
  224.    VS will show some statistic information about data transfer.
  225.  
  226. ■item
  227.  
  228.    Specification of the required servers is easy by using ■hpt{URL}s
  229.    on the command line.
  230.  
  231. ■item
  232.  
  233.    It is possible to filter articles by header lines before retrieving the
  234.    body text, see ■hpt{kill file} handling.
  235.  
  236. ■item
  237.  
  238.    VS detects too low throughput or stuck connections.
  239.  
  240. ■item
  241.  
  242.    VS knows about NNTP authentication.
  243.  
  244. ■item
  245.  
  246.    YIO, a script to do VS operation safely (without risk of message
  247.    loss etc.)  is included in the archive.  YIO is capable of
  248.    simultaneously receiving news from up to nine separate NNTP news
  249.    servers, posting news to NNTP, receiving mail from up to nine POP3
  250.    servers and sending mail to SMTP.
  251.  
  252. ■item
  253.    Other utilities included are
  254. ■description
  255. ■item OwnS
  256.    This, with the help of the Yarn ImportProg program, redirects
  257.    news articles matching a specific pattern into a separate mail folder which will
  258.    show up when you read your mail with Yarn.
  259.  
  260.    For example you can search newsgroups for any mention of your name
  261.    or any mention of a program you are interested in.
  262. ■item QS
  263.    This appends mail and news messages to the Yarn ReplyPacket
  264.    file for transmission by VSoup.
  265. ■item ConvS
  266.    This transforms all articles from binary SOUP format to mailbox/USENET format.
  267. ■enddescription
  268.  
  269. ■item
  270.  
  271.    ■hpt{FAQ} included.
  272.  
  273. ■item
  274.  
  275.    source code included.
  276.  
  277. ■item
  278.  
  279.    freeware according to GPL (without any warranty for correct
  280.    function etc.).
  281.  
  282. ■enditemize
  283.  
  284.  
  285.  
  286.  
  287. ■h1 Installation
  288. ■label Installation
  289. ■label installation
  290. ■index Installation
  291.  
  292.   This section describes the installation of VS on a step by step
  293.   basis.  Steps (1)-(4) are for preparation to ensure that you have a
  294.   system configuration which can run VS.
  295.  
  296.   The installation instructions assume that you intend to run VS with
  297.   the help of YIO.  If you wish to use VS on its own for example to
  298.   benefit from multithreaded news reception, but do not need YIO,
  299.   simply skip the steps (7)-(11) and parts of (6).
  300.  
  301.   Anyway you can use YARNIO.CMD as an example.
  302.  
  303.   If you experience any problems take a look at the
  304.   ■hpt{troubleshooting} section.
  305.  
  306.   If you are upgrading an older VSoup version, you should have a look at
  307.   the ■hpt{history} section for hints on important changes.
  308.  
  309.  
  310.  ■break
  311. ■enumerate
  312.  
  313. ■item
  314.    your system must be one of the following:
  315. ■itemize
  316. ■item
  317.    OS/2 2.x with TCP/IP (not tested but should work)
  318. ■item
  319.    OS/2 3.0 (Warp) with the 'Internet Access Kit' installed
  320. ■item
  321.    OS/2 3.0 (Warp Connect) with TCP/IP installed
  322. ■item
  323.    anything above
  324. ■enditemize
  325.  
  326. ■item
  327.  
  328.    get the latest version of the emx runtime library and install it or
  329.    check your current installation with emxrev.  This should show a
  330.    revision level higher than or equal to '50'.  If you are not
  331.    intending to use YIO, then add an environment setting of ■tt{SET
  332.    EMXOPT=-h40} to your CONFIG.SYS as noted in the ■hpt{environment
  333.    settings} section below.
  334.  
  335. ■item 
  336.  
  337.    check your environment variables according to the ■hpt{environment
  338.    settings} section below.
  339.  
  340. ■item
  341.    check your %ETC%\SERVICES file to ensure that it contains the
  342.    following lines:
  343.  
  344. ■verbatim
  345.   smtp         25/tcp mail          #Simple Mail Transfer
  346.   smtp         25/udp mail          #Simple Mail Transfer
  347.   pop3        110/tcp               #Post Office Protocol - Version 3
  348.   pop3        110/udp               #Post Office Protocol - Version 3
  349.   nntp        119/tcp readnews untp #Network News Transfer Protocol
  350.   nntp        119/udp readnews untp #Network News Transfer Protocol
  351. ■endverbatim
  352.  
  353.    Most probably the %ETC%\SERVICES file is located either in
  354.    ■tt{x:\TCPIP\ETC} or ■tt{x:\MPTN\ETC}.  If you need to specify
  355.    non-standard port numbers, you should do that in the command line.
  356.    Check the ■hpt{URL} specification.
  357.  
  358.  
  359. ■item
  360.  
  361.    unzip the VSZip archive in a temporary file directory (%TMP% is a
  362.    good place).
  363.  
  364. ■item
  365.  
  366.    copy the following files into a subdirectory of your choice (using
  367.    a subdirectory contained in the PATH statement is always a good
  368.    choice):
  369.  
  370. ■itemize
  371. ■item
  372.    VSOUP.EXE, the VS executable
  373. ■item
  374.    YARNIO.CMD, the YIO script
  375. ■item
  376.    YARNIOSET, the YIO configuration file
  377. ■description
  378. ■item Note:
  379.       YARNIO.CMD & YARNIOSET must reside in the same subdirectory and
  380.       must have the same filename, except the extension...
  381. ■enddescription
  382. ■item
  383.    If you want YIO dial automatically, then you should also
  384.    copy LOGINISP and LOGOUTISP as templates for your own
  385.    connect/disconnect scripts.
  386. ■item
  387.    OWNSOUPEXE and/or QSOUPEXE and/or CONVSOUPEXE should be copied if required.
  388. ■item
  389.    If you want to have help available, then copy also the documentation: either
  390.    VSOUP.INF or VSOUP.TXT (both have the same content but different format).
  391. ■item
  392.    If you are interested in the source code, move it also to a
  393.    specific subdirectory.
  394. ■enditemize
  395.  
  396. ■item
  397.    review the ■hpt{Command Line Options} section below and edit the
  398.    YARNIOSET configuration file according to your specific needs.
  399.    Also read the comments in YARNIOSET.
  400.  
  401. ■description
  402. ■item Note:
  403.    the setup of YARNIOSET is required only once. In future, updates
  404.    will be made by amending YARNIO.CMD.
  405. ■enddescription
  406.  
  407. ■item
  408.    If you wish YARNIO.CMD to dial for you, you must also setup the
  409.    scripts LOGINISP and LOGOUTISP to reflect your
  410.    needs.
  411.  
  412.    Another option is to use your dialer to call your ISP (provider)
  413.    and start YIO after the connection has been established.  The
  414.    disadvantage of doing it this way is that after completion of
  415.    YIO the dialer will not hang up immediately.
  416.  
  417. ■description
  418. ■item Note:
  419.       If you have only FAT drives you have to rename LOGOUTISP to
  420.       something else.  Therefor you have to change the ■tt{hangupISP}
  421.       setting in YARNIOSET too.
  422. ■enddescription
  423.  
  424. ■item
  425.  
  426.    setup the directory structure for YIO:
  427.  
  428. ■verbatim
  429.   %HOME%── yarn             - subdirectory containing Yarn config file
  430.            :
  431.            ├── in           - root of YarnIo input subdirectories
  432.            │   ├── mail     - primary     subdir for EMail reception
  433.            │   ├── mail2    - optional #2 subdir for EMail reception
  434.            │   ├── :                          :
  435.            │   ├── mail9    - optional #9 subdir for EMail reception
  436.            │   │
  437.            │   ├── news     - primary     subdir for news reception
  438.            │   ├── news2    - optional #2 subdir for news reception
  439.            │   ├── :                          :
  440.            │   └── news9    - optional #9 subdir for news reception
  441.            ├── out          - subdirectory for EMail&news transmission
  442.            :
  443. ■endverbatim
  444.  
  445.     In each of the ■tt{NEWS} subdirectories you will need to create an
  446.     appropriate NEWSRC file as detailed in the ■hpt{Newsrc File}
  447.     section.
  448.  
  449.     The ■tt{..MAIL}, ■tt{..MAIL2} until ■tt{..MAIL9} subdirectories
  450.     have to be created only.  They should be left empty.
  451.  
  452.     The number of subdirectories depend on the number of servers you
  453.     wish to poll.
  454.  
  455. ■item
  456.  
  457.    change the following line in the Yarn-config file
  458.    (%HOME%\YARN\CONFIG):
  459.  
  460. ■verbatim
  461.   reply-packet=%HOME%\yarn\out\reply.zip
  462. ■endverbatim
  463.  
  464.    If this is omitted or is incorrect then transmission of replies
  465.    will not be possible, because Yarn will move its output to a place
  466.    where VS does not expect it!  Of course %HOME% should be replaced
  467.    by the actual value of HOME.
  468.  
  469. ■item
  470.  
  471.    if you have setup LOGINISP and LOGOUTISP, start YIO
  472.    directly.  Otherwise first dial-in to your ISP and then start
  473.    YIO.
  474.  
  475. ■endenumerate
  476.  
  477.    When you first start using VS I recommend that you add the -M
  478.    option to each call of VS (e.g. in YARNIOSET) to force generation
  479.    of the status mail.  This can be a good debugging aid...
  480.  
  481.  
  482.  
  483. ■h2 Environment Settings
  484. ■label environment settings
  485. ■label environment
  486. ■i1 Environment Settings
  487.   
  488.   Environment variables are set in your CONFIG.SYS by lines such as:
  489. ■verbatim
  490.   SET ETC=D:\TCPIP\ETC
  491. ■endverbatim
  492.   Also they can be set in a dedicated script, which calls VS.
  493.  
  494. ■description
  495.  
  496. ■item EMXOPT
  497. ■i2 EMXOPT
  498.  
  499.    This are the settings for the emx runtime DLLs.  Recommended
  500.    setting of this variable should contain -h40 to allow 40 file
  501.    handles (not required, if you are calling VS through YIO).
  502.  
  503. ■item ETC
  504. ■i2 ETC
  505.  
  506.    This is needed for accessing the TCP/IP configuration contained in
  507.    the file %ETC%\TCPOS2.INI.  If -i is specified in the command line,
  508.    ETC is not required.
  509.  
  510. ■item HOME
  511. ■i2 HOME
  512.  
  513.    your home directory (can also be specified on the command line).
  514.    If HOME is not defined, it defaults to the current directory.
  515.  
  516. ■item MAILER
  517. ■i2 MAILER
  518.  
  519.    command for transmitting EMails (the EMail is piped into the stdin
  520.    of MAILER).  If VS should do the job, MAILER must be undefined.
  521.  
  522. ■item NNTPSERVER
  523. ■i2 NNTPSERVER
  524.  
  525.    hostname of the nntp server (can also be specified in the command
  526.    line).  This variable is, in my opinion, obsolete and remains only
  527.    to avoid compatibility problems.
  528.  
  529. ■item POSTER
  530. ■i2 POSTER
  531.  
  532.    command for transmitting news (the article is piped into the stdin
  533.    of POSTER).  If VS should do the job, POSTER must be undefined.
  534.  
  535. ■item TMP
  536. ■i2 TMP
  537.  
  538.    points to the subdirectory which holds temporary files (VS
  539.    generates ■sy{soup<xxxx>.tmp} as temporaries, with ■sy{<xxxx>}
  540.    being a number between 0000 and 9999).  If TMP does not exist, the
  541.    temporaries will be generated in the current subdirectory.
  542.  
  543. ■item TZ
  544. ■i2 TZ
  545.  
  546.    setting of your time zone (e.g.  mine is ■tt{MET-1MES}).  Due to a
  547.    bug in the emx runtime, the setting of this variable is critical
  548.    for correct functioning of the emx C library revision 50.  Check
  549.    the emx runtime documentation for the syntax of the TZ settings.
  550.  
  551.    An incorrect setting of TZ can also cause errors if you appear to
  552.    be getting mail before it was sent.
  553.  
  554.  
  555. ■enddescription
  556.  
  557.  
  558. ■h2 VSoup And YarnIo Troubleshooting
  559. ■label troubleshooting
  560.  
  561.   some simple checks can be carried out:
  562.  
  563. ■itemize
  564.  
  565. ■item
  566.    read the ■hpt{FAQ} section.
  567.  
  568. ■item
  569.  
  570.    if VS does not run at all, initiate VS with ■tt{VSOUP -?}.  This
  571.    should output the usage information to the screen.  If it does not,
  572.    you have to check your system configuration.  Otherwise you should
  573.    try to call VS in its different modes directly from the command
  574.    line to check all your command line options.
  575.  
  576. ■item
  577.  
  578.    generate the VS status mail with -M and check if it tells you the
  579.    expected file locations and server names.
  580.  
  581. ■item
  582.  
  583.    is the configuration file YARNIOSET correct and in the same
  584.    directory as YARNIO.CMD?
  585.  
  586. ■item
  587.  
  588.    is the subdirectory setup correct for YIO?
  589.  
  590. ■item
  591.  
  592.    does the ■tt{pingHost} command work as expected?  Issue the program
  593.    via REXXTRY to check the return values in connected/disconnected
  594.    case.
  595.  
  596. ■item
  597.  
  598.    if you have a setup including LOGINISP and LOGOUTISP you
  599.    can also check if they work.  Run LOGINISP from a command line
  600.    - login should be performed.  Then run LOGOUTISP - logout
  601.    should be performed.  Now also the YIO auto-dial/hangup should
  602.    work...
  603.  
  604. ■item
  605.  
  606.    connect to your ISP and try ■tt{YARNIO -RCVMAIL -SEND -RCVNEWS2}.
  607.    This will start only the ■tt{YarnIo RCVNEWS} window (hit ctrl-ESC
  608.    and open it).  News reception should be performed as expected, at
  609.    the end ImportProg to yarn will be initiated (after that 30s
  610.    pause).
  611.  
  612.    You can check all single YIO modes this way.
  613.  
  614. ■item
  615.  
  616.    is VS called in each window started by YIO?
  617.  
  618. ■enditemize
  619.  
  620.  
  621.  
  622. ■h1 Command Line Options
  623. ■label Command Line Options
  624. ■label command line option
  625. ■i1 Command Line Options
  626.  
  627.   This section describes the VS command line options in detail.  An
  628.   example is presented first.
  629.  
  630. ■h- Example
  631.  
  632. ■verbatim
  633.   VSoup -m -h d:\yourHomedir nntp://your.news.server
  634. ■endverbatim
  635.  
  636.   This would start VS telling it not to fetch mail (i.e. to collect
  637.   news only) using a home directory called ■tt{d:\yourHomedir} from a
  638.   news server named ■tt{your.news.server}. The ■sy{loginid} and
  639.   ■sy{password} would by default be taken from your TCP/IP
  640.   configuration.
  641.  
  642. ■ipfminitoc
  643.  
  644.  
  645. ■h2 Global Options
  646. ■label global options
  647.  
  648. ■description
  649.  
  650. ■item -h<dir>
  651. ■i2 -h<dir>, set home directory
  652.  
  653.    sets the home directory for the VS operation.  You can also specify
  654.    your home directory through the ■hpt{environment} variable HOME.
  655.  
  656. ■item -i
  657. ■i2 -i, ignore TCP/IP configuration
  658.  
  659.    ignore the settings of the TCP/IP configuration.
  660.  
  661. ■item -m
  662. ■i2 -m, do not fetch mail
  663.  
  664.    do not fetch mail.
  665.  
  666. ■item -M
  667. ■i2 -M, generate status mail
  668.  
  669.    generate the VS status mail .\STSMAIL.MSG in any case.  Default is
  670.    to generate the message in case of error only.
  671.  
  672. ■item -n
  673. ■i2 -n, do not fetch news
  674.  
  675.    do not fetch news.
  676.  
  677. ■item -r
  678. ■i2 -r, read only mode
  679.  
  680.    read only mode.  Only the .\AREAS, .\00*.MSG, .\00*.IDX files are
  681.    written (e.g.  %HOME%\NEWSTIME, %HOME%\NEWSRC are not
  682.    written). Also the EMails are not deleted from the POP3 server.
  683.    Main purpose for this option is debugging.
  684.  
  685. ■item -s
  686. ■i2 -s, send replies
  687.  
  688.    send replies.  Do not use this option in combination with -m or -n,
  689.    if you do it will be ignored.
  690.  
  691. ■item -T<n> 
  692. ■i2 -T<n>, set throughput limit
  693.  
  694.    throughput must be higher than ■sy{<n>}, otherwise transfer will be
  695.    aborted.  Throughput is checked against the limit ■sy{<n>} every
  696.    10s after data transfer has begun.  If 6 samples show not enough
  697.    throughput, VS will be aborted.  Default is '0 bytes/s', i.e. it
  698.    will be checked for a stuck connection.  Use ■sy{-T-<n>} to check
  699.    your throughput conditions.  Special case is -T-1, which disables
  700.    throughput check.
  701.  
  702. ■enddescription
  703.  
  704.  
  705. ■h2 News Receiving Options
  706. ■label news receiving options
  707.  
  708. ■description
  709.  
  710. ■item -a
  711. ■i2 -a, add new newsgroups
  712.  
  713.    add new newsgroups to the ■hpt{%HOME%\NEWSRC} file.  If there are
  714.    any new groups on the server, the generation of the status message
  715.    will be forced.  The new newsgroups will be added in the
  716.    unsubscribed state.
  717.  
  718. ■item -c[n]
  719. ■i2 -c[n], catchup
  720.  
  721.    catchup: mark every article as read except for the last ■sy{n}
  722.    (default is 10).
  723.  
  724. ■item -k<n>
  725. ■i2 -k<n>, set maximum packet size
  726.  
  727.    set maximum news packet size to n KBytes (default is no limit).
  728.    ■sy{<n>} indicates the total amount of received messages, not the
  729.    size of a single message (see -l).
  730.  
  731. ■item -K<file>
  732. ■i2 -K<file>, set kill file
  733.  
  734.    set the name of the ■hpt{kill file} (see note below regarding
  735.    ■hpt{-K/-N options}).
  736.  
  737. ■item -l<n>
  738. ■i2 -l<n>, set maximum article length limit
  739.  
  740.    Do not fetch articles that contain more than ■sy{<n>} lines in the body
  741.    of the message.  This is intended for omitting binaries in text
  742.    groups.
  743.  
  744. ■item -L<n>
  745. ■i2 -L<n>, set minimum article length limit
  746.  
  747.    Do not fetch articles that contain less than ■sy{<n>} lines in the body
  748.    of the message.  This is intended for omitting texts in binary groups.
  749.  
  750. ■item -N<file>
  751. ■i2 -N<file>, set newsrc file
  752.  
  753.    set the name of the ■hpt{NEWSRC} file (see note below regarding
  754.    ■hpt{-K/-N options}).
  755.  
  756. ■item -S<n>
  757. ■i2 -S<n>, set news receiving strategy
  758.  
  759.    receiving strategy (■sy{<n>}=0..2).  Speed increases (at least it should)
  760.    in the direction 0 to 2, danger of receiving crossposted articles
  761.    increases also from 0 to 2. The default of 1 is ok for most cases,
  762.    but this parameter is an issue of fine tuning!
  763.  
  764.    How the strategy parameter operates:
  765.  
  766. ■description
  767. ■item -S0
  768.  
  769.        groups are read sequentially, i.e. all threads are fetching
  770.        articles from only one group.
  771.  
  772. ■item -S1
  773.  
  774.        if one thread goes into waiting state the next group will be
  775.        accessed - only small modification of the above.
  776.  
  777. ■item -S2
  778.  
  779.        VS tries to keep all threads busy.  I.e. each thread
  780.        accesses one dedicated group, groups are read in parallel (if
  781.        there are no more groups to access, the waiting threads are
  782.        used for parallel reading from one group).
  783.  
  784. ■enddescription
  785.  
  786.    Recommendation:
  787.  
  788. ■itemize
  789. ■item
  790.  
  791.       If you have a lot of groups with small amount of articles per
  792.       fetch and only a little bit cross-posting, -S2 will be the
  793.       best option for you.  If you allow reception of crossposted
  794.       articles (see option -x), -S2 will be best for you in any
  795.       case.
  796.  
  797. ■item
  798.  
  799.       if you are accessing groups with large articles (i.e.  cost of
  800.       double reception of crossposted articles is high), -S0 will be
  801.       the best for you.
  802.  
  803. ■enditemize
  804.  
  805. ■item -t<n> 
  806. ■i2 -t<n>, set number of threads
  807.  
  808.    receive the news with ■sy{<n>} threads, i.e.  connect to the NNTP server
  809.    ■sy{<n>} times (limits are 1-10, default 4).
  810.  
  811. ■item -u 
  812. ■i2 -u, create news summary
  813.  
  814.    create news summary.  Output can be found in the .\00*.IDX files.  Be
  815.    aware that the summarized articles are marked as read (one way to
  816.    get out of this, is to call VS with -r).
  817.  
  818. ■item -x
  819. ■i2 -x, do not process Xref headers
  820.  
  821.    do not process news Xref headers, i.e.  allow reception of
  822.    crossposted articles.
  823.  
  824. ■enddescription
  825.  
  826.  
  827. ■h3 Note Regarding The -K And -N Options
  828. ■label -K/-N options
  829.  
  830.   If you are using the -h option then use of either of the options -K
  831.   or -N is not recommended, because behavior is not very transparent.
  832.  
  833.   If the -h option is placed behind the -K / -N options the result
  834.   will not be as expected - VS (and Souper) will revert to ■tt{KILL}
  835.   and NEWSRC in the new specified home directory.
  836.  
  837.   If -K / -N options are placed behind the -h option and do not
  838.   contain absolute paths, they will not be located in the home
  839.   directory specified by -h.
  840.  
  841.   This is confusing and will be fixed in a future release.
  842.  
  843.  ■em{It is better and cleaner to use -h and setup the special}
  844.  ■em{KILL/NEWSRC files in that subdirectory!}
  845.  
  846.  
  847. ■h2 Mail Receiving Option(s)
  848. ■label mail receiving options
  849.  
  850. ■description
  851.  
  852. ■item -D
  853. ■i2 -D, force delete of mail
  854.  
  855.   If specified, VSoup will logout and login after reception of each
  856.   EMail, thus effectively forcing deletion of the letter on the POP3
  857.   server.  This is useful, if your connection to the POP3 server is
  858.   aborted often and your mailbox is full.  Normal behaviour is to
  859.   retrieve EMail without disconnecting/connecting.
  860.  
  861. ■enddescription
  862.  
  863.  
  864. ■h2 URLs
  865. ■label URL
  866. ■i1 URLs
  867.  
  868.   The addresses of the hosts are given in ■bf{U}nified ■bf{R}esource
  869.   ■bf{L}ocator (URL) form.  These do not fully conform to the
  870.   standard, so a short explanation follows:
  871.  
  872.  
  873. ■itemize
  874.  
  875. ■item
  876. ■i2 nntp://
  877.  
  878.    ■sy{nntp://[UserId[:Password]@]nntp-host[:port]} defines the address of
  879.    your NNTP server (i.e. news server).  ■sy{UserId} and ■sy{Password}
  880.    can be given if required for AUTHINFO.
  881.  
  882. ■item
  883. ■i2 pop3://
  884.  
  885.    ■sy{pop3://[UserId[:Password]@]pop3-host[:port]} defines the address of
  886.    your POP3 server.  ■sy{UserId} and ■sy{Password} are usually
  887.    required.
  888.  
  889. ■item
  890. ■i2 smtp://
  891.  
  892.    ■sy{smtp://[UserId[:password]@]smtp-gateway[:port]} defines your SMTP
  893.    gateway.  ■sy{UserId} and ■sy{Password} are not required, in fact
  894.    they are ignored by VS!
  895.  
  896. ■enditemize
  897.  
  898.   The URL-feature makes VSoup different to Souper16, which wants to see a
  899.   %HOME%\NEWSAUTH file for NNTP authorization.
  900.  
  901.   Notes:
  902. ■enumerate
  903. ■item
  904.   It is not intended to implement other protocols like ■tt{http} or
  905.   so.
  906. ■item
  907.   If ■sy{port} is not specified, the actual port number is taken from the
  908.   %ETC%\SERVICES file.  This is the recommended way of port number handling.
  909. ■endenumerate
  910.  
  911.  
  912. ■h3 Brief Description Of NNTP/POP3/SMTP
  913.  
  914.   Mail can be compared to the postal service, just like a letter.
  915.   EMail-reception is handled through POP3 server (pop3:// prefix),
  916.   transmission through SMTP gateways (smtp:// prefix).
  917.  
  918.   News messages are more like broadcasting, everybody will 'hear' your
  919.   message.  News messages are transmitted and received via NNTP
  920.   servers (nntp:// prefix).
  921.  
  922.   Perhaps it is a little bit confusing, that you can also deliver news
  923.   via EMail service (just like the Yarn list).  The other way around
  924.   is not possible...
  925.  
  926.   Anyway, please don't mix up news and EMail (your EMail might be
  927.   news, but in these terms they remain EMails).
  928.  
  929.  
  930. ■h3 Evaluation Order Of URLs
  931.  
  932.   VSoup evaluates URLs in the following order:
  933.  
  934. ■enumerate
  935.  
  936. ■item
  937.  
  938.    take all information from the 'Internet Connection for OS/2'
  939.    notebook settings
  940.  
  941. ■item
  942.  
  943.    check the NNTPSERVER ■hpt{environment} settings
  944. ■description
  945. ■item Note1:
  946.       NNTPSERVER is a URL without leading nntp://
  947. ■item Note2:
  948.       there are no environment variables for the SMTP / POP3 setup.
  949. ■enddescription
  950.  
  951. ■item
  952.  
  953.    command line options
  954.  
  955. ■endenumerate
  956.  
  957.   If you specify only e.g. ■sy{nntp://your.news.server} in the command
  958.   line (without userid/password), the userid and password from the
  959.   TCP/IP configuration are taken as a standard value.
  960.  
  961.  
  962. ■h2 News Reception
  963. ■label News Reception
  964.  
  965.   For news reception you have the following options (which cannot
  966.   combined):
  967.  
  968. ■itemize
  969. ■item
  970.    either process .\COMMANDS (.\COMMANDS exists),
  971. ■item
  972.    or catch-up the newsgroups (-c option),
  973. ■item
  974.    or create newsgroups summary (-u option),
  975. ■item
  976.    or receive the news in the standard way (no specific option).
  977. ■enditemize
  978.  
  979.   New newsgroups are added to the %HOME%\NEWSRC file, when news is
  980.   received in the standard way and the command line option -a is
  981.   given.
  982.  
  983.  
  984. ■h1 Diagnostics
  985. ■index Diagnostic Codes
  986.  
  987.   VS returns with an exit code of ■bf{1}, if any operation failed.
  988.   Otherwise return code will be ■bf{0}.
  989.  
  990.   Failing operations are:
  991.  
  992. ■itemize
  993. ■item
  994.   bad command line options,
  995. ■item
  996.   bad setup (e.g. no ETC set, but 'Internet Connection' settings
  997.   requested),
  998. ■item
  999.   bad OS (e.g. D*°@!S),
  1000. ■item
  1001.   user hit ^C or ^BREAK,
  1002. ■item
  1003.   throughput check failed (e.g. connection broken),
  1004. ■item
  1005.   could not setup connection (e.g. server not defined, server does not
  1006.   exist, server is down, etc.),
  1007. ■item
  1008.   there was no .\REPLIES file and you have requested -s,
  1009. ■item
  1010.   .\REPLIES contains an illegal entry,
  1011. ■item
  1012.   .\MAIL.MSG or .\NEWS.MSG is malformed,
  1013. ■item
  1014.   could not deliver news article, e.g. NNTP server did not allow it,
  1015. ■item
  1016.   could not deliver mail, e.g. POP3 authentication failed,
  1017. ■item
  1018.   MAILER / POSTER contains illegal value,
  1019. ■item
  1020.   there is no NEWSRC file,
  1021. ■enditemize
  1022.  
  1023. ■h- .\STSMAIL.MSG
  1024.  
  1025. In case of an error condition the status message .\STSMAIL.MSG will be
  1026. generated.  Under the following additional cases .\STSMAIL.MSG will be
  1027. generated too:
  1028.  
  1029. ■itemize
  1030. ■item
  1031.   VS was called with the -M option (force .\STSMAIL.MSG generation),
  1032. ■item
  1033.   VS was called with -a and there were new newsgroups on your NNTP
  1034.   server,
  1035. ■item
  1036.   VS could not select a newsgroup specified in NEWSRC,
  1037. ■item
  1038.   VS could not select a newsgroup specified in .\COMMANDS,
  1039. ■item
  1040.   a newsgroup specified in .\COMMANDS was not contained in NEWSRC,
  1041. ■item
  1042.   there was another command than ■tt{sendme} contained in .\COMMANDS,
  1043. ■item
  1044.   a specified (■sy{-K<file>}) kill file does not exist.
  1045. ■item
  1046.   .\REPLIES contained an illegal (i.e. not understood by VS) reply
  1047.   type.  Legal reply types are 'b' and 'B',
  1048. ■item
  1049.   .\REPLIES contained an illegal (i.e. not understood by VS) reply
  1050.   kind.  Legal reply kinds are ■sy{"mail"} and ■sy{"news"}.
  1051. ■enditemize
  1052.  
  1053.  
  1054. ■h- Future extensions
  1055.  
  1056.   The following failing operations are NOT yet implemented fully:
  1057.  
  1058. ■itemize
  1059. ■item
  1060.    there was no EMail in your POP3 mailbox,
  1061. ■item
  1062.    there were no new news,
  1063. ■item
  1064.    you have requested -s, but a message file is missing (VS deletes
  1065.    message files immediately after successful delivery.  Note that if
  1066.    you need two runs to deliver all your messages e.g.  one file will
  1067.    be missing on the second attempt.  This is considered ok).
  1068. ■enditemize
  1069.  
  1070.   It is possible, that diagnostics code will change in the future.
  1071.   Return codes with a cleared bit 0 (like 0,2,4,...)  will indicate a
  1072.   non-fatal condition, return codes with a set bit 0 will indicate
  1073.   fatal conditions.
  1074.  
  1075.  
  1076.  
  1077. ■h1 Utilities
  1078. ■i1 Utilities
  1079.  
  1080.   This section describes the several utilities contained in VSZip
  1081.   archive in more detail.  For most users only the YIO files will
  1082.   be of interest.
  1083.  
  1084. ■ipfminitoc
  1085.  
  1086. ■h2 YarnIo
  1087. ■label YarnIo
  1088. ■index YarnIo
  1089. ■i2 YarnIo
  1090.  
  1091.   As stated before YIO - actually consisting of YARNIO.CMD, YARNIOSET
  1092.   and optionally of LOGINISP and LOGOUTISP - is responsible for safe
  1093.   VS I/O operations.  The script(s) handle(s) the complete I/O between
  1094.   Yarn and the internet world.  Newsgroups are read from up to nine
  1095.   NNTP servers, mail/news packets are transmitted and mail is received
  1096.   again from up to nine POP3 servers - all simultaneously.  Actions
  1097.   can be disabled individually (type ■sy{YARNIO ?} for more
  1098.   information).
  1099.  
  1100.   The script should be started directly after the connection has been
  1101.   established.  It is also possible to let YIO dial out to
  1102.   establish the connection. To do this you must provide the two
  1103.   scripts LOGINISP and LOGOUTISP (see the ■hpt{installation}
  1104.   section).
  1105.  
  1106.   Most items of the user configuration are in a file called
  1107.   YARNIOSET.  It contains the settings for the initialization of the
  1108.   external programs including VSoup, ImportProg ...  calls.
  1109.  
  1110. ■indent
  1111.   ■bf{You WILL need to amend the details in the YARNIO.SET file.}
  1112. ■endindent
  1113.  
  1114.   Sorry, but the directory structure must be set up manually!  You
  1115.   should follow the structure given above in the ■hpt{installation}
  1116.   section.
  1117.  
  1118.  
  1119. ■h3 YarnIo.Set
  1120. ■label YARNIO.SET
  1121.  
  1122.   For configuration of YIO, YARNIOSET is required.  YARNIOSET must
  1123.   reside in the same directory as YARNIO.CMD and must have the same
  1124.   filename prefix (i.e. YARNIO).
  1125.  
  1126.   YARNIOSET contains the statements which determine how YARNIO.CMD is
  1127.   to call the several commands.
  1128.  
  1129.   To give you an idea what must be configured in YARNIOSET, an
  1130.   example follows.  There is a YARNIOSET contained in the archive,
  1131.   which includes more comments.
  1132.  
  1133. ■verbatim
  1134.   :
  1135. '@SET NNTPSERVER='
  1136.  
  1137. preImportProg = 'ownsoup -q rgriech stuff4me OwnTemp'
  1138. importProg    = 'import.exe -u'
  1139. soupProg      = 'vsoup.exe'
  1140. soupSend      = soupProg '-s nntp://xmt.nntp.server'
  1141. soupRcvNews   = soupProg '-mai' '-h' rcvNewsDir 'nntp://1st.nntp.server'
  1142. soupRcvNews2  = soupProg '-mai' '-h' rcvNews2Dir 'nntp://2nd.nntp.server'
  1143. soupRcvMail   = soupProg '-n'
  1144. pingHost      = 'slipwait 2 2>&1 > nul'
  1145. connectISP    = 'cmd /c loginisp.cmd NOWAIT'
  1146. hangupISP     = 'cmd /c logoutisp.cmd'
  1147. unzipProg     = 'unzip.exe -oq'
  1148. zipProg       = 'zip -0mq'
  1149.   :
  1150. ■endverbatim
  1151.  
  1152. ■h- Remarks
  1153.  
  1154. ■itemize
  1155. ■item
  1156.  
  1157.   Instead of ■tt{slipwait} you could also use the command ■tt{'ping x.y.z 1 2>&1 > nul'}.
  1158.   The host ■tt{x.y.z} in ■tt{pingHost} must ■em{not} be contained in
  1159.   the ■tt{%ETC%\HOSTS}, because otherwise ■tt{pingHost} will return
  1160.   unexpected results.
  1161.  
  1162. ■item
  1163.  
  1164.   Do not remove the option ■tt{'-h' rcvNewsDir} from the
  1165.   ■tt{soupRcvNews} line or the option ■tt{'-h' rcvNews2Dir} from the
  1166.   ■tt{soupRcvNews2} line.
  1167.  
  1168. ■item
  1169.  
  1170.   If you are not interested in a service (e.g. ■tt{soupRcvNews2}), set
  1171.   the corresponding variable to '' (empty string).
  1172.  
  1173. ■item
  1174.  
  1175.   If required, you can change the environment settings in YARNIOSET,
  1176.   e.g. the above ■tt{'@SET NNTPSERVER='} clears an existing
  1177.   ■tt{NNTPSERVER} environment variable.
  1178.  
  1179. ■item
  1180.  
  1181.   To enable news server #3..#9, you have to add
  1182.   ■tt{soupRcvNews3}..■tt{soupRcvNews9} lines into YARNIOSET.  Use
  1183.   ■tt{soupRcvNews2} as a template.  Of course you have to set up the
  1184.   corresponding ■hpt{Newsrc File}s in the respective subdirectories.
  1185.  
  1186.   For POP3 server #2..#9 you have to set up
  1187.   ■tt{soupRcvMail2}..■tt{soupRcvMail9}.  You have to create the
  1188.   corresponding subdirectories manually.
  1189.  
  1190.   For setting up the correct subdirectory structure see also the
  1191.   ■hpt[Installation] section.
  1192.  
  1193. ■enditemize
  1194.  
  1195.  
  1196. ■h3 LoginIsp
  1197. ■label LOGINISP.CMD
  1198. ■i2 LOGINISP.CMD
  1199.  
  1200.   LOGINISP is an optional script, which allows YIO to dial in to
  1201.   your ISP.  The following example script will connect using the
  1202.   internet dialer.  If you are a customer of Advantis the script will
  1203.   work for you without any changes - of course you have to insert the
  1204.   correct ■tt{account user passwd} information.
  1205.  
  1206. ■verbatim
  1207. /*
  1208.   LoginIsp  -  rg211096
  1209.  
  1210.   Login to your ISP.  If Option NOWAIT is given, the command will not wait
  1211.   until connection has been established.
  1212.  
  1213.   You have to do the following configuration:
  1214.   -  the line '...logoutisp...' must show the effective logoff script
  1215.   -  the line '...start...' must show the effective call of the dialer
  1216.   -  the line '...ping...' must show a pinger to check connection
  1217.  */
  1218.  
  1219. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1220. call SysLoadFuncs
  1221.  
  1222. TRACE('')
  1223.  
  1224. option = ARG(1)
  1225.  
  1226. DO FOREVER
  1227.     '@cmd /c logoutisp.cmd'
  1228.     '@start dialer.exe account user passwd '-m'
  1229.     IF option = 'NOWAIT' THEN
  1230.         LEAVE
  1231.  
  1232.     DO j = 1 TO 20
  1233.         rc = SysSleep(3)
  1234.         '@ping www.ibm.net 2>&1 > nul'
  1235.         IF rc = 0 THEN
  1236.             EXIT
  1237.     END j
  1238. END
  1239.  
  1240. EXIT
  1241. ■endverbatim
  1242.  
  1243. ■description
  1244.  
  1245. ■item Note1:
  1246.  
  1247.   You will find an almost identical LOGINISP in the VSZip archive.
  1248.  
  1249. ■item Note2:
  1250.  
  1251.   This LOGINISP requires a working LOGOUTISP.
  1252.  
  1253. ■enddescription
  1254.  
  1255.  
  1256. ■h3 LogoutIsp
  1257. ■label LOGOUTISP.CMD
  1258. ■i2 LOGOUTISP.CMD
  1259.  
  1260.   LOGOUTISP is an optional script, which allows YIO to disconnect
  1261.   from your ISP.  The following example script will disconnect using
  1262.   the internet dialer.  If you are a customer of Advantis the script
  1263.   will work for you without any changes - other than maybe changing
  1264.   ■tt{dialer} and ■tt{comPort}.
  1265.  
  1266.   This script is a little bit more complicated than LOGINISP,
  1267.   because it will
  1268.  
  1269. ■enumerate
  1270. ■item
  1271.    block itself to avoid multiple instances of itself
  1272. ■item
  1273.    wait until the dialer has been closed
  1274. ■item
  1275.    force a disconnect of the modem through switching DTR
  1276. ■endenumerate
  1277.  
  1278.   An almost identical version of the script is contained in the
  1279.   VSZip archive.
  1280.  
  1281. ■verbatim
  1282. /*
  1283.   LogoutIsp  -  rg211096
  1284.  
  1285.   Logoff from your ISP.
  1286.  
  1287.   The lines dialer/dialerClose,comPort must be configured
  1288. */
  1289.  
  1290. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  1291. call SysLoadFuncs
  1292.  
  1293. dialer      = 'c:\tcpip\bin\dialer.exe'
  1294. dialerClose = dialer '-c'
  1295. comPort     = 'com3'
  1296.  
  1297. TRACE('')
  1298.  
  1299. parse source . . compCmdName
  1300. cmdName = filespec('name',compCmdName)
  1301. tmpDir  = value('tmp',,'os2environment')
  1302.  
  1303. lockFile = ''
  1304. IF tmpDir = '' THEN
  1305.     SAY 'please define %TMP% for locking' CmdName
  1306. ELSE DO
  1307.     lockFile = tmpDir || '\logout.sem'
  1308.     if stream( lockFile,'c','open write') \= 'READY:' then DO
  1309.         SAY CmdName 'already active...'
  1310.         EXIT
  1311.     END
  1312. END
  1313.  
  1314.  
  1315. if isActive(dialer) then do
  1316.     SAY 'logging off...'
  1317.    '@start /min' dialerClose
  1318.  
  1319.    rc = SysSleep( 2 )
  1320.    DO FOREVER
  1321.        IF \isActive(dialer) THEN
  1322.            LEAVE
  1323.        call HangupNow
  1324.        rc = SysSleep( 2 )
  1325.    END
  1326. end
  1327. call HangupNow
  1328.  
  1329. IF lockFile \= '' THEN DO
  1330.     rc = stream( lockFile,'c','close' )
  1331.     rc = SysFileDelete( lockFile )
  1332. END
  1333.  
  1334. EXIT
  1335.  
  1336.  
  1337. HangupNow:
  1338. '@mode' comPort || ',dtr=on  > nul'
  1339. '@mode' comPort || ',dtr=off > nul'
  1340. '@mode' comPort || ',dtr=on  > nul'
  1341. RETURN
  1342.  
  1343.  
  1344. isActive: PROCEDURE
  1345. prog = ARG(1)
  1346.  
  1347. '@pstat /c | RXQUEUE'
  1348.  
  1349. prog = TRANSLATE(prog)
  1350. found = 0
  1351. DO ii = 1 TO queued()
  1352.     PULL line
  1353.     IF POS(prog,TRANSLATE(line)) \= 0 THEN do
  1354.         found = 1
  1355.         LEAVE
  1356.     END
  1357. END
  1358. RETURN found
  1359. ■endverbatim
  1360.  
  1361.  
  1362.  
  1363. ■h2 OwnSoup
  1364. ■label OwnSoup
  1365. ■label OWNSOUP.EXE
  1366. ■index OwnSoup
  1367. ■i2 OwnSoup
  1368.  
  1369.   OwnS, with the help of the Yarn ImportProg program, redirects news
  1370.   articles matching a specific pattern into a mail folder.  OwnS can
  1371.   be seen as a notification program to allow easy tracking of
  1372.   news threads you are involved in.
  1373.  
  1374.  
  1375. ■h- Syntax
  1376.  
  1377.   ■sy{ownsoup [-h] [-b] [-q] <pattern> <groupname> <outputfile>}
  1378.  
  1379.   where
  1380.  
  1381. ■description
  1382. ■item ■sy{[-h]}
  1383.   search for ■sy{<pattern>} in header of article only,
  1384. ■item ■sy{[-b]}
  1385.   search for ■sy{<pattern>} in body of article only.  The subject line of the header is considered to be part of header and body.
  1386.  
  1387.   If ■sy{-h} or ■sy{-b} is not specified the default is to search the
  1388.   complete article,
  1389.  
  1390. ■item ■sy{[-q]}
  1391.   be quiet.  Only the number of matches found will be displayed,
  1392.  
  1393. ■item ■sy{<pattern>}
  1394.   is your search pattern which should be defined according to the ■hpt{regular expression} syntax,
  1395. ■item ■sy{<groupname>}
  1396.   is a dummy groupname to allow easy filtering.  All the matching articles will contain the header line ■sy{X-ownsoup: <groupname>},
  1397. ■item ■sy{<outputfile>}
  1398.   is the name of the temporary outputfile (the ■tt{.MSG}-extension will be added by OwnS).
  1399. ■enddescription
  1400.  
  1401.   The generated ■sy{<outputfile>} will be registered in the .\AREAS
  1402.   file, thus ImportProg will also find the ■sy{<outputfile>}.  Note
  1403.   that the ■sy{<outputfile>} will be deleted after the ImportProg so
  1404.   that the actual name you choose is almost unimportant.
  1405.  
  1406.  
  1407.  ■break
  1408. ■h- Example Setup of OwnSoup
  1409.  
  1410. ■itemize
  1411.  
  1412. ■item
  1413.    Assuming a script is used when importing news, directly before
  1414.    ImportProg is called, a line calling OwnS is placed in the script.
  1415.    This would be something like:
  1416.  
  1417. ■verbatim
  1418.   ownsoup rgriech stuff4me OwnTemp
  1419. ■endverbatim
  1420.  
  1421.   This example would search for ■sy{"rgriech"} in the header and body
  1422.   sections of each message, writing matching messages to an output
  1423.   file called OwnTemp after marking them with
  1424.  
  1425. ■verbatim
  1426.   X-ownsoup: stuff4me
  1427. ■endverbatim
  1428.   The Yarn ImportProg can now easily filter out any such news articles
  1429.   and put them in a mail folder which in this example we will call
  1430.   ■sy{"Personal"}.
  1431.  
  1432.    The search pattern here is ■sy{"rgriech"} but a more complex
  1433.    pattern could be used, for example I could search on a pattern of
  1434.    ■sy{"rgriech|hardy.griech"} which would find either my EMail name
  1435.    or my full name. The '.' wildcard is used in place of a space. The
  1436.    pattern must be in quotes because of the '|' character.
  1437.  
  1438.    Note that because no ■sy{-h} or ■sy{-b} parameter is set, OwnS will
  1439.    search both the header and the body of all messages.
  1440.  
  1441.    If you are using YIO, OwnS would be called by setting the
  1442.    ■sy{preImportProg} line in YARNIOSET.  Our example would require
  1443.    the following:
  1444.  
  1445. ■verbatim
  1446.   preImportProg = 'ownsoup rgriech stuff4me OwnTemp'
  1447. ■endverbatim
  1448.  
  1449. ■item
  1450.  
  1451.   To setup a Yarn filter which moves all the messages matching the
  1452.   pattern ■sy{"X-ownsoup: stuff4me"} into the mail folder ■sy{"Personal"} you
  1453.   would do the following:
  1454.  
  1455.   Set up a filter using the Yarn FILTER.EXE program.  When run, this
  1456.   shows a box for details, which you would complete as follows:
  1457.  
  1458. ■verbatim
  1459. ┌ Mail Rule ───────────────────────────────────────────────────────────────┐
  1460. │                                                                          │
  1461. │  Rule name: MentionsMe                                                   │
  1462. │                                                                          │
  1463. │  Search in: ( ) From                                                     │
  1464. │             ( ) To                                                       │
  1465. │             ( ) Subject                                                  │
  1466. │             (*) Header                                                   │
  1467. │             ( ) Body                                                     │
  1468. │             ( ) Header and body                                          │
  1469. │                                                                          │
  1470. │ Search for: X-ownsoup: stuff4me                                          │
  1471. │ Match case: No                                                           │
  1472. │                                                                          │
  1473. │     Action: (*) Move to folder/newsgroup: Personal                       │
  1474. │             ( ) Delete                                                   │
  1475. │                                                                          │
  1476. └──────────────────────────────────────────────────────────────────────────┘
  1477. ■endverbatim
  1478.  
  1479.   In the ■sy{"Search for"} line above, ■sy{"X-ownsoup: stuff4me"} represents the
  1480.   string you wish to search for, i.e. the string that OwnS puts in
  1481.   when it finds a match on its own search and ■sy{"Personal"} represents
  1482.   the name you wish the new mail folder to have.
  1483.  
  1484.   Note that Yarn's filter now only needs to search the header as it is
  1485.   only looking for the ■sy{"X-ownsoup: stuff4me"} line.
  1486.  
  1487.   After this preparation all incoming news articles will be checked
  1488.   for ■sy{<pattern>} as set in OwnS (in this case ■sy{"rgriech"}), and
  1489.   matching articles will be moved into the ■sy{"Personal"} mail
  1490.   folder.
  1491.  
  1492. ■item
  1493.  
  1494.    Of course, you can set up more than one filter and if you wish you could put
  1495.    the output in different mail folders.
  1496.  
  1497. ■enditemize
  1498.  
  1499.  
  1500. ■h- Restriction
  1501.  
  1502.    Do not set up ■sy{"Personal"} as a newsgroup, because Yarn would
  1503.    skip the filtered articles in this case due to the ■tt{Message-ID:}.
  1504.  
  1505.  
  1506. ■h- Others
  1507.  
  1508. ■itemize
  1509. ■item
  1510.   Articles filtered to ■sy{"Personal"} can be ■bf{replied} and ■bf{followed up}.
  1511. ■item
  1512.   OwnS scans all files contained in .\AREAS matching the SOUP formats
  1513.   ■sy{"b"} and ■sy{"u"}, i.e. files containing news articles.  The
  1514.   generated file has the binary 8-bit clean mail SOUP format
  1515.   (■sy{"bn"}).
  1516. ■enditemize
  1517.  
  1518.  
  1519.  
  1520. ■h2 QSoup
  1521. ■label QSoup
  1522. ■label QSOUP.EXE
  1523. ■index QSoup
  1524. ■i2 QSoup
  1525.  
  1526.    QS (pronounce 'queue soup') appends mail and news messages to the
  1527.    Yarn ReplyPacket file for transmission by VSoup.  The messages must
  1528.    contain all required header fields, i.e. QS does not manipulate the
  1529.    content of the message, except that it does '\r' stripping and
  1530.    interpretes ^Z as end of message.
  1531.  
  1532.  
  1533. ■h- Syntax
  1534.  
  1535.   ■sy{qsoup [-m] [-v] [-i] [-h<dir>] [-l<file>] [<inputfile>]}
  1536.  
  1537.   where
  1538.  
  1539. ■description
  1540. ■item ■sy{[-m]}
  1541.   the message input to QS is a mail, default is news,
  1542. ■item ■sy{[-v]}
  1543.   be verbose,
  1544. ■item ■sy{[-i]}
  1545.   ignore all options coming behind the ■sy{<-i>}.  This is useful, if
  1546.   the calling program appends command line arguments which are not
  1547.   known by QS,
  1548. ■item ■sy{[-r<file>]}
  1549.   set the name of the ReplyPacket to ■sy{<file>}.  Default is to read
  1550.   the name of the ReplyPacket from ■tt{%HOME%\YARN\CONFIG} in the
  1551.   line reply-packet,
  1552. ■item ■sy{[-l<file>]}
  1553.   use ■sy{<file>} as the lock file for access control to the ReplyPacket.
  1554.   Default is to use ■tt{%YARN%\HISTORY.PAG},
  1555. ■item ■sy{[<inputfile>]}
  1556.   is the name of the message file.  If omitted, the message will be
  1557.   read from stdin, thus allowing to connect the message provider and
  1558.   QS through a pipe.
  1559. ■enddescription
  1560.  
  1561.  
  1562.  ■break
  1563. ■h- Example Setup Of QSoup And Sendmail
  1564.  
  1565.   Using sendmail has several advantages.  First, it is a standard tool
  1566.   which is used by many programs for mail delivery (e.g. ■bf{Lynx}).
  1567.   Second, it is very flexible and allows routing of messages depending
  1568.   on their recipients address.  The second point is also the weakest
  1569.   point of sendmail: it is hard to configure.
  1570.  
  1571.   This example shows my setup of sendmail.  But be warned: I am no
  1572.   sendmail expert and to get this configuration running was a lot of
  1573.   fiddling!
  1574.  
  1575.  ■break
  1576.   My changes to the standard configuration were as follows:
  1577.  
  1578. ■itemize
  1579. ■item
  1580.    take the original sendmail.uml from Warp Connect and copy it to ■tt{%ETC%\sendmail.cf},
  1581. ■item
  1582.    insert the following two lines in the very beginning of sendmail.cf:
  1583. ■verbatim
  1584.   Cwworkstationname.domain
  1585.   Dwworkstationname.domain
  1586. ■endverbatim
  1587. ■item
  1588.    change the ■tt{OQ} setting so it reflects the subdirectory of your mail queue
  1589.    (which in fact should not be required, because the mails are received by QS immediately),
  1590. ■item
  1591.    set the ■tt{H?F?From:} field to your EMail address.  This will be
  1592.    the default address, if nothing else is specified in the
  1593.    ■tt{From:}-header of the message,
  1594. ■item
  1595.    in the ■tt{Ruleset 0} at the end of the first section specify the rule
  1596. ■verbatim
  1597.   R$+<@$+>              $#local $:$1
  1598. ■endverbatim
  1599.    This will instruct sendmail to direct all mails to the local mailer program.
  1600.    Note that the blanks between the ■tt{>} and the ■tt{$} have to be tabs,
  1601. ■item
  1602.    change the local mailer program, so that it shows the following:
  1603. ■verbatim
  1604.   Mlocal, P=d:\b\32\qsoup.exe , F=lmnDFM, S=10, R=0, A=-m -i $u
  1605. ■endverbatim
  1606.    You have to replace the ■tt{d:\b\32} with the actual QS path.  If this path
  1607.    is not correct, sendmail will not deliver the mails!
  1608. ■enditemize
  1609.  
  1610.   After you have done the setup, you should check it with a dummy
  1611.   mail.  Type in the following:
  1612.  
  1613. ■verbatim
  1614.   sendmail -t
  1615.   --->IBM OS/2 SENDMAIL VERSION 1.3.17
  1616.   --->reading ...\sendmail.cf 10
  1617.   to: dummy@x.y.z
  1618.   subject: sendmail/qsoup testing
  1619.  
  1620.   Hello
  1621.   ^Z                    (this is a ctrl-Z!)
  1622.   --->11/09/96 19:01:03 mail delivered from:  YourName
  1623. ■endverbatim
  1624.  
  1625.   Now you can check the successful delivery with the command ■tt{unzip
  1626.   -Cp -aa reply-packet mail.msg}.  The output should be something like
  1627.   that:
  1628.  
  1629. ■verbatim
  1630.   Received: by ibm.net (IBM OS/2 SENDMAIL VERSION 1.3.17/2.12um) id AA3986; ...
  1631.   Date: Sat, 09 Nov 96 18:59:40 +0100
  1632.   From: YourName
  1633.   Message-Id: <9611091759.AA3986@ibm.net>
  1634.   To: dummy@x.y.z
  1635.   Subject: sendmail/qsoup testing
  1636.  
  1637.   Hello
  1638. ■endverbatim
  1639.  
  1640.   Note, that sendmail inserted the missing ■tt{Date:}, ■tt{From:} and
  1641.   ■tt{Message-Id:} header lines (the redundant header ■tt{Received:}
  1642.   too).  ■tt{YourName} should show the correct settings.
  1643.  
  1644.   After successful test you should delete the reply packet file.  For
  1645.   the actual 'diff' of my sendmail.cf and sendmail.umf see also the
  1646.   ■hpt{FAQ}.
  1647.  
  1648.  
  1649.  
  1650.  ■break
  1651. ■h- Miscellaneous
  1652.  
  1653. ■itemize
  1654. ■item
  1655.  
  1656.    If you are using QS as a sendmail mailer program you can not setup
  1657.    sendmail as the MAILER of VSoup (see ■hpt{environment settings}).
  1658.  
  1659.    First, this would result in a deadlock during transmit action
  1660.    of VSoup, because the invoked sendmail would invoke an instance of
  1661.    QS, which could not proceed, because the Yarn ReplyPacket
  1662.    would be held by the transmitting VSoup.
  1663.  
  1664.    Second, this would not be a meaningful configuration, because the
  1665.    mail would loop endlessly in your computer without being ever
  1666.    transmitted to the external world.
  1667.  
  1668.    If other programs require the MAILER environment variable pointing
  1669.    to sendmail and if sendmail is configured to deliver mails to QS,
  1670.    one should clear MAILER prior to the VSoupSend call.  For YIO
  1671.    operation this could be done in YARNIOSET.
  1672.  
  1673. ■item
  1674.    Because QS has to unzip/zip the ReplyPacket, do not expect fast
  1675.    operation.  Anyway appending a message to the ReplyPacket will be
  1676.    much faster than the actual delivery to the network.
  1677. ■item
  1678.    If QS is copied to an executable with the name sendmail (■tt{SENDMAIL.EXE})
  1679.    and is invoked as sendmail, QS mode defaults to
  1680.    'get a mail from stdin'.  If QS is copied to an executable with the name
  1681.    inews (■tt{INEWS.EXE}) and is invoked as inews, QS mode
  1682.    defaults to 'get a news article from stdin'.
  1683.  
  1684.    All command line options will be ignored in either case.  Keep in
  1685.    mind, that the messages must contain all required header fields.
  1686. ■item
  1687.    The exact access criteria for ReplyPacket access are as follows:
  1688. ■enumerate
  1689. ■item
  1690.       Set ■tt{%YARN%\HISTORY.PAG} to writable without access sharing.  This
  1691.       operation must be accomplished successfully.
  1692.       ■tt{%YARN%\REPLIES} is the default lock file which can be
  1693.       overridden by the ■sy{-l<file>} option.
  1694. ■item
  1695.       The ■tt{REPLIES} file in the ReplyPacket subdirectory must not
  1696.       exist.
  1697. ■endenumerate
  1698.    Criterion (1) blocks QS, if Yarn is active.  Also this works like a
  1699.    semaphor and prevents multiple instances of QS to access the
  1700.    ReplyPacket.  Criterion (2) prevents QS from accessing the
  1701.    ReplyPacket if it is unzipped, e.g. during VSoupSend.
  1702.  
  1703.    Don't forget that an open Yarn or an active VSoupSend
  1704.    blocks QS.  This means, as long as another application accesses
  1705.    either the ■tt{lockfile} or the Yarn ReplyPacket, QS can not
  1706.    perform the requested operation.
  1707. ■enditemize
  1708.  
  1709.  
  1710.  
  1711.  
  1712. ■h2 ConvSoup
  1713. ■label ConvSoup
  1714. ■label CONVSOUP.EXE
  1715. ■index ConvSoup
  1716. ■i2 ConvSoup
  1717.  
  1718.   ConvS is a small program which converts the VS SOUP output files,
  1719.   which are in binary format (■sy{"bn"} & ■sy{"Bn"}) into UNIX mailbox
  1720.   format (■sy{"mn"}) and USENET batch format (■sy{"un"}) respectively.  The
  1721.   output files are written with '\n' as line separator.
  1722.  
  1723.   ConvS must be started in the subdirectory that contains the .\AREAS
  1724.   and the .\*.MSG files.
  1725.  
  1726.   ConvS is useful for people who wants to use VS with offline newsreader which do not
  1727.   recognize VSoup's packet format directly.  Although VSoup complies to SOUP, some readers only
  1728.   know about UNIX mailbox and USENET batch format.
  1729.   E.g. Changi's RNews expects USENET batch format on its input.
  1730.  
  1731.  
  1732. ■h2 ModifyEmxH
  1733. ■index ModifyEmxH
  1734. ■i2 ModifyEmxH
  1735.  
  1736.   This script is of interest for people who wants to compile VS on
  1737.   their own.  MODIFYEMXH.CMD is required for multiple inclusion of the
  1738.   ■tt{os2.h} and ■tt{os2emx.h} header files.
  1739.  
  1740.   MODIFYEMXH.CMD reads form stdin and copies to stdout.  Keep in mind,
  1741.   that multiple inclusion of the above mentioned headers is not
  1742.   standard.  It is just for my convenience.
  1743.  
  1744. ■h2 RmHigh
  1745. ■index RmHigh
  1746. ■i2 RmHigh
  1747. ■label RmHigh
  1748. ■label RmHigh.Cmd
  1749.  
  1750.   RMHIGH.CMD removes the highlighting from VSOUP.TXT.  This is useful
  1751.   for people who wants to read the documentation in text mode and have
  1752.   no pager or editor available which understands the poor (wo)mans
  1753.   highlighting used in VSOUP.TXT.
  1754.  
  1755.   GNUs LESS is an example of a pager that handles the distributed
  1756.   VSOUP.TXT correctly.
  1757.  
  1758.  
  1759. ■h1 Files
  1760. ■i1 Files
  1761.  
  1762.   This section describes all the input and output files used and
  1763.   generated by VS in detail.  Under normal circumstances %HOME%\NEWSRC
  1764.   and %HOME%\KILL are the only files of interest.  For description of
  1765.   YIO files, see the YIO section.
  1766.  
  1767. ■ipfminitoc
  1768.  
  1769. ■h2 The Newsrc File
  1770. ■label Newsrc File
  1771. ■label %HOME%\NEWSRC
  1772. ■label NEWSRC
  1773. ■i2 The Newsrc File
  1774.  
  1775.   %HOME%\NEWSRC contains the list of newsgroups.
  1776.  
  1777. ■description
  1778. ■item ':'
  1779.    behind the name indicates subscribed group, 
  1780. ■item '!'
  1781.   indicates an unsubscribed one.
  1782. ■enddescription
  1783.  
  1784.   The list of newsgroups can be obtained from the news server by using
  1785.   the -a option of VSoup (see ■hpt{FAQ}) or can be prepared with a text
  1786.   editor as follows:
  1787.  
  1788.   List the newsgroups you want to receive, one per line, and end each
  1789.   line with a colon. For example:
  1790.  
  1791. ■verbatim
  1792.   comp.answers:
  1793.   news.answers:
  1794.   rec.humor.funny:
  1795. ■endverbatim
  1796.  
  1797.   VSoup will keep track of fetched articles by recording the article
  1798.   numbers in this file.
  1799.  
  1800.  
  1801.  ■break
  1802. ■h- Syntax
  1803.  
  1804.   For anyone who really wants to know, the syntax of the file is as
  1805.   follows:
  1806.  
  1807.  ■sy{%HOME%\NEWSRC ::= <lines>}
  1808.  
  1809.  ■sy{<lines> ::= <line> <lines> | empty}
  1810.  
  1811.  ■sy{<line> ::= <groupname> <sep> <article-ranges> "\n"}
  1812.  
  1813.  ■sy{<sep> ::= "!" | ":"}
  1814.  
  1815.  ■sy{<article-ranges> ::= <article-ranges> "," <art-range> | <art-range> }
  1816.  
  1817.  ■sy{<art-range> ::= " " <art-num> | " " <art-num> "-" <art-num> }
  1818.  
  1819.   ■sy{<groupname>} is the name of a group, ■sy{<art-num>} is a long
  1820.   integer.  ■sy{<article-ranges>} must be sorted in ascending order to
  1821.   be recognized correctly.  Blanks are only allowed at the indicated
  1822.   positions.
  1823.  
  1824.   Under normal circumstances, only the ■sy{<sep>} is important to the
  1825.   user for subscribing and unsubscribing groups.
  1826.  
  1827.  
  1828. ■h2 The Kill File
  1829. ■label killfile explanation
  1830. ■label kill file
  1831. ■i2 The Kill File
  1832.  
  1833.   The kill file specifies criteria used to exclude articles from the
  1834.   VS packet. You can kill articles that have a specific subject, are
  1835.   from a specific poster, or contain a particular string anywhere in
  1836.   the header.
  1837.  
  1838.   %HOME%\KILL is the default kill file.  The name and subdirectory of
  1839.   the kill file can be configured by specifying the ■sy{-K<killfile>}
  1840.   ■hpt{command line option}.  This allows one single kill file for all
  1841.   news servers you wish to access.
  1842.  
  1843.   An entry in the kill file, also called ■sy{<kill-section>}, has the format:
  1844.  
  1845.   ■sy[<killgroup> "{"]■break
  1846.   ■sy[    <search> <pattern>]■break
  1847.   ■sy{           ...}■break
  1848.   ■sy["}"]
  1849.  
  1850.  ■break
  1851.   where:
  1852.  
  1853. ■description
  1854. ■item ■sy{<killgroup>}
  1855.  
  1856.    ■sy{<killgroup>} is a ■hpt{regular expression}.  The following
  1857.    ■sy{<search>}/■sy{<pattern>} rules are applied to newsgroups which
  1858.    are matched by the ■sy{<killgroup>} regular expression completely.
  1859.    If ■sy{<killgroup>} is the string ■tt{"all"} the
  1860.    ■sy{<search>}/■sy{<pattern>} rules are applied to all newsgroups.
  1861.  
  1862. ■item ■sy{<search>}
  1863.  
  1864.    specifies where to search in the header. ■sy{from} searches the
  1865.    ■tt{From:} line, ■sy{subject} searches the ■tt{Subject:} line and
  1866.    so on.  The special ■sy{<search>}-pattern ■sy{header} searches all
  1867.    the lines in the header of the article.
  1868.  
  1869. ■item ■sy{<pattern>}
  1870.  
  1871.    is the string in form of a ■hpt{regular expression} to search for.
  1872.  
  1873. ■enddescription
  1874.  
  1875.  
  1876.  ■break
  1877. ■h- Remarks
  1878.  
  1879. ■itemize
  1880.  
  1881. ■item
  1882.  
  1883.    News transmission speed decreases if a kill file is used, because
  1884.    an article is fetched then in two steps: ■tt{HEAD <num>}, then
  1885.    ■tt{BODY <num>}.  Otherwise an article will be fetched in only one
  1886.    single step: ■tt{ARTICLE <num>}.  Scoring from Yarn is also more
  1887.    flexible than this simple killing, and anyway, who knows in advance
  1888.    about the development of a news thread...
  1889.  
  1890. ■item
  1891.  
  1892.    It is pretty legal to break the kill criteria of several ■sy{<killgroup>}s
  1893.    in several ■sy{<kill-section>}s.
  1894.  
  1895. ■item
  1896.  
  1897.    If ■sy{<header-name>} is equal to ■tt{"header"}, an article is
  1898.    killed if it matches ■sy{<kill-exp>}.  Otherwise an article is
  1899.    killed, if it matches ■sy{<header-name>":.*"<kill-exp>}.
  1900.  
  1901. ■item
  1902.    The ■sy{<killgroup>} ■tt{"all"} is transformed to the regular
  1903.    expression ■tt{".*"}.
  1904. ■item
  1905.    Although the ■tt{"."}s in newsgroup names are meta characters this
  1906.    should not do any harm to 'normal' group matching.  E.g. the
  1907.    ■sy{<killgroup>} expression ■tt{"comp.os.os2.programmer.misc"} will
  1908.    match only one group.
  1909. ■item
  1910.    Upper/lower case is ignored for all fields.
  1911. ■item
  1912.    The kill file works on news only.
  1913. ■item
  1914.    Check the ■hpt{FAQ} for example kill files.
  1915.  
  1916. ■enditemize
  1917.  
  1918.  
  1919.  
  1920.  ■break
  1921. ■h- Syntax
  1922.  
  1923. The exact syntax of the kill file is as follows:
  1924.  
  1925.  ■sy{%HOME%\KILL ::= {<line> "\n"}*}
  1926.  
  1927.  ■sy{<line> ::= '#' <text> | <kill-section>}
  1928.  
  1929. ■indent
  1930.  
  1931.   Lines beginning with a '#' indicates a comment, ■sy{<text>}
  1932.   indicates a literal string.
  1933.  
  1934. ■endindent
  1935.           
  1936.  ■sy{<kill-section> ::= "all" "{" <kill-exps> "}"} ■break
  1937.  ■sy{                 | <kill-group> "{" <kill-exps> "}"}
  1938.  
  1939. ■indent
  1940.  
  1941.   ■sy{"all"} indicates, that the following ■sy{<kill-exps>} is valid
  1942.   for all newsgroups, The ■hpt{regular expression} ■sy{<kill-group>}
  1943.   limits the ■sy{<kill-exps>} to specific newsgroups.
  1944.  
  1945. ■endindent
  1946.  
  1947.  ■sy[<kill-exps> ::= <header-name> <kill-exp> "\n" {<kill-exps>}]
  1948.  
  1949. ■indent
  1950.  
  1951.  ■sy{<header-name>} is a literal string.  If ■sy{<header-name>} is
  1952.  ■sy{"header"}, the ■sy{<kill-exp>} is valid for the complete header.
  1953.  ■sy{<kill-exp>} is a ■hpt{regular expression}.
  1954.  
  1955. ■endindent
  1956.  
  1957.   ■break
  1958. ■description
  1959. ■item Note:
  1960.    ■sy{"\n"} is the newline character.  It is mandatory!
  1961. ■enddescription
  1962.  
  1963.  
  1964.  
  1965. ■h3 Regular expression syntax
  1966. ■label regular expression syntax
  1967. ■label regular expression
  1968.  
  1969.    The following description has been taken from the ■tt{man regexp}
  1970.    pages (BSD experimental).
  1971.  
  1972.    A regular expression is zero or more branches, separated by ■sy{|}.
  1973.    It matches anything that matches one of the branches.
  1974.  
  1975.    A branch is zero or more pieces, concatenated.  It matches a match
  1976.    for the first, followed by a match for the second, etc.
  1977.  
  1978.    A piece is an atom possibly followed by ■sy{*}, ■sy{+}, or ■sy{?}.
  1979.    An atom followed by ■sy{*} matches a sequence of 0 or more
  1980.    matches of the atom.  An atom followed by ■sy{+} matches a sequence
  1981.    of 1 or more matches of the atom.  An atom followed by ■sy{?}
  1982.    matches a match of the atom, or the null string.
  1983.  
  1984.    An atom is a regular expression in parentheses (matching a match
  1985.    for the regular expression), a range (see below), ■sy{.}  (matching
  1986.    any single character), ■sy{^} (matching the null string at the
  1987.    beginning of the input string), ■sy{$} (matching the null string at
  1988.    the end of the input string), a ■sy{\} followed by a single
  1989.    character (matching that character), or a single character with no
  1990.    other significance (matching that character).
  1991.  
  1992.    A range is a sequence of characters enclosed in ■sy{[]}.  It
  1993.    normally matches any single character from the sequence.  If the
  1994.    sequence begins with ■sy{^}, it matches any single character not
  1995.    from the rest of the sequence.  If two characters in the sequence
  1996.    are separated by ■sy{-}, this is shorthand for the full list of
  1997.    ASCII characters between them (e.g. ■sy{[0-9]} matches any decimal
  1998.    digit).  To include a literal ■sy{]} in the sequence, make it the
  1999.    first character (following a possible ■sy{^}).  To include a
  2000.    literal ■sy{-}, make it the first or last character.
  2001.  
  2002.  
  2003.  
  2004. ■h2 Other Files
  2005.  
  2006. ■h- .\COMMANDS
  2007. ■i2 .\COMMANDS
  2008.  
  2009.   contains lines with the syntax: ■sy{'sendme' <groupname>
  2010.   <article-ranges>}.  .\COMMANDS is executed instead of standard
  2011.   fetching of news (see also ■hpt{News Reception}).  After successful
  2012.   .\COMMANDS processing, the file will be deleted.
  2013.  
  2014. ■description
  2015. ■item Note: 
  2016.    articles which have already been read (marked in %HOME%\NEWSRC) will be skipped!
  2017. ■enddescription
  2018.  
  2019. ■h- %HOME%\NEWSTIME
  2020. ■i2 %HOME%\NEWSTIME
  2021.  
  2022.   contains the time of the last NNTP connection.  This is for fetching
  2023.   of new newsgroups.  If %HOME%\NEWSTIME does not exist, ■bf{all}
  2024.   currently available newsgroups are fetched from the server when
  2025.   VS was called with the -a option.
  2026.  
  2027. ■h- %TMP%\SOUP*.TMP
  2028. ■i2 %TMP%\SOUP*.TMP
  2029.  
  2030.   temporary files for received articles. ■sy{*} will be replaced by a
  2031.   number in the range 0-9999.  If %TMP% is not defined, %TMP% will be
  2032.   substituted by a '.'
  2033.  
  2034.  
  2035.   ■break
  2036. ■h- .\00*.MSG
  2037. ■i2 .\00*.MSG
  2038.  
  2039.   contain the received messages (news articles & EMail).  The files
  2040.   are written in the following SOUP formats:
  2041.  
  2042. ■itemize
  2043. ■item
  2044.    Binary 8-bit clean news format (■sy{"Bn"}) for incoming news.
  2045.    Lines are delimited by a single '\n',
  2046. ■item
  2047.    Binary 8-bit clean mail format (■sy{"bn"}) for incoming mails.
  2048.    Lines are delimited by a single '\n'.
  2049. ■enditemize
  2050.    Note that the format of the message files can be changed to UNIX mailbox and USENET batch using ConvS.
  2051.  
  2052.  
  2053. ■h- .\00*.IDX
  2054. ■i2 .\00*.IDX
  2055.  
  2056.   contain the received newsgroup summaries (-u option).  The files are
  2057.   written in the SOUP ■sy{"ic"} format.
  2058.  
  2059. ■h- .\STSMAIL.MSG
  2060. ■i2 .\STSMAIL.MSG
  2061.  
  2062.   contains the status message generated by VS.  This file is written
  2063.   in the SOUP UNIX mailbox format (■sy{"mn"}).  Lines are delimited by
  2064.   a single '\n'.
  2065.  
  2066. ■h- .\AREAS
  2067. ■i2 .\AREAS
  2068.  
  2069.   contains the table of contents of the received .\00*.MSG / .\00*.IDX
  2070.   files (+ .\STSMAIL.MSG).
  2071.  
  2072.  
  2073.   ■break
  2074. ■h- .\NEWS.MSG
  2075. ■i2 .\NEWS.MSG
  2076.  
  2077.   contains the news messages that should be sent to the NNTP server.
  2078.   The following SOUP formats are supported:
  2079.  
  2080. ■description
  2081. ■item ■sy{"B"}
  2082.   Binary 8-bit clean news format.  The files are read in binary mode
  2083.   but transferred in text mode to the NNTP host,
  2084. ■item ■sy{"u"}
  2085.   USENET batch format with the area name ■sy{"news"}.  The files
  2086.   are read in binary mode, thus '\r\n' pairs are treated as two
  2087.   characters (this is not according to RFC1036 but according to Soup12.Html).
  2088. ■enddescription
  2089.  
  2090.  
  2091.  
  2092. ■h- .\MAIL.MSG
  2093. ■i2 .\MAIL.MSG
  2094.  
  2095.   contains the mail messages that should be sent to the SMTP server.
  2096.   The following SOUP formats are supported:
  2097.  
  2098. ■description
  2099. ■item ■sy{"b"}
  2100.   Binary 8-bit clean mail format.  The files are read in binary mode
  2101.   but transferred in text mode to the SMTP gateway,
  2102. ■item ■sy{"u"}
  2103.   USENET batch format with the area name ■sy{"mail"}.  The files
  2104.   are read in binary mode, thus '\r\n' pairs are treated as two
  2105.   characters (this is not according to RFC1036 but according to Soup12.Html).
  2106. ■enddescription
  2107.  
  2108.  
  2109. ■h- .\REPLIES
  2110. ■i2 .\REPLIES
  2111.  
  2112.   contains the table of contents of the .\NEWS.MSG / .\MAIL.MSG files
  2113.   to be transmitted.  Instead of the above file names other names
  2114.   could be used too.
  2115.  
  2116.  
  2117.  
  2118. ■h1 Insufficiencies, Bugs & Plans
  2119.  
  2120. ■h- Insufficiencies
  2121.  
  2122. ■itemize
  2123.  
  2124. ■item
  2125.  
  2126.    only very basic killfile handling
  2127.  
  2128. ■item
  2129.  
  2130.    some cmd options, some files (including the score/kill file) are
  2131.    not compatible with Souper16
  2132.  
  2133. ■item
  2134.  
  2135.    space allocated from the heap is not freed (debugging...)
  2136.  
  2137. ■item
  2138.  
  2139.    behaviour for news receiving/posting, mail receiving/posting is not
  2140.    symmetrical, i.e.  there is no multithreading except for news
  2141.    receiving...  This will be (perhaps) fixed in a future version
  2142.  
  2143. ■item
  2144.  
  2145.    only one single version (for OS/2)
  2146.  
  2147. ■item
  2148.  
  2149.    it is not clear, how to handle '\r\n' pairs in the SOUP format!
  2150.    Soup12.Html says '\r' should be treated as data, but '\r\n' must be
  2151.    avoided.  In Soup12.Html '\r' are counted just like normal data
  2152.    bytes.
  2153.  
  2154. ■enditemize
  2155.  
  2156.  
  2157.  
  2158. ■h- Bugs
  2159.  
  2160. ■itemize
  2161.  
  2162. ■item
  2163.  
  2164.    version of the emx runtime is not checked!
  2165.  
  2166. ■enditemize
  2167.  
  2168.  
  2169. ■h- Plans
  2170.  
  2171. ■itemize
  2172.  
  2173. ■item
  2174.    remove bugs & insufficiencies
  2175. ■item
  2176.    more situation dependent return codes
  2177. ■item
  2178.    perhaps more status information on the screen
  2179. ■item
  2180.    perhaps the servers IP address will be added to status messages
  2181. ■enditemize
  2182.  
  2183.  
  2184.  
  2185. ■h1 Author & Acknowledgements
  2186.  
  2187. ■h- Author
  2188.  
  2189.   Hardy Griech■break
  2190.   Ernetstr. 10/1■break
  2191.   77933 Lahr■break
  2192.   Germany
  2193.  
  2194.   EMail:  ■url{mailto:rgriech@swol.de (VSoup bug)|rgriech@swol.de}
  2195.  
  2196.  
  2197.   ■break
  2198. ■h- Acknowledgements
  2199.  
  2200. ■itemize
  2201.  
  2202. ■item
  2203.  
  2204.    FSF for GCC (2.7.2.1 used), EMACS (19.31.1 used),
  2205.  
  2206. ■item
  2207.    Eberhard Mattes for the GCC & EMACS ports to OS/2 and the
  2208.    documentation utility emxdoc, which made the ■tt{.INF}-file possible,
  2209. ■item
  2210.    Chin Huang for Yarn and Souper,
  2211. ■item
  2212.    the gamma testers Jim Holcomb, Kay Pyrtek, Phil Crown and Ralph D. Bednarski,
  2213. ■item
  2214.    Barrie Smith for rework on the documentation, for many suggestions
  2215.    about documentation and a lot of proof reading!
  2216. ■item
  2217.    Timo Maier for his excessive help finding the Warp4 related bug which led to system crashes (see ■hpt{history}, VSoup1.2.7).
  2218. ■enditemize
  2219.  
  2220.  
  2221.  
  2222. ■h1 History
  2223. ■label history
  2224.  
  2225. ■h- Version 1.2.7 (120297)
  2226.  
  2227. ■itemize
  2228.  
  2229. ■item
  2230.    new features:
  2231. ■itemize
  2232. ■item
  2233.      Port specification in ■hpt{URL}s is now supported.
  2234. ■item
  2235.      .\STSMAIL.MSG now contains a ■tt{Date:} header field.  This allows import of the
  2236.      .\STSMAIL.MSG into a pseudo newsgroup, see also the Yarn FilterProg program.
  2237. ■item
  2238.      The ■tt{Subject:} header line of .\STSMAIL.MSG now contains also the server names
  2239.      which are relevant for the requested operation.
  2240. ■item
  2241.      The first 40K of temporary files are kept in memory to reduce HDD access (class ■tt{TFileTmp}).
  2242. ■item
  2243.      National language support (■tt{_nls_tolower()}) introduced for kill expressions, OwnS and hashing.
  2244. ■item
  2245.      newsgroup names in ■hpt{kill file}s are now regular expressions.
  2246. ■item
  2247.      new Option ■sy{-L<n>} allows specification of minimum article length (see ■hpt{news receiving options}).
  2248. ■item
  2249.      new Option ■sy{-D} forces deletion of mails on POP3 server after reception of each mail (see ■hpt{mail receiving options}).
  2250. ■item
  2251.      ■hpt{RmHigh.Cmd} added, which removes the highlighting in VSOUP.TXT.
  2252. ■enditemize
  2253.  
  2254. ■item
  2255.    bug fixes:
  2256. ■itemize
  2257. ■item
  2258.     VSoup crashed some Warp4 systems (trap address 0140:7d4c or 0140:7e33).
  2259.     This was fixed through serializing some C library calls (■tt{remove()}, ■tt{rename()}, ■tt{open()}, ■tt{close()}, ■tt{read()}, ■tt{write()}, ■tt{lseek()} and ■tt{ftruncate()}).
  2260.     This problem is most likely device driver related, although nothing specific is known. Thanks to Timo, Stefan, Nate, Rodney, Soenke, Tero and Chua Teng for their help in finding the problem.
  2261. ■item
  2262.     Bug in emxlibcm <= 52 (don't know, what will happen later on):  _fd_init() is not threadsafe, i.e. all callers too (open(), socket(), etc).  Perhaps
  2263.     This is the cause of the trap problem above (not verified, rg120297)
  2264. ■item
  2265.     Incomplete packets are now removed from the SOUP output.  Problems appeared with
  2266.     aborted EMail reception (which writes directly into the SOUP output and not to a temporary).
  2267. ■item
  2268.     -T-1 no longer shows throughput info (see ■hpt{global options}).
  2269. ■item
  2270.     Signals were not initialized for ■tt{mtGetGroup()} with option -S2.
  2271. ■item
  2272.     In SOUP .\REPLIES the types ■sy{"bn"}/■sy{"Bn"} now override the message kind
  2273.     ■sy{"mail"}/■sy{"news"}, which is required for type ■sy{"u"}.
  2274. ■item
  2275.     handling of ■sy{"m"} and ■sy{"u"} SOUP format in .\REPLIES corrected (file positioning was wrong).
  2276. ■item
  2277.     "ok, we've read enough..." now displays correctly.
  2278. ■item
  2279.     ■tt{%}-display with -S1 reading strategy now (more) correct.
  2280. ■item
  2281.     handling of "\r\n" delimited reply files corrected.
  2282. ■item
  2283.     files are now opened with SH_DENYWR.
  2284. ■item
  2285.     missing NEWSRC is no longer fatal (useful for initial setup).
  2286. ■enditemize
  2287.  
  2288. ■item
  2289.    other internal changes:
  2290. ■itemize
  2291. ■item
  2292.      The threads are no longer killed through ■tt{DosKillThread()}.  Instead,
  2293.      threads are killing themselves (when they are detecting an abort condition) through ■tt{SIGUSR1}.
  2294.      Sockets are being set to ■tt{O_NONBLOCK} to abort current requests.
  2295. ■item
  2296.      ■tt{assert(_heapchk() == _HEAPOK)} inserted in some places.
  2297. ■item
  2298.      ■tt{nhandles()} aborts after checking 150 handles.
  2299. ■enditemize
  2300.  
  2301. ■enditemize
  2302.  
  2303.  
  2304.  
  2305. ■h- Version 1.2.5 (091196)
  2306.  
  2307. ■itemize
  2308.  
  2309. ■item
  2310.  
  2311.    Improved Documentation, thanks to Barrie Smith.
  2312.  
  2313.    Documentation now in TXT and INF format available, thanks to
  2314.    emxdoc.
  2315.  
  2316. ■item
  2317.  
  2318.    SOUP format for ImportProg has been changed:
  2319.  
  2320. ■itemize
  2321. ■item
  2322.       .\STSMAIL.MSG has format ■sy{"mn"} (same as before)
  2323. ■item
  2324.       from POP3 incoming Mails have format ■sy{"bn"}: binary 8-bit clean mail format.
  2325.       This allows from headers in the first column of the mail, i.e.
  2326.       mail handling is now transparent (old was ■sy{"mn"}).
  2327. ■item
  2328.       news have format ■sy{"Bn"}: binary 8-bit clean news format (old was
  2329.       ■sy{"un"})
  2330. ■enditemize
  2331.    To allow the conversion to the old format ConvS has been added.
  2332.  
  2333. ■item
  2334.    Added OwnS which filters news articles containing a specific pattern into a mail folder.
  2335. ■item
  2336.    Added QS to allow injection of messages into the SOUP reply packet.
  2337. ■item
  2338.  
  2339.    YIO changes:
  2340. ■itemize
  2341. ■item
  2342.    YIO now only zips the SEND packets (this is to allow re-edit of the
  2343.    replies).  Received messages are imported via ■tt{import -u}.
  2344.    If you have an older version of YARNIOSET it must be updated.
  2345. ■item
  2346.    YIO now supports OwnS.  To allow operation of OwnS the entry ■tt{preImportProg} has
  2347.    been added to YARNIOSET.
  2348. ■item
  2349.    YIO now supports up to nine NNTP servers for news reception and up to nine POP3 servers for EMail reception.
  2350. ■enditemize
  2351.  
  2352. ■item
  2353.  
  2354.    -T-1 disables throughput check completely.
  2355.  
  2356. ■item
  2357.  
  2358.    the ■sy{<kill-section>} for one ■sy{<group>} can now be seperated,
  2359.    e.g. the kill file may now contain several ■sy{"all"} sections.
  2360.  
  2361. ■item
  2362.  
  2363.    now article ranges are allowed in the ■tt{sendme} of .\COMMANDS.
  2364.    This is a non-standard SOUP extension.
  2365.  
  2366. ■item
  2367.    bug fixes:
  2368.  
  2369. ■itemize
  2370. ■item
  2371.       hostname is now fetched through TCP/IP API, no longer from
  2372.       'internet settings'
  2373. ■item
  2374.       it was possible in -S2 that during final catchup of articles
  2375.       the connections were changing group assignment on each fetched
  2376.       article
  2377. ■item
  2378.       catchup did not work as expected.  It sets the %HOME%\NEWSRC, so
  2379.       that in any case 'n' articles were read afterwards.  Display now
  2380.       shows groupLo & groupHi
  2381. ■item
  2382.       ^Z was not recognized correctly for %HOME%\NEWSRC & %HOME%\KILL
  2383. ■item
  2384.       Now again linked dynamically, ths ■bf{EMX.DLL} and ■bf{EMXLIBCM.DLL} are required
  2385. ■item
  2386.       Lines containing a single '.' were aborting EMails, even if
  2387.       the '.' is actually doubled for transfer.  Don't know if this
  2388.       is an SMTP bug.  Appending a blank behind the '.' helped
  2389.       (i.e. ".. " is actually transferred to the SMTP server).
  2390.       For news articles it works without appending the blank.
  2391. ■item
  2392.       sockets are now opened in text mode, because all the RFCs
  2393.       requires \r\n as a line delimiter.
  2394. ■enditemize
  2395.  
  2396. ■enditemize
  2397.  
  2398.  
  2399.  
  2400. ■h- Version 1.2 (061096)
  2401.  
  2402. ■itemize
  2403.  
  2404. ■item
  2405.    first non-beta release
  2406.  
  2407. ■item
  2408.    more detailed README
  2409.  
  2410. ■item
  2411.  
  2412.    YIO enhanced (autodial, disabling specific actions, configuration
  2413.    file, ...)
  2414.  
  2415. ■item
  2416.  
  2417.    some changes/enhancements/extensions in .\STSMAIL.MSG, e.g.  command
  2418.    line parameters are contain, important server names too...  (useful
  2419.    for debugging)
  2420.  
  2421. ■item
  2422.  
  2423.    if supported by the NNTP server, the XHDRs are retrieved to
  2424.    determine holes in the article sequence
  2425.  
  2426. ■item
  2427.  
  2428.    throughput check (-T option) now replaces the old timeout
  2429.    detection.  It is now working for all operations.
  2430.  
  2431. ■item
  2432.    news reading, strategy parameter:
  2433.  
  2434. ■description
  2435. ■item -S0
  2436.  
  2437.       groups are read sequentially, i.e.  all threads are fetching
  2438.       articles from only one group
  2439.  
  2440. ■item -S1
  2441.  
  2442.       the next group will be accessed, if one thread goes into waiting
  2443.       state - only small modification of the above
  2444.  
  2445. ■item -S2
  2446.  
  2447.       it is tried, to keep all threads busy.  I.e.  each thread
  2448.       accesses one dedicated group, groups are read parallel (if there
  2449.       are no more groups to access, the waiting threads are used for
  2450.       parallel reading from one group)
  2451.  
  2452. ■enddescription
  2453.  
  2454. ■item
  2455.  
  2456.    more robust (but slower) reading of %HOME%\KILL and %HOME%\NEWSRC.
  2457.    Because it is slower: clean-up your %HOME%\NEWSRC from time to time, if
  2458.    you are using the -a option
  2459.  
  2460. ■item
  2461.    bug fixes:
  2462.  
  2463. ■itemize
  2464.  
  2465. ■item
  2466.  
  2467.      'internet connection' settings were never ignored (-i did not
  2468.      work)
  2469.  
  2470. ■item
  2471.  
  2472.       some very minor bug fixes for handling of broken connections
  2473.  
  2474. ■item
  2475.  
  2476.       under some circumstances broken SMTP connection did not produce
  2477.       an error condition
  2478.  
  2479. ■item
  2480.  
  2481.       bug in kill file handling fixed (trailing blanks in line were
  2482.       not accepted).  Lines in the kill file can now be outcommented
  2483.       through a '#' as the first non-blank character
  2484.  
  2485. ■item
  2486.  
  2487.       if getArticle() fails, the according connection will be marked
  2488.       as failed.  This lets VSoup die gracefully, if single
  2489.       connections are cancelled (by whom?)
  2490.  
  2491. ■item
  2492.  
  2493.       signal handling changed: VSoup tries (!) to kill the sub-threads
  2494.  
  2495. ■item
  2496.  
  2497.       number of file handles provided by emx is now checked
  2498.  
  2499. ■item
  2500.  
  2501.       now compiled with emx09c.  During this 'port' it became obvious,
  2502.       that streams are not appropriate.  Thus all file i/o is done
  2503.       directly via handles (class TFile in mts.cc)
  2504.  
  2505. ■enditemize
  2506. ■enditemize
  2507.  
  2508.  
  2509.  
  2510. ■h- Version 1.1ß (010996)
  2511.  
  2512. ■itemize
  2513.  
  2514. ■item
  2515.    first public beta
  2516.  
  2517. ■item
  2518.  
  2519.    if NNTP server knows nothing about DATE command, the internal clock
  2520.    will be taken as a reference (required for -a cmd option only)
  2521.  
  2522. ■item
  2523.  
  2524.    'AUTHINFO USER' / 'AUTHINFO PASS' for nntp server implemented
  2525.    (RFC977 extension).  Call VSoup simply with the nntp-URL
  2526.    nntp://user:passwd@nntpserver
  2527.  
  2528. ■item
  2529.  
  2530.    NNTP NEXT will only be done, if there is a bigger gap between the
  2531.    articles
  2532.  
  2533. ■item
  2534.  
  2535.    bug in socket.cc ((char)0xff == (int)-1 !!!)
  2536.  
  2537. ■enditemize
  2538.  
  2539.  
  2540.  
  2541. ■h- Version 1.0ß (010896)
  2542.  
  2543. ■itemize
  2544.  
  2545. ■item
  2546.  
  2547.    Program is now named VSoup.  I am sorry, but the program again
  2548.    requires the emx DLLs (to my opinion no disadvantage, because most
  2549.    of the people will have them anyway).  Also there is no support for
  2550.    Win95 (this was not intended and I am not sorry, but I have no
  2551.    Win95 system - and I am happy about that ;-)
  2552.  
  2553. ■item
  2554.  
  2555.    Program is now multithreaded for news reading.  This gives a speed
  2556.    gain of 200%-500% depending on the overall speed of the connection
  2557.    and the number of threads; on the other hand multiple connections
  2558.    have a communication overhead (i.e.  the connections must be
  2559.    established, the groups selected).  Estimated loss is around 5%...
  2560.  
  2561. ■item
  2562.  
  2563.    Return codes are now much more consistent: on failure an
  2564.    EXIT_FAILURE (1) is returned, on success EXIT_SUCCESS (0)
  2565.  
  2566. ■item
  2567.  
  2568.    On failure a status mail is generated.  Most of the console
  2569.    messages are redirected into this status mail.  The generation of
  2570.    the mail can be forced thru cmd option -M
  2571.  
  2572. ■item
  2573.  
  2574.    If file %HOME%\NEWSTIME does not exist, the complete newsgroup list
  2575.    is retrieved from the news server (NNTP LIST)
  2576.  
  2577. ■item
  2578.  
  2579.    Kill files may have comments ('#' in the first position of a line).
  2580.    This is very beta...
  2581.  
  2582. ■item
  2583.  
  2584.    Readonly mode is now much more consistent (%HOME%\NEWSTIME is not
  2585.    updated, also the sent articles are not deleted)
  2586.  
  2587. ■item
  2588.  
  2589.    the default maximum packet size has been changed to unlimited
  2590.  
  2591. ■item
  2592.  
  2593.    Small bug in %HOME%\NEWSRC handling found (firstUnread was wrong
  2594.    sometimes)
  2595.  
  2596. ■item
  2597.  
  2598.    automatic timeout for NNTP reception
  2599.  
  2600. ■enditemize
  2601.  
  2602.  
  2603.  
  2604.  
  2605. ■h1 FAQ
  2606. ■label FAQ
  2607. ■index FAQ
  2608.  
  2609.   This sections contains several frequently questions and the
  2610.   corresponding answers.  The questions are:
  2611.  
  2612. ■ipfminitoc
  2613.  
  2614.   LINEBREAK
  2615.  
  2616.  
  2617.  
  2618. ■if ipf | html
  2619. ■h2u Why do I get something like '0000002.msg: Too many open files'?
  2620. ■endif
  2621.   ■bf{Why do I get something like '0000002.msg: Too many open files'?}
  2622.  
  2623.   and the related question
  2624.  
  2625.   ■bf{I am getting the message '...number of threads cut...'.  What does it mean?}
  2626.  
  2627.    VSoup needs a lot of open file handles. The YIO script provides
  2628.    these automatically, but if you are not using this script then it
  2629.    is recommended that you add the following line to your CONFIG.SYS:
  2630.    ■sy{SET EMXOPT=-h40 -c -n}.  This allows 40 open file handles which
  2631.    should be enough.
  2632.  
  2633.   LINEBREAK
  2634.  
  2635.  
  2636.  
  2637. ■if ipf | html
  2638. ■h2u Why is my news reception getting stuck sometimes?
  2639. ■endif
  2640.   ■bf{Why is my news reception getting stuck sometimes?}
  2641.  
  2642.    One common reason is that you are using the wrong (too old) version
  2643.    of the emx-runtime-DLLs.  Check them with emxrev (should show
  2644.    revisions >= 50) and update them if required.  Also you have to
  2645.    avoid a mixture of emx runtime DLLs.
  2646.  
  2647.    LINEBREAK
  2648.  
  2649.  
  2650.  
  2651. ■if ipf | html
  2652. ■h2u Are there any specific problems with the different versions of the emx runtimes?
  2653. ■endif
  2654.   ■bf{Are there any specific problems with the}
  2655.   ■bf{different versions of the emx runtimes?}
  2656.  
  2657.   Unfortunately there are!  The revision of the runtime DLLs can be obtained via
  2658.   the command emxrev.  Only the revision numbers of ■bf{emx.dll} and ■bf{emxlibcm.dl}l are important for VSoup.
  2659.  
  2660. ■description
  2661. ■item revision < 40
  2662.    No way, because nothing of the TCP/IP stuff is included in the C library.
  2663. ■item revision < 50, >= 40
  2664.    This is not recommended, although it should work because VSoup
  2665.    serializes most of the calls to the C library.  Nevertheless you
  2666.    should use the newest available revision of the emx09b runtimes,
  2667.    because there were many changes/bugfixes in the TCP/IP part.
  2668. ■item revision = 50 (also > 50)
  2669.    Check the setting of the environment variable TZ.  It should/must
  2670.    contain a value which is acceptable for the emx C library.
  2671.    Otherwise you will get an SYS3175.
  2672.  
  2673.    Revisions > 50 will not crash due to incorrect setting of TZ,
  2674.    anyway they cannot interprete the variable correctly.
  2675. ■enddescription
  2676.  
  2677.   LINEBREAK
  2678.  
  2679.  
  2680.  
  2681. ■if ipf | html
  2682. ■h2u I cannot receive EMail from my POP3 server?
  2683. ■endif
  2684.   ■bf{I cannot receive EMail from my POP3 server?}
  2685.  
  2686. ■itemize
  2687. ■item
  2688.  
  2689.    Check, if your UserId/Password settings are ok
  2690.  
  2691. ■item
  2692.  
  2693.    Check, that your %ETC%\SERVICES file contains the following lines
  2694.    (see also ■hpt{Installation}):
  2695.  
  2696. ■verbatim
  2697.   pop3        110/tcp       #Post Office Protocol - Version 3
  2698.   pop3        110/udp       #Post Office Protocol - Version 3
  2699. ■endverbatim
  2700.  
  2701. ■item
  2702.    Alternatively you can insert the port number in the command line POP3 ■hpt{URL}.
  2703. ■enditemize
  2704.  
  2705.   LINEBREAK
  2706.  
  2707.  
  2708.  
  2709. ■if ipf | html
  2710. ■h2u I have another EMail program.  Therefor I'd like to disable...
  2711. ■endif
  2712.   ■bf{I have another EMail program.}
  2713.   ■bf{Therefor I'd like to disable the RCVMAIL feature of YarnIO.  How do I do this?}
  2714.  
  2715.   You simply have to set ■tt{soupRcvMail} in YARNIOSET to '' (the empty string).
  2716.  
  2717.   LINEBREAK
  2718.  
  2719.  
  2720.  
  2721. ■if ipf | html
  2722. ■h2u Give me sample scripts for simple VSoup IO operation.
  2723. ■endif
  2724.   ■bf{Give me sample scripts for simple VSoup IO operation.}
  2725.  
  2726. ■description
  2727. ■item Simple Reception:
  2728.    Because this is a simple approach, NEWSRC & KILL resides in the %HOME% directory.
  2729. ■itemize
  2730. ■item
  2731.    change to a directory for IO operation, e.g. ■tt{c:\vsoup}.
  2732. ■item
  2733.    call VSoup, e.g.
  2734. ■verbatim
  2735. vsoup -M nntp://your.news.server pop3://your.pop3.server
  2736. ■endverbatim
  2737.    The output of the VSoup operation will be in the current directory, i.e. in ■tt{c:\vsoup} in this example.
  2738.    If your 'internet settings' are setup correctly by your dialer, you could omit the ■tt{nntp://} and ■tt{pop3://} specifications in the command line.
  2739. ■item
  2740.    feed the received news/EMails and the by VSoup generated status mail into the database of your newsreader.  For Yarn
  2741.    the ImportProg program will be used (e.g. ■tt{import -u}).
  2742. ■enditemize
  2743.    If you are using different programs for handling news/EMails, you could
  2744.    do two sequential invocations of VSoup:
  2745. ■verbatim
  2746. vsoup -Mm nntp://your.news.server
  2747. handle_news_import
  2748. vsoup -Mn pop3://your.pop3.server
  2749. handle_mail_import
  2750. ■endverbatim
  2751.    Of course this VSoup instances could also be started parallel through e.g.:
  2752. ■verbatim
  2753. start do_news_reception
  2754. start do_mail_reception
  2755. ■endverbatim
  2756.    This approach requires a little bit more effort than the sequential one.  Check YIO as an example.
  2757.  
  2758. ■item Simple Transmission:
  2759. ■itemize
  2760. ■item
  2761.    change to the directory where your reply packets (e.g. ■tt{reply.zip}) reside.  If they are zipped (or packed in another way), you have to
  2762.    unzip/unpack them before VSoup will be called (e.g. ■tt{unzip -oq reply.zip & del reply.zip}).
  2763. ■item
  2764.    call VSoup, e.g.
  2765. ■verbatim
  2766. vsoup -Ms nntp://your.news.server smtp://your.mail.gateway
  2767. ■endverbatim
  2768.   Failure of transmission should be handled in a proper way, e.g. if
  2769.   .\REPLIES still exists, you have to rezip the not transmitted
  2770.   news/mails (for Yarn IO you have to invoke ■tt{zip -0m reply.zip
  2771.   replies news.msg mail.msg}).
  2772.   If your 'internet settings' are setup correctly by your dialer, you could omit the ■tt{nntp://} and ■tt{smtp://} specifications in the command line.
  2773. ■item
  2774.   handle the by VSoup generated status mail (e.g. ■tt{import -u} for Yarn IO).
  2775. ■enditemize
  2776.   If you are using different programs for handling news/mail, you could do two sequential invocations of VSoup or you could start two VSoup parallel (see above).
  2777. ■enddescription
  2778.  
  2779.  
  2780.  
  2781. ■h- IO for Yarn with simple scripts
  2782.  
  2783. We assume, that the IO subdirectory is at ■tt{c:\vsoup}, the
  2784. news/EMail reader/writer is Yarn and the server URLs are taken from
  2785. the 'internet settings', a status mail is generated by VSoup, the
  2786. reply packet is stored by Yarn to ■tt{c:\vsoup\reply.zip}, the NEWSRC
  2787. & KILL (if one exists) are located in %HOME%:
  2788.  
  2789. ■description
  2790. ■item Script for simple reception:
  2791. ■verbatim
  2792. c:
  2793. cd \vsoup
  2794. vsoup -M
  2795. import -u
  2796. ■endverbatim
  2797. ■item Script for simple transmission:
  2798. ■verbatim
  2799. c:
  2800. cd \vsoup
  2801. unzip -oq reply
  2802. del reply.zip
  2803. vsoup -Ms
  2804. import -u
  2805. zip -0m reply replies news.msg mail.msg
  2806. ■endverbatim
  2807. ■enddescription
  2808.  
  2809.   LINEBREAK
  2810.  
  2811.  
  2812.  
  2813. ■if ipf | html
  2814. ■h2u VSOUP.TXT contains strange characters...
  2815. ■endif
  2816.   ■bf{VSOUP.TXT contains strange characaters.  What's wrong?}
  2817.  
  2818.   VSOUP.TXT uses some kind of poor (wo)mans highlighting.  This is obtained through
  2819.   backspacing and overwriting in the ASCII file.  Some Viewers or Editors are not capable
  2820.   of handling such files correctly (GNUs LESS can do it).
  2821.  
  2822.   Solution is to remove the highlighting with the small script ■hpt{RmHigh}.
  2823.  
  2824.   LINEBREAK
  2825.  
  2826.  
  2827.  
  2828. ■if ipf | html
  2829. ■h2u Give me an example killfile!?
  2830. ■endif
  2831.   ■bf{Give me an example killfile!?}
  2832.  
  2833.    Here you are:
  2834.  
  2835. ■verbatim
  2836.   # this is a killfile for VSoup
  2837.   #
  2838.   all {
  2839.      header microsoft
  2840.      from bill.*gates
  2841.   }
  2842.  
  2843.   all {
  2844.      subject make.*money
  2845.      subject \$\$\$
  2846.      x-newsreader forte agent
  2847.   }
  2848.  
  2849.   comp.os.os2.mail-news {
  2850.      subject ultimail
  2851.      subject netscape
  2852.      subject help:
  2853.   }
  2854.  
  2855.   .*binaries.* {
  2856.      lines [ ][0-9]$
  2857.      lines [ ][0-9][0-9]$
  2858.   }
  2859.  
  2860.   comp\..* {
  2861.      lines [0-9][0-9][0-9]
  2862.   }
  2863. ■endverbatim
  2864.  
  2865. ■itemize
  2866. ■item
  2867.    First group would kill messages in ■sy{all} newsgroups which have
  2868. ■itemize
  2869. ■item
  2870.     the word ■sy{microsoft} somewhere in the header,
  2871. ■item
  2872.     or are ■sy{from} a guy with a ■sy{bill}-pattern followed somewhere
  2873.     by a ■sy{gates} pattern,
  2874. ■enditemize
  2875.  
  2876. ■item
  2877.   Second group would again kill messages in ■sy{all} newsgroups which have
  2878. ■itemize
  2879. ■item
  2880.     ■sy{make} followed by ■sy{money} in the ■sy{subject},
  2881. ■item
  2882.     or contain three consecutive ■sy{$$$} in the ■sy{subject},
  2883. ■item
  2884.     or contain ■sy{forte agent} in the ■sy{x-newsreader} header line.
  2885. ■enditemize
  2886.  
  2887. ■item
  2888.   Third group would kill messages in the ■sy{comp.os.os2.mail-news} group
  2889.   which have ■sy{subject} lines containing the words ■sy{ultimail},
  2890.   ■sy{netscape} or ■sy{help:}.
  2891. ■item
  2892.   Forth group would kill articles in newsgroups matching ■tt{.*binaries.*}, if they contain less than 100 lines.
  2893. ■item
  2894.   Fifth group would kill articles in newsgroups matching ■tt{comp\..*}, if they contain more than 99 lines.
  2895.   Note, that the newsgroup ■tt{comp.os.os2.mail.news} will match both the third and the fifth group!
  2896. ■enditemize
  2897.  
  2898.   Also check ■hpt{killfile explanation} and the ■hpt{regular
  2899.   expression syntax}.
  2900.  
  2901.   LINEBREAK
  2902.  
  2903.  
  2904.  
  2905. ■if ipf | html
  2906. ■h2u How to kill heavily crossposted articles...
  2907. ■endif
  2908.   ■bf{How to kill heavily crossposted articles (and thus avoid spams very likely)?}
  2909.  
  2910.   Add the following to your kill file:
  2911. ■verbatim
  2912.   # this kills articles posted to more then 4 groups
  2913.   #
  2914.   all {
  2915.      newsgroups ,.*,.*,.*,
  2916.   }
  2917. ■endverbatim
  2918.  
  2919.   LINEBREAK
  2920.  
  2921.  
  2922.  
  2923. ■if ipf | html
  2924. ■h2u I have 8 connections requested for news receiving...
  2925. ■endif
  2926.   ■bf{I have 8 connections requested for}
  2927.   ■bf{news receiving (with the -t8 option),}
  2928.   ■bf{but the status message says that}
  2929.   ■bf{only 3 threads were connected successfully.}
  2930.   ■bf{What's wrong?}
  2931.  
  2932.    Nothing! Sometimes it takes very long to establish a connection to
  2933.    the news server which means that VS has finished before all
  2934.    requested threads have been connected. It is also possible that a
  2935.    news server might restrict the number of simultaneous connections
  2936.    by one user. I have not heard of this happening, but who knows!
  2937.  
  2938.   LINEBREAK
  2939.  
  2940.  
  2941.  
  2942. ■if ipf | html
  2943. ■h2u I am getting mails, which actually seems to be news articles!?
  2944. ■endif
  2945.   ■bf{I am getting mails, which actually seems to be news articles!?}
  2946.  
  2947.    You are using OwnS somewhere.  If you are using YIO for you I/O
  2948.    operations, check in YARNIOSET the ■tt{preImportProg} line, which
  2949.    should either be empty ('') or should contain arguments to match
  2950.    your needs (not ■em{mine} as the settings reflect in the sample
  2951.    YARNIOSET in the archive).
  2952.  
  2953.   LINEBREAK
  2954.  
  2955.  
  2956.  
  2957. ■if ipf | html
  2958. ■h2u How can I setup more than one filter with OwnSoup?
  2959. ■endif
  2960.   ■bf{I am using YARNIO.SET.  How can I setup more than one filter with OwnSoup?}
  2961.  
  2962.    You have to use the command concatenator in the ■tt{preImportProg}
  2963.    line of YARNIOSET, e.g.
  2964. ■verbatim
  2965. preImportProg = 'ownsoup -q rgriech stuff4me OwnTemp'
  2966. preImportProg = preImportProg '&& ownsoup -bq vsoup vsoupstuff VsTemp'
  2967. ■endverbatim
  2968.  
  2969.    This example will search for ■sy{"rgriech"} in header and body and
  2970.    additionally for ■sy{"vsoup"} in the body section of the news
  2971.    articles.
  2972.  
  2973.    In a second step you have to setup the corresponding mail filter
  2974.    with the Yarn FilterProg program.
  2975.  
  2976.   LINEBREAK
  2977.  
  2978.  
  2979.  
  2980. ■if ipf | html
  2981. ■h2u How to move the VSoup status mails into a pseudo newsgroup?
  2982. ■endif
  2983.   ■bf{How to move the VSoup status mails into a pseudo newsgroup?}
  2984.  
  2985. ■itemize
  2986. ■item
  2987.    create a newsgroup with the Yarn utility ■bf{newgroup},
  2988.    e.g.
  2989. ■verbatim
  2990.    newgroup VSoupStatus 3
  2991. ■endverbatim
  2992.    This will create the group
  2993.    ■bf{VSoupStatus} with three days expiration time.
  2994. ■item
  2995.    Setup a filter with the Yarn FilterProg.  The filter parameters are as follows:
  2996. ■verbatim
  2997. ┌ Mail Rule ───────────────────────────────────────────────────────────────┐
  2998. │                                                                          │
  2999. │  Rule name: VSoup Status                                                 │
  3000. │                                                                          │
  3001. │  Search in: ( ) From                                                     │
  3002. │             (*) To                                                       │
  3003. │             ( ) Subject                                                  │
  3004. │             ( ) Header                                                   │
  3005. │             ( ) Body                                                     │
  3006. │             ( ) Header and body                                          │
  3007. │                                                                          │
  3008. │ Search for: vsoupuser                                                    │
  3009. │ Match case: No                                                           │
  3010. │                                                                          │
  3011. │     Action: (*) Move to folder/newsgroup: VSoupStatus                    │
  3012. │             ( ) Delete                                                   │
  3013. │                                                                          │
  3014. └──────────────────────────────────────────────────────────────────────────┘
  3015. ■endverbatim
  3016. ■enditemize
  3017.  
  3018.   From now on the VSoup status mails are put into the newsgroup
  3019.   ■bf{VSoupStatus}.  Because the ■tt{Subject:} header also contains
  3020.   the server names, Yarn will automatically sort the status mail/news
  3021.   by action.
  3022.  
  3023.   LINEBREAK
  3024.  
  3025.  
  3026.  
  3027. ■if ipf | html
  3028. ■h2u How do I get a listing of all available newsgroups?
  3029. ■endif
  3030.   ■bf{How do I get a listing of all available newsgroups?}
  3031.  
  3032.    Delete the file NEWSTIME in the directory of your NEWSRC file and
  3033.    call VSoup with the -a option the next time.  After that you will get
  3034.    a status mail and the available groups are appended to your NEWSRC
  3035.    file.  Note that groups already contained in NEWSRC will not appear
  3036.    in the status mail.
  3037.  
  3038.   LINEBREAK
  3039.  
  3040.  
  3041.  
  3042. ■if ipf | html
  3043. ■h2u How to clean up the NEWSRC file?
  3044. ■endif
  3045.   ■bf{How to clean up the NEWSRC file?}
  3046.  
  3047.    After a while the NEWSRC will contain many unsubscribed
  3048.    groups if VSoup will be called with the -a option.  You can get rid
  3049.    off those unsubscribed groups with the following commands:
  3050. ■verbatim
  3051.    cd 'directory of newsrc'
  3052.    find ":" < newsrc > newsrc.tmp
  3053.    copy newsrc.tmp newsrc
  3054.    del newsrc.tmp
  3055. ■endverbatim
  3056.  
  3057.   LINEBREAK
  3058.  
  3059.  
  3060.  
  3061. ■if ipf | html
  3062. ■h2u How to subscribe to a newsgroup?
  3063. ■endif
  3064.   ■bf{How to subscribe to a newsgroup?}
  3065.  
  3066. ■itemize
  3067. ■item
  3068.    Open the NEWSRC file of the NNTP server you like to add an
  3069.    subscription,
  3070. ■item
  3071.    add the line ■tt{GroupYouLikeToSubscribe:} to the file.
  3072. ■enditemize
  3073.  
  3074.   On the next import to Yarn, ImportProg will add the new group to the
  3075.   ■tt{%YARN\ACTIVE} file automatically with defaults specified in the
  3076.   ■tt{%HOME%\YARN\CONFIG} file (■tt{keep} and ■tt{max-keep} entries).
  3077.   It is not required to invoke the Yarn ■bf{newgroup} command.  The
  3078.   new group will also appear in the ■tt{newsgroup selection level} of
  3079.   Yarn.
  3080.  
  3081.   Keep in mind that there are several NEWSRC files!  Some of them are
  3082.   used by VSoup (especially if you access multiples NNTP servers),
  3083.   others are used by Yarn (i.e. ■tt{%HOME%\YARN\NEWSRC}).
  3084.  
  3085.   LINEBREAK
  3086.  
  3087.  
  3088.  
  3089. ■if ipf | html
  3090. ■h2u How to unsubscribe and delete a newsgroup?
  3091. ■endif
  3092.   ■bf{How to unsubscribe and delete a newsgroup?}
  3093.  
  3094. ■itemize
  3095. ■item
  3096.    Delete the newsgroup from the corresponding NEWSRC file,
  3097. ■item
  3098.    if you have one single NEWSRC file or multiple NEWSRC files and
  3099.    none of them contains any longer the respective group you could delete the
  3100.    newsgroup from the ■tt{%YARN%\NEWS.DAT} database with the Yarn
  3101.    ■bf{rmgroup} command.
  3102. ■enditemize
  3103.  
  3104.   LINEBREAK
  3105.  
  3106.  
  3107.  
  3108. ■if ipf | html
  3109. ■h2u Can I abort VSoup operation safely?
  3110. ■endif
  3111.   ■bf{Can I abort VSoup operation safely?}
  3112.  
  3113.    Yes, it is safe to abort VS by ^C or ^BREAK.  The following takes place:
  3114.  
  3115. ■description
  3116. ■item News reception:
  3117.  
  3118.    VS will save the current NEWSRC contents and the articles are
  3119.    stored after the reception of each single article into the
  3120.    corresponding .\00*.MSG file.  The .\AREAS file will be left in a
  3121.    proper state for import.
  3122.  
  3123. ■item EMail reception:
  3124.  
  3125.    The QUIT command will not be sent to the POP3 server, which means
  3126.    that the mailbox will not be emptied which again means that when
  3127.    you next call you will get the already received EMails of the
  3128.    aborted VS session again.
  3129.  
  3130. ■item News transmission:
  3131.  
  3132.    Double sent articles are detected by the news server and will be
  3133.    rejected by it.  This special type of rejection (435 & 437 error
  3134.    number in NNTP reply) will be considered by VS as a non-error
  3135.    condition, thus the articles are handled as having been
  3136.    successfully delivered (which in fact they are).
  3137.  
  3138. ■item EMail transmission:
  3139.  
  3140.    If the VS session has been aborted during EMail transmission, the
  3141.    whole EMail batch will be resent.
  3142.  
  3143. ■enddescription
  3144.  
  3145.   LINEBREAK
  3146.  
  3147.  
  3148.  
  3149. ■if ipf | html
  3150. ■h2u Can you show me the 'diff' between your sendmail.cf and...
  3151. ■endif
  3152.    ■bf{Can you show me the 'diff' between your sendmail.cf and the original sendmail.uml?}
  3153.  
  3154.   Of course, but you should be capable of reading 'diffs'.  Also be aware, that sendmail
  3155.   requires tabs as delimiter between the ruleset fields.
  3156.  
  3157. ■verbatim
  3158. *** sendmail.uml        Tue Oct  3 23:09:04 1995
  3159. --- d:sendmail.cf       Sat Nov  9 19:20:30 1996
  3160. ***************
  3161. *** 1,3 ****
  3162. --- 1,7 ----
  3163. + Cwswol.de
  3164. + Dwswol.de
  3165.   #########################################################################
  3166.   #                                                                       #
  3167.   #  Sendmail                                                             #
  3168. ***************
  3169. *** 102,108 ****
  3170.   #
  3171.   # If macro R is undefined, then mail for internal destinations will be
  3172.   # delivered directly
  3173. ! DDYour.Domain
  3174.   
  3175.   # Internal, directly connected domains
  3176.   #
  3177. --- 106,112 ----
  3178.   #
  3179.   # If macro R is undefined, then mail for internal destinations will be
  3180.   # delivered directly
  3181. ! DD
  3182.   
  3183.   # Internal, directly connected domains
  3184.   #
  3185. ***************
  3186. *** 154,160 ****
  3187.   # SMTP read timeout
  3188.   Or15m
  3189.   # Queue directory - this must be changed if TCP/IP is moved!
  3190. ! OQC:\MPTN\ETC\mqueue
  3191.   # Always queue for safety
  3192.   Os
  3193.   # Time to live in the queue
  3194. --- 158,164 ----
  3195.   # SMTP read timeout
  3196.   Or15m
  3197.   # Queue directory - this must be changed if TCP/IP is moved!
  3198. ! OQd:\ETC\MQUEUE
  3199.   # Always queue for safety
  3200.   Os
  3201.   # Time to live in the queue
  3202. ***************
  3203. *** 173,179 ****
  3204.   #
  3205.   HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b
  3206.   H?D?Date: $a
  3207. ! H?F?From: $q
  3208.   H?M?Message-Id: <$t.$i@$j>
  3209.   H?D?Resent-Date: $a
  3210.   H?F?Resent-From: $q
  3211. --- 177,183 ----
  3212.   #
  3213.   HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b
  3214.   H?D?Date: $a
  3215. ! H?F?From: Hardy Griech <rgriech@swol.de>
  3216.   H?M?Message-Id: <$t.$i@$j>
  3217.   H?D?Resent-Date: $a
  3218.   H?F?Resent-From: $q
  3219. ***************
  3220. *** 297,302 ****
  3221. --- 301,307 ----
  3222.   R$* : $* ;              $#error $@ USAGE $: "list:; syntax illegal for...
  3223.   R<@ $+>                 $#error $@ USAGE $: "user address required"
  3224.   R<$* : $* >             $#error $@ USAGE $: "colon illegal in host name part"
  3225. + R$+<@$+>                $#local $:$1
  3226.   
  3227.   # handle numeric address spec
  3228.   R$* < @ [ $+ ] > $*     $#smtp $@ [$2] $: $1 < @ [$2] > $3      numeric...
  3229. ***************
  3230. *** 387,393 ****
  3231.   #
  3232.   
  3233.   Msmtp,  P=[IPC], F=mDFMuX, S=10, R=0, A=IPC $h
  3234. ! Mlocal, P=C:\TCPIP\UMAIL\UMAILER.EXE , F=lsm, S=10, R=0, A=-dest C:\TCP...
  3235.   Mprog,  P=xxx, A=Required by sendmail but unused
  3236.   
  3237.   
  3238. --- 392,398 ----
  3239.   #
  3240.   
  3241.   Msmtp,  P=[IPC], F=mDFMuX, S=10, R=0, A=IPC $h
  3242. ! Mlocal, P=d:\b\32\qsoup.exe , F=lmnDFM, S=10, R=0, A=-m -i $u
  3243.   Mprog,  P=xxx, A=Required by sendmail but unused
  3244. ■endverbatim
  3245.  
  3246.   LINEBREAK
  3247.  
  3248.  
  3249.  
  3250. ■if ipf | html
  3251. ■h2u Can I use VSoup together with Changi?
  3252. ■endif
  3253.   ■bf{Can I use VSoup together with Changi?}
  3254.  
  3255.    Yes, you can use VSoup as the news feeder for Changi.  For reply
  3256.    transmission Chanx must still be used.  The following setup should work:
  3257.  
  3258. ■itemize
  3259. ■item
  3260.    setup VSoup for news reception as described in the ■hpt{installation} section,
  3261. ■item
  3262.    after VSoup operation ConvS must be called, which converts the .\00*.MSG from binary format to the USENET batch format,
  3263. ■item
  3264.    then do a ■tt{copy 00*.msg all_in_one},
  3265. ■item
  3266.    then call the Changi RNews with ■tt{all_in_one} as input file.
  3267. ■enditemize
  3268.  
  3269.    The above is not tested!  If anybody likes to confirm the
  3270.    procedure, please send me an EMail.  Anyway the .\STSMAIL.MSG is
  3271.    not handled by the above procedure.
  3272.  
  3273. ■description
  3274. ■item Remark:
  3275.         The question 'why should I use VSoup together with Changi?' is
  3276.         triggered by the fact that several news servers do not allow the
  3277.         NEWNEWS command, which is used by Chanx for multithreaded news reception.
  3278. ■enddescription
  3279.  
  3280.   LINEBREAK
  3281.  
  3282.  
  3283.  
  3284. ■if ipf | html
  3285. ■h2u Can I use VSoup together with another offline newsreader...
  3286. ■endif
  3287.   ■bf{Can I use VSoup together with another offline newsreader than Yarn/Changi?}
  3288.  
  3289.   VSoup can be used as news/mail client for all offline newsreaders which expect
  3290.   SOUP format as input and generate articles in SOUP format on the output side.
  3291.   Perhaps ConvS has to be used to convert the received messages into the correct
  3292.   data format known by your newsreader.
  3293.  
  3294.   For squish based newsreader there exists a free converter which makes VSoup usable
  3295.   also for people prefering such readers.
  3296.  
  3297.   Reports of successfully combining VSoup with other newsreaders than Yarn and the corresponding recipes
  3298.   are highly welcome and (c|sh)ould be submitted to ■url{mailto:rgriech@swol.de (VSoup Combination)|rgriech@swol.de}.
  3299.  
  3300.   LINEBREAK
  3301.  
  3302.  
  3303.  
  3304. ■if ipf | html
  3305. ■h2u Where to obtain more information about SOUP?
  3306. ■endif
  3307.   ■bf{Where to obtain more information about SOUP?}
  3308.  
  3309.   For more information about SOUP refer to Soup12.Html which can be
  3310.   found on the net, e.g. at
  3311.   ■url{http://www.eden.com/~combee/soup12.html}.
  3312.  
  3313.   LINEBREAK
  3314.  
  3315.  
  3316.  
  3317. ■if ipf | html
  3318. ■h2u Where are the internet standards described?
  3319. ■endif
  3320.   ■bf{Where are the internet standards described?}
  3321.  
  3322.   The internet standards are described in Request For Comment
  3323.   documents (RFC).  VSoup uses the NNTP, POP3 and SMTP standards.
  3324.   A good starting point for RFC reading is e.g.
  3325.   ■url{http://ds2.internic.net/ds/rfc-index.html}.
  3326.  
  3327.   RFCs of interest are:
  3328. ■description
  3329. ■item ■url{http://ds2.internic.net/rfc/rfc821.txt|RFC821}
  3330.    Simple Mail Transfer Protocol,
  3331. ■item ■url{http://ds2.internic.net/rfc/rfc822.txt|RFC822}
  3332.    Standard for the format of ARPA Internet text messages,
  3333. ■item ■url{http://ds2.internic.net/rfc/rfc977.txt|RFC977}
  3334.    Network News Transfer Protocol,
  3335. ■item ■url{http://ds2.internic.net/rfc/rfc1036.txt|RFC1036}
  3336.    Standard for interchange of USENET messages,
  3337. ■item ■url{http://ds2.internic.net/rfc/rfc1460.txt|RFC1460}
  3338.    Post Office Protocol - Version 3.
  3339. ■enddescription
  3340.  
  3341.   LINEBREAK
  3342.  
  3343.  
  3344.  
  3345. ■if ipf | html
  3346. ■h2u Where can I obtain the latest version of VSoup?
  3347. ■endif
  3348.   ■bf{Where to obtain the latest version of VSoup?}
  3349.  
  3350.    I will upload public releases of VSoup to ■tt{ftp.cdrom.com} and
  3351.    ■tt{ftp.leo.org}.  The corresponding URLs are:
  3352.  
  3353. ■itemize
  3354. ■item
  3355.  
  3356.    ■url{ftp://ftp.leo.org/pub/comp/os/os2/leo/tcpip/news/|ftp://ftp.leo.org/pub/comp/os/os2/leo/tcpip/news/vsoup*.zip}
  3357.  
  3358. ■item
  3359.  
  3360.    ■url{ftp://ftp.cdrom.com/pub/os2/incoming/|ftp://ftp.cdrom.com/pub/os2/incoming/vsoup*.zip}, later on it
  3361.    can be found at
  3362.    ■url{ftp://ftp.cdrom.com/pub/os2/internet/|ftp://ftp.cdrom.com/pub/os2/internet/vsoup*.zip}.
  3363.  
  3364. ■enditemize
  3365.  
  3366.    I will not upload to Hobbes (■url{ftp://ftp-os2.nmsu.edu/}), because it
  3367.    seems to be not very reliable.
  3368.  
  3369.    Version notification will take place in the Yarn mailing list.
  3370.  
  3371.    The current update frequency is at about one release per month.
  3372.    But this will stabilize in the very near future (09-Nov-1996).
  3373.  
  3374.    ■bf{Experimental} versions can be downloaded from
  3375.    ■url{http://privat.swol.de/ReinhardGriech/vsoup.zip}.  Only the
  3376.    executable is contained in this archive, perhaps with some
  3377.    debugging output.
  3378.  
  3379.  
  3380.   LINEBREAK
  3381.  
  3382.  
  3383.  
  3384. ■if ipf | html
  3385. ■h2u Where to obtain the latest version of Yarn?
  3386. ■endif
  3387.   ■bf{Where to obtain the latest version of Yarn?}
  3388.  
  3389.   Best place to check is ■url{http://www.vex.net/yarn/}.  For
  3390.   notification about new versions check the Yarn mailing list.
  3391.  
  3392.   LINEBREAK
  3393.  
  3394.  
  3395.  
  3396. ■if ipf | html
  3397. ■h2u How to subscribe to the Yarn mailing list?
  3398. ■endif
  3399.   ■bf{How to subscribe to the Yarn mailing list?}
  3400.  
  3401.   To subscribe to the mailing list, mail a message to
  3402.   ■url{mailto:listproc@lists.colorado.edu|listproc@lists.colorado.edu}.  The body of the message should be
  3403.   the line ■tt{subscribe yarn-list Your Full Name}, assuming ■tt{Your
  3404.   Full Name} is your full name.  If it isn't, substitute your own
  3405.   name.
  3406.