From 76c1a05f2b7389b9ca01d8af125382fc0a646faa Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 11 Jul 2011 03:24:54 +0200 Subject: some errno and error_message() cleanup * errno was evaluated even though it was in an undefined state * error_message()s written by cmd_writebak() were overwritten by cmd_write() --- tecbuf.c | 2 ++ teccmd.c | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/tecbuf.c b/tecbuf.c index b20966a..8df8b09 100644 --- a/tecbuf.c +++ b/tecbuf.c @@ -1015,6 +1015,7 @@ int status; if(bcount == sizeof(iobuf)){ status = write(chan,iobuf,sizeof(iobuf)); if(status != sizeof(iobuf)){ + /* NOTE: status *should* be -1, errno *should* be set */ return(FAIL); }/* End IF */ bcount = 0; @@ -1037,6 +1038,7 @@ int status; if(bcount > 0){ status = write(chan,iobuf,(unsigned)bcount); if(status != bcount){ + /* NOTE: status *should* be -1, errno *should* be set */ return(FAIL); }/* End IF */ }/* End IF */ diff --git a/teccmd.c b/teccmd.c index 58d8628..63aed29 100644 --- a/teccmd.c +++ b/teccmd.c @@ -1113,9 +1113,7 @@ int status; if(status == SUCCESS) hbp->isbackedup = YES; if(status == FAIL && errno != EEXIST){ - sprintf(tmp_message,"?Error opening <%s>: %s", - filename,error_text(errno)); - error_message(tmp_message); + /* NOTE: cmd_writebak has already written the error_message */ close(fi); return(FAIL); }/* End IF */ @@ -1133,9 +1131,7 @@ int status; #endif if(status == SUCCESS) hbp->isbackedup = YES; if(status == FAIL){ - sprintf(tmp_message,"?Error opening <%s>: %s", - filename,error_text(errno)); - error_message(tmp_message); + /* NOTE: cmd_writebak has already written the error_message */ close(fi); return(FAIL); }/* End IF */ @@ -1165,15 +1161,16 @@ int status; status = buff_write(hbp,fi,0,hbp->zee); - close(fi); - if(status == FAIL){ sprintf(tmp_message,"?Error writing <%s>: %s", filename,error_text(errno)); error_message(tmp_message); + close(fi); return(FAIL); }/* End IF */ + close(fi); + hbp->ismodified = NO; if(hbp == curbuf){ screen_label_line(hbp,"",LABEL_C_MODIFIED); @@ -1215,6 +1212,7 @@ register int status; sprintf(tmp_message,"?Error creating subdirectory <%s>: %s", pathname,error_text(errno)); error_message(tmp_message); + errno = 0; return(FAIL); }/* End IF */ }/* End IF */ @@ -1231,11 +1229,13 @@ register int status; if(fo < 0){ if(errno == EEXIST){ chmod(tmp_filename,0444); + errno = EEXIST; return(FAIL); }/* End IF */ sprintf(tmp_message,"?Error opening <%s>: %s", tmp_filename,error_text(errno)); error_message(tmp_message); + errno = 0; return(FAIL); }/* End IF */ @@ -1246,6 +1246,7 @@ register int status; input_filename,error_text(errno)); error_message(tmp_message); close(fo); + errno = 0; return(FAIL); }/* End IF */ @@ -1255,6 +1256,7 @@ register int status; tmp_filename,error_text(errno)); error_message(tmp_message); close(fo); + errno = 0; return(FAIL); }/* End IF */ -- cgit v1.2.3