On 9/15/2010 4:14 PM, Dick Hollenbeck wrote: > On 09/15/2010 02:55 PM, Lorenzo Marcantonio wrote: >> On Wed, 15 Sep 2010, Dick Hollenbeck wrote: >> >> >>> "rt" as the fopen() mode. Won't that make the fgets() code read in >>> lines of text without the \r in a platform independent way ? >>> >> In your dreams:D the 't' modifier is windows (and msdos) only. By ANSI >> specs all letters not understood are ignored so (linux) libc accept it, >> i.e. open the file, but opens it in 'binary' mode. OTOH there is a 'b' >> letter in the standard to force binary mode (which is ignored too, since >> it's always in effect). Since macosx is bsd based I think the same >> applies, too. >> >> In effect the meaning of the 't' is 'native text', not 'windows text' so >> it does make sense that fopen hasn't a switch for CRLF processing >> (otherwise what about, i.e., old macos which was CR only?) >> >> Also I had some fabricators (and tools!) which had the same problem, >> refusing LF-only lines (they latch on the CR, maybe...). I don't know if >> the gerber specs says something about that (it was a 5-bit baudot paper >> tape standard IIRC) but the problem is there; you can only hope that >> linux and maybe macos users are smart enough to utod or something the >> files. >> >> >>> No doubt gerbview needs a lot of work, and I'm not even sure what's >>> there is to be considered a good starting point. I've spent some time >>> on it, but have always had the feeling I was building on sand. >>> >> gerbv is *years* ahead of gerbview... >> > > We have reached the same conclusion. linux's fgets() will return the \r > into the buffer no matter how the DOS file is opened.
If the files are not too large, wxTextFile handles the \r\n problem in platform agnostic manner ( at least according to the documentation ). A better solution might be to use wxTextInputStream. It claims to represent newlines with a single new line character no matter how line ending are implemented in the file. It appears the wxWidgets folks have already had to deal with this problem. I haven't tried it so I cannot comment on how well this works. Wayne > > Its been so long that I tripped on it that I had forgotten about it on > linux, and this long duration was the result of writing proper code to > avoid it, no doubt. > > This recent episode was like stubbing your toe in the dark on something > you had forgotten to move out of the middle of the room, but had been > luckily side stepping for years. > > The automatic \r removal is an artifact of the windows version of > fgets(), at least it was at one time. Such a thing is not present in > the linux glibc fgets(), so linux programs should plan on seeing \r when > reading DOS text files. > > Dick > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

