| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
CreateTexture will fail on zero dimensions, so just release old target
and reset dimensions when resetSwapChain is called with zero size area.
Task-number: QTBUG-27994
Change-Id: I1e500c4fd4b92f7d9ea2a49a44f3fb930b575cd1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
|
|
|
|
| |
Change-Id: I00c569787943a87dda60786b179af1f55a94ea68
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resizing a window larger results in the newly exposed region being
invalidated but the old region is treated as valid. This can result in
the old region no longer updating. This has been observed on Windows 7
64-bit with Aero theme using NVIDIA GeForce GTS 250 and driver version
301.42. Invalidate the entire client window area when resetting the
swap chain so that it updates properly.
Upstream patch: https://codereview.appspot.com/6812076/
Task-number: QTBUG-27822
Change-Id: I0f5d2004576019458baee74c35e52f69b893a219
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This has (and still does) caused lots of grief since
it means accessibility was often unintendedly not built.
Instead copy the lib-at-spi-2 header file needed for the
type enum and build it by default again.
Change-Id: I1ba26f20edff1aeb444c96a37928f36230ac7576
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the xcb- libraries we depend upon are not (yet) common across
distributions. This is problematic for binaries that should be working
on different distributions. The patch mitigates this by:
Adding the files from
libxcb-proto (version 0.1.6), compiled with libxcb-1.5
xcb-util (version 0.3.9)
xcb-util-image (version 0.3.9)
xcb-util-keysyms (version 0.3.9)
xcb-util-renderutil (version 0.3.8)
xcb-util-wm (version 0.3.9)
from xcb.freedesktop.org/dist to src/3rdparty/xcb.
Adding a configure option '-qt-xcb' to use the sources instead of
linking to the respective runtime libraries.
Task-number: QTBUG-27803
Change-Id: I6ea87daa382871b2b9072a601511523fa0b9f44b
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
The library is not present on Windows XP, for which /DELAYLOAD
is used in ANGLE. However, as this causes problems with MinGW,
use dynamic resolution.
Task-number: QTBUG-27741
Change-Id: Ie4a2706d57b751fbb6fc6f3e76ef2e8ddac3b892
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ANGLE is a component that implements the OpenGL ES 2.0 API on
top of DirectX 9. See the following for more info:
http://code.google.com/p/angleproject/
ANGLE is now the default configuration on Windows. If you
want to use desktop OpenGL, you should build Qt with the
following configure options:
-opengl desktop
To configure Qt to use another OpenGL ES 2 implementation,
you should use:
-opengl es2 -no-angle
Task-number: QTBUG-24207
Change-Id: Iefcbeaa37ed920f431729749ab8333b248fe5134
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
that will be returned by boundaryReasons() when the boundary finder
is at the line end position (CR, LF, NewLine Function, End of Text, etc.).
The MandatoryBreak flag, if set, means the text should be wrapped at a given position.
Change-Id: I32d4f570935d2e015bfc5f18915396a15f009fde
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
These files were used by WebKit for Windows CE, but they are not needed
anymore since https://bugs.webkit.org/show_bug.cgi?id=93446
Change-Id: Ic6808bf177ff18c668a5a281687a5b7842786ef0
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A simple heuristic is used to detect the word beginning and ending by
looking at the word break property value of surrounding characters.
This behaves better than the white-spaces based implementation used before
and makes it possible to tailor the default algorithm for complex scripts.
BIG FAT WARNING: The QCharAttributes buffer now has to have a length
of string length + 1 for the flags at end of text.
Task-Id: QTBUG-6498
Change-Id: I5589b191ffde6a50d2af0c14a00430d3852c67b4
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce QCharAttributes and use it instead of HB_CharAttributes everywhere in Qt
(in Harfbuzz, the HB_CharAttributes is only used in the text segmentation algorithm
which has been moved from HB to Qt (well, most of it)).
Rename some members to better reflect their meaning,
remember to keep HB_CharAttributes in sync with QCharAttributes.
Also replace HB_ScriptItem with a (temporary) QUnicodeTools::ScriptItem struct
that will be replaced with a more efficient/friendly solution a bit later.
The soft hyphen and the mandatory break detection has been factored out
of the default text breaking algorithm to a higher level in order to refactor
the QCharAttributes bitfields and to optimize the implementation for the common case.
Change-Id: Ieb365623ae954430f1c8b2dfcd65c82973143eec
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
| |
Change-Id: I411cab0d92a8cad6b4f3676afe5cee050c4b789b
Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
|
|
|
| |
Remove `DEFINES += QT_NO_OPENTYPE` since there are no QT_NO_OPENTYPE guards
and I'm not sure defining NO_OPENTYPE won't break some things.
Change-Id: I7b36d3f200408aee99db73c56baa9b4a21cb54f9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
| |
Change-Id: I362c80081ac4e4d0b9126385bab5a77826810926
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Fix quadradic behaviour regression introduced in commit
2e6b8b4734710377e25c199e3ff7865628e7d723
Task-number: QTBUG-22275
Change-Id: I343452c6b1cd0e571770e5dadd3cd6fd3167c96d
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
| |
Change-Id: I82fde11436261dab51393b35dfbf2a753df58ec9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Windows CE does not have support for GetGlyphOutline.
So addGlyphToPath will not work. QML uses it for their
distance field rendering. One option to bypass this issue
is to use freetype as rendering backend.
Change-Id: I965254344945cbdad771a5d505fb61c1cc2087df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Spotted by ICC:
qfreelist_p.h(127): warning #271: trailing comma is nonstandard
BlockCount = 4,
^
Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ICC complains like so:
harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set
return error;
^
However, line 95 is never executed because the condition on line 94 is
always false. That's why it's a false positive. The same construct
happens in the other two places.
Still, silence the warning.
Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
|
|
|
|
|
|
|
|
| |
This is a plugin that bridges the QAccessible world
to AT-SPI 2 on Linux.
Change-Id: I7af22621ee6a3cefc723b137b7f227a611cf6641
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PCRE's JIT has several paths that end in a #error under compilers that
don't #define __GNUC__.
This is because either
- those platforms were unavailable to PCRE devs so they were not tested;
- the #ifdef guards inline assembly fragments in GCC (AT&T) syntax;
- the #ifdef guards functions present f.i. in ARM's EABI and unavailable
f.i. under WinCE.
This commit disables PCRE's JIT under ARM and MIPS unless __GCC__ is
defined. The MIPS #define from MSVC (_M_MRX000) is also dropped.
Change-Id: I59f959c321413845ffbdf1ac32740b400422e0ee
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
|
|
|
|
|
| |
Change-Id: If55952b4aa9b95ff9311c1b7338b77af62a5c503
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Qt is being compiled and is using the bundled zlib, QtCore needs
to export the zlib symbols, since zlib is needed in other Qt
libraries as well. That gives a danger of a potentially disastrous
symbol clash if the user later on links with both Qt and an external
zlib (ref. e.g. QTBUG-15071).
This commit enables a zlib compilation flag that causes all zlib
symbols to be redefined with a prefix. Hence, they will not clash
with a standard zlib.
A minor drawback is that zlib.h will now have #defines for a few
semi-normal identifiers. Hence, a couple of more changes are done:
In the private qzip code, the identifer crc32 had to be renamed.
QHttpNetworkReplyPrivate needed no change, but as a defensive measure
the #include <zlib.h> is moved from the _p.h file to the .cpp file,
to avoid surprising compilation errors later in code that include
that header.
This commit does not in itself solve the issue of how to let Qt
libraries outside of qtbase use the same bundled zlib, but it is
a prerequisite for that.
Change-Id: If84105901a8c90d35009faffe660c85a6bd2fee5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to keep them consistent with positions for all other flags.
This changes the internal behavior so that attributes[0].lineBreakType now means
"break opportunity at start of the text (before the first character in the string)"
and is always assigned with HB_NoBreak to conform rule LB2
(see http://www.unicode.org/reports/tr14/#LB2).
The current implementation is based on the sample implementation from tr14
that aimed to be as simple as possible rather than to be optimal.
From now, we can use pieces of the attributes array "as is"
without having to adjust some positions. Or we can analize some long text
by chunks (e.g. paragraph by paragraph) and consume less memory.
This introduces a minor overhead that will be eliminated shortly.
Change-Id: Ic873a05a9d5203b1c3d5aff2e4445a3f034c4bd2
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Some names were fixed to meet their values in the Unicode data files (e.g. Zain -> Zhain);
Some other names were added as a value alias (Nya -> Noon) or deprecated
but retained as a value alias for BC (HamzaOnHehGoal -> TehMarbutaGoal);
Newly assigned Arabic characters were mapped into respective joining types and classes)
Change-Id: Ic4b4a6baf70f51fb5936f74fe9a173b8790dda11
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a work-around for a feature missing in Harfbuzz that
can make a text run that contains a surrogate and a ligature
crash. This will potentially cause the ligatures to break up
if you combine them with a surrogate, causing visual changes
to the text, but the scripts that require GSUB should not be
affected by this, since they will not use surrogates. Still,
it's not a permanent fix, but will serve as a bandaid for the
crash until the underlying problem has been fixed.
Task-number: QTBUG-22275
Change-Id: I90c37fba76bc7d1f369f3afddd1bd0dc306f5750
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MinGW installations on case-sensitive filesystems expect
lowercase names of include-libraries and (usually) include
files.
When crosscompiling on Debian 6 (targeting MS Windows) linking
fails because mingw is looking for non-existent include-libraries.
Using lowercase names solves this.
Change-Id: Id3454f4ed8ba42b6ea93d65d9c0ce567db6712df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
| |
Change-Id: I3bcbde7bbb307fb27c36709c33c8ff5cd09ab7f8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
there are several reasons to do this:
* text breaking is not a shaper's job;
* since the text breaking rules are bound to a specific Unicode version,
updating Qt's internal unicode data would require updating the data in HB as well;
* makes porting to HurfBuzz-NG some easier
Change-Id: I0bbf8e8a343bc074696f4ddf2ae4e7fa32a61629
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As in other shapers, we need to make sure that the default
attributes of the first character is set before doing the
greek-specific composition (which will set the attributes
for characters > 0). The effect of this would be that
the clusterStart did not default to true in the start of
the string, and we would get an unexpected situation
in addNextCluster() in QTextLayout which would cause an assert.
The example in the task, which combines a greek polytonic
(dasia-oxia: u1FDE) with a regular combining diacritic
(asterisk under: u0359), is not a correct string, but should
not cause an assert.
Task-number: QTBUG-22864
Change-Id: Ieaff3cccbd10abc634e95e9a79dcde4c48504a3c
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
| |
Enable SQLITE_ENABLE_FTS3 SQLITE_ENABLE_FTS3_PARENTHESIS SQLITE_ENABLE_RTREE
by default on all platforms. These options were previously enabled in Ubuntu,
Nokia N9 and in some mobile devices.
Change-Id: I5b3d2d9a683916216058ca94ec82957bd8cacdb0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
|
|
|
|
|
|
|
|
|
| |
Android lacks an fdatasync() implementation. Upstream sqlite has also removed
this part of the ifdef.
Change-Id: I656f1b67e8e8880308372a90b100fe9b23f96455
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
HB_OpenTypePosition"
This reverts commit add629d4f16a536fc56d55727195e3247b621a54.
The commit caused crashes when laying out some text (e.g. ordinary
Arabic text) with certain fonts (it triggered the assert in
QTextLayout::addNextCluster()). The regressions will have to be
weeded out before the fix can be recommitted.
Change-Id: Iee457f138367d4cf8fcbd2e518271d8eaa95a62c
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
When compiling Qt for Windows CE the MSVC reported the followin warning:
warning C4005: '_CRT_SECURE_NO_DEPRECATE' : macro redefinition
Fixed by adding ifdef quard for duplicate _CRT_SECURE_NO_DEPRECATE.
Task-number: QTBUG-22512
Change-Id: I8c37ffe6ca275c80a7b7e6b23f39f3ab06b332f1
Reviewed-by: aavit <qt_aavit@ovi.com>
(cherry picked from commit 1a1a8f004824b981865c6239747ff05d8e6f812a)
|
|
|
|
|
|
|
|
|
|
|
| |
WEC7 mkspecs define _CRT_SECURE_NO_DEPRECATE globally. zlib redefined
the same macro without checking if it is already defined. Added #ifdef
guard to zlib when defining _CRT_SECURE_NO_DEPRECATE.
Task-number: QTBUG-22512
Change-Id: I477b24b7bc0ebb4cd8a619b11668eceb0f5064d4
Reviewed-by: aavit <qt_aavit@ovi.com>
(cherry picked from commit a0a970447d63e5c9afdb55d179d671d9c24e9061)
|
|
|
|
|
|
|
|
|
| |
This is the collection of those earlier patches to libpng in Qt that
are still relevant, updated as required. For details, refer to the git
history of the src/3rdparty/libpng directory of Qt 4 and Qt 5/qtbase.
Change-Id: Ia922441024536eec9b8ced8c3c5e4dc941ae152f
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit removes the previous version of the bundled libpng
(1.5.4), as well as all local modifications to it. It adds an
unmodified copy of the official libpng source distribution, except
that various extraneous files have been removed, as usual.
The patches required to build it in Qt will follow in separate
commit(s).
Change-Id: I90149f87fc889c44a3b60b21cdf755020f3a8e39
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
|
|
|
|
|
|
|
|
|
| |
This patch fixes compilation error if there is no
64 bit support in compiler.
Task-number: QTBUG-15395
Change-Id: Ife4afb05491d36af93bf4ad3ba8fa227710655f0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
|
|
|
|
|
|
|
|
|
| |
The QWS powervr plugin ceased to exist with the move to QPA; these headers
are therefore entirely redundant
Change-Id: I28c7baae15df5bb9d7ea3763e3a018e9e1ae1fc6
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|
|
|
|
|
|
| |
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Change-Id: I92de853b57e2e06211193a2b30ac7c308374c961
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
| |
Change-Id: I5a02251565c0c72e8762c0b41cdf5802c7df1938
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to do ACCESS_Frame for each 2 byte frame, otherwise
the position of the cursor in the input stream will not be
updated by enough, and we will read twice as many pairsets.
Depending on the value read for the SecondGlyph in the
broken pairsets, we might get strange kerning results.
Change-Id: I7fb5a850afe0364b3dd50869d5f36fd14d2f4eaf
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After shaping in HB_OpenTypePosition, when we come to calculate the new
logClusters array we have to take into account that the glyphs passed in
are not a 1 to 1 correspondance with the original string, because some
shaping might have already been done. So we must use the old
logClusters values (stored in tmpLogClusters) to map from the glyphs
passed in back to the original string.
This fixes visual word wrapping problems in thai
Change-Id: I384dfa98f0946e9e074728f89542acb2b6b6bc27
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
|
|
| |
madvise is not part of the LSB, use posix_madvise instead
Change-Id: I661e8c5aece5a764a2a9032fcfab49241ab96dd8
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: Ia955ab46dc5037ed1c74e0acc525e98b02552c97
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is pretty much the same fix as in
be0dfa34737a014e7ad060a90c4c24be9998fe13 but for PairPos
format 1 instead of 2.
With very simple GPOS tables we would waste a lot of memory on
caching an uncompressed table, so we now compress it in memory
as well.
Change-Id: I601331b4b83f636dab9e1ac403b343558c15b0de
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
just empty
Considering a subtable to be invalid when it was empty meant that it
returned an error causing all further hinting to be aborted. This means
that we get no hinting in certain cases with certain fonts.
Change-Id: I840c016dc85935b4f2c4373c66a79b4bd8b3a30d
Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
|
|
|
|
|
|
| |
Change-Id: If9a56d5e042c8da9626feab377388e9bfc22b129
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mechanism in fontconfig which determines if a certain character
is available (FcCharSetHasChar()) may give false positives, in which
case we would load and unload those fonts per every char for which
FC gave us a false positive. This was a major performance regression.
Specifically the false positives happened when looking at e.g.
italic variants of certain multilingual fonts, since we only check
the charset of the font family as a whole and not of the specific variant,
which may only support a subset of the chars.
To optimize this, we remove the deletion of the font engines after
loading them, but also wait with loading the opentype tables until
they are actually needed. This means that for the false positives,
we will load the font, but the cached data for each unused font will
be much smaller.
Change-Id: Idfc794401a2080da5946bf65204eb947aeb635ed
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
|