diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2021-10-10 01:51:15 +0200 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2021-10-10 01:52:15 +0200 | 
| commit | fbfd8c7d027f054eacb7384787cf665e4822eda6 (patch) | |
| tree | d6933d048add6a77e606d58ba7b47a644e263933 /src | |
| parent | 8b9c5e04609169adc45a0d30f9ac094d82efae2a (diff) | |
| download | tdv-fbfd8c7d027f054eacb7384787cf665e4822eda6.tar.gz tdv-fbfd8c7d027f054eacb7384787cf665e4822eda6.tar.xz tdv-fbfd8c7d027f054eacb7384787cf665e4822eda6.zip | |
tabfile: add support for writing Pango markup
Enabling this option will ensure the field would parse.
Diffstat (limited to 'src')
| -rw-r--r-- | src/tabfile.c | 19 | 
1 files changed, 15 insertions, 4 deletions
| diff --git a/src/tabfile.c b/src/tabfile.c index b2ceefa..053748c 100644 --- a/src/tabfile.c +++ b/src/tabfile.c @@ -24,6 +24,7 @@  #include <glib.h>  #include <gio/gio.h> +#include <pango/pango.h>  #include <unicode/ucol.h> @@ -93,6 +94,11 @@ import_line (Generator *generator, gchar *line, gsize len, GError **error)  	 || !inplace_unescape (separator, error))  		return FALSE; +	if (generator->info->same_type_sequence +	 && *generator->info->same_type_sequence == STARDICT_FIELD_PANGO +	 && !pango_parse_markup (separator, -1, 0, NULL, NULL, NULL, error)) +		return FALSE; +  	generator_begin_entry (generator);  	return generator_write_string (generator, separator, TRUE, error)  		&& generator_finish_entry (generator, line, error); @@ -145,12 +151,13 @@ main (int argc, char *argv[])  	g_option_context_set_summary (ctx,  		"Create a StarDict dictionary from plaintext."); -	StardictInfo template = -	{ -		.same_type_sequence = "m", -	}; +	gboolean pango_markup = FALSE; +	StardictInfo template = {};  	GOptionEntry entries[] =  	{ +		{ "pango",       'p', 0, G_OPTION_ARG_NONE,   &pango_markup, +		  "Entries use Pango markup", NULL }, +  		{ "book-name",   'b', 0, G_OPTION_ARG_STRING, &template.book_name,  		  "Set the book name field", "TEXT" },  		{ "author",      'a', 0, G_OPTION_ARG_STRING, &template.author, @@ -175,6 +182,10 @@ main (int argc, char *argv[])  		fatal ("%s", g_option_context_get_help (ctx, TRUE, FALSE));  	g_option_context_free (ctx); +	template.same_type_sequence = pango_markup +		? (char[]) { STARDICT_FIELD_PANGO, 0 } +		: (char[]) { STARDICT_FIELD_MEANING, 0 }; +  	if (!template.book_name)  		template.book_name = argv[1];  	if (template.description) | 
