Author: stsp
Date: Wed Mar 30 12:49:39 2011
New Revision: 1086936

URL: http://svn.apache.org/viewvc?rev=1086936&view=rev
Log:
* subversion/libsvn_subr/cmdline.c
  (svn_cmdline_fputs, svn_cmdline_fflush): Don't needlessly create an error
   and destroy it. For portability, use apr_get_os_error() instead of
   referencing errno directly.

Suggested by: danielsh
              rhuijben

Modified:
    subversion/trunk/subversion/libsvn_subr/cmdline.c

Modified: subversion/trunk/subversion/libsvn_subr/cmdline.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cmdline.c?rev=1086936&r1=1086935&r2=1086936&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cmdline.c Wed Mar 30 12:49:39 2011
@@ -337,19 +337,14 @@ svn_cmdline_fputs(const char *string, FI
 
   if (fputs(out, stream) == EOF)
     {
-      if (errno)
+      if (apr_get_os_error()) /* is errno on POSIX */
         {
-          err = svn_error_wrap_apr(errno, _("Write error"));
-
           /* ### Issue #3014: Return a specific error for broken pipes,
            * ### with a single element in the error chain. */
-          if (APR_STATUS_IS_EPIPE(err->apr_err))
-            {
-              svn_error_clear(err);
-              return svn_error_create(SVN_ERR_IO_PIPE_WRITE_ERROR, NULL, NULL);
-            }
+          if (APR_STATUS_IS_EPIPE(apr_get_os_error()))
+            return svn_error_create(SVN_ERR_IO_PIPE_WRITE_ERROR, NULL, NULL);
           else
-            return svn_error_return(err);
+            return svn_error_wrap_apr(apr_get_os_error(), _("Write error"));
         }
       else
         return svn_error_create
@@ -366,19 +361,14 @@ svn_cmdline_fflush(FILE *stream)
   errno = 0;
   if (fflush(stream) == EOF)
     {
-      if (errno)
+      if (apr_get_os_error()) /* is errno on POSIX */
         {
-          svn_error_t *err = svn_error_wrap_apr(errno, _("Write error"));
-
           /* ### Issue #3014: Return a specific error for broken pipes,
            * ### with a single element in the error chain. */
-          if (APR_STATUS_IS_EPIPE(err->apr_err))
-            {
-              svn_error_clear(err);
-              return svn_error_create(SVN_ERR_IO_PIPE_WRITE_ERROR, NULL, NULL);
-            }
+          if (APR_STATUS_IS_EPIPE(apr_get_os_error()))
+            return svn_error_create(SVN_ERR_IO_PIPE_WRITE_ERROR, NULL, NULL);
           else
-            return svn_error_return(err);
+            return svn_error_wrap_apr(apr_get_os_error(), _("Write error"));
         }
       else
         return svn_error_create(SVN_ERR_IO_WRITE_ERROR, NULL, NULL);


Reply via email to