Date: Wed, 23 Oct 1996 15:14:30 -0300 Message-Id: <1.5.4.16.19961023131119.379fc110@dmeasc.rc.ipt.br> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" To: degiorgi AT inf DOT ethz DOT ch, djgpp AT delorie DOT com From: Cesar Scarpini Rabak Subject: Re: ftell does'nt work properly At 15:35 21/10/96 GMT, Daniele Degiorgi wrote: >Some times ago I had the same problem: > >Developping a small compiler I used a big file as a source library. >When I encountered an include statement within a module, I used >to save the actual position with ftell(), reading the included >module and at the end of this I used fseek to resume reading >at the proper place. >I had a first problem with a module in the library containing >a single cr (0x0D). This seems to disturb all compilers I used >(Borland C++, Visual C++ and djgpp). After fixing it (replacing >it by blank in the file) all worked good with Borland C++ and >Visual C++, but I still had problems with djgpp. > >The final solution was to use different FILE variables reopening >the library file for each include and avoiding pairing of ftell/fseek. > >The troubles caused by the presence of the character 0x0D are dued >to the fact that the ftell routine counts the presence of single >chars and not pairs of cr/lf. But, as the different documentations >warns about malfunctioning in case of presence of nonprintable characters >in text files, this may be ok. > >In each case now I always try to avoid the usage of ftell/fseek in >conjunction with DOS text files. > > >Daniel > > BTW all MS-DOG compiler documentations have this advise, so this is not a DJGPP (specific) issue... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cesar Scarpini Rabak E-mail: csrabak AT ipt DOT br DME/ASC Phone: 55-11-268-35221Ext.350 IPT - Instituto de Pesquisas Tecnologicas Fax: 55-11-268-5996 Av. Prof. Almeida Prado, 532. Sao Paulo - SP 05508-901 BRAZIL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~