From 375cec2c5e08ddde35579d4336a9d1946d1d122b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 3 Feb 2006 15:22:06 +0000 Subject: [PATCH] added error checks around, hope it can help git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16217 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/stylededit/StyledEditView.cpp | 27 ++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/apps/stylededit/StyledEditView.cpp b/src/apps/stylededit/StyledEditView.cpp index d5c83302ee..02fa5434aa 100644 --- a/src/apps/stylededit/StyledEditView.cpp +++ b/src/apps/stylededit/StyledEditView.cpp @@ -160,21 +160,24 @@ status_t StyledEditView::WriteStyledEditFile(BFile * file) { status_t result = B_OK; + ssize_t bytes = 0; result = BTranslationUtils::WriteStyledEditFile(this,file); if (result != B_OK) { return result; } if (fEncoding == 0) { int32 encoding = 65535; - file->WriteAttr("be:encoding",B_INT32_TYPE,0,&encoding,sizeof(encoding)); + bytes = file->WriteAttr("be:encoding",B_INT32_TYPE,0,&encoding,sizeof(encoding)); + if (bytes < 0) + return bytes; } else { result = file->SetSize(0); if (result != B_OK) { return result; } - result = file->Seek(0,SEEK_SET); - if (result != B_OK) { - return result; + bytes = file->Seek(0, SEEK_SET); + if (bytes != 0) { + return bytes; } const BCharacterSet * cs = BCharacterSetRoster::GetCharacterSetByFontID(fEncoding); if (cs != 0) { @@ -190,18 +193,26 @@ StyledEditView::WriteStyledEditFile(BFile * file) if (result != B_OK) { return result; } - file->Write(buffer,written); + bytes = file->Write(buffer,written); + if (bytes < 0) + return bytes; sourceLength -= length; outText += length; } - file->WriteAttr("be:encoding",B_INT32_TYPE,0,&id,sizeof(id)); + bytes = file->WriteAttr("be:encoding",B_INT32_TYPE,0,&id,sizeof(id)); + if (bytes < 0) + return bytes; } } alignment align = Alignment(); - file->WriteAttr("alignment",B_INT32_TYPE,0,&align,sizeof(align)); + bytes = file->WriteAttr("alignment",B_INT32_TYPE,0,&align,sizeof(align)); + if (bytes < 0) + return bytes; bool wrap = DoesWordWrap(); - file->WriteAttr("wrap",B_BOOL_TYPE,0,&wrap,sizeof(wrap)); + bytes = file->WriteAttr("wrap",B_BOOL_TYPE,0,&wrap,sizeof(wrap)); + if (bytes < 0) + return bytes; return result; }