My patch that helps when expanding the OpenBSD-cvs-x11 deltas. Sometimes the files extracted are read-only. Rather than abort out in a big mess, this patch checks for unwritable files, and chmods them if you specify the -F (force) flag. - d@ --- ctm/ctm/ctm_pass2.c.orig Fri Feb 18 16:12:35 2000 +++ ctm/ctm/ctm_pass2.c Fri Feb 18 16:40:02 2000 @@ -114,6 +114,11 @@ ret |= Exit_NotOK; break; } + if (-1 == access(name, W_OK)) { + fprintf(stderr, " %s: %s not writable.\n", + sp->Key, name); + ret |= Exit_Forcible; + } if (SetTime && getuid() && (getuid() != st.st_uid)) { fprintf(stderr, " %s: %s not mine, cannot set time.\n", --- ctm/ctm/ctm_pass3.c.orig Fri Feb 18 16:12:30 2000 +++ ctm/ctm/ctm_pass3.c Fri Feb 18 16:42:36 2000 @@ -176,6 +176,26 @@ if (Verbose > 0) fprintf(stderr,"> %s %s\n",sp->Key,name); + if ((strcmp(sp->Key, "FS") == 0 || + strcmp(sp->Key, "FN") == 0 || + strcmp(sp->Key, "FE") == 0) && -1 == access(name, W_OK)) { + if (Verbose > 1) + fprintf(stderr, " %s: chmod u+w %s\n", + sp->Key, name); + if (!Force) { + warn("%s", name); + WRONG + } + if (-1 == stat(name, &st)) { + warn("stat: %s", name); + WRONG + } + if (-1 == chmod(name, st.st_mode | S_IWUSR)) { + warn("chmod: %s", name); + WRONG + } + } + if(!strcmp(sp->Key,"FM") || !strcmp(sp->Key, "FS")) { i = open(name,O_WRONLY|O_CREAT|O_TRUNC,0666); if(i < 0) {