Devicetree
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx+linux-hardening@kernel.org>
To: Alejandro Colomar <alx@kernel.org>
Cc: "Maciej W. Rozycki" <macro@orcam.me.uk>,
	 Geert Uytterhoeven <geert@linux-m68k.org>,
	andy@kernel.org, bartosz.golaszewski@oss.qualcomm.com,
	 brgl@kernel.org, dakr@kernel.org, devicetree@vger.kernel.org,
	djrscally@gmail.com,  driver-core@lists.linux.dev,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 heikki.krogerus@linux.intel.com, hverkuil-cisco@xs4all.nl,
	joe@perches.com, johan@kernel.org,  kees@kernel.org,
	laurent.pinchart@ideasonboard.com, lenb@kernel.org,
	 linusw@kernel.org, linux-acpi@vger.kernel.org,
	linux-gpio@vger.kernel.org,  linux-hardening@vger.kernel.org,
	linux-kernel@vger.kernel.org, namhyung@kernel.org,
	 rafael@kernel.org, robh@kernel.org, rostedt@goodmis.org,
	 sakari.ailus@linux.intel.com, saravanak@kernel.org,
	schwab@linux-m68k.org,
	 Linus Torvalds <torvalds@linux-foundation.org>,
	zanussi@kernel.org
Subject: Re: [PATCH v2 1/2] string: Add strprefix(), and deprecate str_has_prefix()
Date: Sun, 8 Nov 2026 12:54:33 +0100	[thread overview]
Message-ID: <avBikocxPXRos_GF@debian> (raw)
In-Reply-To: <avBglVuXPjbKnWwl@debian>

