aboutsummaryrefslogtreecommitdiffstats
path: root/g10/misc.c
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2003-10-31 05:39:02 +0000
committerDavid Shaw <[email protected]>2003-10-31 05:39:02 +0000
commit869c6bb7e455c91680bad8c2649bcfcdacfc4e7d (patch)
tree02e5d7eaacfbe5dfd6f5485b73c24f0332638877 /g10/misc.c
parent* cipher.h: Add COMPRESS_ALGO_BZIP2. (diff)
downloadgnupg-869c6bb7e455c91680bad8c2649bcfcdacfc4e7d.tar.gz
gnupg-869c6bb7e455c91680bad8c2649bcfcdacfc4e7d.zip
* misc.c (compress_algo_to_string, string_to_compress_algo,
check_compress_algo): Add bzip2. * compress.c (compress_filter): Make static to help force the use of push_compress_filter. Remove default algorithm setting since that is done in push_compress_filter now. * main.h: Use named algorithm. * filter.h, compress.c (push_compress_filter, push_compress_filter2): New. Figure out which is the appropriate compression filter to use, and push it into place. * compress.c (handle_compressed), encode.c (encode_simple, encode_crypt), sign.c (sign_file, sign_symencrypt_file), import.c (read_block), export.c (do_export): Use push_compress_filter instead of pushing the compression filter ourselves. * compress-bz2.c: New. Bzlib versions of the compression filter routines. * Makefile.am: Include compress-bz2.c if bz2lib is available.
Diffstat (limited to 'g10/misc.c')
-rw-r--r--g10/misc.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/g10/misc.c b/g10/misc.c
index 727c49920..49a84d905 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -548,17 +548,23 @@ compress_algo_to_string(int algo)
switch(algo)
{
- case 0:
+ case COMPRESS_ALGO_NONE:
s="Uncompressed";
break;
- case 1:
+ case COMPRESS_ALGO_ZIP:
s="ZIP";
break;
- case 2:
+ case COMPRESS_ALGO_ZLIB:
s="ZLIB";
break;
+
+#ifdef HAVE_BZIP2
+ case COMPRESS_ALGO_BZIP2:
+ s="BZIP2";
+ break;
+#endif
}
return s;
@@ -573,12 +579,20 @@ string_to_compress_algo(const char *string)
return 1;
else if(ascii_strcasecmp(string,"zlib")==0)
return 2;
+#ifdef HAVE_BZIP2
+ else if(ascii_strcasecmp(string,"bzip2")==0)
+ return 3;
+#endif
else if(ascii_strcasecmp(string,"z0")==0)
return 0;
else if(ascii_strcasecmp(string,"z1")==0)
return 1;
else if(ascii_strcasecmp(string,"z2")==0)
return 2;
+#ifdef HAVE_BZIP2
+ else if(ascii_strcasecmp(string,"z3")==0)
+ return 3;
+#endif
else
return -1;
}
@@ -586,8 +600,13 @@ string_to_compress_algo(const char *string)
int
check_compress_algo(int algo)
{
+#ifdef HAVE_BZIP2
+ if(algo>=0 && algo<=3)
+ return 0;
+#else
if(algo>=0 && algo<=2)
return 0;
+#endif
return G10ERR_COMPR_ALGO;
}