From: wusel@hactar.hanse.de (Kai 'wusel' Siering)
Date: Sat, 29 Aug 1992 23:38:13 +0200
Organization: Villa Straylight, Hamburg, FRG
Newsgroups: de.comp.sys.amiga.uucp
Reply-To: "Kai 'wusel' Siering" <wusel@hactar.hanse.de>
Subject: Re: CNews: Cross-Postings unter Kickstart 1.2/1.3
X-Newsreader: Ann 0.8n
Content-Type: text/plain; charset=ISO-8859-1
Copyright: Nachdruck, auch auszugsweise, ohne schriftliche Einwilligung des Autors bei Strafe verboten.

In article <1992Aug25.152058.19242@arbi.Informatik.Uni-Oldenburg.DE>,
	wusel@hactar.hanse.de (Kai 'wusel' Siering) writes:

Nachdem ich nun wieder hier bin:

% meggers@memyam.UUCP (Markus Eggers) writes:
%
% >Hallo!
%
% >   Ich  habe  ein kleines (?) Problem mit CNews und den Cross-Postings
% >unter 1.2/1.3.
%
% >   CNews  setzt  bei  mir  zwar eine XRef-Zeile in den Header, kopiert
% >aber  den  Artikel  nur  in  die  erste  Newsgroup,  die  in der News-
% >groups-Zeile angegeben ist.
%
% >   Die  bringt  nicht  nur bei Arn aerger (In allen Newsgroups, die in
% >der  XRef-Zeile stehen werden die Artikel als neu angezeigt, auch wenn
% >KEINE Kopie in dieser Newsgroup vorhanden ist), sondern ist auch sehr,
% >sehr AERGERLICH fuer zwei Leser.
%
% Wenn ich CN:libamiga/link.c noch richtig erinnere, wird unter 2.0 ein
% Hardlink erzeugt, unter <2.0 nur eine Fehlermeldung zurueckgegeben (und
% der Artikel nicht kopiert) ... Irgendwo war zwar auch eine 'Artikel-
% kopierroutine', aber da ich 2.0 fahre und der Meinung bin, alles andere
% macht fuer UUCP eh' keinen Sinn ...

CN:libamiga/link.c
---------------------------------------8<---------------------------------------
/*      :ts=4
 *      This is an Amiga version of the Unix link() system call
 *
 *      $Id$
 *
 *      $Log$
 */

#include <stdio.h>                                      /* For file_i/o stuff */
#include <exec/types.h>
#include <dos/dos.h>
#include <clib/exec_protos.h>           /* For FindTask() */
#include <clib/dos_protos.h>            /* For *Lock*(), MakeLink() */

#if INCLUDE_VERSION >= 36
# include <pragma/dos.h>
#endif

FILE **Link_a;                                          /* The address of art->a_artf  */

link(char *from, char *to)
{
        register int ret = 0;
#if INCLUDE_VERSION >= 36
        static short flag;
        BPTR lock;
        fpos_t pos;

        if (flag == 0) {
                extern struct DosLibrary *SysBase;
                flag = (short) SysBase->dl_lib.lib_Version;
        }
        if (flag > 35) {
                pos = (fpos_t) -1;
                if (Link_a && *Link_a) {
                        if (!fgetpos(*Link_a, &pos))
                                fclose(*Link_a);
                }
                if (lock = Lock((UBYTE *)from, ACCESS_READ)) {
                        if (!MakeLink((UBYTE *)to, lock, LINK_HARD)) {
                                ret = IoErr();
#if 0
                                warning("Couldn't make link (%s) from `%s' to `%s'",
                                        strerror(IoErr()), from, to);
#endif
                        }
                        UnLock(lock);
                } else {
                        ret = IoErr();
#if 0
                        warning("Couldn't obtain lock (%s) on `%s' during link to `%s'",
                                strerror(IoErr()), from, to);
#endif
                }
                if (pos != (fpos_t) -1) {
                        *Link_a = fopen(from, "a+");
                        fsetpos(*Link_a, &pos);
                }
        }
#endif /* INCLUDE_VERSION */
        return( ret );
}
--------------------------------------->8---------------------------------------

     Ich musz  mich  korrigieren,  wie  man  sieht, es wird kein Fehlercode
zurueckgegeben  -  man  nehme die Orignalsourcen (per FTP von uunet.uu.net,
per  nuucp  wohl  u. a. von brewas) und fuege ein entsprechendes Codestueck
dort  ein.  Da  ich an anderer Stelle ebenfalls dos.library >=36 anfordere,
hat sowas bei meiner  Version keinen Zweck - die Orginal-Sourcen benoetigen
aber kein 2.0, daher sollte Dir geholfen werden koennen ...
			kai

--  _
 _ //   Kai 'wusel' Siering, Villa Straylight, Hamburg, Germany. Go for MIME!
 \X/: <wusel@hactar.hanse.de> Exile: <wusel@lime.in-berlin.de> iso-8859-1: 

"Anstand ist was fuer Damenkraenzchen!"
                                                                -- Sledge Hammer