Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 51313 Details for
Bug 82192
Patch for bzip2 progress indicator (-p option)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for bzip2 -p against version 1.0.2
bzip2-1.0.2.diff (text/plain), 6.13 KB, created by
Adam
on 2005-02-15 19:09:26 UTC
(
hide
)
Description:
Patch for bzip2 -p against version 1.0.2
Filename:
MIME Type:
Creator:
Adam
Created:
2005-02-15 19:09:26 UTC
Size:
6.13 KB
patch
obsolete
>diff -uNr bzip2-1.0.2.org/bzip2.1 bzip2-1.0.2/bzip2.1 >--- bzip2-1.0.2.org/bzip2.1 Thu Jan 3 00:14:36 2002 >+++ bzip2-1.0.2/bzip2.1 Mon Jan 20 19:57:40 2003 >@@ -235,6 +235,10 @@ > Suppress non-essential warning messages. Messages pertaining to > I/O errors and other critical events will not be suppressed. > .TP >+.B \-p --show-progress >+Show percentage of input-file done and while compressing show the percentage >+of the original file the new file is. >+.TP > .B \-v --verbose > Verbose mode -- show the compression ratio for each file processed. > Further \-v's increase the verbosity level, spewing out lots of >diff -uNr bzip2-1.0.2.org/bzip2.c bzip2-1.0.2/bzip2.c >--- bzip2-1.0.2.org/bzip2.c Fri Jan 25 02:38:36 2002 >+++ bzip2-1.0.2/bzip2.c Mon Jan 20 19:55:29 2003 >@@ -145,6 +145,7 @@ > #include <signal.h> > #include <math.h> > #include <errno.h> >+#include <time.h> > #include <ctype.h> > #include "bzlib.h" > >@@ -301,6 +302,7 @@ > Char progNameReally[FILE_NAME_LEN]; > FILE *outputHandleJustInCase; > Int32 workFactor; >+Char showProgress; > > static void panic ( Char* ) NORETURN; > static void ioError ( void ) NORETURN; >@@ -425,6 +427,12 @@ > UInt32 nbytes_in_lo32, nbytes_in_hi32; > UInt32 nbytes_out_lo32, nbytes_out_hi32; > Int32 bzerr, bzerr_dummy, ret; >+ double fileSize = 0; /* initialized to make the compiler stop crying */ >+ /* double because big files might otherwhise give >+ * overflows. not long long since not all compilers >+ * support that one >+ */ >+ time_t startTime, currentTime; > > SET_BINARY_MODE(stream); > SET_BINARY_MODE(zStream); >@@ -432,12 +440,21 @@ > if (ferror(stream)) goto errhandler_io; > if (ferror(zStream)) goto errhandler_io; > >+ if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) { >+ (void)fseek(stream, 0, SEEK_END); >+ fileSize = (double)ftell(stream); >+ rewind(stream); >+ if (verbosity >= 1) >+ fprintf(stderr, "Input-file size: %ld\n", (long)fileSize); >+ } >+ > bzf = BZ2_bzWriteOpen ( &bzerr, zStream, > blockSize100k, verbosity, workFactor ); > if (bzerr != BZ_OK) goto errhandler; > > if (verbosity >= 2) fprintf ( stderr, "\n" ); > >+ time(&startTime); > while (True) { > > if (myfeof(stream)) break; >@@ -446,13 +463,32 @@ > if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf ); > if (bzerr != BZ_OK) goto errhandler; > >+ if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) >+ { >+ time(¤tTime); >+ >+ if ((currentTime - startTime) > 1) { /* show progress every 2 seconds */ >+ double curInPos = (double)ftell(stream); >+ double curOutPos = (double)ftell(zStream); >+ >+ startTime = currentTime; >+ >+ fprintf(stderr, "%.2f%% done", (curInPos * 100.0) / fileSize); >+ if (srcMode == SM_F2F) >+ { >+ fprintf(stderr, ", new size: %.2f%%", (curOutPos * 100.0) / curInPos); >+ } >+ >+ fprintf(stderr, " \r"); >+ } >+ } > } > > BZ2_bzWriteClose64 ( &bzerr, bzf, 0, > &nbytes_in_lo32, &nbytes_in_hi32, > &nbytes_out_lo32, &nbytes_out_hi32 ); > if (bzerr != BZ_OK) goto errhandler; >- >+ > if (ferror(zStream)) goto errhandler_io; > ret = fflush ( zStream ); > if (ret == EOF) goto errhandler_io; >@@ -526,6 +562,8 @@ > UChar unused[BZ_MAX_UNUSED]; > Int32 nUnused; > UChar* unusedTmp; >+ double fileSize = 0; /* initialized to make the compiler stop crying */ >+ time_t startTime, currentTime; > > nUnused = 0; > streamNo = 0; >@@ -533,9 +571,19 @@ > SET_BINARY_MODE(stream); > SET_BINARY_MODE(zStream); > >+ if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) { >+ long dummy = ftell(zStream); >+ (void)fseek(zStream, 0, SEEK_END); >+ fileSize = (double)ftell(zStream); >+ (void)fseek(zStream, dummy, SEEK_SET); >+ if (verbosity >= 1) >+ fprintf(stderr, "Input-file size: %ld\n", (long)fileSize); >+ } >+ > if (ferror(stream)) goto errhandler_io; > if (ferror(zStream)) goto errhandler_io; > >+ time(&startTime); > while (True) { > > bzf = BZ2_bzReadOpen ( >@@ -551,6 +599,17 @@ > if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0) > fwrite ( obuf, sizeof(UChar), nread, stream ); > if (ferror(stream)) goto errhandler_io; >+ >+ if ((srcMode == SM_F2F || srcMode == SM_F2O) && showProgress == True) { >+ time(¤tTime); >+ if ((currentTime - startTime) >= 2) >+ { >+ double curInPos = (double)ftell(zStream); >+ startTime = currentTime; >+ >+ fprintf(stderr, "%.2f%% done\r", (curInPos * 100.0) / fileSize); >+ } >+ } > } > if (bzerr != BZ_STREAM_END) goto errhandler; > >@@ -1872,6 +1931,7 @@ > deleteOutputOnInterrupt = False; > exitValue = 0; > i = j = 0; /* avoid bogus warning from egcs-1.1.X */ >+ showProgress = False; > > /*-- Set up signal handlers for mem access errors --*/ > signal (SIGSEGV, mySIGSEGVorSIGBUScatcher); >@@ -1949,6 +2009,7 @@ > case 'k': keepInputFiles = True; break; > case 's': smallMode = True; break; > case 'q': noisy = False; break; >+ case 'p': showProgress = True; break; > case '1': blockSize100k = 1; break; > case '2': blockSize100k = 2; break; > case '3': blockSize100k = 3; break; >@@ -1985,6 +2046,7 @@ > if (ISFLAG("--keep")) keepInputFiles = True; else > if (ISFLAG("--small")) smallMode = True; else > if (ISFLAG("--quiet")) noisy = False; else >+ if (ISFLAG("--show-progress")) showProgress = True; else > if (ISFLAG("--version")) license(); else > if (ISFLAG("--license")) license(); else > if (ISFLAG("--exponential")) workFactor = 1; else
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 82192
: 51313 |
213420