summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2015-11-05 21:17:11 -0800
committerFilipe Brandenburger <filbranden@google.com>2015-11-05 21:19:54 -0800
commit3ff13c298d6d53293680c383768c3054fb9fcc30 (patch)
treea1547d2fd2da662f6e150896497cd1557ed4368e
parentb85e1c2534ca3b396c2aaa7de384995b42d12e1b (diff)
extract-word: replace an use of `goto` with structured code
Using `goto` might be appropriate for the "finish" cases but it was really not necessary at this point of the code... Just use if/else blocks to accomplish the same. Confirmed that the test cases in test-extract-word keep working as expected.
-rw-r--r--src/basic/extract-word.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/basic/extract-word.c b/src/basic/extract-word.c
index 23e3d557c0..1b3123bb7d 100644
--- a/src/basic/extract-word.c
+++ b/src/basic/extract-word.c
@@ -106,21 +106,19 @@ int extract_first_word(const char **p, char **ret, const char *separators, Extra
if (flags & EXTRACT_CUNESCAPE_RELAX) {
s[sz++] = '\\';
s[sz++] = c;
- goto end_escape;
- }
- return -EINVAL;
+ } else
+ return -EINVAL;
+ } else {
+ (*p) += r - 1;
+
+ if (c != 0)
+ s[sz++] = c; /* normal explicit char */
+ else
+ sz += utf8_encode_unichar(s + sz, u); /* unicode chars we'll encode as utf8 */
}
-
- (*p) += r - 1;
-
- if (c != 0)
- s[sz++] = c; /* normal explicit char */
- else
- sz += utf8_encode_unichar(s + sz, u); /* unicode chars we'll encode as utf8 */
} else
s[sz++] = c;
-end_escape:
backslash = false;
} else if (quote) { /* inside either single or double quotes */