Home | History | Annotate | Download | only in bzip2
      1 --- bzip2-1.0.5/bzip2.c.orig	2008-11-28 05:47:09.537546000 -0800
      2 +++ bzip2-1.0.5/bzip2.c	2008-11-28 05:50:37.075934000 -0800
      3 @@ -221,6 +221,7 @@
      4  static void    copyFileName ( Char*, Char* );
      5  static void*   myMalloc     ( Int32 );
      6  static void    applySavedFileAttrToOutputFile ( IntNative fd );
      7 +static void    applySavedTimeInfoToOutputFile ( Char *dstName );
      8  
      9  
     10  
     11 @@ -368,6 +369,7 @@
     12     if (zStream != stdout) {
     13        Int32 fd = fileno ( zStream );
     14        if (fd < 0) goto errhandler_io;
     15 +      applySavedTimeInfoToOutputFile ( outName ); 
     16        applySavedFileAttrToOutputFile ( fd );
     17        ret = fclose ( zStream );
     18        outputHandleJustInCase = NULL;
     19 @@ -481,17 +483,18 @@
     20  
     21     closeok:
     22     if (ferror(zStream)) goto errhandler_io;
     23 +   ret = fflush ( stream );
     24 +   if (ret != 0) goto errhandler_io;
     25     if (stream != stdout) {
     26        Int32 fd = fileno ( stream );
     27        if (fd < 0) goto errhandler_io;
     28 +      applySavedTimeInfoToOutputFile ( outName );
     29        applySavedFileAttrToOutputFile ( fd );
     30     }
     31     ret = fclose ( zStream );
     32     if (ret == EOF) goto errhandler_io;
     33  
     34     if (ferror(stream)) goto errhandler_io;
     35 -   ret = fflush ( stream );
     36 -   if (ret != 0) goto errhandler_io;
     37     if (stream != stdout) {
     38        ret = fclose ( stream );
     39        outputHandleJustInCase = NULL;
     40 @@ -1297,7 +1300,6 @@
     41  
     42     /*--- If there was an I/O error, we won't get here. ---*/
     43     if ( srcMode == SM_F2F ) {
     44 -      applySavedTimeInfoToOutputFile ( outName );
     45        deleteOutputOnInterrupt = False;
     46        if ( !keepInputFiles ) {
     47           IntNative retVal = remove ( inName );
     48 @@ -1475,7 +1477,6 @@
     49     /*--- If there was an I/O error, we won't get here. ---*/
     50     if ( magicNumberOK ) {
     51        if ( srcMode == SM_F2F ) {
     52 -         applySavedTimeInfoToOutputFile ( outName );
     53           deleteOutputOnInterrupt = False;
     54           if ( !keepInputFiles ) {
     55              IntNative retVal = remove ( inName );
     56