mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
database: move striping of trailing '/' into helper function
Stripping trailing character is not that uncommon operation. Particularly, the next patch has to perform it as well. Lets move it to the separate function to avoid code duplication. Also the new function has a little improvement: if the character to strip is repeated several times in the end of a string, function strips them all. Signed-off-by: Yuri Volchkov <yuri.volchkov@gmail.com>
This commit is contained in:
parent
49d4f52f27
commit
cec4a87539
3 changed files with 16 additions and 2 deletions
|
@ -858,8 +858,7 @@ notmuch_database_open_verbose (const char *path,
|
|||
notmuch->status_string = NULL;
|
||||
notmuch->path = talloc_strdup (notmuch, path);
|
||||
|
||||
if (notmuch->path[strlen (notmuch->path) - 1] == '/')
|
||||
notmuch->path[strlen (notmuch->path) - 1] = '\0';
|
||||
strip_trailing(notmuch->path, '/');
|
||||
|
||||
notmuch->mode = mode;
|
||||
notmuch->atomic_nesting = 0;
|
||||
|
|
|
@ -255,3 +255,16 @@ strcase_hash (const void *ptr)
|
|||
|
||||
return hash;
|
||||
}
|
||||
|
||||
void
|
||||
strip_trailing (char *str, char ch)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = strlen (str) - 1; i >= 0; i--) {
|
||||
if (str[i] == ch)
|
||||
str[i] = '\0';
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,6 +75,8 @@ int strcase_equal (const void *a, const void *b);
|
|||
/* GLib GHashFunc compatible case insensitive hash function */
|
||||
unsigned int strcase_hash (const void *ptr);
|
||||
|
||||
void strip_trailing (char *str, char ch);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue