mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-19 17:18:09 -07:00
99 lines
3.3 KiB
Diff
99 lines
3.3 KiB
Diff
From 06837a859c3cc03b175241d84575f747c2a0a779 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Gerlach <stefan.gerlach@uni-konstanz.de>
|
|
Date: Mon, 17 Apr 2023 23:15:19 +0200
|
|
Subject: [PATCH] support discount version 3
|
|
|
|
cherry-picked (and merged) commits from git master:
|
|
80340872e0fd3780065b847000882cd2c6faaf09
|
|
22c553af43ff2afc42a32f8b9f04c6b426f49300
|
|
---
|
|
CMakeLists.txt | 4 ++++
|
|
cmake/FindDiscount.cmake | 9 ++++++++-
|
|
src/backend/worksheet/TextLabel.cpp | 17 +++++++++++++++--
|
|
3 files changed, 27 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index ed478d024..2e28a1aff 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -493,6 +493,10 @@ IF (ENABLE_DISCOUNT)
|
|
TYPE OPTIONAL)
|
|
IF (Discount_FOUND)
|
|
add_definitions (-DHAVE_DISCOUNT)
|
|
+ MESSAGE (STATUS "Found Markdown Library Discount ${Discount_VERSION}")
|
|
+ IF (${Discount_VERSION} VERSION_GREATER "2.99")
|
|
+ add_definitions (-DHAVE_DISCOUNT3)
|
|
+ ENDIF ()
|
|
ELSE ()
|
|
MESSAGE (STATUS "Discount library NOT FOUND.")
|
|
ENDIF ()
|
|
diff --git a/cmake/FindDiscount.cmake b/cmake/FindDiscount.cmake
|
|
index 4919ad6e1..9dd348649 100644
|
|
--- a/cmake/FindDiscount.cmake
|
|
+++ b/cmake/FindDiscount.cmake
|
|
@@ -10,6 +10,11 @@
|
|
# SPDX-FileCopyrightText: 2018 Sune Vuorela <sune@kde.org>
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
+find_package(PkgConfig QUIET)
|
|
+pkg_check_modules(PC_LIBMARKDOWN libmarkdown QUIET)
|
|
+
|
|
+set(Discount_VERSION ${PC_LIBMARKDOWN_VERSION})
|
|
+
|
|
if (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
|
|
|
|
# Already in cache
|
|
@@ -19,10 +24,12 @@ else (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
|
|
|
|
find_library (Discount_LIBRARIES
|
|
NAMES markdown libmarkdown
|
|
+ HINTS ${PC_LIBMARKDOWN_LIBRARY_DIRS}
|
|
)
|
|
|
|
find_path (Discount_INCLUDE_DIR
|
|
NAMES mkdio.h
|
|
+ HINTS ${PC_LIBMARKDOWN_INCLUDE_DIRS}
|
|
)
|
|
|
|
include (FindPackageHandleStandardArgs)
|
|
@@ -30,7 +37,7 @@ else (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
|
|
|
|
endif (Discount_INCLUDE_DIR AND Discount_LIBRARIES)
|
|
|
|
-mark_as_advanced(Discount_INCLUDE_DIR Discount_LIBRARIES)
|
|
+mark_as_advanced(Discount_INCLUDE_DIR Discount_LIBRARIES Discount_VERSION)
|
|
|
|
if (Discount_FOUND)
|
|
add_library(Discount::Lib UNKNOWN IMPORTED)
|
|
diff --git a/src/backend/worksheet/TextLabel.cpp b/src/backend/worksheet/TextLabel.cpp
|
|
index 815dcb785..1c85c0e9e 100644
|
|
--- a/src/backend/worksheet/TextLabel.cpp
|
|
+++ b/src/backend/worksheet/TextLabel.cpp
|
|
@@ -576,8 +576,21 @@ void TextLabelPrivate::updateText() {
|
|
case TextLabel::Mode::Markdown: {
|
|
#ifdef HAVE_DISCOUNT
|
|
auto mdCharArray = textWrapper.text.toUtf8();
|
|
- MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size()+1, 0);
|
|
- if(!mkd_compile(mdHandle, MKD_LATEX | MKD_FENCEDCODE | MKD_GITHUBTAGS)) {
|
|
+#ifdef HAVE_DISCOUNT3
|
|
+ MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size() + 1, nullptr);
|
|
+
|
|
+ mkd_flag_t* v3flags = mkd_flags();
|
|
+ mkd_set_flag_num(v3flags, MKD_LATEX);
|
|
+ mkd_set_flag_num(v3flags, MKD_FENCEDCODE);
|
|
+ mkd_set_flag_num(v3flags, MKD_GITHUBTAGS);
|
|
+
|
|
+ if (!mkd_compile(mdHandle, v3flags)) {
|
|
+#else
|
|
+ MMIOT* mdHandle = mkd_string(mdCharArray.data(), mdCharArray.size() + 1, 0);
|
|
+
|
|
+ unsigned int flags = MKD_LATEX | MKD_FENCEDCODE | MKD_GITHUBTAGS;
|
|
+ if (!mkd_compile(mdHandle, flags)) {
|
|
+#endif
|
|
DEBUG(Q_FUNC_INFO << ", Failed to compile the markdown document");
|
|
mkd_cleanup(mdHandle);
|
|
return;
|
|
--
|
|
2.40.0
|
|
|