[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