What have I done now ? (aka CR and LF confusion)

Brian Milby brian at milby7.com
Thu May 28 12:11:10 EDT 2020


binfile is just short for binary file... it means that the file is written
exactly as presented.  If you use encode (UTF8/16 etc) then you need to use
it anyway.

The PR is a pretty much single constant update (changes CR to LF for Mac
line ending).

The backwards compatibility issue is a very minor edge case.  To be
impacted you need to export text from LiveCode which uses CR where a
non-LiveCode app/process consumes the data and requires the CR line
ending.  LiveCode file in/out will automatically convert, so there would be
no impact to a LiveCode generated application that uses file for in/out.

On Thu, May 28, 2020 at 11:21 AM Alex Tweedly via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Thanks Brian, that was a very helpful and clear description. It's
> amazing that I've been an active Runrev/livecode for nearly 20 years and
> not been affected by this until now :-)
>
> Re. a PR to change it, it does seem it will run into concerns about
> backward compatability. Is it likely to succeed to propose a new
> URL-type - maybe "textfile".
>
> Then you could do
>
>    put tData into URL "textfile:tiny.txt"   to get the sane behaviour
>
> but continue to do
>
>    put tData into URL "file:tiny.txt"   to get the existing behaviour
>
> To me, it feels like a better self-documenting case - binfile vs
> textfile, rather than binfile vs file.
>
> Alex.
>
>
> On 28/05/2020 03:15, Brian Milby via use-livecode wrote:
> > You need to use binfile on Mac to get sane line endings.  I have a PR to
> fix, but doubt it will get merged.
> >
> > On Mac/Windows, file will convert line endings to what LC thinks is the
> native one for the OS.  CRLF for Windows and CR for Mac (the real CR, not
> the one that LC uses internally where CR and LF are synonyms for LF).  So
> on Linux you can use either file or binfile, on Windows you need to use
> file, and on Mac you need to use binfile to get the currently expected line
> endings.
> >
> > Thanks,
> > Brian
> > On May 27, 2020, 9:24 PM -0400, Alex Tweedly via use-livecode <
> use-livecode at lists.runrev.com>, wrote:
> >> I don't know if I've done something to my LC prefs, or to my Mac, or to
> >> myself :-)
> >>
> >> the following script
> >>
> >>> on mouseUp
> >>>     local t
> >>>     put "asd" & CR & "qwe" & CR & "zxc" &CR into t
> >>>     put t into URL ("file:/Users/alextweedly/tiny.txt")
> >>> end mouseUp
> >> does create a file - but that file can't be (easily, properly) used by
> >> some other Mac apps, because all the end-of-line characters are 0x0d
> >> (i.e. numtochar(13)). So unix utilities like wc, cat, grep, more, ...
> >> won't deal with it properly - though emacs, Sublime, Coda2, etc. do ok.
> >>
> >> If I create the same file in an editor (emacs, Sublime Text, ...) they
> >> all produce e-o-l characters which are 0x0A (i.e. numtochar(10)), and
> >> this works in both editors and utilities mentioned above, as well as LC.
> >>
> >> Maybe it's always been like this ??
> >>
> >> I don't know - I just noticed because I tried to 'grep' for some
> >> characters in all files within a folder, and didn't find anything
> >> (though I should have done).
> >>
> >> SO I can get by - just avoid using any files created within LC with any
> >> other apps - but I'd rather find out if I should be doing something
> >> different, or if I've accidentally changed some setting that causes
> this.
> >>
> >> Thanks for any thoughts,
> >>
> >> Alex.
> >>
> >>
> >> _______________________________________________
> >> use-livecode mailing list
> >> use-livecode at lists.runrev.com
> >> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> >> http://lists.runrev.com/mailman/listinfo/use-livecode
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list