properly handle the fate of the directive file
This commit is contained in:
@ -91,8 +91,10 @@ Vimdir will terminate at the first sign of an error,
|
|||||||
but it has no way to roll-back your filesystem,
|
but it has no way to roll-back your filesystem,
|
||||||
so be careful.
|
so be careful.
|
||||||
|
|
||||||
|
If Vimdir fails, the directive file is preserved and its path is returned to the user.
|
||||||
|
|
||||||
You will not be able to manage files which have tab or newline characters in their names.
|
You will not be able to manage files which have tab or newline characters in their names.
|
||||||
If you have aforementioned files, please seek the help of a specialist.
|
If you have aforementioned files, please seek the help of a specialist.
|
||||||
|
|
||||||
The first character of the permission string is simply in formative,
|
The first character of the permission string is simply informative,
|
||||||
its (changed) value is ignored.
|
its (changed) value is ignored.
|
||||||
|
@ -14,3 +14,4 @@
|
|||||||
- [X] use `${VIMDIREDITOR}`
|
- [X] use `${VIMDIREDITOR}`
|
||||||
- [ ] dry and moist tests
|
- [ ] dry and moist tests
|
||||||
- [ ] stdin / no order
|
- [ ] stdin / no order
|
||||||
|
- [X] remove tempfile
|
||||||
|
@ -52,11 +52,6 @@ int edit(const char * filename) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clean_up(void) {
|
|
||||||
free(folder);
|
|
||||||
deinit_directive_c();
|
|
||||||
}
|
|
||||||
|
|
||||||
signed main(int argc, char * * argv) {
|
signed main(int argc, char * * argv) {
|
||||||
#define CHECK(x) do { \
|
#define CHECK(x) do { \
|
||||||
if ((r = x)) { \
|
if ((r = x)) { \
|
||||||
@ -99,7 +94,13 @@ signed main(int argc, char * * argv) {
|
|||||||
if (tmpfile) {
|
if (tmpfile) {
|
||||||
fclose(tmpfile);
|
fclose(tmpfile);
|
||||||
}
|
}
|
||||||
clean_up();
|
if (!r) {
|
||||||
|
unlink(tmpfile_name);
|
||||||
|
} else {
|
||||||
|
notice("the location of the preserved directive file is '%s'", tmpfile_name);
|
||||||
|
}
|
||||||
|
free(folder);
|
||||||
|
deinit_directive_c();
|
||||||
#undef CHECK
|
#undef CHECK
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
Reference in New Issue
Block a user