home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / vsoup128.zip / vsoup.src < prev    next >
Text File  |  1997-04-20  |  107KB  |  3,546 lines

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