Skip to content

mem: extend with a few additional helpers similar to existing string-only functions

Cody P Schafer ccan 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v4 Latest4 patches 1 replyIn review

Changes in v4 from the cover letter

- fix memeq() return value
- add memends_str() helper

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4mem: add mem helper functionsccan/mem/mem.c ccan/mem/mem.h ccan/mem/test/api.c+217 -10 replies
2/4bytestring: use newly added mem helpersccan/bytestring/bytestring.h+3 -60 replies
3/4mem: mark all functions as PUREccan/mem/_info ccan/mem/mem.h+12 -00 replies
4/4mem: add memends_str() helper for symmetryccan/mem/mem.h ccan/mem/test/api.c+22 -10 replies

Reviews trailers per patch

None of the 4 patches has a Reviewed-by or Acked-by.

PatchDavid Gibson
1/4
2/4Reviwed-by
3/4
4/4

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/4] mem: extend with a few additional helpers similar to existing string-only functions

since v3:

- fix memeq() return value
- add memends_str() helper

since v2:

- switch all the macros to static inline to avoid multiple evaluations of args
- add patch adding PURE_FUNCTION attributes

since v1:

- drop a patch that David pulled in
- add extra macro parens
- add blank lines after defintions
- covert memcchr's while loop to a for.
- change examples for mempbrkm and mempbrk to use '\0' in places
- fix spelling
- use memeq() even where we know the mem lengths are equal in memstarts()
- add a reviewed-by to the 2nd patch, no other changes to that patch.

--

This is essentially a rebased version of a patch I sent out quite some time ago.

At the time, David indicated that it would probably make sense for bytestring to call the plain mem-versions of these functions, so I've included a helper to do that as well (and 1 patch to help ccanlint for bytestring pass a bit better).

The selection of mem* functions is entirely based on which ones I need for some code I was writing, and they are in no way complete (notably, they include mem variants of strpbrk instead of strspn variants as used in bytestring). I expect the missing functions can be added as people find a need for them.

Cody P Schafer (4):
mem: add mem helper functions
bytestring: use newly added mem helpers
mem: mark all functions as PURE
mem: add memends_str() helper for symmetry

 ccan/bytestring/bytestring.h |   9 +--
 ccan/mem/_info               |   1 +
 ccan/mem/mem.c               |  24 ++++++
 ccan/mem/mem.h               | 185 +++++++++++++++++++++++++++++++++++++++++++
 ccan/mem/test/api.c          |  41 +++++++++-
 5 files changed, 253 insertions(+), 7 deletions(-)
Signature · 6 lines
2.5.1

_______________________________________________
ccan mailing list
[email protected]
https://lists.ozlabs.org/listinfo/ccan