00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "typechain/typehandler.hh"
00022 #include "typechain/typechain.hh"
00023 #include "externaltypehandler.hh"
00024
00025 void register_gnu_externals(void (*registerHandler)(TypeHandler* handler)) {
00026
00027
00028 char* gunzip[] = {"gzip", "-d", "-c", 0};
00029
00030 registerHandler( new ExternalTypeHandler("compress", gunzip, 0, "Z"));
00031
00032
00033
00034 char* bunzip[] = {"bzip2", "-d", "-c", 0};
00035 registerHandler( new ExternalTypeHandler("bzip2", bunzip, 0, "bz2"));
00036
00037
00038 char* uudecode[] = {"uudecode", "-o", "/dev/stdout", 0};
00039 registerHandler( new ExternalTypeHandler("uuencoded", uudecode, 0, "uu"));
00040
00041
00042
00043 char* qpdecode[] = {"mimencode", "-d", "-q", 0};
00044 registerHandler( new ExternalTypeHandler("quoted-printable", qpdecode, 0, "qp"));
00045 }
00046
00047 extern "C" void plugin_init(void *registerHandler) {
00048 register_gnu_externals( (void (*) (TypeHandler* handler)) registerHandler);
00049 }