[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Opening files so that no cr/lf translation is done.



Michael Smith writes:

> This is a bit of an interesting one - certainly it's been giving me my
> fair share of migraine problems.

 sorry i didn't see this earlier... :)
> 
> I made a rash (in restrospect) announcement about the Taylor UUCP
> package a short while ago, let me qualify the state of things now :
> 
> uucico works fine, with the exception of the ability to detatch from
> the controlling terminal.

 ok the following is from my 1.03:  try setting HAVE_SETSID 1 in
conf.h (needs recent mintlib), and replace the fork/exit with a hack
with setjmp+tfork where the parent _exit()s and the child waits for
the parent to die and then longjmp back.

>  I assume this has something to do with the
> differences between "normal" fork() and the MiNT fork() - this is not
> a terrible problem, although it makes it (AFAIK) impossible for 
> uucico to receive SIGHUP from the modem,

 _that_ still would need a real tty driver, MiNTs own never even send
SIGHUP... :(  (and so i made it check the CD line itself on every read and
write...)

>  or to put uuxqt in the
> background.

 but this works.
> 
> uuxqt does not.
> 
> In particular, compressed newsbatches get mangled.
> 
> This had me stumped for some time - particularly because the 'od' in
> the shu194st.zoo archive on atari.archive has the same problem : so I 
> have two files, of different size, that 'od' to the same file.

 sounds like some [fp]open wants a "b", not necessarily in uuxqt...
or put try with a `b' in UNIXMODE and patch isspawn() to still pass
UNIXMODE if !fkeepenv. (assuming isspawn isn't changed from 1.03...)
> 
> Jens - if you're reading this, both thanks _and_ flames - can you fix
> it please? 
> 
> Now, I don't know how many of you have tangled with the innards of
> Taylor, but it's not hugely pretty - everything is abstracted to the 
> n'th degree, which probably makes it _great_ for porting, but learning
> it is no fun at all 8(
> 
> I have verified that the rnews I am using works (feeding it a compressed
> newsbatch results in it being neatly stashed where it should (ownership
> is wrong, ends up as uucp not news, despite sticky bit on /bin/rnews,
> but that's life 8( ) and I can verify that it is correct with 
> tail +2 <newsbatch> |zcat |less

 do you have a `b' in UNIXMODE?
> 
> However, if I use uuxqt to invoke rnews, things don't work out.

 if your rnews (which is that btw? :) depends on the b in UNIXMODE...

>...
> I'm not going to go further - there's too much to wade through, but in
> brief : this routine calls ixsspawn() which takes, amongst many
> other arguments, the filedescriptors in aidescs[0] and [1], which are
> used as stdin and stdout for the command.

 mintlib, unlike DOS :) has no `ascii mode' on fds, only on FILE *.
> 
> Somewhere along the line here, translation occurs... 
> I have looked at open.c in the pl44 mintlibs, but the nondiscussion
> of CRMOD has left me none the wiser.

 and CRMOD only exists on ttys, not on regular files.
> 
> If anyone has a suggestion, I'm open to ideas...

 would you like a look at my diffs for 1.03?  get tuu103d3.zoo from a.a
(older version), or mail me.  forget the 8+3 filename nonsense (we have
minixfs now) but most of the other patches should still be useful for 1.05...

 cheers
	Juergen
-- 
J"urgen Lock / nox@jelal.north.de / UUCP: ..!uunet!unido!uniol!jelal!nox
								...ohne Gewehr
PGP public key fingerprint =  8A 18 58 54 03 7B FC 12  1F 8B 63 C7 19 27 CF DA