]> jfr.im git - irc/irssi/irssi.git/commitdiff
strsplit_len: make it look more like the original version
authordequis <redacted>
Mon, 9 Nov 2015 09:46:40 +0000 (06:46 -0300)
committerdequis <redacted>
Mon, 9 Nov 2015 09:46:40 +0000 (06:46 -0300)
src/core/misc.c

index 4e8322fa36f3839398b44d6bfc702e7193aa0aef..490b5a8f5c08aff824496b0f79fe33720a1877b6 100644 (file)
@@ -995,10 +995,10 @@ char **strsplit_len(const char *str, int len, gboolean onspace)
 {
        char **ret = g_new(char *, 1);
        int n;
-       int split_offset = 0;
+       int offset;
 
-       for (n = 0; *str != '\0'; n++) {
-               split_offset = MIN(len, strlen(str));
+       for (n = 0; *str != '\0'; n++, str += offset) {
+               offset = MIN(len, strlen(str));
                if (onspace && strlen(str) > len) {
                        /*
                         * Try to find a space to split on and leave
@@ -1007,15 +1007,13 @@ char **strsplit_len(const char *str, int len, gboolean onspace)
                        int i;
                        for (i = len - 1; i > 0; i--) {
                                if (str[i] == ' ') {
-                                       split_offset = i;
+                                       offset = i;
                                        break;
                                }
                        }
                }
-               ret[n] = g_strndup(str, split_offset);
+               ret[n] = g_strndup(str, offset);
                ret = g_renew(char *, ret, n + 2);
-
-               str += split_offset;
        }
        ret[n] = NULL;