office-gobmx/readlicense_oo
Mike Kaganski f3e7004794 tdf#130725: use strtod by David M. Gay to make sure we get the nearest
... representation of given decimal.
Use dtoa.c from https://www.netlib.org/fp/dtoa.c to build a custom
static library that doesn't use current locale (unlike strtod from
stdlib.h).  This is the implementation used by e.g. python and nss
(search for "dtoa.c" under UnpackedTarball).

To avoid name clash with the standard strtod, rename the function
to strtod_nolocale.

Size of buffer on stack in ImpSvNumberInputScan::StringToDouble is
256 characters. Logging function usage in make check, of ~124 600
invocations, the longest string was 14 characters, average being
2.1 characters. So heap allocation is unlikely in scenarios with
intensive function usage.

After std::from_chars is available in baseline compilers, external
library can be dropped, and call to strtod_nolocale replaced with
the standard function.

The artifact at https://dev-www.libreoffice.org/src/dtoa-20180411.tgz
is created with

  mkdir dtoa && mkdir dtoa/src && wget https://www.netlib.org/fp/dtoa.c -O dtoa/src/dtoa.c && \
   printf 'd8bab255476f39ea495c8c8ed164f9077da926e6ca7afb9ad3c56d337c4484fe dtoa/src/dtoa.c' | sha256sum -c && \
   tar -c --owner=0 --group=0 --mode=go=r,u=rw --mtime='Wed, 11 Apr 2018 15:59:39 GMT' dtoa/src/dtoa.c | gzip -n > dtoa-20180411.tgz && \
   printf '0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4 dtoa-20180411.tgz' | sha256sum -c

(where the date "Wed, 11 Apr 2018 15:59:39 GMT" is from
`wget -S https://www.netlib.org/fp/dtoa.c`
"Last-Modified: Wed, 11 Apr 2018 15:59:39 GMT" header).

Change-Id: Ia61b7678e257c4bc1ff193f3f856d611aa5c1a21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88854
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-02-27 11:02:03 +01:00
..
docs
license tdf#130725: use strtod by David M. Gay to make sure we get the nearest 2020-02-27 11:02:03 +01:00
CustomTarget_license.mk
CustomTarget_readme.mk
Makefile
Module_readlicense_oo.mk
Package_files.mk
Package_license.mk
Package_readlicense_oo_readmes.mk
README

Contains the stock libreoffice licensing blurb, as distributed in the install
directory, and also potentially at run-time.

Generating licence files
------------------------

License files are generated from a single source file (license/license.xml).
Output file formats are plain text and html.

- The plain text and the html format is generated with xslt. There are two
  separate xsl files for plain text and html.

Conditional text
----------------

The contents of the license file depends on the build configuration. Several
externals may or may not be shipped with LibreOffice. Therefore, we need to pass
information about build configuration to the xslt processor.

Variables used for conditional text:

- BUILD_TYPE: A space separated list of libraries/externals. If an external is
  present in that list, then the related license text should be included.

- MPL_SUBSET: If the variable is defined, then GPL and LGPL license text will not
  be included, because none of the built-in code need it.

- OS: The target platform. E.g. MSVC Runtime is packaged and used only on Windows.

- WITH_THEMES: A space separated list of icon sets that are used in the build.

Conditional text are surrounded by and extra <div> tag. The class attribute of
that <div> tag decides which parameter values are taken into consideration.