Index: pcbway.c =================================================================== --- pcbway.c (revision 36835) +++ pcbway.c (revision 36836) @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -351,8 +352,36 @@ free(form); } +static void rm_files(rnd_hidlib_t *hidlib, const char *dir) +{ + DIR *d = rnd_opendir(hidlib, dir); + struct dirent *de; + gds_t tmp = {0}; + int saved; + if (d == NULL) + return; + gds_append_str(&tmp, dir); + gds_append(&tmp, '/'); + saved = tmp.used; + while((de = rnd_readdir(d)) != NULL) { + int r; + + if (de->d_name[0] == '.') + continue; + + tmp.used = saved; + gds_append_str(&tmp, de->d_name); + r = rnd_unlink(hidlib, tmp.array); + rnd_trace("unlink: '%s' %d\n", tmp.array, r); + } + + rnd_closedir(d); + gds_uninit(&tmp); +} + + static void pcbway_order_cb(void *hid_ctx, void *caller_data, rnd_hid_attribute_t *attr) { rnd_hidlib_t *hidlib = &PCB->hidlib; @@ -511,7 +540,8 @@ if (!CFG.debug) { rnd_tempfile_unlink(postfile); rnd_tempfile_unlink(tarname); -TODO("remove the gerber files"); + rm_files(hidlib, gerbdir); + rnd_unlink(hidlib, gerbdir); } }