mirror of
https://github.com/openharmony/third_party_libabigail.git
synced 2026-07-01 06:09:52 -04:00
58488c5f31
This patch replaces license headers with SPDX identifiers in all files containing license headers. For each file, the SPDX identifier formally represents its current license. Note that the list of SPDX identifiers is available on the SPDX web site at https://spdx.org/licenses. For autoconf-archive/ax_prog_python_version.m4 however, there is a little catch. Dodji Seketeli wrote this ax_check_python_modules.m4. Just like the other autoconf-archive macros, it makes sense to have it under the FSF All Permissive license. Actually, the terms of that license was already in the file but then the license header was wrongly set to GPLv2 with autoconf exception. So I fixed that in this commit by setting the SPDX identifier to FSFAP. * abigail.m4: Replace the license header with the SPDX identifier GPL-3.0-or-later WITH GCC-exception-3.1 * autoconf-archive/ax_check_python_modules.m4: Correctly set the SPDX identifier to FSFAP. * autoconf-archive/ax_compare_version.m4: Replace the license header with the SPDX identifier FSFAP. * autoconf-archive/ax_prog_python_version.m4: Likewise. header with the SPDX identifier FSFAP. * autoconf-archive/ax_valgrind_check.m4: Likewise. * gen-changelog.py: Replace the license header with the SPDX identifier LGPL-2.0-or-later. * include/abg-comp-filter.h: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * include/abg-comparison.h: Likewise. * include/abg-config.h: Likewise. * include/abg-corpus.h: Likewise. * include/abg-cxx-compat.h: Replace the license header with the SPDX identifier LGPL-2.0-or-later. * include/abg-diff-utils.h: Replace the license header with the SPDX identifier LGPL-3.0-or-later * include/abg-dwarf-reader.h: Likewise. * include/abg-fwd.h: Likewise. * include/abg-hash.h: Likewise. * include/abg-ini.h: Likewise. * include/abg-interned-str.h: Likewise. * include/abg-ir.h: Likewise. * include/abg-libxml-utils.h: Likewise. * include/abg-libzip-utils.h: Likewise. * include/abg-reader.h: Likewise. * include/abg-regex.h: Likewise. * include/abg-reporter.h: Likewise. * include/abg-sptr-utils.h: Likewise. * include/abg-suppression.h: Likewise. * include/abg-tools-utils.h: Likewise. * include/abg-traverse.h: Likewise. * include/abg-viz-common.h: Likewise. * include/abg-viz-dot.h: Likewise. * include/abg-viz-svg.h: Likewise. * include/abg-workers.h: Likewise. * include/abg-writer.h: Likewise. * install-sh: Replace the license header with the SPDX identifier MIT. * ltmain.sh: Replace the license header with the SPDX identifier GPL-2.0-or-later. Note that this file has the libtool special exception which allows us to redistribute it under the general license of the project. * src/abg-comp-filter.cc: Replace the license header with the SPDX * src/abg-comparison-priv.h: Likewise. * src/abg-comparison.cc: Likewise. * src/abg-config.cc: Likewise. * src/abg-corpus-priv.h: Likewise. * src/abg-corpus.cc: Likewise. * src/abg-default-reporter.cc: Likewise. * src/abg-diff-utils.cc: Likewise. * src/abg-dwarf-reader.cc: Likewise. * src/abg-elf-helpers.cc: Likewise. * src/abg-elf-helpers.h: Likewise. * src/abg-regex.cc: Likewise. * src/abg-hash.cc: Likewise. * src/abg-ini.cc: Likewise. * src/abg-internal.h: Likewise. * src/abg-ir-priv.h: Likewise. * src/abg-ir.cc: Likewise. * src/abg-leaf-reporter.cc: Likewise. * src/abg-libxml-utils.cc: Likewise. * src/abg-libzip-utils.cc: Likewise. * src/abg-reader.cc: Likewise. * src/abg-reporter-priv.cc: Likewise. * src/abg-reporter-priv.h: Likewise. * src/abg-sptr-utils.cc: Likewise. * src/abg-suppression-priv.h: Likewise. * src/abg-suppression.cc: Likewise. * src/abg-tools-utils.cc: Likewise. * src/abg-traverse.cc: Likewise. * src/abg-viz-common.cc: Likewise. * src/abg-viz-dot.cc: Likewise. * src/abg-viz-svg.cc: Likewise. * src/abg-workers.cc: Likewise. * src/abg-writer.cc: Likewise. * tests/lib/catch.cc: Likewise. * tests/lib/catch.hpp: Add an SPDX identifier BSL-1.0. * tests/mockfedabipkgdiff.in: Replace the license header with the SPDX identifier GPL-3.0-or-later. * tests/print-diff-tree.cc: Likewise. * tests/runtestfedabipkgdiff.py.in: Replaace the license header with the SPDW identifier GPL-3.0-or-later. * tests/test-abicompat.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-abidiff-exit.cc: Likewise. * tests/test-abidiff.cc: Likewise. * tests/test-alt-dwarf-file.cc: Likewise. * tests/test-annotate.cc: Likewise. * tests/test-cxx-compat.cc: Likewise. * tests/test-core-diff.cc: Likewise. * tests/test-diff-dwarf-abixml.cc: Likewise. * tests/test-diff-dwarf.cc: Likewise. * tests/test-diff-filter.cc: Likewise. * tests/test-diff-pkg.cc: Likewise. * tests/test-diff-suppr.cc: Likewise. * tests/test-diff2.cc: Likewise. * tests/test-dot.cc: Replace the license header with the SPDX identifier GPL-3.0-with-GCC-exception. * tests/test-elf-helpers.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-ini.cc: Likewise. * tests/test-ir-walker.cc: Likewise. * tests/test-kmi-whitelist.cc: Likewise. * tests/test-lookup-syms.cc: Likewise. * tests/test-read-dwarf.cc: Likewise. * tests/test-read-write.cc: Likewise. * tests/test-svg.cc: Replace the license header with the SPDX identifier GPL-3.0-with-GCC-exception. * tests/test-symtab.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-tools-utils.cc: Likewise. * tests/test-types-stability.cc: Likewise. * tests/test-utils.cc: Likewise. * tests/test-utils.h: Likewise. * tests/test-write-read-archive.cc: Likewise. * tools/abiar.cc: Likewise. * tools/abicompat.cc: Likewise. * tools/abidiff.cc: Likewise. * tools/abidw.cc: Likewise. * tools/abilint.cc: Likewise. * tools/abipkgdiff.cc: Likewise. * tools/abisym.cc: Likewise. * tools/binilint.cc: Likewise. * tools/fedabipkgdiff: Replace the license header with the SPDX identifier GPL-3.0-or-later. * tools/kmidiff.cc: Likewise. Signed-off-by: Benjamin De Kosnik <bkoz@gnu.org> Signed-off-by: Ben Woodard <woodard@redhat.com> Signed-off-by: Chenxiong Qi <cqi@redhat.com> Signed-off-by: Dodji Seketeli <dodji@redhat.com> Signed-off-by: Giuliano Procida <gprocida@google.com> Signed-off-by: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Jessica Yu <jeyu@kernel.org> Signed-off-by: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Mark Wielaard <mark@klomp.org> Signed-off-by: Matthias Klose <doko@ubuntu.com> Signed-off-by: Matthias Maennich <maennich@google.com> Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com> Signed-off-by: Roland McGrath <roland@hack.frob.com> Signed-off-by: Sinny Kumari <ksinny@gmail.com> Signed-off-by: Slava Barinov <v.barinov@samsung.com>
132 lines
3.3 KiB
C++
132 lines
3.3 KiB
C++
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
// -*- mode: C++ -*-
|
|
//
|
|
// Copyright (C) 2013-2020 Red Hat, Inc.
|
|
|
|
/// @file
|
|
|
|
#ifndef __ABG_LIBXML_UTILS_H__
|
|
#define __ABG_LIBXML_UTILS_H__
|
|
|
|
#include <libxml/xmlreader.h>
|
|
|
|
#include <istream>
|
|
|
|
#include "abg-sptr-utils.h"
|
|
#include "abg-cxx-compat.h"
|
|
|
|
namespace abigail
|
|
{
|
|
|
|
/// Internal namespace for xml manipulation utilities.
|
|
namespace xml
|
|
{
|
|
|
|
using sptr_utils::build_sptr;
|
|
using abg_compat::shared_ptr;
|
|
|
|
/// A convenience typedef for a shared pointer of xmlTextReader.
|
|
typedef shared_ptr<xmlTextReader> reader_sptr;
|
|
|
|
/// A convenience typedef for a shared pointer of xmlChar.
|
|
typedef shared_ptr<xmlChar> xml_char_sptr;
|
|
|
|
/// This functor is used to instantiate a shared_ptr for the
|
|
/// xmlTextReader.
|
|
struct textReaderDeleter
|
|
{
|
|
void
|
|
operator()(xmlTextReaderPtr reader)
|
|
{xmlFreeTextReader(reader);}
|
|
};
|
|
|
|
/// This functor is used to instantiate a shared_ptr for xmlChar
|
|
struct charDeleter
|
|
{
|
|
void
|
|
operator()(xmlChar* str)
|
|
{ xmlFree(str); }
|
|
};
|
|
|
|
reader_sptr new_reader_from_file(const std::string& path);
|
|
reader_sptr new_reader_from_buffer(const std::string& buffer);
|
|
reader_sptr new_reader_from_istream(std::istream*);
|
|
bool xml_char_sptr_to_string(xml_char_sptr, std::string&);
|
|
|
|
int get_xml_node_depth(xmlNodePtr);
|
|
|
|
/// Get the name of the current element node the reader is pointing
|
|
/// to. Note that this macro returns an instance of
|
|
/// shared_ptr<xmlChar> so that the caller doesn't have to worry about
|
|
/// managing memory itself. Also note that the reader is a
|
|
/// shared_ptr<xmlTextReader>
|
|
#define XML_READER_GET_NODE_NAME(reader) \
|
|
xml::build_sptr(xmlTextReaderName(reader.get()))
|
|
|
|
/// Get the type of the current node of the shared_ptr<xmlTextReader>
|
|
/// passed in argument.
|
|
#define XML_READER_GET_NODE_TYPE(reader) \
|
|
static_cast<xmlReaderTypes> (xmlTextReaderNodeType(reader.get()))
|
|
|
|
/// Get the value of attribute 'name' on the current node of 'reader'
|
|
/// which is an instance of shared_ptr<xmlTextReader>.
|
|
#define XML_READER_GET_ATTRIBUTE(reader, name) \
|
|
xml::build_sptr(xmlTextReaderGetAttribute(reader.get(), BAD_CAST(name)))
|
|
|
|
/// Get the value of attribute 'name' ont the instance of xmlNodePtr
|
|
/// denoted by 'node'.
|
|
#define XML_NODE_GET_ATTRIBUTE(node, name) \
|
|
xml::build_sptr(xmlGetProp(node, BAD_CAST(name)))
|
|
|
|
#define CHAR_STR(xml_char_str) \
|
|
reinterpret_cast<char*>(xml_char_str.get())
|
|
|
|
xmlNodePtr
|
|
advance_to_next_sibling_element(xmlNodePtr node);
|
|
|
|
void
|
|
escape_xml_string(const std::string& str,
|
|
std::string& escaped);
|
|
|
|
std::string
|
|
escape_xml_string(const std::string& str);
|
|
|
|
void
|
|
escape_xml_comment(const std::string& str,
|
|
std::string& escaped);
|
|
|
|
std::string
|
|
escape_xml_comment(const std::string& str);
|
|
|
|
void
|
|
unescape_xml_string(const std::string& str,
|
|
std::string& escaped);
|
|
|
|
std::string
|
|
unescape_xml_string(const std::string& str);
|
|
|
|
void
|
|
unescape_xml_comment(const std::string& str,
|
|
std::string& escaped);
|
|
|
|
std::string
|
|
unescape_xml_comment(const std::string& str);
|
|
|
|
}//end namespace xml
|
|
|
|
namespace sptr_utils
|
|
{
|
|
/// Specialization of sptr_utils::build_sptr for xmlTextReader
|
|
template<>
|
|
xml::reader_sptr
|
|
build_sptr<xmlTextReader>(xmlTextReader *p);
|
|
|
|
/// Specialization of build_str for xmlChar.
|
|
template<>
|
|
xml::xml_char_sptr
|
|
build_sptr<xmlChar>(xmlChar *p);
|
|
}// end namespace sptr_utils
|
|
|
|
}//end namespace abigail
|
|
#endif //__ABG_LIBXML_UTILS_H__
|