1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Merge branch 'master' into windows

This commit is contained in:
James Booth 2013-08-27 00:16:57 +01:00
commit 133614d749
2 changed files with 40 additions and 1 deletions

View File

@ -210,7 +210,7 @@ parse_args_with_freetext(const char * const inp, int min, int max)
} else {
in_token = TRUE;
num_tokens++;
if (num_tokens == max + 1) {
if ((num_tokens == max + 1) && (curr_uni != '"')) {
in_freetext = TRUE;
} else if (curr_uni == '"') {
in_quotes = TRUE;

View File

@ -292,6 +292,42 @@ parse_cmd_with_quoted_freetext(void)
g_strfreev(result);
}
void
parse_cmd_with_third_arg_quoted_0_min_3_max(void)
{
char *inp = "/group add friends \"The User\"";
gchar **result = parse_args_with_freetext(inp, 0, 3);
assert_int_equals(3, g_strv_length(result));
assert_string_equals("add", result[0]);
assert_string_equals("friends", result[1]);
assert_string_equals("The User", result[2]);
}
void
parse_cmd_with_second_arg_quoted_0_min_3_max(void)
{
char *inp = "/group add \"The Group\" friend";
gchar **result = parse_args_with_freetext(inp, 0, 3);
assert_int_equals(3, g_strv_length(result));
assert_string_equals("add", result[0]);
assert_string_equals("The Group", result[1]);
assert_string_equals("friend", result[2]);
}
void
parse_cmd_with_second_and_third_arg_quoted_0_min_3_max(void)
{
char *inp = "/group add \"The Group\" \"The User\"";
gchar **result = parse_args_with_freetext(inp, 0, 3);
assert_int_equals(3, g_strv_length(result));
assert_string_equals("add", result[0]);
assert_string_equals("The Group", result[1]);
assert_string_equals("The User", result[2]);
}
void
count_one_token(void)
{
@ -451,4 +487,7 @@ register_parser_tests(void)
TEST(get_first_two_of_three_first_quoted);
TEST(get_first_two_of_three_second_quoted);
TEST(get_first_two_of_three_first_and_second_quoted);
TEST(parse_cmd_with_third_arg_quoted_0_min_3_max);
TEST(parse_cmd_with_second_arg_quoted_0_min_3_max);
TEST(parse_cmd_with_second_and_third_arg_quoted_0_min_3_max);
}