Age | Commit message (Collapse) | Author |
|
Similar to commit ae132145ff42a95dc24fb124847c04af4b8c8dab, also forward
IsVisible() and IsPrintable() from SdrVirtObj to its real object;
evidently the properties aren't copied when creating SdrVirtObj but
there is no reason for that to have these properties independent.
This triggers an assert in VOCOfDrawVirtObj::createPrimitive2DSequence()
because that is called during layout from getObjectRange(); the assert
was added in commit ae3ec0d53a22ae5d2b7fb244a6056d0627b71873 and
intended for painting, but this isn't painting, and it's not easily
possible to detect if the function is called during painting, so remove
the assert.
Change-Id: Id2a04a5d07f43b86eb9c524b30ba74ecaf6a95c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167350
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
|
|
These can return a non-empty name now, so exclude them explicitly.
(regression from commit ae132145ff42a95dc24fb124847c04af4b8c8dab)
Change-Id: Ia7f7b9fd7abe67f3302e95b38e3b9fa30b769b5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167349
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
|
|
Linked text frames are hyphenated as columns on the same page,
i.e. do not shift the hyphenated line, if hyphenation-keep-type="page"
or "spread".
For "spread", check also that the hyphenated line is on the previous
left page, because checking only right page wasn't enough for linked
text frames and blank left pages.
Follow-up to commit 6e8819f29b6051a0e551d77512830539913ec277
"tdf#132599 cui offapi sw xmloff: add hyphenation-keep-type" and
commit c8a99cb8dce54de506ba66d1cc0818b9b5f7858b
"tdf#132599 sw schema xmloff: add hyphenation-keep-type='always'".
Change-Id: I8965b42aa26c3c2571e07ad1b45dce6a9f61c633
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167390
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
Existing code with endnotes on separate page at the end of the document
works by searching for a current or next page that is an endnote page in
SwFootnoteBossFrame::AppendFootnote(), and in case none is found, then
an endnote page is created.
Add similar infrastructure for the inline endnotes case: here we want to
find the first page that has an endnotes section, which also requires
being able to tell if a section is an endnotes one.
The newly introduced SwPageFrame::GetEndNoteSection() is not yet used in
SwFootnoteBossFrame::AppendFootnote(), though.
Change-Id: Ib08267f9bf6c7b06576624e3fa8e90e8b8b1b232
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167371
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I6ef2f39cca9e657a05b9b55d8ff87607261dd1ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167369
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I37166c03ffd0f8f76ddc03ce556b6e6341a02b48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167355
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
This reverts 24.8 commit 96323a10d3a55d212c350886e2a1344c0cd2ba95.
A mouse click selects the fieldmark to be able to overwrite
the field with the next text input.
But I did not revert:
Additionally the EN SPACE (0x2002) character is visualized
by the DEGREE symbol when 'View/Formatting Marks' is active.
The problem was that the field itself was also selected,
so not only was the placeholder text overwritten,
but so was the entire field.
Additionally, it is ONLY placeholder text that should be selected,
but this was also selecting non-placeholder
(i.e. custom user-entered text) that was being pre-selected
which is NOT what happens in MS Word.
The whole point of the patch in the first place was to
emulate MS Word's response to placeholder text,
so we should also be emulating what happens
to non-placeholder text. That would require tracking
whether the field's text was placeholder or not,
which is not currently track in legacy fields.
Change-Id: I0a1a22f82827cd5f9d9abfb52cd562dff4651b29
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167139
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
|
|
Word lays out endnotes at the end of the document inline after body
text, Writer puts them on one or more separate endnote pages.
There was already an attempt in the past to resolve this difference, see
commit 4814e8caa5f06c4fe438dfd7d7315e4a2410ea18 (tdf#124601 sw: add
ContinuousEndnotes layout compat option, 2019-09-30). The approach back
then was to map such endnotes to footnotes, so the extra, unwanted page
doesn't appear. This turned out to be not working too well, the compat
option is only enabled for DOC, and even there commit
dc11f5b151e1a2ea2623fc8cf806a400763955d9 (tdf#143445 DOC import: limit
the usage of the CONTINUOUS_ENDNOTES compat flag, 2023-05-23) limited
the usage of the compat flag to 1 or 2 endnotes only.
Coming back to this, try a new approach: create a section that more or
less exists only at a layout level and put endnotes into that section.
This allows reusing all the complex logic on how to lay out endnotes
inline, on one or more pages. The plan is that this new approach is more
robust, can replace the old continuous endnotes layout code and then can
be enabled for DOCX as well.
This commit just introduces the backing section format and SwSection for
that special "endnotes section" (it's special because SwSection is
usually owned by an SwSectionNode, but here there is no doc model node
for the SwSection), SwFootnoteBossFrame::AppendFootnote() doesn't try to
use the new SwEndNoteInfo::GetSwSection() yet.
Change-Id: Ib32f04ceb6f46c682a5d36bdcea206d2c4017227
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167305
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Seeing as since:
commit e9531b792ddf0cfc2db11713b574c5fc7ae09e2c
Date: Tue Feb 6 14:39:47 2024 +0100
sal: rtlRandomPool: require OS random device, abort if not present
Both rtl_random_createPool() and rtl_random_getBytes() first try to get
random data from the OS, via /dev/urandom or rand_s() (documented to
call RtlGenRandom(), see [1]).
we don't use the initial arg to rtl_random_getBytes anymore, drop the
requirement to have one. Then simplify our usages of that, and
addtionally deprecate rtl_random_createPool and rtl_random_destroyPool.
Change-Id: I13dcc067714a8a741a4e8f2bfcf2006373f832c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167067
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Word boundaries at the end of the paragraph are now correctly detected.
Sentence case is not applied without multi word selection in Writer anymore.
Change-Id: If6e2eeaa1ecca215d583e8f33364db466bf7c57d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166928
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
Adds delete key handling for delete all footnotes/endnotes from the
Navigator.
Change-Id: Ic1d49377631344ac5e6fdc81c07eebde0470a6be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167180
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Tested-by: Jenkins
|
|
Add new hyphenation option to limit hyphenation
of the last full line of the hyphenated paragraph.
Move also loext:hyphenation-keep-type to paragraph-properties,
following the associated hyphenation-keep.
Note: value "always" is defined by CSS 4 hyphenate-limit-last,
see https://www.w3.org/TR/css-text-4/#hyphenate-line-limits.
Follow-up to commit 6e8819f29b6051a0e551d77512830539913ec277
"tdf#132599 cui offapi sw xmloff: add hyphenation-keep-type".
Change-Id: I2121269205fc89fb5367dccdca00195aac68f3e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167232
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
|
|
There doesn't appear to be an accurate and complete documentation of all
the Word built-in style names, but fortunately Word writes them all into
styles.xml in a w:latentStyles element anyway.
It turned out that a lot of the Writer built-in style names here were
obsoleted by renaming and did not match any more.
Change-Id: Ic69785a34524f667b83a06a267715b2c8b0165d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167242
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
The 2nd page of the bugdoc has a single paragraph, with a non-zero top
margin. This is ignored in Word, but wasn't ignored in Writer.
Experimenting with the document, it looks like old Word files also don't
ignore this top margin: it started when the compat mode is upgraded
(from binary DOC or Word 2010) to Word 2023 or newer. Also the top
margin is only ignored for the first paragraph on the page, and only in
case it's not on the first page.
Fix the problem by introducing a new SwFrame::IsCollapseUpper() function
to decide if the upper margin should be collapsed or not, and then by
using it in SwFlowFrame::CalcUpperSpace() at one place where we read the
top margin from the doc model. Take advantage of the fact that we have
related, existing compat flags that tell us if we're in "Word >= 2013"
compat mode: see e.g. GetFlyAnchorBottom(), which explains
DocumentSettingId::TAB_OVER_MARGIN is a good indicator that this is a
"Word <= 2010" document. Also, DocumentSettingId::TAB_OVER_SPACING is an
indicator that this is a Word document, so we want the "TabOverSpacing
&& !TabOverMargin" case.
This doesn't change all reads of the upper spacing of a text node, but
is enough to avoid the unwanted top spacing, as demonstrated by the
bugdoc.
Change-Id: Ibdebdf5f0555256a0b6ed85d07079f14ef69a576
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167252
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Since writerfilter moved into sw in 24.8,
this section can be seriously optimized.
Change-Id: I6a228b1a910181c38ba5c8faf9566954fffc47fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166988
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
|
|
Adapt SwGetRefFieldType::FindAnchor() to search for SwTextCharFormat,
and ApplyClonedTOCStylesToXText() to replace "CharStyleName".
Works for the "Intensive Hervorhebung" field in bugdoc.
Change-Id: Iee126eeb4cc2ff1c570941e3beefd93527c56fee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167098
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
|
|
* Handle STYLEREF style the same way as TOC style on import.
* Word 2013 does not uppercase the first letter
("Überschrift 1" -> "berschrift1") and there doesn't
appear to be any justification why the code does that.
* The style that's applied is actually the display style name
so convert from source's m_sConvertedStyleName.
* Change the logic in DomainMapper_Impl::ConvertTOCStyleName() to
explicitly check and clone only known built-in Word styles, which are
the ones that are translated.
* This requires some refactoring, and to add the built-in styles in the
bugdoc to the "StyleNameMap", which is probably still incomplete...
* Exporting to DOCX appears to work without changes.
* Somehow this causes the testFDO77715 to have an outlinelevel of 1 on
the TOC paragraphs now, but that turns out to be a bugfix.
Change-Id: I73bc1d1819e5cecbba2fef9cd6d290682a02a638
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167097
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Tested-by: Jenkins
|
|
Only Table of Contents has level settings, the level is always 0 for the
other ToX types, which erroneously excludes nodes (as can be seen with
testFDO77715 failing with upcoming tdf#160402 bugfix).
(regression from commit 5c04c4474236cc50009aea6d89f7c443c861af19)
Change-Id: Iec1c2b8eaba0ad20b2ad7d8c6b20603315a7a83d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167096
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Change-Id: Idb9eefa31c084604a134f28892b333c56f6d6fc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167161
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Doing this via a macro was possible already, but that didn't invalidate
the object positions on the layout, so required a document reload, which
was ugly.
Change-Id: I65dec046727588952f8e41a89eae25f81feb7f82
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167182
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
If multiple comments all have on the same range
(comment replies typically, but not necessarily)
then make sure that later replies are not inserted
in front of the earlier replies.
MSO can anchor their comments anywhere in the document,
so this is not a perfect, fool-proof solution.
However, it should handle the typical cases.
make CppunitTest_sw_ooxmlexport21 /
CPPUNIT_TEST_NAME=testTdf160814_commentOrder
Change-Id: I8ebdae83e4dec25ee34dffc3e84bbd3068a15f57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166765
Reviewed-by: Justin Luth <jluth@mail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
which has become detectable since:
commit 7d070fa5e4b055501cc59d3ea1b4e049db4bd4ae
Date: Thu May 2 14:51:24 2024 +0200
replace createFromAscii with OUString literals in SwCalc
Change-Id: I589a3db5c0377f1b676daee714ff2ada4ea28179
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167160
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
when alphabetically sorted
Make the Headings content display flat (no parent-child hierarchy, no
outline-level indentation) when set to alphabetical sort order.
Change-Id: I0d215c76462fdc2ff1fafcfd8b8d5b15be17b405
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166068
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
active/visible
Makes the outline content context menu not show the up/down/promote/
demote menu items when outline content is set to display by
alphabetical sort.
With intent to improve code readablility, reworks the
SwContentTree::Select function used to set the sensitive state of the
up/down/promote/demote buttons. The buttons are disabled for any of the
following conditions; the Navigator is in "Zoom" mode, the document is
in read-only mode, the selected entry is not an outline content entry,
or the outline content is displayed by alphabetical sort.
The patch also makes the alphabetical sort setting
independent among the floating and sidebar versions.
Change-Id: I6ff8fab2ce2fb6f68163ed3860b0440fba875fb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166067
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
|
|
Change-Id: I3f49ee652817c778d3888d53f6151e998f689dd5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167116
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I68acd56b28b0f989a4010cd939f2452970d158ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167103
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
Change-Id: Id1a6f3babc1ca63375361c88b8af40d9915d1d2d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167112
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9c40c4e4f58d45e5c3195cab6dbb40c47b0326d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167113
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and adjust the loplugin:stringstatic to cope with OUString that
is also declared in a header as extern, in which case we cannot
mark it as constexpr.
Change-Id: I108aa3ff8cb06a9a6d345cd951883b52dd0318f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167106
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I505fe025dfbfd64f950d975d0f81527c7efa3d3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167107
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: Iecdaac487a708d268cfa8710db100c3c53386e69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167109
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I26b1703f99812d573b7aa1aff9eea3dc9b4361dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167108
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I9da38ff8897eeeebdb7d5ff2766414d3d406d53f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167091
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I5dbcab60a9891fe1b42867d7a15f85fd50fe963a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167095
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ide9c91584aaee5493697c010eeb76afbd7818a46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167094
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib72bcb5713f3598ff689ef1e767f72f8325828db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167093
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I53ec6e3914ef995a4fd708ea0f1c2976673d97d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167090
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ifcbdd1bbab68e177e11a7e48cb1ed2eb2f2b53a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167069
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
See
<https://gerrit.libreoffice.org/c/core/+/167033/1#message-e1df9bf60b7b8b2acdf0c062484ddc572939a3d9>,
no need to undo the import-time mapping in case we know that the
mirroring is avoided at a layout level.
Change-Id: Idbdc10ad327540dc5045e9b19dd42160b5139470
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167049
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
The UI code at lcl_ChangeResIdToVerticalOrRTL() was aware that
SwAnchoredObjectPosition::CalcRelPosX() mirrors the position when the
anchor paragraph is RTL, so swapped the "from left" label to a "from
right" label.
Don't do this when the compat option is enabled, so not only we render
correctly but the UI now correctly explains why we came up with the
correct position.
Change-Id: I479ed1f085b249d10be47b66d7a656dc1bd4f936
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167031
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: I9b2b86c26e08221c57735c6eda88727aa8a46b5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167021
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
The bugdoc has a shape which should be on the right page margin, but it
was on the left page margin.
Use the new compat flag to have a layout that matches Word.
This way we don't need to unmap the tweaked position at export time (a
limitation that the DOC filter has).
Change-Id: I38dfae370f275d9f0897198e7b0569f2d91dd352
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166993
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
Regression after commit d81379db730a163c5ff75d4f3a3cddbd7b5eddda
(tdf#154877 sw: generalise ExtendedSelectAll(), 2023-05-09)
Change-Id: I9289171647fca8bd1b696399ff7c43a2ac7b8b30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166990
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Iee8db2953c5836f7dee667dadab9441f73706d52
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166961
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
See 1c3c27bc2e42f70e588ef5dbc769a8a346042e04
Silence some bogus -Werror=array-bounds etc. with GCC 12 and -std=c++20
Change-Id: I65675d1f18415ae82afb98c7d388dac3cdc18ab0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166966
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
|
|
It should be investigated, how the whole image map can be output in
that case - something to be done separately.
Change-Id: I6543c0d238205fabdb0a688e32a2d08423d7a5d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166948
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
|
|
Change-Id: Ic1eb574efa2e4ce57185670d6570f24d1d8c9bb3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166936
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I27247a85f0d7497f70c5d97a8955b68a29be1176
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166946
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
Change-Id: Idc8d41a27c8ee9cdd12fb5e17a328ec6aa104a16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166935
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
less emphasis on minimizing "if logic"
and more emphasis on readability
(especially since the comment comes after the logic).
In the most common cases, this version
should actually finish sooner too.
I didn't remember doing a copy/paste,
so the first time I only fixed the one instance...
Change-Id: I71deded7da16fd4aef2d7f5ab9f777b616312eca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166379
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
|