Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions lib/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,6 @@ libshadow_la_SOURCES = \
string/strchr/strchrscnt.h \
string/strchr/strnul.c \
string/strchr/strnul.h \
string/strcmp/strcaseeq.c \
string/strcmp/strcaseeq.h \
string/strcmp/strcaseprefix.c \
string/strcmp/strcaseprefix.h \
string/strcmp/streq.c \
Expand Down Expand Up @@ -239,16 +237,12 @@ libshadow_la_SOURCES = \
string/strerrno.h \
string/strftime.c \
string/strftime.h \
string/strspn/stpspn.c \
string/strspn/stpspn.h \
string/strspn/stprcspn.c \
string/strspn/stprcspn.h \
string/strspn/stprspn.c \
string/strspn/stprspn.h \
string/strspn/strrcspn.c \
string/strspn/strrcspn.h \
string/strspn/strrspn.c \
string/strspn/strrspn.h \
string/strspn/strspn.c \
string/strspn/strspn.h \
string/strtok/stpsep.c \
string/strtok/stpsep.h \
string/strtok/astrsep2ls.c \
Expand Down
2 changes: 1 addition & 1 deletion lib/basename.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include <stdlib.h>

#include "prototypes.h"
#include "string/strspn/stprcspn.h"
#include "string/strspn/strrcspn.h"


/*@observer@*/const char *
Expand Down
1 change: 0 additions & 1 deletion lib/chkname.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
#include "sizeof.h"
#include "string/ctype/isascii.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strcaseeq.h"
#include "string/strspn/strrcspn.h"
#include "string/strtok/stpsep.h"
#include "sysconf.h"
Expand Down
4 changes: 2 additions & 2 deletions lib/fields.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
#include "prototypes.h"
#include "string/ctype/isascii.h"
#include "string/strcmp/streq.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/stprspn.h"
#include "string/strspn/strrspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
5 changes: 2 additions & 3 deletions lib/getdef.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,10 @@
#include "shadowlog.h"
#include "sizeof.h"
#include "string/sprintf/aprintf.h"
#include "string/strcmp/strcaseeq.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/stprspn.h"
#include "string/strspn/strrspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
4 changes: 2 additions & 2 deletions lib/limits.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#include "string/memset/memzero.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"
#include "typetraits.h"


