[geany/geany-plugins] 089786: pohelper: Fix locating line breaks
Colomban Wendling
git-noreply at xxxxx
Mon Feb 19 04:17:27 UTC 2018
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Mon, 19 Feb 2018 04:17:27 UTC
Commit: 089786be21422e25c5122d86e0b8b98ffb36798c
https://github.com/geany/geany-plugins/commit/089786be21422e25c5122d86e0b8b98ffb36798c
Log Message:
-----------
pohelper: Fix locating line breaks
Properly handle escape sequences when looking for a line break. This
fixes handling of "\\n", e.g. escaped line breaks.
Modified Paths:
--------------
pohelper/src/gph-plugin.c
Modified: pohelper/src/gph-plugin.c
17 lines changed, 16 insertions(+), 1 deletions(-)
===================================================================
@@ -858,6 +858,21 @@ get_msgid_text_at (GeanyDocument *doc,
return NULL;
}
+static const gchar *
+find_line_break (const gchar *str)
+{
+ for (; *str; str++) {
+ if (*str == '\\') {
+ if (str[1] == 'n')
+ return str;
+ else if (str[1])
+ str++;
+ }
+ }
+
+ return NULL;
+}
+
/* cuts @str in human-readable chunks for max @len.
* cuts first at \n, then at spaces and punctuation */
static gchar **
@@ -870,7 +885,7 @@ split_msg (const gchar *str,
GString *chunk = g_string_sized_new (len);
while (*str) {
- const gchar *nl = strstr (str, "\\n");
+ const gchar *nl = find_line_break (str);
const gchar *p = strpbrk (str, " \t\v\r\n?!,.;:-");
glong chunk_len = g_utf8_strlen (chunk->str, (gssize) chunk->len);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list