summaryrefslogtreecommitdiff
path: root/mysys/my_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'mysys/my_write.c')
-rw-r--r--mysys/my_write.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mysys/my_write.c b/mysys/my_write.c
index 5d28e066814..07dbfe8eb40 100644
--- a/mysys/my_write.c
+++ b/mysys/my_write.c
@@ -31,6 +31,8 @@ size_t my_write(int Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
DBUG_PRINT("my",("fd: %d Buffer: 0x%lx Count: %lu MyFlags: %d",
Filedes, (long) Buffer, (ulong) Count, MyFlags));
errors=0; written=0;
+ if (!(MyFlags & (MY_WME | MY_FAE | MY_FNABP)))
+ MyFlags|= my_global_flags;
/* The behavior of write(fd, buf, 0) is not portable */
if (unlikely(!Count))
@@ -81,19 +83,20 @@ size_t my_write(int Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
else
continue; /* Retry */
#endif
+
+ /* Don't give a warning if it's ok that we only write part of the data */
if (MyFlags & (MY_NABP | MY_FNABP))
{
if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
{
- my_error(EE_WRITE, MYF(ME_BELL+ME_WAITTANG),
+ my_error(EE_WRITE, MYF(ME_BELL | ME_WAITTANG | (MyFlags & (ME_JUST_INFO | ME_NOREFRESH))),
my_filename(Filedes),my_errno);
}
DBUG_RETURN(MY_FILE_ERROR); /* Error on read */
}
- else
- break; /* Return bytes written */
+ break; /* Return bytes written */
}
if (MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN(0); /* Want only errors */
+ DBUG_RETURN(0); /* Want only errors */
DBUG_RETURN(writenbytes+written);
} /* my_write */