diff options
-rw-r--r-- | libsimple/strn.h | 4 | ||||
-rw-r--r-- | man/libsimple_strcasecmpnul.3 | 3 | ||||
-rw-r--r-- | man/libsimple_strcmpnul.3 | 3 | ||||
-rw-r--r-- | man/libsimple_strncasecmpnul.3 | 91 | ||||
-rw-r--r-- | man/libsimple_strncmpnul.3 | 91 |
5 files changed, 188 insertions, 4 deletions
diff --git a/libsimple/strn.h b/libsimple/strn.h index 03c849a..7aec11b 100644 --- a/libsimple/strn.h +++ b/libsimple/strn.h @@ -260,7 +260,7 @@ char *libsimple_strrncasestr(const char *, const char *, size_t); /* TODO doc */ */ _LIBSIMPLE_GCC_ONLY(__attribute__((__pure__, __warn_unused_result__))) static inline int libsimple_strncmpnul(const char *__a, const char *__b, size_t __n) -{ return (!__a || !__b) ? !__b - !__a : strncmp(__a, __b, __n); } /* TODO doc */ +{ return (!__a || !__b) ? !__b - !__a : strncmp(__a, __b, __n); } #ifndef strncmpnul # define strncmpnul libsimple_strncmpnul #endif @@ -279,7 +279,7 @@ static inline int libsimple_strncmpnul(const char *__a, const char *__b, size_t * 0 otherwise */ _LIBSIMPLE_GCC_ONLY(__attribute__((__pure__, __warn_unused_result__))) -static inline int libsimple_strncasecmpnul(const char *__a, const char *__b, size_t __n) /* TODO doc */ +static inline int libsimple_strncasecmpnul(const char *__a, const char *__b, size_t __n) { return (!__a || !__b) ? !__b - !__a : strncasecmp(__a, __b, __n); } #ifndef strncasecmpnul # define strncasecmpnul libsimple_strncasecmpnul diff --git a/man/libsimple_strcasecmpnul.3 b/man/libsimple_strcasecmpnul.3 index 197cac7..07be013 100644 --- a/man/libsimple_strcasecmpnul.3 +++ b/man/libsimple_strcasecmpnul.3 @@ -1,4 +1,4 @@ -.TH LIBSIMPLE_STRCASECMPNUL 3 2018-10-21 libsimple +.TH LIBSIMPLE_STRCASECMPNUL 3 2018-10-23 libsimple .SH NAME libsimple_strcasecmpnul \- compare two strings .SH SYNOPSIS @@ -81,4 +81,5 @@ None. .SH SEE ALSO .BR libsimple_strcmpnul (3), .BR libsimple_strcaseeqnul (3), +.BR libsimple_strncasecmpnul (3), .BR strcasecmp (3) diff --git a/man/libsimple_strcmpnul.3 b/man/libsimple_strcmpnul.3 index ea962d7..9f6ec47 100644 --- a/man/libsimple_strcmpnul.3 +++ b/man/libsimple_strcmpnul.3 @@ -1,4 +1,4 @@ -.TH LIBSIMPLE_STRCMPNUL 3 2018-10-21 libsimple +.TH LIBSIMPLE_STRCMPNUL 3 2018-10-23 libsimple .SH NAME libsimple_strcmpnul \- compare two strings .SH SYNOPSIS @@ -81,4 +81,5 @@ None. .SH SEE ALSO .BR libsimple_strcasecmpnul (3), .BR libsimple_streqnul (3), +.BR libsimple_strncmpnul (3), .BR strcmp (3) diff --git a/man/libsimple_strncasecmpnul.3 b/man/libsimple_strncasecmpnul.3 new file mode 100644 index 0000000..4fda1b7 --- /dev/null +++ b/man/libsimple_strncasecmpnul.3 @@ -0,0 +1,91 @@ +.TH LIBSIMPLE_STRNCASECMPNUL 3 2018-10-23 libsimple +.SH NAME +libsimple_strncasecmpnul \- compare two strings +.SH SYNOPSIS +.nf +#include <libsimple.h> + +static inline int libsimple_strncasecmpnul(const char *\fIa\fP, const char *\fIb\fP, size_t \fIn\fP); + +#ifndef strncasecmpnul +# define strncasecmpnul libsimple_strncasecmpnul +#endif +.fi +.PP +Link with +.IR \-lsimple . +.SH DESCRIPTION +The +.BR libsimple_strncasecmpnul () +function compares the strings +.IR a , +truncated to +.I n +bytes unless it is shorter, +and +.IR b , +truncated to +.I n +bytes unless it is shorter, +both of which may be +.BR NULL , +which is treated as less than the empty string. +.PP +If one of the strings begins with the other string +but is longer, the longer string is treated as +greater than the shorter string. +.PP +The comparison is case-insensitive and made as +if the strings were converted to lowercase and as +.IR "unsigned char *" s. +.SH RETURN VALUE +The +.BR libsimple_strncasecmpnul () +function returns a negative value if +.I a +is less than +.IR b , +a positive value if +.I a +is greater than +.IR b , +and 0 otherwise. +.SH ERRORS +The +.BR libsimple_strncasecmpnul () +function cannot fail. +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lb lb lb +l l l. +Interface Attribute Value +T{ +.BR libsimple_strncasecmpnul () +T} Thread safety MT-Safe +T{ +.BR libsimple_strncasecmpnul () +T} Async-signal safety AS-Safe +T{ +.BR libsimple_strncasecmpnul () +T} Async-cancel safety AC-Safe +.TE +.SH EXAMPLES +None. +.SH APPLICATION USAGE +None. +.SH RATIONALE +None. +.SH FUTURE DIRECTIONS +None. +.SH NOTES +None. +.SH BUGS +None. +.SH SEE ALSO +.BR libsimple_strncmpnul (3), +.BR libsimple_strncaseeqnul (3), +.BR libsimple_strcasecmpnul (3), +.BR strncasecmp (3) diff --git a/man/libsimple_strncmpnul.3 b/man/libsimple_strncmpnul.3 new file mode 100644 index 0000000..b482e58 --- /dev/null +++ b/man/libsimple_strncmpnul.3 @@ -0,0 +1,91 @@ +.TH LIBSIMPLE_STRNCMPNUL 3 2018-10-23 libsimple +.SH NAME +libsimple_strncmpnul \- compare two strings +.SH SYNOPSIS +.nf +#include <libsimple.h> + +static inline int libsimple_strncmpnul(const char *\fIa\fP, const char *\fIb\fP, size_t \fIn\fP); + +#ifndef strncmpnul +# define strncmpnul libsimple_strncmpnul +#endif +.fi +.PP +Link with +.IR \-lsimple . +.SH DESCRIPTION +The +.BR libsimple_strncmpnul () +function compares the strings +.IR a , +truncated to +.I n +bytes unless it is shorter, +and +.IR b , +truncated to +.I n +bytes unless it is shorter, +both of which may be +.BR NULL , +which is treated as less than the empty string. +.PP +If one of the strings begins with the other string +but is longer, the longer string is treated as +greater than the shorter string. +.PP +The comparison is case-sensitive and made as if +the strings were +.IR "unsigned char *" s. +.SH RETURN VALUE +The +.BR libsimple_strncmpnul () +function returns a negative value if +.I a +is less than +.IR b , +a positive value if +.I a +is greater than +.IR b , +and 0 otherwise. +.SH ERRORS +The +.BR libsimple_strncmpnul () +function cannot fail. +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lb lb lb +l l l. +Interface Attribute Value +T{ +.BR libsimple_strncmpnul () +T} Thread safety MT-Safe +T{ +.BR libsimple_strncmpnul () +T} Async-signal safety AS-Safe +T{ +.BR libsimple_strncmpnul () +T} Async-cancel safety AC-Safe +.TE +.SH EXAMPLES +None. +.SH APPLICATION USAGE +None. +.SH RATIONALE +None. +.SH FUTURE DIRECTIONS +None. +.SH NOTES +None. +.SH BUGS +None. +.SH SEE ALSO +.BR libsimple_strncasecmpnul (3), +.BR libsimple_strneqnul (3), +.BR libsimple_strcmpnul (3), +.BR strncmp (3) |