|
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 ); |