delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/03/24/09:35:13

Date: Thu, 24 Mar 94 08:43:02 -0500
From: dj AT ctron DOT com (DJ Delorie)
To: eliz AT is DOT elta DOT co DOT il
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: Line terms; UNIX v. DOS; opinions wanted (was: Info port...)

> > Actually, the problem is when you have split info files.  The first
> > file has *absolute* offsets into the other files, and the *absolute*
> > offsets change if you *convert* the file between unix and dos.
> >
> > If you *generate* the split file in dos, and if info is smart enough
> > ...
> 
>   That's the whole point: when you read() files in ``text'' mode, you don't
> have to be ``smart'': things automagically get settled for you.  The only

You missed the point.  Here's an example of when it breaks:

* run makeinfo on *unix*.  It uses read() to get offsets, *stores* the
unix-valid offsets in the .info file, splits the rest.  Most gnu info
are done this way.

* copy the .info* files to ms-dos.

* change one of the .info* split files with an editor that saves in
DOS format instead of unix format (or just run utod on them).

* run info on dos.  It uses the offsets generated on unix, seeks into
the split file, finds the wrong data because the file has been
changed.

The basic problem is that makeinfo stores absolute offsets and info
assumes they're still valid when it reads them.  This is *not* true if
the file has been changed since makeinfo (like cr/lf translation).


- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019