Browse Source

Fix inifinite loop while parsing subdirs.

Improved clarity of the original while loop.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/3/head
Slávek Banko 8 months ago
parent
commit
82824eab47
Signed by: Slávek Banko <slavek.banko@axis.cz> GPG Key ID: 608F5293A04BE668
2 changed files with 13 additions and 7 deletions
  1. 5
    3
      krename/batchrenamer.cpp
  2. 8
    4
      krename/krenameimpl.cpp

+ 5
- 3
krename/batchrenamer.cpp View File

@@ -839,8 +839,11 @@ void BatchRenamer::parseSubdirs( data* f )

// create the missing subdir now
int i = 0;
TQString d = "";
while (!(d = dirs.section("/", i, i, TQString::SectionSkipEmpty)).isEmpty()) { // asignment here!
TQString d = TQString::null;
for (d = dirs.section("/", i, i, TQString::SectionSkipEmpty);
!d.isEmpty();
i++, d = dirs.section("/", i, i, TQString::SectionSkipEmpty))
{
KURL url = f->dst.url;
// it is important to unescape here
// to support dirnames containing "&" or
@@ -852,7 +855,6 @@ void BatchRenamer::parseSubdirs( data* f )

f->dst.url.addPath( d );
f->dst.directory.append( d + "/" );
i++;
}
}
}

+ 8
- 4
krename/krenameimpl.cpp View File

@@ -1171,14 +1171,18 @@ bool KRenameImpl::setupBatchRenamer( BatchRenamer* b, bool preview )

int i = 0;
TQString d = "/";
while (!(d += url.section( "/", i, i, TQString::SectionSkipEmpty)).isEmpty()) { // asignment here!
if (!TDEIO::NetAccess::exists(d, false, parent) && !TDEIO::NetAccess::mkdir(d, parent, -1))
TQString ds = TQString::null;
for (ds = url.section("/", i, i, TQString::SectionSkipEmpty);
!ds.isEmpty();
i++, d.append("/"), ds = url.section("/", i, i, TQString::SectionSkipEmpty))
{
d += ds;
if (!TDEIO::NetAccess::exists(d, false, parent) &&
!TDEIO::NetAccess::mkdir(d, parent, -1))
{
tqDebug( "Can't create %s", d.latin1() );
break;
}
d.append( "/" );
i++;
}
}


Loading…
Cancel
Save