Make clang static code analyzer happy (300+ -> 5)

This commit is contained in:
Dave Davenport 2016-03-19 13:29:04 +01:00
parent 1f8db0fc5a
commit a2869ef39d
11 changed files with 31 additions and 16 deletions

View File

@ -53,9 +53,10 @@ static void combi_mode_parse_switchers ( Mode *sw )
char *savept = NULL; char *savept = NULL;
// Make a copy, as strtok will modify it. // Make a copy, as strtok will modify it.
char *switcher_str = g_strdup ( config.combi_modi ); char *switcher_str = g_strdup ( config.combi_modi );
const char * const sep = ",";
// Split token on ','. This modifies switcher_str. // Split token on ','. This modifies switcher_str.
for ( char *token = strtok_r ( switcher_str, ",", &savept ); token != NULL; for ( char *token = strtok_r ( switcher_str, sep, &savept ); token != NULL;
token = strtok_r ( NULL, ",", &savept ) ) { token = strtok_r ( NULL, sep, &savept ) ) {
// Resize and add entry. // Resize and add entry.
pd->switchers = (Mode * *) g_realloc ( pd->switchers, pd->switchers = (Mode * *) g_realloc ( pd->switchers,
sizeof ( Mode* ) * ( pd->num_switchers + 1 ) ); sizeof ( Mode* ) * ( pd->num_switchers + 1 ) );

View File

@ -123,7 +123,8 @@ static unsigned int dmenu_mode_get_num_entries ( const Mode *sw )
static void parse_pair ( char *input, struct range_pair *item ) static void parse_pair ( char *input, struct range_pair *item )
{ {
int index = 0; int index = 0;
for ( char *token = strsep ( &input, "-" ); token != NULL; token = strsep ( &input, "-" ) ) { const char * const sep = "-";
for ( char *token = strsep ( &input, sep ); token != NULL; token = strsep ( &input, sep ) ) {
if ( index == 0 ) { if ( index == 0 ) {
item->start = item->stop = (unsigned int) strtoul ( token, NULL, 10 ); item->start = item->stop = (unsigned int) strtoul ( token, NULL, 10 );
index++; index++;
@ -145,7 +146,8 @@ static void parse_ranges ( char *input, struct range_pair **list, unsigned int *
if ( input == NULL ) { if ( input == NULL ) {
return; return;
} }
for ( char *token = strtok_r ( input, ",", &endp ); token != NULL; token = strtok_r ( NULL, ",", &endp ) ) { const char *const sep =",";
for ( char *token = strtok_r ( input, sep, &endp ); token != NULL; token = strtok_r ( NULL, sep, &endp ) ) {
// Make space. // Make space.
*list = g_realloc ( ( *list ), ( ( *length ) + 1 ) * sizeof ( struct range_pair ) ); *list = g_realloc ( ( *list ), ( ( *length ) + 1 ) * sizeof ( struct range_pair ) );
// Parse a single pair. // Parse a single pair.

View File

@ -249,7 +249,8 @@ static char ** get_apps ( unsigned int *length )
return NULL; return NULL;
} }
for ( const char *dirname = strtok ( path, ":" ); dirname != NULL; dirname = strtok ( NULL, ":" ) ) { const char *const sep = ":";
for ( const char *dirname = strtok ( path, sep ); dirname != NULL; dirname = strtok ( NULL, sep ) ) {
DIR *dir = opendir ( dirname ); DIR *dir = opendir ( dirname );
if ( dir != NULL ) { if ( dir != NULL ) {

View File

@ -183,7 +183,8 @@ Mode *script_switcher_parse_setup ( const char *str )
char *endp = NULL; char *endp = NULL;
char *parse = g_strdup ( str ); char *parse = g_strdup ( str );
unsigned int index = 0; unsigned int index = 0;
for ( char *token = strtok_r ( parse, ":", &endp ); token != NULL; token = strtok_r ( NULL, ":", &endp ) ) { const char *const sep = ":";
for ( char *token = strtok_r ( parse, sep, &endp ); token != NULL; token = strtok_r ( NULL, sep, &endp ) ) {
if ( index == 0 ) { if ( index == 0 ) {
g_strlcpy ( sw->name, token, 32 ); g_strlcpy ( sw->name, token, 32 );
} }

View File

@ -303,7 +303,8 @@ static char ** get_ssh ( unsigned int *length )
// (how many host names contain spaces?). // (how many host names contain spaces?).
while ( ( token = strtok ( NULL, SSH_TOKEN_DELIM ) ) ) { while ( ( token = strtok ( NULL, SSH_TOKEN_DELIM ) ) ) {
// We do not want to show wildcard entries, as you cannot ssh to them. // We do not want to show wildcard entries, as you cannot ssh to them.
if ( *token == '!' || strpbrk ( token, "*?" ) ) { const char *const sep = "*?";
if ( *token == '!' || strpbrk ( token, sep ) ) {
continue; continue;
} }

View File

@ -211,7 +211,8 @@ char **tokenize ( const char *input, int case_sensitive )
// Iterate over tokens. // Iterate over tokens.
// strtok should still be valid for utf8. // strtok should still be valid for utf8.
for ( token = strtok_r ( str, " ", &saveptr ); token != NULL; token = strtok_r ( NULL, " ", &saveptr ) ) { const char * const sep = " ";
for ( token = strtok_r ( str, sep, &saveptr ); token != NULL; token = strtok_r ( NULL, sep, &saveptr ) ) {
retv = g_realloc ( retv, sizeof ( char* ) * ( num_tokens + 2 ) ); retv = g_realloc ( retv, sizeof ( char* ) * ( num_tokens + 2 ) );
if ( config.glob ) { if ( config.glob ) {
char *str = g_strdup_printf ( "*%s*", token ); char *str = g_strdup_printf ( "*%s*", token );

View File

@ -111,7 +111,8 @@ gboolean parse_keys_abe ( void )
abe[iter].num_bindings = 0; abe[iter].num_bindings = 0;
// Iter over bindings. // Iter over bindings.
for ( char *entry = strtok_r ( keystr, ",", &sp ); entry != NULL; entry = strtok_r ( NULL, ",", &sp ) ) { const char *const sep = ",";
for ( char *entry = strtok_r ( keystr, sep, &sp ); entry != NULL; entry = strtok_r ( NULL, sep, &sp ) ) {
abe[iter].kb = g_realloc ( abe[iter].kb, ( abe[iter].num_bindings + 1 ) * sizeof ( KeyBinding ) ); abe[iter].kb = g_realloc ( abe[iter].kb, ( abe[iter].num_bindings + 1 ) * sizeof ( KeyBinding ) );
KeyBinding *kb = &( abe[iter].kb[abe[iter].num_bindings] ); KeyBinding *kb = &( abe[iter].kb[abe[iter].num_bindings] );
if ( !x11_parse_key ( entry, &( kb->modmask ), &( kb->keysym ) ) ) { if ( !x11_parse_key ( entry, &( kb->modmask ), &( kb->keysym ) ) ) {

View File

@ -403,11 +403,12 @@ static int add_mode ( const char * token )
} }
static void setup_modi ( void ) static void setup_modi ( void )
{ {
const char *const sep =",";
char *savept = NULL; char *savept = NULL;
// Make a copy, as strtok will modify it. // Make a copy, as strtok will modify it.
char *switcher_str = g_strdup ( config.modi ); char *switcher_str = g_strdup ( config.modi );
// Split token on ','. This modifies switcher_str. // Split token on ','. This modifies switcher_str.
for ( char *token = strtok_r ( switcher_str, ",", &savept ); token != NULL; token = strtok_r ( NULL, ",", &savept ) ) { for ( char *token = strtok_r ( switcher_str, sep, &savept ); token != NULL; token = strtok_r ( NULL, sep, &savept ) ) {
add_mode ( token ); add_mode ( token );
} }
// Free string that was modified by strtok_r // Free string that was modified by strtok_r

View File

@ -622,7 +622,8 @@ static void textbox_parse_string ( const char *str, RowColor *color )
char *endp = NULL; char *endp = NULL;
char *token; char *token;
int index = 0; int index = 0;
for ( token = strtok_r ( cstr, ",", &endp ); token != NULL; token = strtok_r ( NULL, ",", &endp ) ) { const char *const sep = ",";
for ( token = strtok_r ( cstr, sep, &endp ); token != NULL; token = strtok_r ( NULL, sep, &endp ) ) {
switch ( index ) switch ( index )
{ {
case 0: case 0:

View File

@ -62,6 +62,9 @@
#include "xcb.h" #include "xcb.h"
const char *const separator_style_none = "none";
const char *const separator_style_dash = "dash";
GThreadPool *tpool = NULL; GThreadPool *tpool = NULL;
RofiViewState *current_active_menu = NULL; RofiViewState *current_active_menu = NULL;
@ -931,8 +934,8 @@ void rofi_view_update ( RofiViewState *state )
} }
color_separator ( d ); color_separator ( d );
if ( strcmp ( config.separator_style, "none" ) ) { if ( strcmp ( config.separator_style, separator_style_none ) ) {
if ( strcmp ( config.separator_style, "dash" ) == 0 ) { if ( strcmp ( config.separator_style, separator_style_dash ) == 0 ) {
const double dashes[1] = { 4 }; const double dashes[1] = { 4 };
cairo_set_dash ( d, dashes, 1, 0.0 ); cairo_set_dash ( d, dashes, 1, 0.0 );
} }

View File

@ -523,13 +523,15 @@ void config_parse_xresources_theme_dump ( void )
printf ( "! ROFI Color theme\n" ); printf ( "! ROFI Color theme\n" );
printf ( "! User: %s\n", g_get_user_name () ); printf ( "! User: %s\n", g_get_user_name () );
printf ( "! ------------------------------------------------------------------------------\n" ); printf ( "! ------------------------------------------------------------------------------\n" );
const char * namePrefix = "rofi"; const char * const namePrefix = "rofi";
const char colorPrefix[] = "color-";
const char separatorStyle[] = "separator-style";
unsigned int entries = sizeof ( xrmOptions ) / sizeof ( *xrmOptions ); unsigned int entries = sizeof ( xrmOptions ) / sizeof ( *xrmOptions );
for ( unsigned int i = 0; i < entries; ++i ) { for ( unsigned int i = 0; i < entries; ++i ) {
if ( strncmp ( xrmOptions[i].name, "color-", 6 ) == 0 ) { if ( strncmp ( xrmOptions[i].name, colorPrefix, sizeof(colorPrefix)-1 ) == 0 ) {
xresource_dump_entry ( namePrefix, &xrmOptions[i] ); xresource_dump_entry ( namePrefix, &xrmOptions[i] );
} }
else if ( strcmp ( xrmOptions[i].name, "separator-style" ) == 0 ) { else if ( strcmp ( xrmOptions[i].name, separatorStyle ) == 0 ) {
xresource_dump_entry ( namePrefix, &xrmOptions[i] ); xresource_dump_entry ( namePrefix, &xrmOptions[i] );
} }
} }