diff options
Diffstat (limited to 'FICS/addgroup.cpp')
| -rw-r--r-- | FICS/addgroup.cpp | 21 | 
1 files changed, 21 insertions, 0 deletions
diff --git a/FICS/addgroup.cpp b/FICS/addgroup.cpp index 59547d0..52c6639 100644 --- a/FICS/addgroup.cpp +++ b/FICS/addgroup.cpp @@ -140,6 +140,27 @@ group_exists(const char *name)  	return false;  } +bool +is_valid_group_name(const char *name) +{ +	const char legal_index[] = +	    "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	    "abcdefghijklmnopqrstuvwxyz" +	    "0123456789_-"; +	const size_t name_min = 2; +	const size_t name_max = 30; + +	if (name == nullptr || strcmp(name, "") == 0) +		return false; +	else if (strlen(name) < name_min || strlen(name) > name_max) +		return false; +	for (const char *cp = name; *cp != '\0'; cp++) { +		if (strchr(legal_index, *cp) == nullptr) +			return false; +	} +	return true; +} +  int  read_the_group_permissions_file(const char *path)  {  | 
