From kde-core-devel Fri Mar 07 13:36:52 2014 From: =?utf-8?q?Burkhard_L=C3=BCck?= Date: Fri, 07 Mar 2014 13:36:52 +0000 To: kde-core-devel Subject: Re: Review Request 116604: Allow directories with . as output for meinproc Message-Id: <20140307133652.2613.52179 () probe ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=139419945706589 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============5385624656573120632==" --===============5385624656573120632== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/116604/#review52347 ----------------------------------------------------------- Ship it! Thanks - Burkhard Lück On March 5, 2014, 1:06 a.m., Luigi Toscano wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/116604/ > ----------------------------------------------------------- > > (Updated March 5, 2014, 1:06 a.m.) > > > Review request for Documentation, KDE Frameworks, kdelibs, and Aleix Pol Gonzalez. > > > Bugs: 246755 > https://bugs.kde.org/show_bug.cgi?id=246755 > > > Repository: kdoctools > > > Description > ------- > > The outputFile parameter is not used by the stylesheets, so don't pass it. If a directory starts with ".", it is interpreted in a wrong way by libxslt with an error like: > ------------------- > XPath error : Invalid expression > /home/kde-devel/.cache5/khelpcenter/help/__home__kde- > devel__kde__share__doc__HTML__en__kioslave__file__index.docbook > ^ > runtime error > Evaluating user parameter outputFile failed > ------------------- > This is an old issue, it was "solved" on windows by not compiling that code, but I suspect that the issue has been in UNIX systems too for a long time. > > Another way to solve the bug is quoting the value of the parameter with '...', replacing: > params.append(qstrdup(parser.value(QStringLiteral("output")).toLocal8Bit().constData())); > > with something like > QString quotedOutput = "'" + parser.value(QStringLiteral("output")) + "'"; > params.append(qstrdup(quotedOutput.toLocal8Bit().constData())); > > but anyway in this case the name of output file is not used, or I can't find any occurrence in the stylesheets. > The stylesheet is applied and the name of the file is used only after to write the generated XML (see tranform() function). > > A similar patch can be applied to kdelibs/kdoctools too (same codepath). > > > Diffs > ----- > > src/meinproc.cpp 95adcea > > Diff: https://git.reviewboard.kde.org/r/116604/diff/ > > > Testing > ------- > > Run meinproc5 (and 4) with -o /something/with/a/.dotdir/myfile.txt (the directory must exist), no error anymore and the file is generated. > > > Thanks, > > Luigi Toscano > > --===============5385624656573120632== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit
This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/116604/

Ship it!

Thanks

- Burkhard Lück


On March 5th, 2014, 1:06 a.m. UTC, Luigi Toscano wrote:

Review request for Documentation, KDE Frameworks, kdelibs, and Aleix Pol Gonzalez.
By Luigi Toscano.

Updated March 5, 2014, 1:06 a.m.

Bugs: 246755
Repository: kdoctools

Description

The outputFile parameter is not used by the stylesheets, so don't pass it. If a directory starts with ".", it is interpreted in a wrong way by libxslt with an error like:
-------------------
XPath error : Invalid expression
/home/kde-devel/.cache5/khelpcenter/help/__home__kde-
devel__kde__share__doc__HTML__en__kioslave__file__index.docbook
                     ^
runtime error
Evaluating user parameter outputFile failed
-------------------
This is an old issue, it was "solved" on windows by not compiling that code, but I suspect that the issue has been in UNIX systems too for a long time.

Another way to solve the bug is quoting the value of the parameter with '...', replacing:
params.append(qstrdup(parser.value(QStringLiteral("output")).toLocal8Bit().constData()));

with something like
QString quotedOutput = "'" + parser.value(QStringLiteral("output")) + "'";
params.append(qstrdup(quotedOutput.toLocal8Bit().constData()));

but anyway in this case the name of output file is not used, or I can't find any occurrence in the stylesheets. 
The stylesheet is applied and the name of the file is used only after to write the generated XML (see tranform() function).

A similar patch can be applied to kdelibs/kdoctools too (same codepath).

Testing

Run meinproc5 (and 4) with -o /something/with/a/.dotdir/myfile.txt (the directory must exist), no error anymore and the file is generated.

Diffs

  • src/meinproc.cpp (95adcea)

View Diff

--===============5385624656573120632==--