diff options
Diffstat (limited to 'misc/ctm/files/patch-ctm_ctm.c')
-rw-r--r-- | misc/ctm/files/patch-ctm_ctm.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/misc/ctm/files/patch-ctm_ctm.c b/misc/ctm/files/patch-ctm_ctm.c new file mode 100644 index 000000000000..f586f430c4e2 --- /dev/null +++ b/misc/ctm/files/patch-ctm_ctm.c @@ -0,0 +1,25 @@ +--- ctm/ctm.c.orig 2018-10-27 15:56:22 UTC ++++ ctm/ctm.c +@@ -213,6 +213,22 @@ Proc(char *filename, unsigned applied) + strcat(p,filename); + f = popen(p,"r"); + if(!f) { warn("%s", p); return Exit_Garbage; } ++ } else if(p && !strcmp(p,".bz2")) { ++ p = alloca(20 + strlen(filename)); ++ strcpy(p,"bzcat < "); ++ strcat(p,filename); ++ f = popen(p,"r"); ++ if(!f) { warn("%s", p); return Exit_Garbage; } ++ } else if(p && !strcmp(p,".xz")) { ++ if (system("which -s xz") != 0) { ++ fprintf(stderr, "xz is not found in $PATH. You can install it from ports, or adjust $PATH.\n"); ++ return Exit_Garbage; ++ } ++ p = alloca(20 + strlen(filename)); ++ strcpy(p,"xz -dc < "); ++ strcat(p,filename); ++ f = popen(p,"r"); ++ if(!f) { warn("%s", p); return Exit_Garbage; } + } else { + p = 0; + f = fopen(filename,"r"); |