mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-21 10:09:57 +01:00
common: Add gnupg_memstr to replace static versions.
* common/stringhelp.c (gnupg_memstr): New. * common/mbox-util.c (my_memstr): Remove. (is_valid_mailbox_mem): Use gnupg_memstr. * common/recsel.c (my_memstr): Remove. (recsel_select): Use gnupg_memstr.
This commit is contained in:
parent
3054016db9
commit
c91f759baf
@ -57,35 +57,6 @@ mem_count_chr (const void *buffer, int c, size_t length)
|
||||
}
|
||||
|
||||
|
||||
/* This is a case-sensitive version of our memistr. I wonder why no
|
||||
standard function memstr exists but I better do not use the name
|
||||
memstr to avoid future conflicts. */
|
||||
static const char *
|
||||
my_memstr (const void *buffer, size_t buflen, const char *sub)
|
||||
{
|
||||
const unsigned char *buf = buffer;
|
||||
const unsigned char *t = (const unsigned char *)buf;
|
||||
const unsigned char *s = (const unsigned char *)sub;
|
||||
size_t n = buflen;
|
||||
|
||||
for ( ; n ; t++, n-- )
|
||||
{
|
||||
if (*t == *s)
|
||||
{
|
||||
for (buf = t++, buflen = n--, s++; n && *t ==*s; t++, s++, n--)
|
||||
;
|
||||
if (!*s)
|
||||
return (const char*)buf;
|
||||
t = (const unsigned char *)buf;
|
||||
s = (const unsigned char *)sub ;
|
||||
n = buflen;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
string_has_ctrl_or_space (const char *string)
|
||||
{
|
||||
@ -159,7 +130,7 @@ is_valid_mailbox_mem (const void *name_arg, size_t namelen)
|
||||
|| *name == '@'
|
||||
|| name[namelen-1] == '@'
|
||||
|| name[namelen-1] == '.'
|
||||
|| my_memstr (name, namelen, ".."));
|
||||
|| gnupg_memstr (name, namelen, ".."));
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,37 +85,6 @@ my_error (gpg_err_code_t ec)
|
||||
}
|
||||
|
||||
|
||||
/* This is a case-sensitive version of our memistr. I wonder why no
|
||||
* standard function memstr exists but I better do not use the name
|
||||
* memstr to avoid future conflicts.
|
||||
*
|
||||
* FIXME: Move this to a stringhelp.c
|
||||
*/
|
||||
static const char *
|
||||
my_memstr (const void *buffer, size_t buflen, const char *sub)
|
||||
{
|
||||
const unsigned char *buf = buffer;
|
||||
const unsigned char *t = (const unsigned char *)buf;
|
||||
const unsigned char *s = (const unsigned char *)sub;
|
||||
size_t n = buflen;
|
||||
|
||||
for ( ; n ; t++, n-- )
|
||||
{
|
||||
if (*t == *s)
|
||||
{
|
||||
for (buf = t++, buflen = n--, s++; n && *t ==*s; t++, s++, n--)
|
||||
;
|
||||
if (!*s)
|
||||
return (const char*)buf;
|
||||
t = (const unsigned char *)buf;
|
||||
s = (const unsigned char *)sub ;
|
||||
n = buflen;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* Return a pointer to the next logical connection operator or NULL if
|
||||
* none. */
|
||||
static char *
|
||||
@ -560,7 +529,7 @@ recsel_select (recsel_expr_t selector,
|
||||
break;
|
||||
case SELECT_SUB:
|
||||
if (se->xcase)
|
||||
result = !!my_memstr (value, valuelen, se->value);
|
||||
result = !!gnupg_memstr (value, valuelen, se->value);
|
||||
else
|
||||
result = !!memistr (value, valuelen, se->value);
|
||||
break;
|
||||
|
@ -161,6 +161,35 @@ ascii_memistr ( const void *buffer, size_t buflen, const char *sub )
|
||||
}
|
||||
|
||||
|
||||
/* This is a case-sensitive version of our memistr. I wonder why no
|
||||
* standard function memstr exists but we better do not use the name
|
||||
* memstr to avoid future conflicts.
|
||||
*/
|
||||
const char *
|
||||
gnupg_memstr (const void *buffer, size_t buflen, const char *sub)
|
||||
{
|
||||
const unsigned char *buf = buffer;
|
||||
const unsigned char *t = (const unsigned char *)buf;
|
||||
const unsigned char *s = (const unsigned char *)sub;
|
||||
size_t n = buflen;
|
||||
|
||||
for ( ; n ; t++, n-- )
|
||||
{
|
||||
if (*t == *s)
|
||||
{
|
||||
for (buf = t++, buflen = n--, s++; n && *t ==*s; t++, s++, n--)
|
||||
;
|
||||
if (!*s)
|
||||
return (const char*)buf;
|
||||
t = (const unsigned char *)buf;
|
||||
s = (const unsigned char *)sub ;
|
||||
n = buflen;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* This function is similar to strncpy(). However it won't copy more
|
||||
* than N - 1 characters and makes sure that a '\0' is appended. With
|
||||
* N given as 0, nothing will happen. With DEST given as NULL, memory
|
||||
|
@ -40,6 +40,7 @@
|
||||
char *has_leading_keyword (const char *string, const char *keyword);
|
||||
|
||||
const char *memistr (const void *buf, size_t buflen, const char *sub);
|
||||
const char *gnupg_memstr (const void *buffer, size_t buflen, const char *sub);
|
||||
char *mem2str( char *, const void *, size_t);
|
||||
char *trim_spaces( char *string );
|
||||
char *ascii_trim_spaces (char *string);
|
||||
|
Loading…
x
Reference in New Issue
Block a user