summaryrefslogtreecommitdiff
path: root/writerperfect/qa
AgeCommit message (Collapse)AuthorFilesLines
2020-05-07fix memory leak of xmlDoc objectsNoel Grandin1-13/+4
in unit tests Change-Id: Id16731bbbe2f1b0e3642722d77aba04fc98db4cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93508 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-01improve loplugin:makesharedNoel Grandin2-5/+6
to find places where we are converting stuff to unique_ptr instead of using std::make_shared. As a bonus, this tends to find places where we are using shared_ptr where we can instead be using unique_ptr avoiding the locking overhead. Change-Id: I1b57bbc4a6c766b48bba8e25a55161800e149f62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93207 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-27Make upcasting css::uno::Reference ctor require complete typesStephan Bergmann1-0/+1
The main reason for the "home-grown" UpCast introduced with 904b3d1fceee5827076758ed2a81f80cb73493ca "Up-cast conversion constructor for css::uno::Reference" in 2013 was probably that we could not yet rely on C++11 std::is_base_of back then. A (welcome) side effect was that the derived class could be incomplete. However, specializations of UpCast relying on whether or not T2 is incomplete are obviously an ODR violation if the type is incomplete in some TUs and complete (and derived from T1) in others. And even if UpCast had internal linkage, it would still be brittle that its behavior depends on the completeness of T2 at the point of the template's instantiation, and not necessarily at the point of use. That means we should better base that ctor on std::is_base_of (which we can do now since 39a1edd6fec902ef378acce8af42c4d7fba280d0 "Make css::uno::Reference upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on Clang and GCC if the completeness requirements are not met. This change fixes all the cases where types need to be complete now, plus any resulting loplugin:referencecasting warnings ("the source reference is already a subtype of the destination reference"). Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-03-05Remove some unused includesMiklos Vajna1-1/+0
Change-Id: I808b7e3f6b580ee6f1876aa06038b5741d7ff6a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90001 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-11tdf#42949 Fix IWYU warnings in writerperfect/Gabor Kelemen5-7/+0
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ia1ac2b3d254487f6b4e85b52eead13635d30a5af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88416 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-07test: move component context from subclasses to BootstrapFixtureMiklos Vajna1-2/+0
To avoid duplication. Change-Id: I0ee7c26d5d55bd868ead04c77e7f4ef2582f90e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88138 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-31clang-tidy modernize-concat-nested-namespaceNoel Grandin3-12/+3
Change-Id: Iab35a8b85b3ba1df791c774f40b037f9420a071a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86708 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-28New loplugin:unsignedcompareStephan Bergmann1-1/+2
"Find explicit casts from signed to unsigned integer in comparison against unsigned integer, where the cast is presumably used to avoid warnings about signed vs. unsigned comparisons, and could thus be replaced with o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx) o3tl::make_unsigned requires its argument to be non-negative, and there is a chance that some original code like static_cast<sal_uInt32>(n) >= c used the explicit cast to actually force a (potentially negative) value of sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the cast to avoid a false "signed vs. unsigned comparison" warning in a case where n is known to be non-negative. It appears that restricting this plugin to non- equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=) is a useful heuristic to avoid such false positives. The only remainging false positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast from sal_Int32 to sal_uInt32". But which of course does not mean that there were no further false positivies that I missed. So this commit may accidentally introduce some false hits of the assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan --enable-dbgutil) `make check && make screenshot`. It is by design that o3tl::make_unsigned only accepts signed integer parameter types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in include/oox/helper/helper.hxx is used with both signed and unsigned types, so needs a little oox::detail::make_unsigned helper function for now. (The ultimate fix being to get rid of the macro in the first place.) Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-24loplugin:makeshared in svgio..writerperfectNoel Grandin1-1/+1
Change-Id: I0f8de0f78c7a8fb78d47ee5dfed09019b4eb5288 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87357 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-10use more std::make_sharedNoel Grandin1-1/+1
found using 'git grep', I tried using clang-tidy, but it only successfully found a tiny fraction of these Change-Id: I61c7d85105ff7a911722750e759d6641d578da33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86526 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-25loplugin:returnconstval in writerperfectNoel Grandin1-3/+2
Change-Id: I86e9977438c69c19adafc3743e618321a05e3923 Reviewed-on: https://gerrit.libreoffice.org/78064 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-15loplugin:sequenceloop in writerfilter..xmlhelpNoel Grandin1-1/+1
Change-Id: I7c9c911aa6b051eeab46344f25ea2919605de645 Reviewed-on: https://gerrit.libreoffice.org/77534 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-12Fix typosAndrea Gelmini1-1/+1
Change-Id: I38e23114a257d1baf2a9f36fd8ac0fcf8f3938b3 Reviewed-on: https://gerrit.libreoffice.org/77356 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2019-07-31Improved loplugin:stringconstant (now that GCC 7 supports it): writerperfectStephan Bergmann4-4/+4
Change-Id: Ic6518d6441d81e286e69ea4be11d12c42d61d459 Reviewed-on: https://gerrit.libreoffice.org/76625 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-13Simplify Sequence iterations in writerfilter, writerperfect, xmlhelpArkadiy Illarionov1-9/+8
Use range-based loops or replace with comphelper or STL functions Change-Id: I9113e04d15ad84d0abac087afc627969e8ebc354 Reviewed-on: https://gerrit.libreoffice.org/73867 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-31EPUB export: fix not properly paired openPageSpanMark Hung2-0/+207
Fix the test case converting abi11105.abw to EPUB file. ( the attachment at <https://bugzilla.abisource.com/show_bug.cgi?id=11105#c1> ) soffice.bin: .../sax/source/expatwrap/saxwriter.cxx:1184: virtual void (anonymous namespace)::SAXWriter::endElement(const rtl::OUString &): Assertion `aName == m_pSaxWriterHelper->m_DebugStartedElements.top()' failed. We used to invoke handlePageSpan when starting a paragraph or a table element that has master-page-name defined in the referred style, and invoke closePageSpan when XMLBodyContentContext. Limit the handling of page span to top-level paragraph or tables so that it doesn't messed up in the nested ( paragraph that changed it's page style in a table cell ) case. Change-Id: Ic8637663aaa7506ced9758bd7ccd7233309e8557 Reviewed-on: https://gerrit.libreoffice.org/73214 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-05-13fix wrong SET/QUERY flags passed to uno::ReferenceNoel Grandin2-3/+3
By creating deleted methods for the wrong calls. Avoids the compiler needing to construct a temporary Change-Id: I3b8c648d6bb22d22827bf74f21ea5a2a17fc0f6a Reviewed-on: https://gerrit.libreoffice.org/72103 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-24fix filename of a test file in writerperfectLuboš Luňák1-1/+1
Was broken in d077b19a3f617f5ef. Change-Id: I5f0e0ca7c60f0f09381ee7eebd7d49d5533e07af Reviewed-on: https://gerrit.libreoffice.org/71145 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-04-21upload libmwaw 0.3.15David Tardon3-0/+2
Change-Id: I496204ead6c495c4fee2cee18a5b9d0fd22eb8c0 Reviewed-on: https://gerrit.libreoffice.org/70951 Tested-by: Jenkins Reviewed-by: David Tardon <dtardon@redhat.com>
2019-02-08o3tl::make_unique -> std::make_unique in tools..xmloffGabor Kelemen1-2/+0
Since it is now possible to use C++14, it's time to replace the temporary solution with the standard one Change-Id: Ib3201f865d43f372007cdf381c7e244e9cbeae26 Reviewed-on: https://gerrit.libreoffice.org/67474 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-01-24CppunitTest_writerperfect_epubexport: use CPPUNIT_TEST_FIXTURE()Miklos Vajna1-149/+49
Change-Id: I212301ffbad7dd975c0e16c1c71d471ec064c83f Reviewed-on: https://gerrit.libreoffice.org/66821 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-11-29tdf#42949 Fix IWYU warnings in include/vcl/[i-m]*Gabor Kelemen3-0/+3
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If1b2e04872eb0dd6725802c1709a9085f4cd8c91 Reviewed-on: https://gerrit.libreoffice.org/64141 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-10-24remove more rtl::OUString and OString prefixesNoel Grandin10-77/+68
which seem to have snuck back in since the great rounds of removals. Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1 Reviewed-on: https://gerrit.libreoffice.org/62229 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-20pvs-studio: Possible overflowCaolán McNamara1-1/+1
Change-Id: Ifa213fd6b719683afae9633615f69db894cd9c18 Reviewed-on: https://gerrit.libreoffice.org/62062 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-10-17clang-tidy readability-redundant-smartptr-getNoel Grandin1-1/+1
redundant get() call on smart pointer Change-Id: Icb5a03bbc15e79a30d3d135a507d22914d15c2bd Reviewed-on: https://gerrit.libreoffice.org/61837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-04drop SvMemoryStream::GetBufferNoel Grandin1-3/+2
since it does the same thing as GetData() Change-Id: I18d35aa4e67ad7775987160c021863d0de90179b Reviewed-on: https://gerrit.libreoffice.org/61350 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-01loplugin: look for CPPUNIT_ASSERT_EQUALS with params swappedNoel Grandin1-6/+6
idea originally from either tml or moggi, can't remember which Change-Id: Id78d75035036d3aa1666e33469c6eeb38f9e624d Reviewed-on: https://gerrit.libreoffice.org/55126 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-27creation of css::document::XFilter needs filter nameDavid Tardon1-3/+6
Change-Id: I5d580e2efe6cf34b9855e47190f6242323d7823a Reviewed-on: https://gerrit.libreoffice.org/54873 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-05-27re-enable testDavid Tardon1-2/+0
Change-Id: Id1283afe1ed4429a194a2a2c27eaf5c76387a23a Reviewed-on: https://gerrit.libreoffice.org/54875 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2018-05-15weld WPFTEncodingDialogCaolán McNamara4-10/+14
and pass in parent window for dialog Change-Id: Ibe9f576a74dfbbee3e568c8d3454440700cb0405 Reviewed-on: https://gerrit.libreoffice.org/54328 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-26tdf#116822 export ruby text and base text to epub.Mark Hung2-0/+10
Backport aa254c9e6f2d1ecfa2512111746a77c05ba9717f from libepubgen, implement XMLRubyContext, XMLRubyTextContext, XMLRubyBaseContext. Character formats of ruby text, ruby alignment, and ruby position are not implemented yet. Change-Id: I6c3708e6bc8e9e36a68171a037fd393f45d8d34f Reviewed-on: https://gerrit.libreoffice.org/53408 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-04-26upload libwps 0.4.9David Tardon2-0/+1
Change-Id: I9571d91d6ce81d7e8752f24c3220f858a5303986 Reviewed-on: https://gerrit.libreoffice.org/53431 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2018-04-25upload libmwaw 0.3.14David Tardon2-1/+50
Change-Id: I727171251964eaf7a14595abaaa2d08fb783258c Reviewed-on: https://gerrit.libreoffice.org/53419 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2018-04-22rename test filesDavid Tardon6-3/+3
Change-Id: I40b58b2a6df33783073731790d17aacc35e0b75c Reviewed-on: https://gerrit.libreoffice.org/53292 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2018-04-22upload libetonyek 0.1.8David Tardon4-0/+2
Change-Id: Id7c15e4ee902016dec70e44cd2495ee17fd6d263 Reviewed-on: https://gerrit.libreoffice.org/53291 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
2018-04-20writerperfect: astyle -> clang-formatMiklos Vajna19-386/+416
< vmiklos> dtardon: are you strongly attached to astyle usage in core.git writerperfect/? my problem is that 1) when less regular contributors touch it, they don't run astyle 2) core.git has git hooks in place to enforce consistent style for selected files, but that uses clang-format. i wonder if switching to the standard core.git clang-format would be an option to stop this reformat game <@dtardon> vmiklos, clang-format is okay. we started to use astyle years ago, before there were even any serious talk about automatic formatting for the whole libreoffice Change-Id: I844fc9c2e8560e54a49f26064cc0b3c55a5f034c Reviewed-on: https://gerrit.libreoffice.org/53184 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-04-10tdf#115623: invoke openPageSpan / closePageSpanMark Hung4-0/+55
* For paragraphs or tables whose styles specify style:master-page-name, it indicate starting a new page style and should invoke openPageSpan / closePageSapn properly. * closePageSpan at the end of text body is invoked. Change-Id: Ic85157c9b1a43c94a027b464ad9105e9072afcf7 Reviewed-on: https://gerrit.libreoffice.org/52082 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-02-12EPUB export, fixed layout: fix validation error with imagesMiklos Vajna1-0/+5
The "xlink" prefix for the "xlink:href" attribute on the "image" element was not bound. Change-Id: I473a0b1612b4842cf84a264960bb28a9f19600e5 Reviewed-on: https://gerrit.libreoffice.org/49612 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-02-12EPUB export: pick up XMP metadata from 'metadata.xmp'Miklos Vajna1-0/+0
This used to be <filename>.xmp, but that's inconsistent with how cover image is not <filename>.jpg but cover.jpg (or .png, etc). Also it was redundant, since these files are in the media directory, for which the default is the <filename> directory. Change-Id: Iadfebf2f9c336f443537759b1e58409a93e1c51d Reviewed-on: https://gerrit.libreoffice.org/49604 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-01-23EPUB export, fixed layout: add chapter names to the navigation documentMiklos Vajna2-0/+14
Extend vcl::PDFExtOutDevData so that it's possible to use it outside the PDF export; this way the EPUB export can know which chapters start on which page. This means fixed and reflowable layout has the same table of contents, instead of just Page <N> in the fixed layout case. Change-Id: I935fb23c66ec747431b91e83b0e677d4e5f704b9 Reviewed-on: https://gerrit.libreoffice.org/48332 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-01-19EPUB export: accept relative links for image popup from default media dirMiklos Vajna3-0/+14
Previously: - the user had to copy the linked image to the same dir as the doc - set a relative link on the image (in ODF, it resulted in "../foo.png") - copy the image to the media dir ("test" by default for "test.odt") - export to EPUB to have the image popup Now, additionally: - relative link may point to the default media dir (in ODF, it results in "../test/foo.png") - no need to copy the image - export to EPUB creates the popup So one less step is necessary. The downside is that this way the relative URL contain the base name of the document, so renaming the document breaks these relative links. Change-Id: I93894a28393d36a33dcec7bfe7c4a54fd83768da
2018-01-19EPUB export: fix validation error on invalid relative linksMiklos Vajna3-1/+12
It's valid to have a relative link that points nowhere in ODF, but the same is not true for EPUB. Change-Id: I7884032e277a0c53d0c513cea70dd2ee29ccd85c
2018-01-04tdf#42949 Fix some more Include What You Use warningsMiklos Vajna1-1/+0
Change-Id: I2040315707674dc99a37aedb96ac61dca274c13a Reviewed-on: https://gerrit.libreoffice.org/47348 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-12-19EPUB export, fixed layout: fix mm size of SVG pagesMiklos Vajna1-0/+7
The preferred map unit was pixel, but SVGExport::writeMtf() expects the map unit is always a logical one, given that it calls OutputDevice::LogicToLogic() for it. Change-Id: Id1f311eb14423a76a82886ca848c90ab48c6eb49 Reviewed-on: https://gerrit.libreoffice.org/46733 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2017-12-04EPUB export, fixed layout: disable DTD string in SVG headerMiklos Vajna1-0/+25
epubcheck complains: ERROR(HTM-003): test.epub/OEBPS/images/image0001.svg(5675,37): External entities are not allowed in EPUB v3 documents. External entity declaration found: %svg-extensibility.mod. and similar ones. Just not writing the DTD header is enough to address the error. Change-Id: I5307e932a0f07585297cce734aceae77e43cc7a6 Reviewed-on: https://gerrit.libreoffice.org/45648 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-12-04EPUB export, fixed layout: switch to a metafile-based approachMiklos Vajna2-0/+88
Trying to guess layout from flat ODF output is an approach that doesn't scale, think of complex documents with split tables, etc. Do it similar to the PDF export instead: take a metafile of each page and use the existing SVG writer to embed it into XHTML. Change-Id: I6e860834beb8025519d3e367f858077ae9e9c006 Reviewed-on: https://gerrit.libreoffice.org/45647 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-12-01EPUB export allow requesting fixed layout from cmdlineMiklos Vajna1-1/+18
FilterData is a typed map of options, suitable for UNO API clients, also that's what the UI uses. OTOH the --convert-to cmdline option can only set a FilterOptions string, so support that way as well. --convert-to epub:EPUB:layout=fixed can be used to trigger this. Change-Id: I9f429107ae1db3dc4b6ab3b2b75665f096a1a33a Reviewed-on: https://gerrit.libreoffice.org/45646 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-12-01EPUB export: handle page size in fixed layoutMiklos Vajna1-0/+16
Requires parsing master pages and page layouts. Change-Id: Ia8b9e59a9355396d3776af06e8e67ec88033754b Reviewed-on: https://gerrit.libreoffice.org/45645 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-12-01EPUB export: add UI to request fixed layoutMiklos Vajna1-0/+16
Sets the EPUBLayoutMethod filter data key at UNO level. Change-Id: Ia07029bd83fec02e98cb6a3cc2bfea2ab742d769 Reviewed-on: https://gerrit.libreoffice.org/45644 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-12-01EPUB export: initial fixed layout supportMiklos Vajna1-0/+16
This is just the bare minimum that is already a fixed layout and is valid. Change-Id: I64e1216d92125377d7836988586da9ea1d878536 Reviewed-on: https://gerrit.libreoffice.org/45643 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>