From kde-commits Wed Sep 21 04:11:31 2016 From: Leslie Zhai Date: Wed, 21 Sep 2016 04:11:31 +0000 To: kde-commits Subject: [k3b/multisession] libk3b/projects: Inquire the ISO filesystem size Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=147443110215024 Git commit b22f60344db146aa6b5136373b0a0b270d5d8ee9 by Leslie Zhai. Committed on 21/09/2016 at 04:09. Pushed by lesliezhai into branch 'multisession'. Inquire the ISO filesystem size Hi Thomas, please review it ;-) CCBUG: 367639 CCMAIL: scdbackup@gmx.net M +16 -3 libk3b/projects/k3bgrowisofswriter.cpp http://commits.kde.org/k3b/b22f60344db146aa6b5136373b0a0b270d5d8ee9 diff --git a/libk3b/projects/k3bgrowisofswriter.cpp b/libk3b/projects/k3bgr= owisofswriter.cpp index f03ef80..20f675f 100644 --- a/libk3b/projects/k3bgrowisofswriter.cpp +++ b/libk3b/projects/k3bgrowisofswriter.cpp @@ -198,13 +198,26 @@ bool K3b::GrowisofsWriter::prepareProcess() s +=3D d->image; = // TODO: KDEBUG-367639 - // wrong alleged_next_session for growisofs! if( d->multiSession && !d->multiSessionInfo.isEmpty() ) { QStringList ms =3D d->multiSessionInfo.split(','); if (ms.size() =3D=3D 2) { if (ms[0] =3D=3D 0 || ms[1] =3D=3D "0") { - qDebug() << "you don't have to specify -C option, growisof= s will construct one for you!"; - d->process << "-use-the-force-luke=3Dspare=3Dnone"; + FILE* fptr =3D NULL; + if (d->image.isEmpty()) + fptr =3D fopen("/dev/fd/0", "r"); + else + fptr =3D fopen(d->image.toStdString().c_str(), "r"); + if (fptr) { + if (fseek(fptr, 32 * 1024 + 80, SEEK_SET) =3D=3D 0) { + char buf[4] =3D { '\0' }; + fread(buf, 1, sizeof(buf), fptr); + d->process << "-C 0," << buf; + } else { + qWarning() << strerror(errno); + } + fclose(fptr); + fptr =3D NULL; + } } else { d->process << "-C" << d->multiSessionInfo; }