Expand Down Expand Up @@ -468,7 +468,7 @@ void setup_limits (const struct passwd *info)
for (cp = info->pw_gecos; cp != NULL; cp = strchr (cp, ',')) {
char *val;

cp = strprefix(cp, ",") ?: cp;
cp = stpspn(cp, ",");

val = strprefix(cp, "pri=");
if (val != NULL) {
Comment thread
alejandro-colomar marked this conversation as resolved.
Expand Down
2 changes: 1 addition & 1 deletion lib/loginprompt.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "prototypes.h"
#include "string/memset/memzero.h"
#include "string/strcpy/strtcpy.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
2 changes: 1 addition & 1 deletion lib/nss.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include "string/strcmp/strcaseprefix.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
2 changes: 1 addition & 1 deletion lib/setupenv.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strdup/strdup.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
2 changes: 1 addition & 1 deletion lib/string/ctype/isascii.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include <string.h>

#include "string/strcmp/streq.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"


#define CTYPE_CNTRL_C \
Expand Down
7 changes: 0 additions & 7 deletions lib/string/strcmp/strcaseeq.c

This file was deleted.

18 changes: 0 additions & 18 deletions lib/string/strcmp/strcaseeq.h

This file was deleted.

6 changes: 5 additions & 1 deletion lib/string/strcmp/streq.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,14 @@
#include "config.h"

#include <string.h>
#include <strings.h>


// streq - strings equal
#define streq(s1, s2) (!strcmp(s1, s2))
#define streq(s1, s2) (!strcmp(s1, s2))

// strcaseeq - strings case-insensitive equal
#define strcaseeq(s1, s2) (!strcasecmp(s1, s2))


#endif // include guard
7 changes: 0 additions & 7 deletions lib/string/strspn/stprcspn.c

This file was deleted.

26 changes: 0 additions & 26 deletions lib/string/strspn/stprcspn.h

This file was deleted.

7 changes: 0 additions & 7 deletions lib/string/strspn/stprspn.c

This file was deleted.

26 changes: 0 additions & 26 deletions lib/string/strspn/stprspn.h

This file was deleted.

27 changes: 0 additions & 27 deletions lib/string/strspn/stpspn.h

This file was deleted.

9 changes: 9 additions & 0 deletions lib/string/strspn/strrcspn.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@
#include "string/strchr/strnul.h"


// stprcspn - string returns-pointer rear complement span
#define stprcspn(s, reject) \
({ \
__auto_type s_ = (s); \
\
strnul(s_) - strrcspn(s_, reject); \
})


ATTR_STRING(1)
ATTR_STRING(2)
inline size_t strrcspn(const char *s, const char *reject);
Expand Down
11 changes: 11 additions & 0 deletions lib/string/strspn/strrspn.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@
#include "string/strchr/strnul.h"


// stprspn - string returns-pointer rear span
// Available in Oracle Solaris as strrspn(3GEN).
// <https://docs.oracle.com/cd/E36784_01/html/E36877/strrspn-3gen.html>
#define stprspn(s, accept) \
({ \
__auto_type s_ = (s); \
\
strnul(s_) - strrspn_(s_, accept); \
})


ATTR_STRING(1)
ATTR_STRING(2)
inline size_t strrspn_(const char *s, const char *accept);
Expand Down
2 changes: 1 addition & 1 deletion lib/string/strspn/stpspn.c → lib/string/strspn/strspn.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

#include "config.h"

#include "string/strspn/stpspn.h"
#include "string/strspn/strspn.h"
25 changes: 25 additions & 0 deletions lib/string/strspn/strspn.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// SPDX-FileCopyrightText: 2024, Alejandro Colomar <alx@kernel.org>
// SPDX-License-Identifier: BSD-3-Clause


#ifndef SHADOW_INCLUDE_LIB_STRING_STRSPN_STRSPN_H_
#define SHADOW_INCLUDE_LIB_STRING_STRSPN_STRSPN_H_


#include "config.h"

#include <string.h>

#include "attr.h"


// stpspn - string offset-pointer span
#define stpspn(s, accept) \
({ \
__auto_type s_ = s; \
\
s_ + strspn(s_, accept); \
})


#endif // include guard
2 changes: 0 additions & 2 deletions src/login_nopam.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,9 @@
#include "io/fgets/fgets.h"
#include "prototypes.h"
#include "sizeof.h"
#include "string/strcmp/strcaseeq.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strspn/strrspn.h"
#include "string/strspn/stprspn.h"
#include "string/strtok/stpsep.h"


Expand Down
4 changes: 2 additions & 2 deletions src/suauth.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
#include "prototypes.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strspn/stpspn.h"
#include "string/strspn/stprspn.h"
#include "string/strspn/strrspn.h"
#include "string/strspn/strspn.h"
#include "string/strtok/stpsep.h"


Expand Down
1 change: 0 additions & 1 deletion src/useradd.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@
#include "string/memset/memzero.h"
#include "string/sprintf/aprintf.h"
#include "string/sprintf/stprintf.h"
#include "string/strcmp/strcaseeq.h"
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
#include "string/strdup/strdup.h"
Expand Down
2 changes: 1 addition & 1 deletion src/usermod.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
#include "string/strcmp/strprefix.h"
#include "string/strdup/strdup.h"
#include "string/strerrno.h"
#include "string/strspn/stprspn.h"
#include "string/strspn/strrspn.h"
#include "sysconf.h"
#include "time/day_to_str.h"
#include "typetraits.h"
Expand Down
Loading