1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2025-07-31 21:59:25 -04:00

handle failed regex better.

This commit is contained in:
Dave Davenport 2015-11-17 16:25:42 +01:00
parent 00c8439b57
commit 38d2bc717a

View file

@ -185,8 +185,10 @@ char **tokenize ( const char *input, int case_sensitive )
else if ( config.regex ) {
GRegex *reg = g_regex_new ( input, ( case_sensitive ) ? 0 : G_REGEX_CASELESS, G_REGEX_MATCH_PARTIAL, NULL );
if ( reg == NULL ) {
gchar *r = g_regex_escape_string ( input, -1 );
reg = g_regex_new ( r, ( case_sensitive ) ? 0 : G_REGEX_CASELESS, G_REGEX_MATCH_PARTIAL, NULL );
g_free ( r );
g_free ( retv );
return NULL;
}
retv[0] = (char *) reg;
}
@ -214,12 +216,11 @@ char **tokenize ( const char *input, int case_sensitive )
g_free ( str );
}
else if ( config.regex ) {
GError *error = NULL;
retv[num_tokens] = (char *) g_regex_new ( token, case_sensitive?0:G_REGEX_CASELESS, 0, &error);
retv[num_tokens] = (char *) g_regex_new ( token, case_sensitive ? 0 : G_REGEX_CASELESS, 0, NULL );
if ( retv[num_tokens] == NULL ) {
fprintf ( stderr, "Failed to parse: '%s'\n", error->message );
g_error_free(error);
num_tokens--;
gchar *r = g_regex_escape_string ( input, -1 );
retv[num_tokens] = (char *) g_regex_new ( r, ( case_sensitive ) ? 0 : G_REGEX_CASELESS, G_REGEX_MATCH_PARTIAL, NULL );
g_free ( r );
}
}
else {