[Kde-pim] mbox resource

Martin Koller kollix at aon.at
Tue Feb 4 16:09:52 GMT 2014


On Tuesday 04 February 2014 15:51:39 Daniel Vrátil wrote:
> On Monday 03 of February 2014 21:11:37 Martin Koller wrote:
> > Hi,
> > 
> > I'm debugging the mbox resource and find a strange thing.
> > When I append a new message from the shell (simulating an external program
> > appending a new message) then SingleFileResourceBase::fileChanged() gets
> > called which in turn lands in MboxResource::writeToFile().
> > There the given filename is a temporary file, e.g.
> > /home/kdetrunk/.kde4/share/apps/akonadi_mbox_resource_0/mbox-1
> > to which the whole current mbox file is copied via mMBox->save( fileName )
> > 
> > But then follows something I do not understand.
> > The comment in this file says something like
> > "... Therefore we
> >   // copy the original file and append pending changes to it but also add an
> > extra // '\n' to make sure that the hashes differ and the user gets
> > notified. ..."
> > 
> > But in fact it destroys what it has just written via
> >     QFile file( fileName );
> >     file.open( QIODevice::WriteOnly );
> >     file.seek( file.size() );
> >     file.write( "\n" );
> > 
> > QIODevice::WriteOnly is not QIODevice::WriteOnly|QIODevice::Append even with
> > the seek() so I assume that this is simply a bug, right ?
> 
> Hi,
> 
> I haven't checked the code, but I think that WriteOnly + seek(file.size()) is 
> equal to Append, so this should be just fine.
> 

It's not.
Try this:

#include <QFile>

int main(int argc, char **argv)
{
  QString fileName("/tmp/testfile");

  QFile file( fileName );
  file.open( QIODevice::WriteOnly );
  file.seek( file.size() );
  file.write( "\n" );

  return 0;
}

-- 
Best regards/Schöne Grüße

Martin
A: Because it breaks the logical sequence of discussion
Q: Why is top posting bad?

()  ascii ribbon campaign - against html e-mail 
/\  www.asciiribbon.org   - against proprietary attachments

Geschenkideen, Accessoires, Seifen, Kulinarisches: www.bibibest.at
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/



More information about the kde-pim mailing list