mirror of https://github.com/schoebel/mars
light: fix symlink deletion
This commit is contained in:
parent
ca07c9a763
commit
30f97cd23f
|
@ -3487,7 +3487,7 @@ static int prepare_delete(void *buf, struct mars_dent *dent)
|
||||||
MARS_DBG("target '%s' deleted and marked for removal\n", dent->new_link);
|
MARS_DBG("target '%s' deleted and marked for removal\n", dent->new_link);
|
||||||
} else {
|
} else {
|
||||||
MARS_DBG("target '%s' does no longer exist\n", dent->new_link);
|
MARS_DBG("target '%s' does no longer exist\n", dent->new_link);
|
||||||
if (dent->d_serial < global->deleted_border) {
|
if (dent->d_serial <= global->deleted_border) {
|
||||||
MARS_DBG("removing deletion symlink '%s'\n", dent->d_path);
|
MARS_DBG("removing deletion symlink '%s'\n", dent->d_path);
|
||||||
dent->d_killme = true;
|
dent->d_killme = true;
|
||||||
mars_unlink(dent->d_path);
|
mars_unlink(dent->d_path);
|
||||||
|
|
|
@ -860,10 +860,19 @@ sub _create_delete {
|
||||||
my ($target) = @_;
|
my ($target) = @_;
|
||||||
my $nr = 0;
|
my $nr = 0;
|
||||||
my @paths = glob("$mars/todo-global/delete-*");
|
my @paths = glob("$mars/todo-global/delete-*");
|
||||||
if (@paths) {
|
foreach my $path (@paths) {
|
||||||
my $last = pop(@paths);
|
$path =~ m/-([0-9]+)/;
|
||||||
$nr = $last;
|
if (defined($1) && $1 > $nr) {
|
||||||
$nr =~ s/^.*delete-([0-9]+)$/$1/;
|
$nr = $1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
my @paths2 = glob("$mars/todo-global/deleted-*");
|
||||||
|
foreach my $path (@paths2) {
|
||||||
|
my $link = get_link($path, 1);
|
||||||
|
$link =~ m/([0-9]+)/;
|
||||||
|
if (defined($1) && $1 > $nr) {
|
||||||
|
$nr = $1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
my $new = sprintf("$mars/todo-global/delete-%09d", $nr + 1);
|
my $new = sprintf("$mars/todo-global/delete-%09d", $nr + 1);
|
||||||
lprint "create symlink $new -> $target\n";
|
lprint "create symlink $new -> $target\n";
|
||||||
|
|
Loading…
Reference in New Issue