[-- Attachment #1: Type: text/plain, Size: 2753 bytes --]

> Date: 2026-11-08 12:49:08+0100
> From: Alejandro Colomar <alx@kernel.org>
>
> Hi Maciej,
> 
> > Date: 2026-11-08 11:05:51+0000
> > From: "Maciej W. Rozycki" <macro@orcam.me.uk>
> >
> > On Sat, 7 Nov 2026, Alejandro Colomar wrote:
> > 
> > > Hi Maciej,
> > > 
> > > > Date: 2026-11-07 02:44:23+0000
> > > > From: "Maciej W. Rozycki" <macro@orcam.me.uk>
> > > >
> > > > On Thu, 5 Nov 2026, Alejandro Colomar wrote:
> > > > 
> > > > > Do you think strafterprefix() would be better?  Do you have any other
> > > > > suggestions?
> > > > 
> > > >  FWIW strsuffix() seems an obvious choice to me.  After all what the API 
> > > > does is request the string's suffix beyond the specified leading part.
> > > 
> > > Actually, strsuffix() is something else:
> > > 
> > > 	char *
> > > 	strsuffix_(const char *str, const char *suffix)
> > > 	{
> > > 		ptrdiff_t  off;
> > > 
> > > 		off = strlen(str) - strlen(suffix);
> > > 		if (off < 0)
> > > 			return NULL;
> > > 
> > > 		if (!streq(str + off, suffix))
> > > 			return NULL;
> > > 
> > > 		return str + off;
> > > 	}
> > > 
> > > It finds the start of a suffix in a string.  That is:
> > > 
> > > 	strcmp(strsuffix("foobar", "bar"), "bar") == 0;
> > 
> >  Hmm, I'd have called that strskipto().  If that's not possible for some 
> > reason (I can't see it used in Linux), then strskip() or strskipover() 
> > could be used for this API.

Another issue with the name strskipto() is that the name doesn't make it
clear whether the second argument is a string, or a list of characters.

That is, would strskipto() something similar to strpbrk(3)?
It's not clear from the name.  From strprefix() and strsuffix(), the
meaning of the second argument is clear from the function name.


Cheers,
Alex

> 
> strsuffix() exists in many projects, and in all of them it seems to have
> these semantics (or very similar ones).
> 
> Just look at a Debian code search of those names.
> 
> The strprefix() and strsuffix() pair of functions are widely
> implemented, and while the exact details of the return value differ
> slightly (some return just a boolean, others return a pointer that can
> be used as a boolean too), the overall semantics of them are quite
> consistent.  strsuffix() has less drift than strprefix().
> 
> If we added strsuffix() here with the semantics commonly attributed to
> strprefix(), and then had strskipto() with the semantics commonly
> attributed to strsuffix(), I'd expect programmers to eventually get
> confused and use the wrong one. 
> 
> 
> Have a lovely day!
> Alex
> 
> > 
> >  FWIW,
> > 
> >   Maciej
> 
> -- 
> <https://www.alejandro-colomar.es>



-- 
<https://www.alejandro-colomar.es>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2026-11-08 11:54 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-05 11:12 [PATCH v1 0/2] Add strprefix() and fix a bug with it Alejandro Colomar
2026-11-05 11:13 ` [PATCH v1 1/2] string: Add strprefix(), and deprecate str_has_prefix() Alejandro Colomar
2026-11-05 11:27   ` Andy Shevchenko
2026-11-05 12:28     ` Alejandro Colomar
2026-11-05 16:14   ` Steven Rostedt
2026-11-05 16:33     ` Alejandro Colomar
2026-11-05 16:50       ` Steven Rostedt
2026-11-05 17:46         ` Alejandro Colomar
2026-11-05 18:08           ` Andy Shevchenko
2026-11-05 18:12             ` Andy Shevchenko
2026-11-05 21:24               ` Alejandro Colomar
2026-11-05 21:48                 ` Linus Torvalds
2026-11-05 22:25                   ` Alejandro Colomar
2026-11-05 23:21                     ` Linus Torvalds
2026-11-06  0:01                       ` Alejandro Colomar
2026-11-06  7:15             ` Krzysztof Kozlowski
2026-11-05 11:13 ` [PATCH v1 2/2] device property: Fix fwnode_name_eq() for empty node names Alejandro Colomar
2026-11-05 11:24 ` [PATCH v1 0/2] Add strprefix() and fix a bug with it Andy Shevchenko
2026-11-05 11:38   ` Alejandro Colomar
2026-11-05 11:59     ` Andy Shevchenko
2026-11-05 12:30 ` Bartosz Golaszewski
2026-11-05 12:49   ` Alejandro Colomar
2026-11-05 12:46 ` [PATCH v2 " Alejandro Colomar
2026-11-05 12:46   ` [PATCH v2 1/2] string: Add strprefix(), and deprecate str_has_prefix() Alejandro Colomar
2026-11-05 12:51     ` Geert Uytterhoeven
2026-11-05 13:12       ` Alejandro Colomar
2026-11-07  2:44         ` Maciej W. Rozycki
2026-11-07  7:33           ` Alejandro Colomar
2026-11-08 11:05             ` Maciej W. Rozycki
2026-11-08 11:49               ` Alejandro Colomar
2026-11-08 11:54                 ` Alejandro Colomar [this message]
2026-11-05 12:46   ` [PATCH v2 2/2] device property: Fix fwnode_name_eq() for empty node names Alejandro Colomar
2026-11-05 14:01   ` [PATCH v2 0/2] Add strprefix() and fix a bug with it Bartosz Golaszewski
2026-11-05 14:16     ` Alejandro Colomar
2026-11-05 14:42       ` Andy Shevchenko
2026-11-05 15:06         ` Alejandro Colomar
2026-11-07  2:42         ` Maciej W. Rozycki
2026-11-07 14:05           ` Andy Shevchenko
2026-11-05 15:00       ` Bartosz Golaszewski
2026-11-05 15:14         ` Alejandro Colomar
2026-11-05 15:21       ` Krzysztof Kozlowski
2026-11-05 16:27         ` Steven Rostedt
2026-11-05 16:30           ` Krzysztof Kozlowski
2026-11-05 16:42         ` Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=avBikocxPXRos_GF@debian \
    --to=alx+linux-hardening@kernel.org \
    --cc=alx@kernel.org \
    --cc=andy@kernel.org \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=brgl@kernel.org \
    --cc=dakr@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=djrscally@gmail.com \
    --cc=driver-core@lists.linux.dev \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=joe@perches.com \
    --cc=johan@kernel.org \
    --cc=kees@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=lenb@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@orcam.me.uk \
    --cc=namhyung@kernel.org \
    --cc=rafael@kernel.org \
    --cc=robh@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=saravanak@kernel.org \
    --cc=schwab@linux-m68k.org \
    --cc=torvalds@linux-foundation.org \
    --cc=zanussi@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox