From 9803c45058f5e7671a6686249c31ba32228df5a0 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 29 Apr 2015 15:43:13 +0100 Subject: [PATCH] Add line counts to lua mimepart API. --- src/lua/lua_mimepart.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/lua/lua_mimepart.c b/src/lua/lua_mimepart.c index e83ba1770..f1012811a 100644 --- a/src/lua/lua_mimepart.c +++ b/src/lua/lua_mimepart.c @@ -67,6 +67,12 @@ LUA_FUNCTION_DEF (textpart, get_content); * @return {integer} length of part in **bytes** */ LUA_FUNCTION_DEF (textpart, get_length); +/*** + * @method mime_part:get_lines_count() + * Get lines number in the part + * @return {integer} number of lines in the part + */ +LUA_FUNCTION_DEF (textpart, get_lines_count); /*** * @method text_part:is_empty() * Returns `true` if the specified part is empty @@ -106,6 +112,7 @@ static const struct luaL_reg textpartlib_m[] = { LUA_INTERFACE_DEF (textpart, is_utf), LUA_INTERFACE_DEF (textpart, get_content), LUA_INTERFACE_DEF (textpart, get_length), + LUA_INTERFACE_DEF (textpart, get_lines_count), LUA_INTERFACE_DEF (textpart, is_empty), LUA_INTERFACE_DEF (textpart, is_html), LUA_INTERFACE_DEF (textpart, get_fuzzy), @@ -288,6 +295,26 @@ lua_textpart_get_length (lua_State * L) return 1; } +static gint +lua_textpart_get_lines_count (lua_State * L) +{ + struct mime_text_part *part = lua_check_textpart (L); + + if (part == NULL) { + lua_pushnil (L); + return 1; + } + + if (IS_PART_EMPTY (part)) { + lua_pushnumber (L, 0); + } + else { + lua_pushnumber (L, part->nlines); + } + + return 1; +} + static gint lua_textpart_is_empty (lua_State * L) { -- 2.39.5