From c78d59de5f9c6d49c2ad0f3793bf42f6d6740638 Mon Sep 17 00:00:00 2001 From: Evgeniy Dushistov Date: Fri, 24 Oct 2014 18:03:30 +0000 Subject: [PATCH] fixes for last commit --- src/libwrapper.cpp | 2 ++ src/stardict_lib.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/libwrapper.cpp b/src/libwrapper.cpp index 20c614c..ff8e771 100644 --- a/src/libwrapper.cpp +++ b/src/libwrapper.cpp @@ -179,6 +179,8 @@ static std::string parse_data(const gchar *data, bool colorize_output) case 'k': case 'y': sec_size = strlen(p); + if (sec_size) + res += std::string(p, sec_size); sec_size++; break; case 'W': diff --git a/src/stardict_lib.cpp b/src/stardict_lib.cpp index 25f1b5e..b7aa60b 100644 --- a/src/stardict_lib.cpp +++ b/src/stardict_lib.cpp @@ -214,6 +214,7 @@ gchar* DictBase::GetWordData(guint32 idxitem_offset, guint32 idxitem_size) case 'l': case 'g': case 'x': + case 'k': data_size += sizeof(gchar); break; case 'W': @@ -243,6 +244,7 @@ gchar* DictBase::GetWordData(guint32 idxitem_offset, guint32 idxitem_size) case 'l': case 'g': case 'x': + case 'k': sec_size = strlen(p2)+1; memcpy(p1, p2, sec_size); p1+=sec_size; @@ -280,6 +282,7 @@ gchar* DictBase::GetWordData(guint32 idxitem_offset, guint32 idxitem_size) case 'l': case 'g': case 'x': + case 'k': memcpy(p1, p2, sec_size); p1 += sec_size; *p1='\0';//add the end up '\0'; @@ -348,6 +351,7 @@ bool DictBase::SearchData(std::vector &SearchWords, guint32 idxitem case 'l': case 'g': case 'x': + case 'k': for (j=0; j &SearchWords, guint32 idxitem case 'l': case 'g': case 'x': + case 'k': sec_size = idxitem_size - (p-origin_data); for (j=0; j &SearchWords, guint32 idxitem case 'l': case 'g': case 'x': + case 'k': for (j=0; j