` tag decides which parameter values are taken into consideration.
-Conditional text are surrounded by and extra
tag. The class attribute of
-that
tag decides which parameter values are taken into consideration.
diff --git a/registry/README.md b/registry/README.md
index 914db30a2f01..617ef4a73b81 100644
--- a/registry/README.md
+++ b/registry/README.md
@@ -1,8 +1,8 @@
-Registry reading, etc.
+# Registry Reading, etc
This provides tools for dealing with the legacy binary types database
format, still in use by extensions and the core code. While the actual
-binary file format is implemented by the [[store]] code, the wrapper
+binary file format is implemented by the `store` code, the wrapper
that turns this into a type registry is implemented here.
While this code is primarily used in only two modes:
diff --git a/remotebridges/README.md b/remotebridges/README.md
index cfe0d196afef..8f1879f865a7 100644
--- a/remotebridges/README.md
+++ b/remotebridges/README.md
@@ -1 +1,3 @@
+# Bridges to UNO Services
+
UNO services dealing with interprocess bridges.
diff --git a/reportbuilder/README.md b/reportbuilder/README.md
index 696cc4b4830a..a1a9ab2a5a30 100644
--- a/reportbuilder/README.md
+++ b/reportbuilder/README.md
@@ -1,7 +1,9 @@
+# Report Builder
+
Report Builder, or "new style reports", replacing legacy reports (in reportdesign).
Started as an extension called "Sun Report Builder" then "Oracle Report Builder"
-[http://extensions.services.openoffice.org/project/reportdesign],
+,
which got bundled with LibreOffice, then converted to an optionally installable
(but installed by default) part of LibreOffice proper.
-Uses the Pentaho Reporting Flow Engine of Pentaho BI [http://www.pentaho.com/].
+Uses the Pentaho Reporting Flow Engine of Pentaho BI .
diff --git a/reportdesign/README.md b/reportdesign/README.md
index 0cffd43da3ef..7f90d985ac2d 100644
--- a/reportdesign/README.md
+++ b/reportdesign/README.md
@@ -1 +1,3 @@
+# Legacy Reports
+
Legacy Reports for LibreOffice Base
diff --git a/ridljar/README.md b/ridljar/README.md
index 0f3afff183a8..437f24c2cd10 100644
--- a/ridljar/README.md
+++ b/ridljar/README.md
@@ -1 +1,3 @@
-Implements types for the Java Uno typesystem.
+# Java UNO Types Generator
+
+Implements types for the Java UNO typesystem.
diff --git a/sal/README.md b/sal/README.md
index 324c64fa4a78..deaf7b4c0417 100644
--- a/sal/README.md
+++ b/sal/README.md
@@ -1,9 +1,11 @@
+# System Abstraction Layer (SAL)
+
System abstraction layer; rtl, osl and sal
-rtl:
+`rtl`:
Platform independent strings
-osl:
+`osl`:
platform specific stuff, threads, dynamic loading, process, ipc, etc
Exports only C API and some inline-methods (only C++ API).
diff --git a/salhelper/README.md b/salhelper/README.md
index 019a562df485..bc76adb2973e 100644
--- a/salhelper/README.md
+++ b/salhelper/README.md
@@ -1 +1,3 @@
-C++ helpers to make use of sal easier.
+# C++ Helpers for SAL
+
+C++ helpers to make use of SAL easier.
diff --git a/sax/README.md b/sax/README.md
index 00ca0f1af5ae..30ae23197afa 100644
--- a/sax/README.md
+++ b/sax/README.md
@@ -1,13 +1,15 @@
+# UNO Services for SAX
+
UNO services for SAX parsing and C++ functions for XMLSchema-2 data types.
-* source/expwrap:
+* `source/expwrap`:
string-based SAX parser UNO service wrapping expat
-* source/fastparser:
+* `source/fastparser`:
multi-threaded token-based SAX parser UNO service wrapping libxml2
-* source/tools:
+* `source/tools`:
+ C++ wrapper for fast SAX parser
+ C++ XMLSchema-2 data type conversion helpers
Multi-threading in FastParser can be disabled for debugging purposes with:
-SAX_DISABLE_THREADS=1 SAL_LOG="+INFO.sax.fastparser+WARN"
+ SAX_DISABLE_THREADS=1 SAL_LOG="+INFO.sax.fastparser+WARN"
diff --git a/sc/README.md b/sc/README.md
index e355e0c3c612..b28b1b769c71 100644
--- a/sc/README.md
+++ b/sc/README.md
@@ -1,36 +1,38 @@
-Spreadsheet application code.
+# Spreadsheet Application Code
You can dump some information in a dbgutil build:
-=== CTRL+SHIFT+F12 ===
+## Shortcuts
+
+### CTRL+SHIFT+F12
Dumps the column width of the first 20 columns.
-=== CTRL+SHIFT+F11 ===
+### CTRL+SHIFT+F11
Dumps the graphic objects and their position and size in pixel.
-=== CTRL+SHIFT+F6 ===
+### CTRL+SHIFT+F6
Dumps the SfxItemSet representing the cell properties' of the
current selection as a xml file. The file will be named dump.xml
-=== The Cache Format ===
+## The Cache Format
ScDocument::StoreTabToCache allows storing the content (not the formatting)
of a table to a binary cache format.
The format is column orientated which allows quick serialization of the table.
-Header:
+* Header:
* Number of Columns: 64 bit unsigned integer
-Column:
+* Column:
* Column Index: 64 bit unsigned integer
* Column Size: 64 bit unsigned integer
* For each cell type block a new ColumnBlock
-ColumnBlock:
+* ColumnBlock:
* Start Row: 64 bit unsigned integer
* Block Size: 64 bit unsigned integer
* Type: 8 bit unsigned integer
@@ -42,8 +44,7 @@ ColumnBlock:
- 3 : formula
* for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string
-
-=== Functions supporting Wildcards or Regular Expressions ===
+## Functions Supporting Wildcards or Regular Expressions
As this comes up every now and then, and rather should be documented in an
extra list of the Help system, functions that support Wildcards or Regular
@@ -82,3 +83,4 @@ https://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part2.html
* AVERAGEIFS
* Text Functions
* SEARCH
+
diff --git a/scaddins/README.md b/scaddins/README.md
index 1e0f88eacbcf..6900c1da0b9f 100644
--- a/scaddins/README.md
+++ b/scaddins/README.md
@@ -1,8 +1,9 @@
-Extra functions for calc.
+# Extra Functions for LibreOffice Calc
-These provide UNO components that implement more exotic calc
+These provide UNO components that implement more exotic LibreOffice Calc
functions. If you want to do the same, here can be a good place to
start.
-See also:
-[http://wiki.openoffice.org/wiki/Scaddins]
+## See also
+
+-
diff --git a/sccomp/README.md b/sccomp/README.md
index 30cc7490cef3..7927fcda415d 100644
--- a/sccomp/README.md
+++ b/sccomp/README.md
@@ -1 +1,3 @@
+# Linear Solver for LibreOffice Calc
+
The (linear) solver for LibreOffice Calc.
diff --git a/schema/README.md b/schema/README.md
index f32038ed82c8..0df864e087b3 100644
--- a/schema/README.md
+++ b/schema/README.md
@@ -1,20 +1,23 @@
-schemas that can be used for validating ODF files
+# Schemas for Validating ODF Files
+
+Schemas that can be used for validating ODF files
subdirs:
-- mathml2: W3C MathML 2.0 XML Schema (needed for Math embedded objects)
-- odf1.0, odf1.1, odf1.2: official OASIS RelaxNG schemas
-- odf1.3: current OASIS draft ODF 1.3 RelaxNG schema
-- libreoffice: draft ODF schema, with additional LO extensions
-The extension schema in "libreoffice/" is used by all unit tests if
---with-export-validation is given, which is the default.
+- `mathml2`: W3C MathML 2.0 XML Schema (needed for Math embedded objects)
+- `odf1.0`, `odf1.1`, `odf1.2`: official OASIS RelaxNG schemas
+- `odf1.3`: current OASIS draft ODF 1.3 RelaxNG schema
+- `libreoffice`: draft ODF schema, with additional LO extensions
+
+The extension schema in `libreoffice/` is used by all unit tests if
+`--with-export-validation` is given, which is the default.
Notably this means that if you add a new feature to the ODF filters and you add
the required unit test for the new feature, then most likely the test will fail
with a complaint from the validator; in this case the schema needs to be
updated to contain the new elements and attributes.
-The extension schema uses the RelaxNG "include" feature to refer to the ODF
+The extension schema uses the `RelaxNG` "`include`" feature to refer to the ODF
schema; this means that it only contains those parts of the schema that
actually need to be changed - this works well in many cases because the ODF
schema is quite well structured with many named patterns, but unfortunately
@@ -22,7 +25,7 @@ there are a few places where that isn't the case and large chunks needed to be
copied to override them.
In the easy case, to add an attribute you just want to search for the
-corresponding element, which will have a "foo-attlist" named pattern, and then
+corresponding element, which will have a "`foo-attlist`" named pattern, and then
add another attribute like this:
@@ -42,6 +45,6 @@ Unfortunately it turned out that there are a lot of extensions already for
which no proposal exists [1], and in many cases not even an entry on the Wiki
[2], so clearly something like this extension schema is needed.
-[1] git grep TODO schema/libreoffice
-[2] https://wiki.documentfoundation.org/Development/ODF_Implementer_Notes/List_of_LibreOffice_ODF_Extensions
+[1] `git grep TODO schema/libreoffice`
+[2]
diff --git a/scp2/README.md b/scp2/README.md
index 8f9d58356093..162e736b944f 100644
--- a/scp2/README.md
+++ b/scp2/README.md
@@ -1,6 +1,6 @@
-SCript Particle installer
+# SCript Particle Installer
This contains code that describes which pieces of the project should
be packaged and installed - it is used to build among other things
-a setup_osl.inf or .ins file - that is used by solenv/bin/make_installer.pl
+a `setup_osl.inf` or `.ins` file - that is used by `solenv/bin/make_installer.pl`
to build the installation.
diff --git a/scripting/README.md b/scripting/README.md
index 3a019e27d254..0560a73b9786 100644
--- a/scripting/README.md
+++ b/scripting/README.md
@@ -1,68 +1,70 @@
+# Scripting Framework
+
This module provides the source code for the Scripting Framework.
For more information on the Scripting Framework, see the project web page:
-[https://framework.openoffice.org/scripting/]
+
This module uses astyle to keep consistent java coding style. Please run
-./Format_java_code.sh
+ ./Format_java_code.sh
before committing.
-== Source Code Structure ==
+## Source Code Structure
The following directories contain the source code currently used
by the Scripting Framework:
-- source/provider
+- `source/provider`
-C++ source for the implementations of the com.sun.star.script.provider.*
-and com.sun.star.script.browse.* UNO types. These types are used for
+C++ source for the implementations of the `com.sun.star.script.provider.*`
+and `com.sun.star.script.browse.*` UNO types. These types are used for
browsing and executing scripts.
-- source/protocolhandler
+- `source/protocolhandler`
-C++ for a ProtocolHandler implementation that handles vnd.sun.star.script
+C++ for a `ProtocolHandler` implementation that handles `vnd.sun.star.script`
URIs and dispatches them for execution to the Scripting Framework.
-- source/basprov
+- `source/basprov`
-C++ implementation of the LanguageScriptProvider UNO service for Basic
+C++ implementation of the `LanguageScriptProvider` UNO service for Basic
-- source/dlgprov
+- `source/dlgprov`
-C++ implementation of the DialogProvider UNO service used for loading
+C++ implementation of the `DialogProvider` UNO service used for loading
UNO dialogs from various languages
-- source/pyprov
+- `source/pyprov`
-LanguageScriptProvider for Python
+`LanguageScriptProvider` for Python
-- java/com/sun/star/script/framework/provider
+- `java/com/sun/star/script/framework/provider`
Implementation of an abstract base class ScriptProvider which provides
-core methods for implementing Java based LanguageScriptProvider implementations
+core methods for implementing Java based `LanguageScriptProvider` implementations
-- java/com/sun/star/script/framework/provider/*
+- `java/com/sun/star/script/framework/provider/*`
-BeanShell, JavaScript and Java LanguageScriptProvider implementations
+`BeanShell`, JavaScript and Java `LanguageScriptProvider` implementations
-- java/com/sun/star/script/framework/browse/*
+- `java/com/sun/star/script/framework/browse/*`
-BrowseNode implementations for the Java based LanguageScriptProviders
+`BrowseNode` implementations for the Java based `LanguageScriptProviders`
-- java/com/sun/star/script/framework/io
-- java/com/sun/star/script/framework/container
+- `java/com/sun/star/script/framework/io`
+- `java/com/sun/star/script/framework/container`
Classes for performing script IO
-- examples
+- `examples`
Example scripts in BeanShell, JavaScript, Java and Python
-== Deprecated Code ==
+## Deprecated Code
-- java/org/openoffice/*
+- `java/org/openoffice/*`
Support for developing scripts in IDEs such as NetBeans.
diff --git a/sd/README.md b/sd/README.md
index c250d81e7c6c..4413a0776210 100644
--- a/sd/README.md
+++ b/sd/README.md
@@ -1,43 +1,45 @@
+# LibreOffice Impress / Draw Application
+
The core directory for the impress/draw applications.
Think of impress as a hack on top of draw.
-
-sd module contains impress/draw specific code, non-shared UI and part
-of ppt and pptx filter, few other filters too.
+`sd` module contains impress/draw specific code, non-shared UI and part
+of `ppt` and `pptx` filter, few other filters too.
the slideshow UI lives here as well, the slideshow engine is in
-slideshow module though (including the 3D transitions engine
-slideshow/source/engine/opengl).
+`slideshow` module though (including the 3D transitions engine
+`slideshow/source/engine/opengl`).
-the most used filters are ODF's odp, binary ppt and OOXML's
-pptx. their locations are listed below:
+the most used filters are ODF's `odp`, binary ppt and OOXML's
+`pptx`. their locations are listed below:
- * odp import and export filters are in xmloff module (mostly xmloff/source/draw)
+ * `odp` import and export filters are in `xmloff` module (mostly `xmloff/source/draw`)
- * ppt import is in sd/source/filter/ppt (big shared chunks are also in svx)
- * ppt export is in sd/source/filter/eppt (big shared chunks are also in svx)
+ * `ppt` import is in `sd/source/filter/ppt` (big shared chunks are also in `svx`)
+ * `ppt` export is in `sd/source/filter/eppt` (big shared chunks are also in `svx`)
- * pptx import is in oox/source/ppt (and uses a lot of
- oox/source/drawingml and oox/source/*)
- * pptx export is in sd/source/filter/eppt (mostly in pptx-* source
- files) and shared part is in oox/source/export
+ * `pptx` import is in `oox/source/ppt` (and uses a lot of
+ `oox/source/drawingml` and `oox/source/*`)
+ * `pptx` export is in `sd/source/filter/eppt` (mostly in `pptx-*` source
+ files) and shared part is in `oox/source/export`
-== PPTX export/import filters ==
+## PPTX Export / Import Filters
PPTX export filter is split into 2 parts. Impress related part is in
-sd/source/filter/eppt/pptx-* and the other part is in
-oox/source/export/ because it contains mostly code related to
-DrawingML, which is shared with writer and calc ooxml export.
+`sd/source/filter/eppt/pptx-*` and the other part is in
+`oox/source/export/` because it contains mostly code related to
+`DrawingML`, which is shared with writer and calc ooxml export.
The export filter was written in 2009 IIRC and was not much extended
feature-wise lately.
-FUTURE work: add custom shapes export (see below). enhance text
+## Future Works
+Add custom shapes export (see below). enhance text
output, we don't write text style for indentation levels now, need to
-export a:lvl1pPr, a:lvl2pPr, ... elements.
+export `a:lvl1pPr`, `a:lvl2pPr`, ... elements.
-PPTX import was written by Sun/Oracle and then extended in LibreOffice
-a lot during bug fixing. It is located in oox/source/ppt and
-oox/source/drawingml. The areas with most bugs (at least until today)
+`PPTX` import was written by Sun/Oracle and then extended in LibreOffice
+a lot during bug fixing. It is located in `oox/source/ppt` and
+`oox/source/drawingml`. The areas with most bugs (at least until today)
were shape placeholders and text style inheritance.
diff --git a/sdext/README.md b/sdext/README.md
index 63bfd6d0a793..86cb1d2af7ca 100644
--- a/sdext/README.md
+++ b/sdext/README.md
@@ -1,30 +1,30 @@
-Extensions for the Impress and Draw applications.
+# Extensions for the Impress and Draw Applications
-source/pdfimport/ - PDF import
+`source/pdfimport/` - PDF import
- Uses an external poppler process to parse and handle PDF
- import as draw shapes.
+Uses an external poppler process to parse and handle PDF
+import as draw shapes.
-source/minimizer/ - Presentation Minimizer
+`source/minimizer/` - Presentation Minimizer
- Shrinks presentations by down-scaling images, and removing
- extraneous eg. embedded OLE content.
+Shrinks presentations by down-scaling images, and removing
+extraneous eg. embedded OLE content.
-source/presenter/ - Impress / Presenter Console.
+`source/presenter/` - Impress / Presenter Console.
- This couples to sd/ in rather strange ways. Its design is
- heavily mangled by an attempt to use only UNO interfaces
- which are highly inadequate. This leads to somewhat
- ridiculous situations. Activating in response to
- configuration keys (for example), and the 'XPresenterHelper'
- interface inside sd/ used to create and manage windows.
+This couples to `sd/` in rather strange ways. Its design is
+heavily mangled by an attempt to use only UNO interfaces
+which are highly inadequate. This leads to somewhat
+ridiculous situations. Activating in response to
+configuration keys (for example), and the `XPresenterHelper`
+interface inside `sd/` used to create and manage windows.
- The main screen uses a hardware-accelerated
- canvas (e.g. cairo canvas), while the entire secondary screen
- uses a VCL-canvas that is created in
- sd::framework::FullScreenPane::CreateCanvas().
+The main screen uses a hardware-accelerated
+canvas (e.g. cairo canvas), while the entire secondary screen
+uses a VCL-canvas that is created in
+`sd::framework::FullScreenPane::CreateCanvas()`.
- The secondary screen contains 3 "Panes" which each have
- 2 XWindows for the border area & the actual content,
- and each content Pane is backed by a sd::presenter::PresenterCanvas
- that wraps the FullScreenPane's canvas and does clipping.
+The secondary screen contains 3 `Pane`s which each have
+2 `XWindows` for the border area & the actual content,
+and each content Pane is backed by a `sd::presenter::PresenterCanvas`
+that wraps the `FullScreenPane`'s canvas and does clipping.
diff --git a/sfx2/README.md b/sfx2/README.md
index 9726870a6019..58e97d62361d 100644
--- a/sfx2/README.md
+++ b/sfx2/README.md
@@ -1,28 +1,30 @@
-SFX is the "old" framework, used for historical reasons.
+# Legacy Framework
-An attempt of documentation of this module is located in [git:sfx2/doc].
+`SFX` is the "old" framework, used for historical reasons.
+
+An attempt of documentation of this module is located in `git:sfx2/doc`.
It contains base classes for document model, view and controller, used
-by "old" applications like sw, sc, sd (while "new" applications
+by "old" applications like `sw`, `sc`, `sd` (while "new" applications
are based on the "new" UNO based framework in "framework").
The SFX framework is based on dispatching slots identified by integers
-(SlotIDs) to SfxShells, and there is a dedicated IDL compiler (svidl)
-involved that generates C++ slot headers from SDI files in modules' sdi/
+(`SlotIDs`) to `SfxShells`, and there is a dedicated IDL compiler (`svidl`)
+involved that generates C++ slot headers from SDI files in modules' `sdi/`
subdirectory.
Documentation about SFX dispatch, SDI etc.:
-https://wiki.openoffice.org/wiki/Framework/Article/Implementation_of_the_Dispatch_API_In_SFX2
+
-Document load/save code is maintained in [git:sfx2/source/doc/docfile.cxx]
-SfxMedium class, which handles all the twisty load and save corner cases.
+Document load/save code is maintained in `git:sfx2/source/doc/docfile.cxx`
+`SfxMedium` class, which handles all the twisty load and save corner cases.
-[git:sfx2/source/appl/sfxhelp.cxx] Start procedure for the online
+`git:sfx2/source/appl/sfxhelp.cxx` Start procedure for the online
help viewer top level window; handling of help URL creation and
dispatch.
There are also some UNO services here that could really be implemented
-anywhere, e.g. the DocumentProperties or DocumentMetadataAccess.
+anywhere, e.g. the `DocumentProperties` or `DocumentMetadataAccess`.
Notable files:
-sfx2/source/dialog/backingwindow.cxx Startcenter buttons and the corresponding event handler.
+`sfx2/source/dialog/backingwindow.cxx` `Startcenter` buttons and the corresponding event handler.
diff --git a/shell/README.md b/shell/README.md
index b8e821a66ae1..294eef9dc2e2 100644
--- a/shell/README.md
+++ b/shell/README.md
@@ -1 +1,2 @@
-System helpers - launching URI, system integration, external mailer support etc.
+# System Helpers
+Launching URI, system integration, external mailer support etc.
diff --git a/slideshow/README.md b/slideshow/README.md
index e67379f43c89..69fa42aebcfb 100644
--- a/slideshow/README.md
+++ b/slideshow/README.md
@@ -1,32 +1,33 @@
-The Impress slideshow engine
+# Impress Slideshow Engine
-== 3D transitions ==
+## 3D Transitions
The 3D transitions are slideshow transition engine using OpenGL and
-are located in slideshow/source/engine/OGLTrans/. They were initially
+are located in `slideshow/source/engine/OGLTrans/`. They were initially
written by GSOC student Shane.M.Mathews. Radek has later polished the
code a bit, added few new 3D transitions, added infrastructure for
vertex and fragment shaders. Wrote few transitions with fragment shader
too.
-== Physics Animation Effects ==
+## Physics Animation Effects
Physics animation effects are simulated by external 2d physics engine
-library Box2D. They don't directly call Box2D functions but instead
+library `Box2D`. They don't directly call `Box2D` functions but instead
use the wrapper in:
-* slideshow/source/inc/box2dtools.hxx
-* slideshow/source/engine/box2dtools.cxx
-The wrapper has two corresponding classes to manage the Box2D world
-and Box2D bodies.
+* `slideshow/source/inc/box2dtools.hxx`
+* `slideshow/source/engine/box2dtools.cxx`
-When a physics animation starts, a Box2DWorld is initiated and
+The wrapper has two corresponding classes to manage the `Box2D` world
+and `Box2D` bodies.
+
+When a physics animation starts, a `Box2DWorld` is initiated and
populated with every shape that is part of the foreground (which are
shapes that do not belong to the master slide and not a background
shape).
After creation until the end of the slide (not the whole slideshow)
-the Box2D World isn't destroyed and reused. But the bodies that
+the `Box2D` World isn't destroyed and reused. But the bodies that
represent the shapes in the slide get destroyed when there's a point
in time that there's no physics animation in progress. And recreated
when another physics animation starts.
@@ -36,8 +37,8 @@ takes the role of stepping through the simulation.
If there are other animation effects that go in parallel which change
the shape position, rotation, or visibility - they also report the
-change to Box2D World. These updates are collected in a queue in
-Box2DWorld and processed before stepping through the simulation.
+change to `Box2DWorld`. These updates are collected in a queue in
+`Box2DWorld` and processed before stepping through the simulation.
To achieve convincing results these updates are performed by setting
-the box2d body's linear velocity or angular velocity instead of
+the `Box2D` body's linear velocity or angular velocity instead of
setting directly it's position or rotation.
diff --git a/smoketest/README.md b/smoketest/README.md
index 30dceb678ff0..5cd48ecb38f9 100644
--- a/smoketest/README.md
+++ b/smoketest/README.md
@@ -1,18 +1,19 @@
+# Smoke Test
Smoke test for each component of LibreOffice.
-* smoketest:
+* `smoketest`:
- The main smoketest.cxx is launched connects via binary UNO
+The main `smoketest.cxx` is launched connects via binary UNO
over a socket to a remote LibreOffice instance. This loads a document
-which is zipped at build time into the workdir/ from the data/
+which is zipped at build time into the `workdir/` from the `data/`
directory. This in turn contains a set of macros in
-data/Basic/Standard.
+`data/Basic/Standard`.
- Smoketest.cxx does a remote the StartTestWithDefaultOptions
-macro and waits for a dispatchFinished from the macro's execution. To
-debug this best load workdir/Zip/smoketestdoc.sxw - and hit 'start
-smoketest' - this will launch a number of components and build a
+`smoketest.cxx` does a remote the `StartTestWithDefaultOptions`
+macro and waits for a `dispatchFinished` from the macro's execution. To
+debug this best load `workdir/Zip/smoketestdoc.sxw` - and hit `start
+smoketest` - this will launch a number of components and build a
suitable report in the form of a table.
- The StarBasic smoketests also log their output, this ends up
-in instdir/user/temp/smoketest.log.
+The StarBasic smoketests also log their output, this ends up
+in `instdir/user/temp/smoketest.log`.
diff --git a/solenv/README.md b/solenv/README.md
index b5a730746674..fd45397e2fb8 100644
--- a/solenv/README.md
+++ b/solenv/README.md
@@ -1,41 +1,47 @@
-Tools and makefile fragments necessary for compilation
+# Tools and Makefile Fragments Necessary for Compilation
This module contains many tools and makefile configuration pieces,
critical for building LibreOffice:
-bin/
- contains lots of tools used during the build:
+- `bin/`
- concat-deps*
- these aggregate, and remove duplicates from module
- dependencies, to accelerate build times.
+ - contains lots of tools used during the build:
- make_installer.pl
- this script executes the compiled instructions from
- the scp2/ module to create an installer, and/or to
- do a local install for the smoketest.
+ - `concat-deps*`
+ these aggregate, and remove duplicates from module
+ dependencies, to accelerate build times.
+
+ - `make_installer.pl`
+ this script executes the compiled instructions from
+ the `scp2/` module to create an installer, and/or to
+ do a local install for the smoketest.
+
+- `gbuild/`
-gbuild/
implementation of the LibreOffice build system
- See gbuild/README for more info.
+ See `gbuild/README` for more info.
+
+- `gdb/`
-gdb/
lots of nice python helpers to make debugging -much- easier
that (eg.) print UCS2 strings as UTF-8 on the console to
help with debugging.
-inc/
- old / increasingly obsolete dmake setup and includes, we are
+- `inc/`
+
+ old `/` increasingly obsolete dmake setup and includes, we are
trying to entirely rid ourselves of this
-src/
- useful standard / re-usable component map files for components
+- `src/`
+
+ useful standard `/` re-usable component map files for components
which shouldn't export anything more than a few registration
symbols.
-flatpak-manifest.in
- This file is used by flatpak/build.sh from the LO dev-tools
- repository to generate the flatpak package. download.lst is
- a Makefile snippet, so there seems to be no easy way to use
- download.lst for the manifest generation (build.sh uses sed),
+- `flatpak-manifest.in`
+
+ This file is used by `flatpak/build.sh` from the LO `dev-tools`
+ repository to generate the flatpak package. `download.lst` is
+ a `Makefile` snippet, so there seems to be no easy way to use
+ `download.lst` for the manifest generation (`build.sh` uses `sed`),
and its information must be kept in sync manually.
diff --git a/soltools/README.md b/soltools/README.md
new file mode 100644
index 000000000000..50784b34de40
--- /dev/null
+++ b/soltools/README.md
@@ -0,0 +1,3 @@
+# Build Tools
+
+Different build tools.
diff --git a/sot/README.md b/sot/README.md
index 2abadba76756..692114b0f5ad 100644
--- a/sot/README.md
+++ b/sot/README.md
@@ -1 +1,3 @@
-Compound file storage tools code.
+# Compound File Storage Tools Code
+
+`sot` contains compound file storage tools code.
diff --git a/starmath/README.md b/starmath/README.md
index d84b3d8e0483..c2a8fcaf0ade 100644
--- a/starmath/README.md
+++ b/starmath/README.md
@@ -1,4 +1,5 @@
-Formula editor code for writer ([[sw]]).
+# Formula Editor Code for LibreOffice Writer
Good overview from the original developer:
-http://www.mail-archive.com/dev@sw.openoffice.org/msg00200.html
+
+
diff --git a/stoc/README.md b/stoc/README.md
index 58f0c6f1a26a..47fd36d20fae 100644
--- a/stoc/README.md
+++ b/stoc/README.md
@@ -1,5 +1,4 @@
-Registries, reflection, introspection implementation for UNO.
-
+# Registries, Reflection, Introspection Implementation for UNO
The UNO types and services bootstrapping code is very old, and concepts
are tightly knit together. Whenever you want to change something you risk
@@ -9,32 +8,32 @@ up doing minimally invasive changes. That way, you have a chance of
surviving the process. But you also pile up guilt.
At the heart of the matter there is the old binary "store" file structure
-and the XRegistry interface on top of it. At runtime, both all the UNO
-type information (scattered across a number of binary rdb files) and
-all the UNO service information (scattered across a number of rdb files
+and the `XRegistry` interface on top of it. At runtime, both all the UNO
+type information (scattered across a number of binary `.rdb` files) and
+all the UNO service information (scattered across a number of `.rdb` files
that used to be binary but have been mostly changed to XML now) are
-represented by a single XRegistry instance each.
+represented by a single `XRegistry` instance each.
-The way the respective information is represented in the XRegistry
+The way the respective information is represented in the `XRegistry`
interface simply corresponds to the way the information is stored in the
-binary rdb files. Those files are designed for storage of hierarchically
+binary `.rdb` files. Those files are designed for storage of hierarchically
nested small blobs of information. Hence, for example information about
-a UNO interface type com.sun.star.foo.XBar is stored in a nested "folder"
-with path com - sun - star - foo - XBar, containing little blobs of
+a UNO interface type `com.sun.star.foo.XBar` is stored in a nested "folder"
+with path `com - sun - star - foo - XBar`, containing little blobs of
information about the type's ancestors, its methods, etc. Similarly
-for information about instantiable services like com.sun.star.baz.Boz.
+for information about instantiable services like `com.sun.star.baz.Boz`.
-As there are typically multiple rdb files containing types resp.
+As there are typically multiple `.rdb` files containing types resp.
services (URE specific, LO specific, from extensions, ...), but they need
-to be represented by a single XRegistry instance, so "nested registries"
-were invented. They effectively form a linear list of chaining XRegistry
+to be represented by a single `XRegistry` instance, so "nested registries"
+were invented. They effectively form a linear list of chaining `XRegistry`
instances together. Whenever a path needs to be looked up in the top-level
registry, it effectively searches through the linear list of nested
-registries. All with the cumbersome UNO XRegistry interface between
+registries. All with the cumbersome UNO `XRegistry` interface between
the individual parts. Horror.
-When the XML service rdbs were introduced, we chickened out (see above
-for rationale) and put them behind an XRegistry facade, so that they
-would seamlessly integrate with the existing mess. We postponed
-systematic clean-up to the pie-in-the-sky days of LO 4 (or, "once we'll
-become incompatible with OOo," as the phrase used to be back then)
+When the XML service `.rdb`s were introduced, we chickened out (see above
+for rationale) and put them behind an `XRegistry` facade, so that they
+would seamlessly integrate with the existing mess. We postponed
+systematic clean-up to the pie-in-the-sky days of LibreOffice 4 (or, "once we'll
+become incompatible with OpenOffice.org," as the phrase used to be back then)
diff --git a/store/README.md b/store/README.md
index 46641014c7b9..864f48458b87 100644
--- a/store/README.md
+++ b/store/README.md
@@ -1,5 +1,5 @@
-The legacy .rdb format.
+# The Legacy .rdb Format
-Originally used for services and types .rdb files, before the former were
+Originally used for services and types `.rdb` files, before the former were
replaced with XML files and the latter with the new unoidl format, but still
needed for backwards compatibility.
diff --git a/svgio/README.md b/svgio/README.md
index 722f6c0769b6..76505a6725f2 100644
--- a/svgio/README.md
+++ b/svgio/README.md
@@ -1 +1,3 @@
-It contains svgio/source/svgreader which is used for "Insert->Picture->From File".
+# SVG Reader
+
+It contains `svgio/source/svgreader` which is used for "Insert -> Picture -> From File".
diff --git a/svl/README.md b/svl/README.md
index ce257747987b..984d6ecfe2f9 100644
--- a/svl/README.md
+++ b/svl/README.md
@@ -1,50 +1,51 @@
+# Non-Graphical Helper Code (svtools light)
+
Contains non-graphical helper code for office applications.
Specifically this module does not depend on or use includes from module
vcl. Originally all code in svtools that did not depend on vcl was split
off into this svl ("svtools light") module.
-In particular the SfxItemSet is a property-bag like container that
+In particular the `SfxItemSet` is a property-bag like container that
stores arbitrary sets of properties for everything from text run
formats, to Chart regression line properties.
There are lots of other useful helpers in here for various office
-tasks; much of this code was originally moved from svx/sfx2.
+tasks; much of this code was originally moved from `svx/sfx2`.
-== Items, Pools and Sets ==
+## Items, Pools and Sets
-=== SfxPoolItem ===
+### SfxPoolItem
A small reference counted piece of data. Many subclasses, each with a
-unique integer to identify its type (WhichId). Can be compared for equality
-(operator==), Clone()d, and converted to/from uno::Any (QueryValue/PutValue).
+unique integer to identify its type (`WhichId`). Can be compared for equality
+(`operator==`), `Clone()`d, and converted to/from `uno::Any` (`QueryValue/PutValue`).
A pool item may have value semantics ("poolable"), meaning that
there will generally be only one instance that compares equal per item pool,
-or not, in which case the item will be Clone()d quite a bit.
+or not, in which case the item will be `Clone()`d quite a bit.
-=== SfxItemPool ===
+### SfxItemPool
-Usually there is one item pool per document, with a range of valid WhichIds
+Usually there is one item pool per document, with a range of valid `WhichId`s
that is specific to the type of document.
-The item pool owns all instances of SfxPoolItem or its subclasses that have
+The item pool owns all instances of `SfxPoolItem` or its subclasses that have
ever been added to an item set. It also contains a default item for
every WhichId, which will be (depending on parameters) returned from item
-sets if the set does not contain an item at this WhichId.
+sets if the set does not contain an item at this `WhichId`.
-=== SfxItemSet ===
+### SfxItemSet
-The item set can be created with a user-supplied range of WhichIds; it
-will accept SfxPoolItems with matching WhichIds and ignore attempts to
-insert items with non-matching WhichIds.
+The item set can be created with a user-supplied range of `WhichId`s; it
+will accept `SfxPoolItems` with matching `WhichId`s and ignore attempts to
+insert items with non-matching `WhichId`s.
Items that are successfully inserted into the set will be stored in the
-set's SfxItemPool, and for poolable items only a single instance that
-compares equal under the predicate operator== will be stored in the pool,
+set's `SfxItemPool`, and for poolable items only a single instance that
+compares equal under the predicate `operator==` will be stored in the pool,
regardless of how many sets contain it, thus conserving memory.
-There are members m_pWhichRanges for the valid ranges (as pairs of WhichIds),
-m_nCount for the number of items contained, and m_pItems for the pointers to
+There are members `m_pWhichRanges` for the valid ranges (as pairs of `WhichId`s),
+`m_nCount` for the number of items contained, and `m_pItems` for the pointers to
the actual items.
-
diff --git a/svtools/README.md b/svtools/README.md
index dc35c3f38702..b1c2b81b8580 100644
--- a/svtools/README.md
+++ b/svtools/README.md
@@ -1 +1,3 @@
-Tools on top of VCL. Common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code.
+# Tools on the Top of VCL
+
+Common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code.
diff --git a/svx/README.md b/svx/README.md
index 30e946547695..adf52ccacd1f 100644
--- a/svx/README.md
+++ b/svx/README.md
@@ -1,101 +1,105 @@
+# Graphics Related Helper Code
+
Contains graphics related helper code. Lots of the draw and impress code is in this shared library.
-xoutdev
-this is where a lot of wht work would happen to move to the canvas. (what does that mean?)
+- `xoutdev`
-svdraw
-transparent gradient stuff. [seriously? surely much more, too]
+ this is where a lot of wht work would happen to move to the canvas. (what does that mean?)
-== SdrObject ==
+- `svdraw`
+
+ transparent gradient stuff. [seriously? surely much more, too]
+
+## SdrObject
The shapes you can see in LibreOffice (like rectangle, etc.) are SdrObjects.
They are declared as a hierarchy:
-SdrObject <- SdrAttrObj <- E3dObject <- E3dCompoundObject <- E3dCubeObj
- ^ ^ ^ ^ ^ | | ^ ^
- | | | | | | | | +--- E3dExtrudeObj
- | | | | | | | +----- E3dLatheObj
- | | | | | | +------- E3dPolygonObj
- | | | | | +--------- E3dSphereObj
- | | | | +--- E3dScene...
- | | | |
- | | | +--- SdrTextObj <- SdrObjCustomShape...
- | | | ^ ^ ^ ^ ^
- | | | | | | | +--- SdrEdgeObj...
- | | | | | | +----- SdrMeasureObj...
- | | | | | +------- SdrPathObj...
- | | | | +--------- SdrRectObj...
- | | | +----------- SdrTableObj...
- | | +--- SdrObjGroup...
- | + ---- SdrPageObj...
- +------- SdrVirtObj...
+ SdrObject <- SdrAttrObj <- E3dObject <- E3dCompoundObject <- E3dCubeObj
+ ^ ^ ^ ^ ^ | | ^ ^
+ | | | | | | | | +--- E3dExtrudeObj
+ | | | | | | | +----- E3dLatheObj
+ | | | | | | +------- E3dPolygonObj
+ | | | | | +--------- E3dSphereObj
+ | | | | +--- E3dScene...
+ | | | |
+ | | | +--- SdrTextObj <- SdrObjCustomShape...
+ | | | ^ ^ ^ ^ ^
+ | | | | | | | +--- SdrEdgeObj...
+ | | | | | | +----- SdrMeasureObj...
+ | | | | | +------- SdrPathObj...
+ | | | | +--------- SdrRectObj...
+ | | | +----------- SdrTableObj...
+ | | +--- SdrObjGroup...
+ | + ---- SdrPageObj...
+ +------- SdrVirtObj...
The above is incomplete of course.
-== SdrModel / SdrView ==
+## SdrModel / SdrView
-Copied from svdview.hxx:
+Copied from `svdview.hxx`:
- First of all the app creates a SdrModel.
- Then it opens a Win and creates a SdrView.
- ShowSdrPage() announces a page at SdrView.
- It's possible to show SdrView in any Wins at once.
+ First of all the app creates a `SdrModel`.
+ Then it opens a Win and creates a `SdrView`.
+ `ShowSdrPage()` announces a page at `SdrView`.
+ It's possible to show `SdrView` in any Wins at once.
- SdrView can show as many Wins as it wants at once. Pages are announced
- or checked out with the help of ShowSdrPage()/HideSdrPage(). For every announced
- page there is a SdrPageView instance in container aPages. If more than one page
- is showed, you have to pay attention that the offset parameter of ShowSdrPage()
+ `SdrView` can show as many Wins as it wants at once. Pages are announced
+ or checked out with the help of `ShowSdrPage()`/`HideSdrPage()`. For every announced
+ page there is a `SdrPageView` instance in container aPages. If more than one page
+ is showed, you have to pay attention that the offset parameter of `ShowSdrPage()`
is conformed to the size of the page (to prevent overlapping of two pages).
-SdrView itself is inherited from many objects in a chain of inheritance (all
-that starts with SdrPaintView - that is itself inherited from few classes
+`SdrView` itself is inherited from many objects in a chain of inheritance (all
+that starts with `SdrPaintView` - that is itself inherited from few classes
too):
-SdrPaintView <- SdrSnapView <- SdrMarkView <- SdrEditView <- SdrPolyEditView
- ^
- +----------------------------------------------------------------+
- |
- SdrGlueEditView <- SdrObjEditView <- SdrExchangeView <- SdrDragView
- ^
- +----------------------------------------------------------------+
- |
- SdrCreateView <- SdrView
+ SdrPaintView <- SdrSnapView <- SdrMarkView <- SdrEditView <- SdrPolyEditView
+ ^
+ +----------------------------------------------------------------+
+ |
+ SdrGlueEditView <- SdrObjEditView <- SdrExchangeView <- SdrDragView
+ ^
+ +----------------------------------------------------------------+
+ |
+ SdrCreateView <- SdrView
-From SdrView on, it is not flat, but a real hierarchy again.
+From `SdrView` on, it is not flat, but a real hierarchy again.
-== Drawing Layer / SdrObject(s) ==
+## Drawing Layer / SdrObject(s)
-See drawinglayer/README for general information about drawinglayer.
+See `drawinglayer/README.md` for general information about drawinglayer.
Below is the class diagram that comes from
-http://www.openoffice.org/marketing/ooocon2006/presentations/wednesday_g11.odp,
+,
slide number 6.
-.------- Model --------------. .------- View -----------------------------------------.
-| SdrObject - ViewContact | 1..* | ViewObjectContact |
-| getChild() |------| getPrimitiveList() -----> Object(s) ---> SdrView |
-| getVOC() | | getRecPrimitiveList() Contact |
-| getViewInd... | |________|_____________________________________________|
-| ...ependentPrimitiveList() | |
-|____________________________| generates
- | ______
- V / |
- .----------------------. |
- | basePrimitive | |
- | getRange() |<---'
- | getDecomposition() |
- |______________________|
+ .------- Model --------------. .------- View -----------------------------------------.
+ | SdrObject - ViewContact | 1..* | ViewObjectContact |
+ | getChild() |------| getPrimitiveList() -----> Object(s) ---> SdrView |
+ | getVOC() | | getRecPrimitiveList() Contact |
+ | getViewInd... | |________|_____________________________________________|
+ | ...ependentPrimitiveList() | |
+ |____________________________| generates
+ | ______
+ V / |
+ .----------------------. |
+ | basePrimitive | |
+ | getRange() |<---'
+ | getDecomposition() |
+ |______________________|
-For SdrObjects, there are own DrawingLayer primitives in
-svx/source/sdr/primitive2d
+For `SdrObjects`, there are own `DrawingLayer` primitives in
+`svx/source/sdr/primitive2d`
-The ViewContact / ViewObject / ViewObjectContact are in svx/source/sdr/contact
-Decomposes the SdrObjects, and does all sort of operations on them.
+The `ViewContact` / `ViewObject` / `ViewObjectContact` are in `svx/source/sdr/contact`
+Decomposes the `SdrObjects`, and does all sort of operations on them.
-If the number of visualizable objects (e.g. SdrObjects) is X, and the number of
-SdrViews is Y, then:
+If the number of visualizable objects (e.g. `SdrObjects`) is `X`, and the number of
+`SdrViews` is `Y`, then:
-- there are X ViewContact instances (1:1 relation with a visualizable object)
-- there are Y ObjectContact instances (1:1 relation with an SdrView)
-- there are X*Y ViewObjecContact instances (1:N relation to both
- visualizable objects and SdrViews)
+- there are `X` `ViewContact` instances (1:1 relation with a visualizable object)
+- there are `Y` `ObjectContact` instances (1:1 relation with an `SdrView`)
+- there are `X*Y` `ViewObjecContact` instances (1:N relation to both
+ visualizable objects and `SdrView`s)
diff --git a/sw/README.md b/sw/README.md
index 54feb78fa7d1..f4c6e44e1c28 100644
--- a/sw/README.md
+++ b/sw/README.md
@@ -1,10 +1,10 @@
-Writer application code.
+# Writer Application Code
Exact history was lost before Sept. 18th, 2000, but old source code
comments show that Writer core dates back until at least November
1990.
-== Module contents ==
+## Module Contents
* inc: headers available to all source files inside the module
* qa: unit, slow and subsequent tests
* sdi
@@ -12,7 +12,7 @@ comments show that Writer core dates back until at least November
* uiconfig: user interface configuration
* util: UNO passive registration config
-== Source contents ==
+## Source Contents
* core: Writer core (document model, layout, UNO API implementation)
* filter: Writer internal filters
* ascii: plain text filter
@@ -27,19 +27,19 @@ comments show that Writer core dates back until at least November
* uibase: user interface (those parts that are linked into sw & always loaded)
* ui: user interface (optional parts that are loaded on demand (swui))
-== Core ==
+## Core
There is a good overview documentation of basic architecture of Writer core
in the OOo wiki:
-http://wiki.openoffice.org/wiki/Writer/Core_And_Layout
-http://wiki.openoffice.org/wiki/Writer/Text_Formatting
+- http://wiki.openoffice.org/wiki/Writer/Core_And_Layout
+- http://wiki.openoffice.org/wiki/Writer/Text_Formatting
Writer specific WhichIds are defined in sw/inc/hintids.hxx.
The details below are mainly about details missing from the Wiki pages.
-=== SwDoc ===
+### SwDoc
The central class for a document is SwDoc, which represents a document.
@@ -50,7 +50,7 @@ SwDoc::getIDocument*() methods to retrieve the managers.
However there are still too many members and methods in this class,
many of which could be moved to some Manager or other...
-=== SwNodes ===
+### SwNodes
Basically a (fancy) array of SwNode pointers. There are special subclasses of
SwNode (SwStartNode and SwEndNode) which are used to encode a nested tree
@@ -67,7 +67,7 @@ The SwNodes contains the following top-level sections:
4. Deleted Change Tracking content
5. Body content
-=== Undo ===
+### Undo
The Undo/Redo information is stored in a sw::UndoManager member of SwDoc,
which implements the IDocumentUndoRedo interface.
@@ -79,7 +79,7 @@ Undo/Redo step.
There are also ListActions which internally contain several individual SwUndo
actions; these are created by the StartUndo/EndUndo wrapper methods.
-=== Text Attributes ===
+### Text Attributes
The sub-structure of paragraphs is stored in the SwpHintsArray member
SwTextNode::m_pSwpHints. There is a base class SwTextAttr with numerous
@@ -106,7 +106,7 @@ There are several sub-categories of SwTextAttr:
These all have a corresponding dummy character in the paragraph text, which
is a placeholder for the "expansion" of the attribute, e.g. field content.
-=== Fields ===
+### Fields
There are multiple model classes involved for fields:
@@ -140,7 +140,7 @@ There are multiple model classes involved for fields:
Its life-cycle is determined by UNO clients outside of sw; it will get
disposed when the SwFormatField dies.
-=== Lists ===
+### Lists
- SwNumFormat (subclass of SvxNumFormat) determines the formatting of a single
numbering level.
@@ -197,9 +197,9 @@ There are multiple model classes involved for fields:
Note that there is no UNO service to represent a list.
-=== Layout ===
+### Layout
-The layout is a tree of SwFrame subclasses, the following relationships are
+The layout is a tree of `SwFrame` subclasses, the following relationships are
possible between frames:
- You can visit the tree by following the upper, lower, next and previous pointers.
diff --git a/swext/README.md b/swext/README.md
index 71eaa268cddf..6ddc53d11ee8 100644
--- a/swext/README.md
+++ b/swext/README.md
@@ -1 +1,3 @@
-Writer extensions (currently only MediaWiki Extension).
+# Writer Extensions
+
+Currently only contains MediaWiki extension.
diff --git a/sysui/README.md b/sysui/README.md
index beedede865db..951b89fdd1b8 100644
--- a/sysui/README.md
+++ b/sysui/README.md
@@ -1 +1,3 @@
-.desktop files for various Linux distros, and similar stuff for other OSes
+# Desktop System Integration
+
+`.desktop` files for various Linux distros, and similar stuff for other operating systems.
diff --git a/test/README.md b/test/README.md
index dc0afd80a8d9..0845e3f7354a 100644
--- a/test/README.md
+++ b/test/README.md
@@ -1,4 +1,4 @@
-Test harness code for C++ unit testing
+# Test Harness Code for C++ Unit Testing
Many of these tests are run during the build process. In that case on
-unix, if a test fails follow the error messages to debug it under gdb.
+unix, if a test fails follow the error messages to debug it under `gdb`.
diff --git a/testtools/README.md b/testtools/README.md
index c71e4c8b607d..f238c512293f 100644
--- a/testtools/README.md
+++ b/testtools/README.md
@@ -1,34 +1,35 @@
-Testing tools
+# Testing Tools
-== How to check compatibility between compilers ==
+## How to Check Compatibility Between Compilers
Since the interfaces used in the cpp bridgetest are not changed often
-one can just build the cppobj.uno.dll and the constructors.uno.dll
-(testtools/source/bridgetest) in an
+one can just build the `cppobj.uno.dll` and the `constructors.uno.dll`
+(`testtools/source/bridgetest`) in an
old environment and then use them in the new environment. That is the files
-are copied into the testtools/wntmsciXX.pro folder which corresponds to the
+are copied into the `testtools/wntmsciXX.pro` folder which corresponds to the
new environment.
On Windows this test will typically fail because the tests use the
-cppu::getCaughtException function, which only works when all libs are build
+`cppu::getCaughtException` function, which only works when all libs are build
using the same runtime.
This part of the test can switched off. To do this go into the
-testtools/source/bridgetest folder and call
-dmake compcheck=1
+`testtools/source/bridgetest` folder and call
-This will add a new compiler define (-DCOMPCHECK) and will be used in the
-bridgetest.cxx to switch off the code which uses the getCaughtException function.
+ dmake compcheck=1
+
+This will add a new compiler define (`-DCOMPCHECK`) and will be used in the
+`bridgetest.cxx` to switch off the code which uses the `getCaughtException` function.
However, there is still a test which causes the test component to throw
-and IllegalArgumentException. This still works.
+and `IllegalArgumentException`. This still works.
-== Using source/bridgetest for stress testing ==
+## Using source / bridgetest for Stress Testing
-Start a modified bridgetest_server (with the final "--singleaccept" argument
-removed from the uno executable call) or a modified bridgetest_javaserver (with
-the final "singleaccept" argument replaced with "multi" in the java executable
-call), then start a modified bridgetest_client (with a final "stress" argument
+Start a modified `bridgetest_server` (with the final `--singleaccept` argument
+removed from the uno executable call) or a modified `bridgetest_javaserver` (with
+the final `singleaccept` argument replaced with `multi` in the java executable
+call), then start a modified `bridgetest_client` (with a final `stress` argument
added to the uno executable call). The client will continuously establish
connections to the server which are immediately destroyed again. The test will
run forever, unless an error occurs.
diff --git a/toolkit/README.md b/toolkit/README.md
index b67f037b08cc..f41fb3760cbd 100644
--- a/toolkit/README.md
+++ b/toolkit/README.md
@@ -1,11 +1,15 @@
+# Abstract Windowing Toolkit
+
"Abstract" windowing thing. UNO implementations of windowing stuff so that it
can be used from Basic or Java. But also stuff that has no connection to Basic
or Java.
-Note that the "awt" here has no relation to the Java awt, as far as I know. It
-might be inspired by it API-wise, perhaps. (If you know differently, feel free
-to improve this README file.)
+## Notes
-Note that toolkit/ is itself not really a toolkit, it is at root a
-reasonably simple wrapper of vcl/. If you came here looking for a
-toolkit, please look at vcl/ instead.
+The "awt" here has no relation to the Java AWT, as far as I know. It
+might be inspired by it API-wise, perhaps. (If you know differently, feel free
+to improve this `README.md` file.)
+
+Also note that `toolkit/` is itself not really a toolkit, it is at root a
+reasonably simple wrapper of `vcl/`. If you came here looking for a
+toolkit, please look at `vcl/` instead.
diff --git a/tools/README.md b/tools/README.md
index 4b98a7342af5..5bb9f46d678e 100644
--- a/tools/README.md
+++ b/tools/README.md
@@ -1,3 +1,5 @@
+# Old Tools (Deprecated)
+
Predates sal - string functions, url manipulation, stream stuff,
polygons, etc.
@@ -5,5 +7,5 @@ Exact history is lost before Sept. 18th, 2000, but old source code
comments show that part of the tools library dates back until at least
April 1991.
-This directory will be removed in the near future (see fdo#39445 or
-fdo#63154).
+This directory will be removed in the near future (see tdf#39445 or
+tdf#63154).
diff --git a/ucb/README.md b/ucb/README.md
index c6b153130e9c..5af5487d7c5d 100644
--- a/ucb/README.md
+++ b/ucb/README.md
@@ -1,6 +1,8 @@
+# Universal Content Broker (UCB)
+
Universal Content Broker (has ucp) which do things like convert files to strings in content broker world.
-mmeeks: so - I renamed the old LGPLv3 webdav code to webdav-neon, and imported
+mmeeks: so - I renamed the old LGPLv3 webdav code to `webdav-neon`, and imported
the (not built) serf webdav ucp into the old space. so that in future, we can
merge changes more easily - and still choose which to use. cbosdonnat kindly
volunteered to do some comparative analysis of the two codebases to decide which
diff --git a/ucbhelper/README.md b/ucbhelper/README.md
index ff3d49b0b8f6..86ecaf8662b4 100644
--- a/ucbhelper/README.md
+++ b/ucbhelper/README.md
@@ -1 +1,3 @@
+# C++ Wrappers for UCB
+
C++ wrappers to help make using content providers easy.
diff --git a/udkapi/README.md b/udkapi/README.md
index 9fb99e8ae013..64a9fd63f48e 100644
--- a/udkapi/README.md
+++ b/udkapi/README.md
@@ -1,9 +1,10 @@
-Low level UNO stuff API IDL files
+# APIs for UNO Core
-i.e. those that are part of the standalone URE.
+Low level UNO stuff API IDL files, i.e. those that are part of the standalone URE.
-During the build the resulting .rdb file is known as udkapi.rdb. In the
-installation set, it is known as types.rdb (in the URE's sub-tree).
+During the build the resulting `.rdb` file is known as `udkapi.rdb`. In the
+installation set, it is known as `types.rdb` (in the URE's sub-tree).
-See also:
-[[offapi]]
+## See also
+
+- `offapi`
diff --git a/uitest/README.md b/uitest/README.md
index c941673e7927..8c872bed6f27 100644
--- a/uitest/README.md
+++ b/uitest/README.md
@@ -1 +1,3 @@
+# UI Testing Framework
+
The code for the UI testing framework and the UI tests.
diff --git a/unodevtools/README.md b/unodevtools/README.md
index f53328e9a0a3..16692e371e55 100644
--- a/unodevtools/README.md
+++ b/unodevtools/README.md
@@ -1,6 +1,6 @@
-Helper tools for external UNO component developers
+# Helper Tools for External UNO Component Developers
This module contains some tools for people writing UNO components. In
particular it will auto-generate skeletons for implementing UNO
interfaces - that declare all the relevant methods leaving the code to
-be filled in. This can be done for C++ or Java.
\ No newline at end of file
+be filled in. This can be done for C++ or Java.
diff --git a/unoidl/README.md b/unoidl/README.md
index 9a2f9d263382..792038429d18 100644
--- a/unoidl/README.md
+++ b/unoidl/README.md
@@ -1,39 +1,39 @@
-Support for UNOIDL registry formats
+# Support for UNOIDL Registry Formats
-Library_unoidl contains the unoidl::Manager and unoidl::Provider implementations
+`Library_unoidl` contains the `unoidl::Manager` and `unoidl::Provider` implementations
for the following registry formats:
-* The new UNOIDL binary types.rdb format.
-* The old legacy binary types.rdb format (based on modules [[store]] and
- [[registry]]).
-* A source-file format, reading (multiple) UNOIDL entity definitions directly
- from a single .idl source file.
-* A source-tree format, reading UNOIDL entity definitions directly from a tree
- of .idl source files rooted at a given directory. (Where an entity named
- foo.bar.Baz is expected in a file named foo/bar/Baz.idl within that tree.)
+* The new `UNOIDL` binary `types.rdb` format.
+* The old legacy binary `types.rdb` format (based on modules "store" and
+ "registry").
+* A source-file format, reading (multiple) `UNOIDL` entity definitions directly
+ from a single `.idl` source file.
+* A source-tree format, reading `UNOIDL` entity definitions directly from a tree
+ of `.idl` source files rooted at a given directory. (Where an entity named
+ `foo.bar.Baz` is expected in a file named `foo/bar/Baz.idl` within that tree.)
-(While .idl files still contain #include directives for legacy idlc, the source-
-based formats ignore any preprocessing directives starting with "#" in the .idl
-files.) unoidl::Manager::addProvider transparently detects the registry format
+(While `.idl` files still contain `#include` directives for legacy idlc, the source-
+based formats ignore any preprocessing directives starting with `#` in the `.idl`
+files.) `unoidl::Manager::addProvider` transparently detects the registry format
for a given URI and instantiates the corresponding provider implementation.
-Executable_unoidl-write is a helper tool to convert from any of the registry
-formats to the UNOIDL format. It is used at build-time to compile UNOIDL format
-.rdb files (that are used at build-time only, or included in installation sets
-in URE or program/types/ or as part of bundled extensions that are created
-during the build and not merely included as pre-built .oxt files) from source
-.idl files. (The SDK still uses idlc and generates legacy format .rdb files for
+`Executable_unoidl-write` is a helper tool to convert from any of the registry
+formats to the `UNOIDL` format. It is used at build-time to compile `UNOIDL` format
+`.rdb` files (that are used at build-time only, or included in installation sets
+in `URE` or `program/types/` or as part of bundled extensions that are created
+during the build and not merely included as pre-built `.oxt` files) from source
+`.idl` files. (The SDK still uses idlc and generates legacy format `.rdb` files for
now.)
-Executable_unoidl-read is a helper tool to convert from any of the registry
+`Executable_unoidl-read` is a helper tool to convert from any of the registry
formats to the source-file format. It can be used manually after a LibreOffice
-version update to create new reference registries for Executable_unoidl-check.
+version update to create new reference registries for `Executable_unoidl-check`.
-Executable_unoidl-check is a helper tool to check that one registry is
+`Executable_unoidl-check` is a helper tool to check that one registry is
backwards-compatible with another registry. It is used at build-time to detect
inadvertent breakage of the udkapi and offapi APIs.
-== Specification of the new UNOIDL types.rdb format ==
+## Specification of the New UNOIDL types.rdb Format
The format uses byte-oriented, platform-independent, binary files. Larger
quantities are stored LSB first, without alignment requirements. Offsets are
@@ -46,238 +46,238 @@ entities (e.g., both for an interface type definition and for a direct method of
an interface type definition; the idea is that it can be added for direct parts
that forma a "many-to-one" relationship; there is a tradeoff between generality
of concept and size of representation, esp. for the C++ representation types in
-namespace unoidl) and consist of arbitrary sequences of name/value strings.
+namespace `unoidl`) and consist of arbitrary sequences of name/value strings.
Each name/value string is encoded as a single UTF-8 string containing a name (an
-arbitrary sequence of Unicode code points not containing U+003D EQUALS SIGN),
-optionally followed by U+003D EQUALS SIGN and a value (an arbitrary sequence of
+arbitrary sequence of Unicode code points not containing `U+003D EQUALS SIGN`),
+optionally followed by `U+003D EQUALS SIGN` and a value (an arbitrary sequence of
Unicode code points). The only annotation name currently in use is "deprecated"
(without a value).
The following definitions are used throughout:
-* UInt16: 2-byte value, LSB first
-* UInt32: 4-byte value, LSB first
-* UInt64: 8-byte value, LSB first
-* Offset: UInt32 value, counting bytes from start of file
-* NUL-Name: zero or more non-NUL US-ASCII bytes followed by a NUL byte
-* Len-String: UInt32 number of characters, with 0x80000000 bit 0, followed by
- that many US-ASCII (for UNOIDL related names) resp. UTF-8 (for annotations)
+* `UInt16`: 2-byte value, LSB first
+* `UInt32`: 4-byte value, LSB first
+* `UInt64`: 8-byte value, LSB first
+* Offset: `UInt32` value, counting bytes from start of file
+* `NUL`-Name: zero or more non-`NUL` US-ASCII bytes followed by a `NUL` byte
+* Len-String: UInt32 number of characters, with `0x80000000` bit 0, followed by
+ that many US-ASCII (for `UNOIDL` related names) resp. UTF-8 (for annotations)
bytes
-* Idx-String: either an Offset (with 0x80000000 bit 1) of a Len-String, or a
+* Idx-String: either an Offset (with `0x80000000` bit 1) of a Len-String, or a
Len-String
-* Annotations: UInt32 number N of annotations followed by N * Idx-String
-* Entry: Offset of NUL-Name followed by Offset of payload
+* Annotations: `UInt32` number `N` of annotations followed by `N * Idx-String`
+* Entry: Offset of `NUL`-Name followed by Offset of payload
* Map: zero or more Entries
The file starts with an 8 byte header, followed by information about the root
-map (unoidl-write generates files in a single depth-first pass, so the root map
+map (`unoidl-write` generates files in a single depth-first pass, so the root map
itself is at the end of the file):
-* 7 byte magic header "UNOIDL\xFF"
+* 7 byte magic header `UNOIDL\xFF`
* version byte 0
* Offset of root Map
-* UInt32 number of entries of root Map
+* `UInt32` number of entries of root Map
...
Files generated by unoidl-write follow that by a
- "\0** Created by LibreOffice " LIBO_VERSION_DOTTED " unoidl-write **\0"
+ "\0** Created by LibreOffice " LIBO_VERSION_DOTTED " unoidl-write **\0"
-banner (cf. config_host/config_version.h.in), as a debugging aid. (Old versions
-used "reg2unoidl" instead of "unoidl-write" in that banner.)
+banner (cf. `config_host/config_version.h.in`), as a debugging aid. (Old versions
+used `reg2unoidl` instead of `unoidl-write` in that banner.)
Layout of per-entry payload in the root or a module Map:
* kind byte:
-** 0: module
-*** followed by:
-**** UInt32 number N1 of entries of Map
-**** N1 * Entry
+ * 0: module
+ * followed by:
+ * `UInt32` number `N1` of entries of Map
+ * `N1 * Entry`
-** otherwise:
-*** 0x80 bit: 1 if published
-*** 0x40 bit: 1 if annotated
-*** 0x20 bit: flag (may only be 1 for certain kinds, see below)
-*** remaining bits:
+ * otherwise:
+ * `0x80` bit: 1 if published
+ * `0x40` bit: 1 if annotated
+ * `0x20` bit: flag (may only be 1 for certain kinds, see below)
+ * remaining bits:
-**** 1: enum type
-***** followed by:
-****** UInt32 number N1 of members
-****** N1 * tuple of:
-******* Idx-String
-******* UInt32
-******* if annotated: Annotations
+ * 1: enum type
+ * followed by:
+ * `UInt32` number N1 of members
+ * `N1 * tuple` of:
+ * `Idx-String`
+ * `UInt32`
+ * if annotated: Annotations
-**** 2: plain struct type (with base if flag is 1)
-***** followed by:
-****** if "with base": Idx-String
-****** UInt32 number N1 of direct members
-****** N1 * tuple of:
-******* Idx-String name
-******* Idx-String type
-******* if annotated: Annotations
+ * 2: plain struct type (with base if flag is 1)
+ * followed by:
+ * if "with base": `Idx-String`
+ * `UInt32` number `N1` of direct members
+ * `N1 * tuple` of:
+ * `Idx-String` name
+ * `Idx-String` type
+ * if annotated: Annotations
-**** 3: polymorphic struct type template
-***** followed by:
-****** UInt32 number N1 of type parameters
-****** N1 * Idx-String
-****** UInt32 number N2 of members
-****** N2 * tuple of:
-******* kind byte: 0x01 bit is 1 if parameterized type
-******* Idx-String name
-******* Idx-String type
-******* if annotated: Annotations
+ * 3: polymorphic struct type template
+ * followed by:
+ * `UInt32` number `N1` of type parameters
+ * `N1 * Idx-String`
+ * `UInt32` number `N2` of members
+ * `N2 * tuple` of:
+ * kind byte: `0x01` bit is 1 if parameterized type
+ * `Idx-String` name
+ * `Idx-String` type
+ * if annotated: Annotations
-**** 4: exception type (with base if flag is 1)
-***** followed by:
-****** if "with base": Idx-String
-****** UInt32 number N1 of direct members
-****** N1 * tuple of:
-******* Idx-String name
-******* Idx-String type
-******* if annotated: Annotations
+ * 4: exception type (with base if flag is 1)
+ * followed by:
+ * if "with base": `Idx-String`
+ * `UInt32` number `N1` of direct members
+ * `N1 * tuple` of:
+ * `Idx-String` name
+ * `Idx-String` type
+ * if annotated: Annotations
-**** 5: interface type
-***** followed by:
-****** UInt32 number N1 of direct mandatory bases
-****** N1 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N2 of direct optional bases
-****** N2 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N3 of direct attributes
-****** N3 * tuple of:
-******* kind byte:
-******** 0x02 bit: 1 if read-only
-******** 0x01 bit: 1 if bound
-******* Idx-String name
-******* Idx-String type
-******* UInt32 number N4 of get exceptions
-******* N4 * Idx-String
-******* UInt32 number N5 of set exceptions
-******* N5 * Idx-String
-******* if annotated: Annotations
-****** UInt32 number N6 of direct methods
-****** N6 * tuple of:
-******* Idx-String name
-******* Idx-String return type
-******* UInt32 number N7 of parameters
-******* N7 * tuple of:
-******** direction byte: 0 for in, 1 for out, 2 for in-out
-******** Idx-String name
-******** Idx-String type
-******* UInt32 number N8 of exceptions
-******* N8 * Idx-String
-******* if annotated: Annotations
+ * 5: interface type
+ * followed by:
+ * `UInt32` number `N1` of direct mandatory bases
+ * `N1 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N2` of direct optional bases
+ * `N2 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N3` of direct attributes
+ * `N3 * tuple` of:
+ * kind byte:
+ * `0x02` bit: 1 if read-only
+ * `0x01` bit: 1 if bound
+ * `Idx-String` name
+ * `Idx-String` type
+ * `UInt32` number `N4` of get exceptions
+ * `N4 * Idx-String`
+ * `UInt32` number `N5` of set exceptions
+ * `N5 * Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N6` of direct methods
+ * `N6 * tuple` of:
+ * `Idx-String` name
+ * `Idx-String` return type
+ * `UInt32` number `N7` of parameters
+ * `N7 * tuple` of:
+ * direction byte: 0 for in, 1 for out, 2 for in-out
+ * `Idx-String` name
+ * `Idx-String` type
+ * `UInt32` number `N8` of exceptions
+ * N8 * Idx-String
+ * if annotated: Annotations
-**** 6: typedef
-***** followed by:
-****** Idx-String
+ * 6: typedef
+ * followed by:
+ * `Idx-String`
-**** 7: constant group
-***** followed by:
-****** UInt32 number N1 of entries of Map
-****** N1 * Entry
+ * 7: constant group
+ * followed by:
+ * `UInt32` number `N1` of entries of Map
+ * `N1 * Entry`
-**** 8: single-interface--based service (with default constructor if flag is 1)
-***** followed by:
-****** Idx-String
-****** if not "with default constructor":
-******* UInt32 number N1 of constructors
-******* N1 * tuple of:
-******** Idx-String
-******** UInt32 number N2 of parameters
-******** N2 * tuple of
-********* kind byte: 0x04 bit is 1 if rest parameter
-********* Idx-String name
-********* Idx-String type
-******** UInt32 number N3 of exceptions
-******** N3 * Idx-String
-******** if annotated: Annotations
+ * 8: single-interface--based service (with default constructor if flag is 1)
+ * followed by:
+ * `Idx-String`
+ * if not "with default constructor":
+ * `UInt32` number `N1` of constructors
+ * `N1 * tuple` of:
+ * `Idx-String`
+ * `UInt32` number `N2` of parameters
+ * `N2 * tuple` of
+ * kind byte: `0x04` bit is 1 if rest parameter
+ * `Idx-String` name
+ * `Idx-String` type
+ * `UInt32` number `N3` of exceptions
+ * `N3 * Idx-String`
+ * if annotated: Annotations
-**** 9: accumulation-based service
-***** followed by:
-****** UInt32 number N1 of direct mandatory base services
-****** N1 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N2 of direct optional base services
-****** N2 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N3 of direct mandatory base interfaces
-****** N3 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N4 of direct optional base interfaces
-****** N4 * tuple of:
-******* Idx-String
-******* if annotated: Annotations
-****** UInt32 number N5 of direct properties
-****** N5 * tuple of:
-******* UInt16 kind:
-******** 0x0100 bit: 1 if optional
-******** 0x0080 bit: 1 if removable
-******** 0x0040 bit: 1 if maybedefault
-******** 0x0020 bit: 1 if maybeambiguous
-******** 0x0010 bit: 1 if readonly
-******** 0x0008 bit: 1 if transient
-******** 0x0004 bit: 1 if constrained
-******** 0x0002 bit: 1 if bound
-******** 0x0001 bit: 1 if maybevoid
-******* Idx-String name
-******* Idx-String type
-******* if annotated: Annotations
+ * 9: accumulation-based service
+ * followed by:
+ * `UInt32` number `N1` of direct mandatory base services
+ * `N1 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N2` of direct optional base services
+ * `N2 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N3` of direct mandatory base interfaces
+ * `N3 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N4` of direct optional base interfaces
+ * `N4 * tuple` of:
+ * `Idx-String`
+ * if annotated: Annotations
+ * `UInt32` number `N5` of direct properties
+ * `N5 * tuple` of:
+ * `UInt16` kind:
+ * `0x0100` bit: 1 if optional
+ * `0x0080` bit: 1 if removable
+ * `0x0040` bit: 1 if maybedefault
+ * `0x0020` bit: 1 if maybeambiguous
+ * `0x0010` bit: 1 if readonly
+ * `0x0008` bit: 1 if transient
+ * `0x0004` bit: 1 if constrained
+ * `0x0002` bit: 1 if bound
+ * `0x0001` bit: 1 if maybevoid
+ * `Idx-String` name
+ * `Idx-String` type
+ * if annotated: Annotations
-**** 10: interface-based singleton
-***** followed by:
-****** Idx-String
+ * 10: interface-based singleton
+ * followed by:
+ * `Idx-String`
-**** 11: service-based singleton
-***** followed by:
-****** Idx-String
+ * 11: service-based singleton
+ * followed by:
+ * `Idx-String`
-*** if annotated, followed by: Annotations
+ * if annotated, followed by: Annotations
Layout of per-entry payload in a constant group Map:
* kind byte:
-** 0x80 bit: 1 if annotated
-** remaining bits:
+ * `0x80` bit: 1 if annotated
+ * remaining bits:
-*** 0: BOOLEAN
-**** followed by value byte, 0 represents false, 1 represents true
+ * 0: `BOOLEAN`
+ * followed by value byte, 0 represents false, 1 represents true
-*** 1: BYTE
-**** followed by value byte, representing values with two's complement
+ * 1: `BYTE`
+ * followed by value byte, representing values with two's complement
-*** 2: SHORT
-**** followed by UInt16 value, representing values with two's complement
+ * 2: `SHORT`
+ * followed by `UInt16` value, representing values with two's complement
-*** 3: UNSIGNED SHORT
-**** followed by UInt16 value
+ * 3: `UNSIGNED SHORT`
+ * followed by `UInt16` value
-*** 4: LONG
-**** followed by UInt32 value, representing values with two's complement
+ * 4: `LONG`
+ * followed by `UInt32` value, representing values with two's complement
-*** 5: UNSIGNED LONG
-**** followed by UInt32 value
+ * 5: `UNSIGNED LONG`
+ * followed by `UInt32` value
-*** 6: HYPER
-**** followed by UInt64 value, representing values with two's complement
+ * 6: `HYPER`
+ * followed by `UInt64` value, representing values with two's complement
-*** 7: UNSIGNED HYPER
-**** followed by UInt64 value
+ * 7: `UNSIGNED HYPER`
+ * followed by `UInt64` value
-*** 8: FLOAT
-**** followed by 4-byte value, representing values in ISO 60599 binary32 format,
+ * 8: `FLOAT`
+ * followed by 4-byte value, representing values in ISO 60599 binary32 format,
LSB first
-*** 9: DOUBLE
-**** followed by 8-byte value, representing values in ISO 60599 binary64 format,
+ * 9: `DOUBLE`
+ * followed by 8-byte value, representing values in ISO 60599 binary64 format,
LSB first
* if annotated, followed by: Annotations
diff --git a/unoil/README.md b/unoil/README.md
index 9ccd36d2501a..3ee4882d0a35 100644
--- a/unoil/README.md
+++ b/unoil/README.md
@@ -1 +1,3 @@
-As offuh but for Java UNO: Maps IDL into java classes definitions.
+# Java UNO IDL Code Generator
+
+Maps IDL into java classes definitions. This is for `offapi`, while `ridljar` is for `udkapi`.
diff --git a/unotools/README.md b/unotools/README.md
index bac492a83105..73ce9f08977d 100644
--- a/unotools/README.md
+++ b/unotools/README.md
@@ -1 +1,3 @@
+# UNO C++ Helpers
+
Helpers for C++ use of UNO.
diff --git a/unoxml/README.md b/unoxml/README.md
index 6ca6382fb10c..ce5cf0e51d3c 100644
--- a/unoxml/README.md
+++ b/unoxml/README.md
@@ -1 +1,3 @@
-UNO wrappers for XML services.
+# UNO Wrappers for XML Services
+
+Contains UNO wrappers for XML services including DOM, RDF and XPath.
diff --git a/ure/README.md b/ure/README.md
index 23b15bf863cb..62ab46110284 100644
--- a/ure/README.md
+++ b/ure/README.md
@@ -1,8 +1,6 @@
-Contains the UNO Runtime Environment (URE).
+# UNO Runtime Environment (URE)
Beginnings of standalone UNO distribution.
-
You may also want to read the README located at:
-[git:ure/source/README]
-
+`git:ure/source/README`
diff --git a/uui/README.md b/uui/README.md
index 43a582a44bbc..6607ebecc506 100644
--- a/uui/README.md
+++ b/uui/README.md
@@ -1 +1,3 @@
-Contains an Interaction Handler for the [[ucb]] and other uses. Works via VCL.
+# Interaction Handler for ucb and More
+
+Contains an Interaction Handler for the "ucb" and other uses. Works via VCL.
diff --git a/vbahelper/README.md b/vbahelper/README.md
index bf569d4cd915..39df5c7e4a59 100644
--- a/vbahelper/README.md
+++ b/vbahelper/README.md
@@ -1 +1,3 @@
-Static helper functions for the VBA filters
\ No newline at end of file
+# Helper Functions for VBA Filters
+
+Static helper functions for the VBA filters
diff --git a/vcl/README.md b/vcl/README.md
index e0944688f2f3..25498991e4fb 100644
--- a/vcl/README.md
+++ b/vcl/README.md
@@ -1,58 +1,61 @@
-Visual Class Library is responsible for the widgets (windowing, buttons, controls, file-pickers etc.), operating system abstraction, including basic rendering (e.g. the output device).
+# Visual Class Library (VCL)
+
+Visual Class Library (VCL) is responsible for the widgets (windowing, buttons, controls,
+file-pickers etc.), operating system abstraction, including basic rendering (e.g. the output device).
It should not be confused with Borland's Visual Component Library, which is entirely unrelated.
VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc.
-source/
++ source/
+ the main cross-platform chunk of source
-inc/
++ inc/
+ cross-platform abstraction headers
-headless/
++ headless/
+ a backend renderer that draws to bitmaps
-android/
++ android/
+ Android backend
-osx/
++ osx/
+ macOS backend
-ios/
++ ios/
+ iOS backend
-quartz/
++ quartz/
+ code common to macOS and iOS
-win/
++ win/
+ Windows backend
-qt5/
++ qt5/
+ Qt5 (under construction)
-unx/
++ unx/
+ X11 backend and its sub-platforms
- gtk3/
- + GTK3 support
- kf5/
- + KF5 support (based on qt5 VCL plugin mentioned above)
- gtk3_kde5/
- + GTK3 support with KDE5 file pickers (alternative to native kf5 one)
- generic/
- + raw X11 support
+ + gtk3/
+ + GTK3 support
+ + kf5/
+ + KF5 support (based on qt5 VCL plugin mentioned above)
+ + gtk3_kde5/
+ + GTK3 support with KDE5 file pickers (alternative to native kf5 one)
+ + generic/
+ + raw X11 support
- plugadapt/
+ + plugadapt/
+ pluggable framework to select correct unx backend
- dtrans/
+ + dtrans/
+ "data transfer" - clipboard handling
+ http://stackoverflow.com/questions/3261379/getting-html-source-or-rich-text-from-the-x-clipboard
for tips how to show the current content of the
clipboard
-How the platform abstraction works
++ How the platform abstraction works
+ InitVCL calls 'CreateSalInstance'
+ this is implemented by the compiled-in platform backend
@@ -72,24 +75,24 @@ LibreOffice (and OpenOffice).
"svp" stands for "StarView Plugin".
-== COM threading ==
+## COM Threading
The way COM is used in LO generally:
- vcl puts main thread into Single-threaded Apartment (STA)
-- oslWorkerWrapperFunction() puts every thread spawned via oslCreateThread()
+- oslWorkerWrapperFunction() puts every thread spawned via `oslCreateThread()`
into MTA (free-threaded)
-== GDIMetafile ==
+# GDIMetafile
GDIMetafile is a vector drawing representation that corresponds directly
to the SVM (StarView Metafile) format; it is extremely important as
an intermediate format in all sorts of drawing and printing operations.
-There is a class MetafileXmlDump in include/vcl/mtfxmldump.hxx that
+There is a class `MetafileXmlDump` in `include/vcl/mtfxmldump.hxx` that
can store a GDIMetafile as XML, which makes debugging much easier
since you can just use "diff" to see changes.
-== EMF+ ==
+## EMF+
emf+ is vector file format used by MSO and is successor of wmf and
emf formats. see
@@ -104,7 +107,7 @@ because GDIMetafile is missing features we need (mostly related to
transparency, argb colors, etc.)
emf/wmf is translated to GDIMetafile in import filter
-vcl/source/filter/wmf and so special handling ends here
+`vcl/source/filter/wmf` and so special handling ends here
emf+ is encapsulated into GDIMetafile inside comment records and
parsed/rendered later, when it reaches cppcanvas. It is parsed and
@@ -113,9 +116,9 @@ emf+-only and emf+-dual files. dual files contains both types of
records (emf and emf+) for rendering the images. these can used also
in applications which don't know emf+. in that case we must ignore
emf records and use emf+ for rendering. for more details see
-documentation
+the documentation.
-parsing:
+## Parsing
wmf/emf filter --> GDI metafile with emf+ in comments --> cppcanvas metafile renderer
@@ -141,7 +144,7 @@ yet. but there were already few cases where we first though that the
problem might be because of broken emf+ part. so far it always turned
out to be another problem.
-rendering:
+## Rendering
before
@@ -157,16 +160,16 @@ using that bitmap later in code using vcl API.
EMF+ implementation has some extensive logging, best if you do a dbgutil
build, and then
-export SAL_LOG=+INFO.cppcanvas.emf+INFO.vcl.emf
+ export SAL_LOG=+INFO.cppcanvas.emf+INFO.vcl.emf
before running LibreOffice; it will give you lots of useful hints.
You can also fallback to EMF (from EMF+) rendering via
-export EMF_PLUS_DISABLE=1
+ export EMF_PLUS_DISABLE=1
-== Printing/PDF export ==
+## Printing/PDF Export
Printing from Writer works like this:
@@ -174,7 +177,7 @@ Printing from Writer works like this:
2) in drawinglayer, a VclMetafileProcessor2D is used to record everything on
the page (because the OutputDevice has been set up to record a GDIMetaFile)
3) the pages' GDIMetaFiles are converted to PDF by the vcl::PDFWriter
- in vcl/source/gdi/pdfwriter*
+ in `vcl/source/gdi/pdfwriter*`
Creating the ODF thumbnail for the first page works as above except step 3 is:
@@ -183,10 +186,10 @@ Creating the ODF thumbnail for the first page works as above except step 3 is:
On-screen display differs in step 1 and 2:
1) the VCL Window gets invalidated somehow and paints itself
-2) in drawinglayer, a VclPixelProcessor2D is used to display the content
+2) in drawinglayer, a `VclPixelProcessor2D` is used to display the content
-=== Debugging PDF export ===
+### Debugging PDF export
Debugging the PDF export becomes much easier when
compression is disabled (so the PDF file is directly readable) and
@@ -195,14 +198,14 @@ generated the following PDF content.
The compression can be disabled even using an env. var:
-export VCL_DEBUG_DISABLE_PDFCOMPRESSION=1
+ export VCL_DEBUG_DISABLE_PDFCOMPRESSION=1
To de-compress the contents of a PDF file written by a release build or
other programs, use the "pdfunzip" tool:
-bin/run pdfunzip input.pdf output.pdf
+ bin/run pdfunzip input.pdf output.pdf
-=== SolarMutexGuard ===
+### SolarMutexGuard
The solar mutex is the "big kernel lock" of LibreOffice, a global one. It's a
recursive mutex, so it's allowed to take the lock on the same thread multiple
@@ -223,10 +226,10 @@ This way you ensure that code (not prepared for multithreading) is still
executed only on a single thread.
In case you expect that your caller takes the solar mutex, then you can use
-the DBG_TESTSOLARMUTEX() macro to assert that in dbgutil builds.
+the `DBG_TESTSOLARMUTEX()` macro to assert that in dbgutil builds.
Event listeners are a special (but frequent) case of the "never call out with
-a mutex (SolarMutex or other) locked" fundamental rule:
+a mutex (`SolarMutex` or other) locked" fundamental rule:
- UNO methods can be called from multiple threads, so most implementations
take the solar mutex as their first action when necessary.
diff --git a/winaccessibility/README.md b/winaccessibility/README.md
index 2f507beacc64..6abf34a37e16 100644
--- a/winaccessibility/README.md
+++ b/winaccessibility/README.md
@@ -1,61 +1,62 @@
-Windows Accessibility Bridge.
+# Windows Accessibility Bridge
This code provides a bridge between our internal Accessibility
interfaces (implemented on all visible 'things' in the suite: eg.
-windows, buttons, entry boxes etc.) - and the Windows MSAA /
-IAccessible2 COM interfaces that are familiar to windows users and
+windows, buttons, entry boxes etc.) - and the Windows `MSAA` /
+`IAccessible2` COM interfaces that are familiar to windows users and
Accessible Technologies (ATs) such as the NVDA screen reader.
The code breaks into three bits:
-source/service/
++ `source/service/`
+ the UNO service providing the accessibility bridge.
It essentially listens to events from the LibreOffice
core and creates and synchronises COM peers for our
internal accessibility objects when events arrive.
-source/UAccCom/
- + COM implementations of the MSAA / IAccessible2 interfaces
++ `source/UAccCom/`
+ + COM implementations of the `MSAA` / `IAccessible2` interfaces
to provide native peers for the accessibility code.
-source/UAccCOMIDL/
++ `source/UAccCOMIDL/`
+ COM Interface Definition Language (IDL) for UAccCom.
Here is one way of visualising the code / control flow
-VCL <-> UNO toolkit <-> UNO a11y <-> win a11y <-> COM / IAccessible2
-vcl/ <-> toolkit/ <-> accessibility/ <-> winaccessibility/ <-> UAccCom/
+ VCL <-> UNO toolkit <-> UNO a11y <-> win a11y <-> COM / IAccessible2
-Threading
+ vcl/ <-> toolkit/ <-> accessibility/ <-> winaccessibility/ <-> UAccCom/
+
+## Threading
It's possible that the UNO components are called from threads other
than the main thread, so they have to be synchronized. It would be nice
to put the component into a UNO apartment (and the COM components into STA)
but UNO would spawn a new thread for it so it's not possible.
-The COM components also call into the same global AccObjectWinManager
+The COM components also call into the same global `AccObjectWinManager`
as the UNO components do so both have to be synchronized in the same way.
-So we use the SolarMutex for all synchronization since anything else
+
+So we use the `SolarMutex` for all synchronization since anything else
would be rather difficult to make work. Unfortunately there is a
pre-existing problem in vcl with Win32 Window creation and destruction
-on non-main threads where a synchronous SendMessage is used while
-the SolarMutex is locked that can cause deadlocks if the main thread is
-waiting on the SolarMutex itself at that time and thus not handing the
-Win32 message; this is easy to trigger with JunitTests but hopefully
+on non-main threads where a synchronous `SendMessage` is used while
+the `SolarMutex` is locked that can cause deadlocks if the main thread is
+waiting on the `SolarMutex` itself at that time and thus not handing the
+Win32 message; this is easy to trigger with `JunitTests` but hopefully
not by actual end users.
-Debugging / playing with winaccessibility
+## Debugging / Playing with winaccessibility
If NVDA is running when soffice starts, IA2 should be automatically enabled
and work as expected. In order to use 'accprobe' to debug
it is necessary to override the check for whether an AT (like NVDA) is
running; to do that use:
-SAL_FORCE_IACCESSIBLE2=1 soffice.exe -writer
+ SAL_FORCE_IACCESSIBLE2=1 soffice.exe -writer
Then you can use accprobe to introspect the accessibility hierarchy
remotely, checkout:
-http://accessibility.linuxfoundation.org/a11yweb/util/accprobe/
-
-But often it's more useful to look at NVDA's text output window...
+
+But often it's more useful to look at NVDA's text output window.
diff --git a/wizards/README.md b/wizards/README.md
index 332c53507af0..cb2ec6d85834 100644
--- a/wizards/README.md
+++ b/wizards/README.md
@@ -1,4 +1,6 @@
+# Java Wizards
+
Java wizards for db setup, importing, tutorials, etc.
-There are also partially converted python copies of each wizard, which
-we are hoping to migrate to in order to remove the Java dependency here.
\ No newline at end of file
+There are also partially converted Python copies of each wizard, which
+we are hoping to migrate to in order to remove the Java dependency here.
diff --git a/writerfilter/README.md b/writerfilter/README.md
index 7a9c8cc57df4..0c027bf42fd4 100644
--- a/writerfilter/README.md
+++ b/writerfilter/README.md
@@ -1,20 +1,22 @@
+# Import Filters for LibreOffice Writer
+
The writerfilter module contains import filters for Writer, using its UNO API.
-Import filter for docx and rtf.
+Import filter for DOCX and RTF.
-== Module contents ==
- * documentation: RNG schema for the OOXML tokenizer, etc.
- * inc: module-global headers (can be included by any files under source)
- * qa: cppunit tests
- * source: the filters themselves
- * util: UNO passive registration config
+* Module contents
+ * `documentation`: RNG schema for the OOXML tokenizer, etc.
+ * `inc`: module-global headers (can be included by any files under source)
+ * `qa`: `cppunit` tests
+ * `source`: the filters themselves
+ * `util`: UNO passive registration config
-== Source contents ==
- * dmapper: the domain mapper, hiding UNO from the tokenizers, used by DOCX and RTF import
- * The incoming traffic of dmapper can be dumped into an XML file in /tmp in
- dbgutil builds, start soffice with the `SW_DEBUG_WRITERFILTER=1`
- environment variable if you want that.
- * filter: the UNO filter service implementations, invoked by UNO and calling
+* Source contents
+ * `dmapper`: the domain mapper, hiding UNO from the tokenizers, used by DOCX and RTF import
+ * The incoming traffic of `dmapper` can be dumped into an XML file in `/tmp` in
+ `dbgutil` builds, start soffice with the `SW_DEBUG_WRITERFILTER=1`
+ environment variable if you want that.
+ * `filter`: the UNO filter service implementations, invoked by UNO and calling
the dmapper + one of the tokenizers
- * ooxml: the docx tokenizer
- * rtftok: the rtf tokenizer
+ * `ooxml`: the docx tokenizer
+ * `rtftok`: the rtf tokenizer
diff --git a/writerperfect/README.md b/writerperfect/README.md
index 9edcb4011ec0..af23e738bb25 100644
--- a/writerperfect/README.md
+++ b/writerperfect/README.md
@@ -1,4 +1,7 @@
-WordPerfect and other filters, wrappers for a set of similar libraries
+# Import / Export Filters for WordPerfect and Other Formats
+
+Contains import / export filters for WordPerfect and other formats, wrappers
+for a set of similar libraries.
This collection of filters is here in this folder in addition to the
WordPerfect filter that gave the module its (humorous) name "writerperfect"
diff --git a/xmerge/README.md b/xmerge/README.md
index d45f6c4e0411..aa7183dd44d8 100644
--- a/xmerge/README.md
+++ b/xmerge/README.md
@@ -1,6 +1,9 @@
+# Document Conversion and Merging
+
For converting documents among from and into formats and also for merging them.
Uses Java and plug-in architecture.
-See also:
-[http://xml.openoffice.org/xmerge/]
+## See also
+
+
diff --git a/xmlhelp/README.md b/xmlhelp/README.md
index 3e54ddc51bb2..60a59fc808ca 100644
--- a/xmlhelp/README.md
+++ b/xmlhelp/README.md
@@ -1 +1,3 @@
-Help reader and viewer for online help.
\ No newline at end of file
+# XML Help
+
+Help reader and viewer for online help.
diff --git a/xmloff/README.md b/xmloff/README.md
index 45b78ae202f6..3eb276c096ad 100644
--- a/xmloff/README.md
+++ b/xmloff/README.md
@@ -1,4 +1,4 @@
-## Contains ODF import and export filter logic.
+# ODF Import and Export Filter Logic
The main library "xo" contains the basic ODF import/export filter
implementation for most applications. The document is accessed
@@ -9,7 +9,7 @@ The filter consumes/produces via SAX UNO API interface (implemented in
applications, for example [git:sw/source/filter/xml].
There is a central list of all element or attribute names in
-[git:include/xmloff/xmltoken.hxx]. The main class of the import filter
+`git:include/xmloff/xmltoken.hxx`. The main class of the import filter
is SvXMLImport, and of the export filter SvXMLExport.
The Import filter maintains a stack of contexts for each element being
@@ -37,12 +37,11 @@ consumed by the ODF import filter.
There is some stuff in the "dtd" directory which is most likely related
to the OpenOffice.org XML format but is possibly outdated and obsolete.
-### Add new XML tokens
+## Add New XML Tokens
When adding a new XML token, you need to add its entry in the following three
files:
-* [git:include/xmloff/xmltoken.hxx]
-* [git:xmloff/source/core/xmltoken.cxx]
-* [git:xmloff/source/token/tokens.txt]
-
+* `git:include/xmloff/xmltoken.hxx`
+* `git:xmloff/source/core/xmltoken.cxx`
+* `git:xmloff/source/token/tokens.txt`
diff --git a/xmlreader/README.md b/xmlreader/README.md
index 0c6bae91bd1d..8d76e2052330 100644
--- a/xmlreader/README.md
+++ b/xmlreader/README.md
@@ -1,6 +1,6 @@
-fast/small XML pull parser.
+# Fast and Small XML Pull Parser
-Implements a simple, fast pull parser, currently used by [[configmgr]] and
-[[stoc]]'s simpleregistry code (used to register UNO components in
+Implements a simple, fast pull parser, currently used by `configmgr` and
+`stoc`'s simpleregistry code (used to register UNO components in
services.rdb files). It supports a subset of XML features, but is fast
and small.
diff --git a/xmlscript/README.md b/xmlscript/README.md
index 84cfec6e7fde..3f0b05aa82cf 100644
--- a/xmlscript/README.md
+++ b/xmlscript/README.md
@@ -1,6 +1,6 @@
-XML dialogs.
+# XML Dialogs
This code is used to (de)serialize basic dialogs to XML for storage
inside documents. While the XML -appears- to have some hierarchical
structure, that is only a fabrication, parsing and underlying toolkit
-widget structure is sadly linear and flat.
\ No newline at end of file
+widget structure is sadly linear and flat.
diff --git a/xmlsecurity/README.md b/xmlsecurity/README.md
index 52a479009403..796094901112 100644
--- a/xmlsecurity/README.md
+++ b/xmlsecurity/README.md
@@ -1,4 +1,4 @@
-Stuff for document signing.
+# Stuff for Document Signing
-This code provides dialogs, and infrastructure wrapping libxmlsec and gpgme that
+This code provides dialogs, and infrastructure wrapping `libxmlsec` and `gpgme` that
implements document signing.