diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2023-04-07 09:48:41 +0200 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-06-14 13:27:04 +0200 |
commit | 71075740aee2e15f574d19d452f0a586e25a6bd0 (patch) | |
tree | b93c1fcfc73ef99400818a20e4b045069c50ebea /include | |
parent | 427769a751d3f45e41e5a0f4aed385bb2727998c (diff) |
Make encodeForXml accessible for other modules
and share similar code
Change-Id: I7729a46d40845893f577c273c1ab340f69ebb51b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151230
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151754
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/comphelper/xmlencode.hxx | 62 | ||||
-rw-r--r-- | include/vcl/pdfwriter.hxx | 2 |
2 files changed, 62 insertions, 2 deletions
diff --git a/include/comphelper/xmlencode.hxx b/include/comphelper/xmlencode.hxx new file mode 100644 index 000000000000..160de5c9cf42 --- /dev/null +++ b/include/comphelper/xmlencode.hxx @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#pragma once + +#include <rtl/ustring.hxx> + +namespace comphelper::string +{ +inline OUString encodeForXml(std::u16string_view rStr) +{ + // encode conforming xml: + sal_Int32 len = rStr.length(); + OUStringBuffer buf(len + 16); // it's going to be at least len + for (sal_Int32 pos = 0; pos < len; ++pos) + { + sal_Unicode c = rStr[pos]; + switch (c) + { + case '<': + buf.append("<"); + break; + case '>': + buf.append(">"); + break; + case '&': + buf.append("&"); + break; + case '\'': + buf.append("'"); + break; + case '\"': + buf.append("""); + break; + default: + buf.append(c); + break; + } + } + + return buf.makeStringAndClear(); +} + +} /* Namespace */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/include/vcl/pdfwriter.hxx b/include/vcl/pdfwriter.hxx index 966798e814aa..0f4eccb42728 100644 --- a/include/vcl/pdfwriter.hxx +++ b/include/vcl/pdfwriter.hxx @@ -1236,8 +1236,6 @@ The following structure describes the permissions used in PDF security static OString GetDateTime(); }; -VCL_DLLPUBLIC void escapeStringXML( const OUString& rStr, OUString &rValue); - } #endif // INCLUDED_VCL_PDFWRITER_HXX |