mirror of
https://github.com/schoebel/mars
synced 2025-03-05 21:07:35 +00:00
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);
|
||||
} else {
|
||||
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);
|
||||
dent->d_killme = true;
|
||||
mars_unlink(dent->d_path);
|
||||
|
@ -860,10 +860,19 @@ sub _create_delete {
|
||||
my ($target) = @_;
|
||||
my $nr = 0;
|
||||
my @paths = glob("$mars/todo-global/delete-*");
|
||||
if (@paths) {
|
||||
my $last = pop(@paths);
|
||||
$nr = $last;
|
||||
$nr =~ s/^.*delete-([0-9]+)$/$1/;
|
||||
foreach my $path (@paths) {
|
||||
$path =~ m/-([0-9]+)/;
|
||||
if (defined($1) && $1 > $nr) {
|
||||
$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);
|
||||
lprint "create symlink $new -> $target\n";
|
||||
|
Loading…
Reference in New Issue
Block a user