[go] strings: add CutPrefix and CutSuffix

92 views
Skip to first unread message

Changkun Ou (Gerrit)

unread,
May 19, 2022, 6:00:31 AM5/19/22
to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

Set Ready For Review

View Change

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 1
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Comment-Date: Thu, 19 May 2022 10:00:25 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Changkun Ou (Gerrit)

    unread,
    May 19, 2022, 6:03:49 AM5/19/22
    to goph...@pubsubhelper.golang.org, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Ian Lance Taylor, Robert Griesemer.

    View Change

    1 comment:

    • Patchset:

      • Patch Set #1:

        I think this is probably late for Go 1.19 because we are in the freeze window.
        Considering this change won't be that much harmful, is it possible to request an exception here?

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 1
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Comment-Date: Thu, 19 May 2022 10:03:43 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Gerrit-MessageType: comment

    Caleb Spare (Gerrit)

    unread,
    Jul 5, 2022, 4:08:51 PM7/5/22
    to Changkun Ou, goph...@pubsubhelper.golang.org, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Changkun Ou, Ian Lance Taylor, Robert Griesemer.

    Patch set 1:Run-TryBot +1

    View Change

    2 comments:

    • Patchset:

      • Patch Set #1:

        Looks good, but I think we should also add it to bytes (because bytes and strings are supposed to be kept in sync).

    • File src/strings/strings.go:

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 1
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-Comment-Date: Tue, 05 Jul 2022 20:08:48 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Ingo Oeser (Gerrit)

    unread,
    Jul 5, 2022, 7:29:02 PM7/5/22
    to Changkun Ou, goph...@pubsubhelper.golang.org, Gopher Robot, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Changkun Ou, Ian Lance Taylor, Robert Griesemer.

    View Change

    2 comments:

    • Patchset:

    • File src/strings/strings.go:

      • Patch Set #1, Line 1198: ok

        Maybe rename "ok" to "found" in order to be consistent with Cut?

        Same comment applies for CutSuffix below

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 1
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-Comment-Date: Tue, 05 Jul 2022 23:28:57 +0000

    Brad Fitzpatrick (Gerrit)

    unread,
    Aug 5, 2022, 5:51:52 PM8/5/22
    to Changkun Ou, goph...@pubsubhelper.golang.org, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Gopher Robot, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Changkun Ou, Ian Lance Taylor, Ingo Oeser, Robert Griesemer.

    View Change

    1 comment:

    • Patchset:

      • Patch Set #1:

        Changkun, the Go 1.20 dev tree is open. Want to finish this up?

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 1
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-Comment-Date: Fri, 05 Aug 2022 21:51:49 +0000

    Changkun Ou (Gerrit)

    unread,
    Aug 10, 2022, 2:27:52 AM8/10/22
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

    Attention is currently required from: Caleb Spare, Changkun Ou, Ian Lance Taylor, Ingo Oeser, Robert Griesemer.

    Changkun Ou uploaded patch set #2 to this change.

    View Change

    The following approvals got outdated and were removed: Run-TryBot+1 by Caleb Spare, TryBot-Result-1 by Gopher Robot

    strings, bytes: add CutPrefix and CutSuffix

    Fixes #42537

    Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    ---
    A api/next/42537.txt
    M src/bytes/bytes.go
    M src/bytes/bytes_test.go
    M src/strings/strings.go
    M src/strings/strings_test.go
    5 files changed, 147 insertions(+), 0 deletions(-)

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 2
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-MessageType: newpatchset

    Changkun Ou (Gerrit)

    unread,
    Aug 10, 2022, 2:28:27 AM8/10/22
    to goph...@pubsubhelper.golang.org, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Gopher Robot, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Caleb Spare, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    Patch set 2:Run-TryBot +1

    View Change

    2 comments:

    • File src/strings/strings.go:

      • Yes please.

        Done

      • You can just drop this branch. (And below. […]

        Done

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 2
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Russ Cox <r...@golang.org>
    Gerrit-Comment-Date: Wed, 10 Aug 2022 06:28:21 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Ingo Oeser <night...@googlemail.com>
    Comment-In-Reply-To: Caleb Spare <ces...@gmail.com>
    Comment-In-Reply-To: Russ Cox <r...@golang.org>
    Gerrit-MessageType: comment

    Changkun Ou (Gerrit)

    unread,
    Aug 10, 2022, 2:49:13 AM8/10/22
    to goph...@pubsubhelper.golang.org, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Brad Fitzpatrick, Caleb Spare, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    View Change

    1 comment:

    • Patchset:

      • Patch Set #1:

        Changkun, the Go 1.20 dev tree is open. […]

        Sorry for the late response. The new patch has been uploaded.

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 2
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Russ Cox <r...@golang.org>
    Gerrit-Comment-Date: Wed, 10 Aug 2022 06:49:08 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-MessageType: comment

    Ian Lance Taylor (Gerrit)

    unread,
    Aug 11, 2022, 4:07:56 PM8/11/22
    to Changkun Ou, goph...@pubsubhelper.golang.org, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Brad Fitzpatrick, Caleb Spare, Changkun Ou, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    Patch set 2:Code-Review +2

    View Change

    1 comment:

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 2
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-Attention: Russ Cox <r...@golang.org>
    Gerrit-Comment-Date: Thu, 11 Aug 2022 20:07:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Gerrit-MessageType: comment

    Changkun Ou (Gerrit)

    unread,
    Aug 16, 2022, 1:31:52 AM8/16/22
    to goph...@pubsubhelper.golang.org, golang-co...@googlegroups.com

    Attention is currently required from: Brad Fitzpatrick, Caleb Spare, Changkun Ou, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    Changkun Ou uploaded patch set #3 to this change.

    View Change

    The following approvals got outdated and were removed: Run-TryBot+1 by Changkun Ou, TryBot-Result+1 by Gopher Robot

    strings, bytes: add CutPrefix and CutSuffix

    Fixes #42537

    Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    ---
    A api/next/42537.txt
    M src/bytes/bytes.go
    M src/bytes/bytes_test.go
    M src/strings/strings.go
    M src/strings/strings_test.go
    5 files changed, 147 insertions(+), 0 deletions(-)

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 3
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Changkun Ou <ma...@changkun.de>
    Gerrit-Attention: Russ Cox <r...@golang.org>
    Gerrit-MessageType: newpatchset

    Changkun Ou (Gerrit)

    unread,
    Aug 16, 2022, 1:32:19 AM8/16/22
    to goph...@pubsubhelper.golang.org, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Brad Fitzpatrick, Caleb Spare, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    Patch set 3:Run-TryBot +1

    View Change

    1 comment:

    To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

    Gerrit-Project: go
    Gerrit-Branch: master
    Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
    Gerrit-Change-Number: 407176
    Gerrit-PatchSet: 3
    Gerrit-Owner: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
    Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
    Gerrit-Reviewer: Gopher Robot <go...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
    Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
    Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-CC: Ingo Oeser <night...@googlemail.com>
    Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
    Gerrit-CC: Russ Cox <r...@golang.org>
    Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
    Gerrit-Attention: Caleb Spare <ces...@gmail.com>
    Gerrit-Attention: Brad Fitzpatrick <brad...@golang.org>
    Gerrit-Attention: Robert Griesemer <g...@golang.org>
    Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
    Gerrit-Attention: Russ Cox <r...@golang.org>
    Gerrit-Comment-Date: Tue, 16 Aug 2022 05:32:14 +0000

    Benny Siegert (Gerrit)

    unread,
    Aug 16, 2022, 9:30:33 AM8/16/22
    to Changkun Ou, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

    Attention is currently required from: Brad Fitzpatrick, Caleb Spare, Changkun Ou, Ian Lance Taylor, Ingo Oeser, Robert Griesemer, Russ Cox.

    Patch set 3:Code-Review +1

    View Change

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 3
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Attention: Ingo Oeser <night...@googlemail.com>
      Gerrit-Attention: Caleb Spare <ces...@gmail.com>
      Gerrit-Attention: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-Attention: Robert Griesemer <g...@golang.org>
      Gerrit-Attention: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Attention: Changkun Ou <ma...@changkun.de>
      Gerrit-Attention: Russ Cox <r...@golang.org>
      Gerrit-Comment-Date: Tue, 16 Aug 2022 13:30:27 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      Gerrit-MessageType: comment

      Robert Griesemer (Gerrit)

      unread,
      Aug 16, 2022, 3:48:46 PM8/16/22
      to Changkun Ou, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      Robert Griesemer submitted this change.

      View Change



      2 is the latest approved patch-set.
      The change was submitted with unreviewed changes in the following files:

      ```
      The name of the file: src/bytes/bytes.go
      Insertions: 10, Deletions: 0.

      The diff is too large to show. Please review the diff.
      ```

      Approvals: Ian Lance Taylor: Looks good to me, approved Changkun Ou: Run TryBots Benny Siegert: Looks good to me, but someone else must approve Gopher Robot: TryBots succeeded
      strings, bytes: add CutPrefix and CutSuffix

      Fixes #42537

      Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Reviewed-on: https://go-review.googlesource.com/c/go/+/407176
      Reviewed-by: Benny Siegert <bsie...@gmail.com>
      TryBot-Result: Gopher Robot <go...@golang.org>
      Run-TryBot: Changkun Ou <ma...@changkun.de>
      Reviewed-by: Ian Lance Taylor <ia...@google.com>

      ---
      A api/next/42537.txt
      M src/bytes/bytes.go
      M src/bytes/bytes_test.go
      M src/strings/strings.go
      M src/strings/strings_test.go
      5 files changed, 152 insertions(+), 0 deletions(-)

      diff --git a/api/next/42537.txt b/api/next/42537.txt
      new file mode 100644
      index 0000000..4f2446a
      --- /dev/null
      +++ b/api/next/42537.txt
      @@ -0,0 +1,4 @@
      +pkg bytes, func CutPrefix([]uint8, []uint8) ([]uint8, bool) #42537
      +pkg bytes, func CutSuffix([]uint8, []uint8) ([]uint8, bool) #42537
      +pkg strings, func CutPrefix(string, string) (string, bool) #42537
      +pkg strings, func CutSuffix(string, string) (string, bool) #42537
      \ No newline at end of file
      diff --git a/src/bytes/bytes.go b/src/bytes/bytes.go
      index 27834fc..c0cd704 100644
      --- a/src/bytes/bytes.go
      +++ b/src/bytes/bytes.go
      @@ -1309,3 +1309,29 @@
      }
      return append([]byte{}, b...)
      }
      +
      +// CutPrefix returns s without the provided leading prefix byte slice
      +// and reports whether it found the prefix.
      +// If s doesn't start with prefix, CutPrefix returns s, false.
      +// If prefix is the empty byte slice, CutPrefix returns s, true.
      +//
      +// CutPrefix returns slices of the original slice s, not copies.
      +func CutPrefix(s, prefix []byte) (after []byte, found bool) {
      + if !HasPrefix(s, prefix) {
      + return s, false
      + }
      + return s[len(prefix):], true
      +}
      +
      +// CutSuffix returns s without the provided ending suffix byte slice
      +// and reports whether it found the suffix.
      +// If s doesn't end with suffix, CutSuffix returns s, false.
      +// If suffix is the empty byte slice, CutSuffix returns s, true.
      +//
      +// CutSuffix returns slices of the original slice s, not copies.
      +func CutSuffix(s, suffix []byte) (after []byte, found bool) {
      + if !HasSuffix(s, suffix) {
      + return s, false
      + }
      + return s[:len(s)-len(suffix)], true
      +}
      diff --git a/src/bytes/bytes_test.go b/src/bytes/bytes_test.go
      index 392657d..05c7ccc 100644
      --- a/src/bytes/bytes_test.go
      +++ b/src/bytes/bytes_test.go
      @@ -1700,6 +1700,48 @@
      }
      }

      +var cutPrefixTests = []struct {
      + s, sep string
      + after string
      + found bool
      +}{
      + {"abc", "a", "bc", true},
      + {"abc", "abc", "", true},
      + {"abc", "", "abc", true},
      + {"abc", "d", "abc", false},
      + {"", "d", "", false},
      + {"", "", "", true},
      +}
      +
      +func TestCutPrefix(t *testing.T) {
      + for _, tt := range cutPrefixTests {
      + if after, found := CutPrefix([]byte(tt.s), []byte(tt.sep)); string(after) != tt.after || found != tt.found {
      + t.Errorf("CutPrefix(%q, %q) = %q, %v, want %q, %v", tt.s, tt.sep, after, found, tt.after, tt.found)
      + }
      + }
      +}
      +
      +var cutSuffixTests = []struct {
      + s, sep string
      + after string
      + found bool
      +}{
      + {"abc", "bc", "a", true},
      + {"abc", "abc", "", true},
      + {"abc", "", "abc", true},
      + {"abc", "d", "abc", false},
      + {"", "d", "", false},
      + {"", "", "", true},
      +}
      +
      +func TestCutSuffix(t *testing.T) {
      + for _, tt := range cutSuffixTests {
      + if after, found := CutSuffix([]byte(tt.s), []byte(tt.sep)); string(after) != tt.after || found != tt.found {
      + t.Errorf("CutSuffix(%q, %q) = %q, %v, want %q, %v", tt.s, tt.sep, after, found, tt.after, tt.found)
      + }
      + }
      +}
      +
      func TestBufferGrowNegative(t *testing.T) {
      defer func() {
      if err := recover(); err == nil {
      diff --git a/src/strings/strings.go b/src/strings/strings.go
      index 013d718..4ab78c3 100644
      --- a/src/strings/strings.go
      +++ b/src/strings/strings.go
      @@ -1187,3 +1187,25 @@
      }
      return s, "", false
      }
      +
      +// CutPrefix returns s without the provided leading prefix string
      +// and reports whether it found the prefix.
      +// If s doesn't start with prefix, CutPrefix returns s, false.
      +// If prefix is the empty string, CutPrefix returns s, true.
      +func CutPrefix(s, prefix string) (after string, found bool) {
      + if !HasPrefix(s, prefix) {
      + return s, false
      + }
      + return s[len(prefix):], true
      +}
      +
      +// CutSuffix returns s without the provided ending suffix string
      +// and reports whether it found the suffix.
      +// If s doesn't end with suffix, CutSuffix returns s, false.
      +// If suffix is the empty string, CutSuffix returns s, true.
      +func CutSuffix(s, suffix string) (after string, found bool) {
      + if !HasSuffix(s, suffix) {
      + return s, false
      + }
      + return s[:len(s)-len(suffix)], true
      +}
      diff --git a/src/strings/strings_test.go b/src/strings/strings_test.go
      index a1604c2..d6153aa 100644
      --- a/src/strings/strings_test.go
      +++ b/src/strings/strings_test.go
      @@ -1611,6 +1611,48 @@
      }
      }

      +var cutPrefixTests = []struct {
      + s, sep string
      + after string
      + found bool
      +}{
      + {"abc", "a", "bc", true},
      + {"abc", "abc", "", true},
      + {"abc", "", "abc", true},
      + {"abc", "d", "abc", false},
      + {"", "d", "", false},
      + {"", "", "", true},
      +}
      +
      +func TestCutPrefix(t *testing.T) {
      + for _, tt := range cutPrefixTests {
      + if after, found := CutPrefix(tt.s, tt.sep); after != tt.after || found != tt.found {
      + t.Errorf("CutPrefix(%q, %q) = %q, %v, want %q, %v", tt.s, tt.sep, after, found, tt.after, tt.found)
      + }
      + }
      +}
      +
      +var cutSuffixTests = []struct {
      + s, sep string
      + after string
      + found bool
      +}{
      + {"abc", "bc", "a", true},
      + {"abc", "abc", "", true},
      + {"abc", "", "abc", true},
      + {"abc", "d", "abc", false},
      + {"", "d", "", false},
      + {"", "", "", true},
      +}
      +
      +func TestCutSuffix(t *testing.T) {
      + for _, tt := range cutSuffixTests {
      + if after, found := CutSuffix(tt.s, tt.sep); after != tt.after || found != tt.found {
      + t.Errorf("CutSuffix(%q, %q) = %q, %v, want %q, %v", tt.s, tt.sep, after, found, tt.after, tt.found)
      + }
      + }
      +}
      +
      func makeBenchInputHard() string {
      tokens := [...]string{
      "<a>", "<p>", "<b>", "<strong>",

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-MessageType: merged

      Robert Griesemer (Gerrit)

      unread,
      Aug 16, 2022, 5:10:30 PM8/16/22
      to Changkun Ou, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      Attention is currently required from: Changkun Ou.

      View Change

      1 comment:

      • File src/strings/strings.go:

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Attention: Changkun Ou <ma...@changkun.de>
      Gerrit-Comment-Date: Tue, 16 Aug 2022 21:10:26 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-MessageType: comment

      Changkun Ou (Gerrit)

      unread,
      Aug 17, 2022, 1:03:44 AM8/17/22
      to Robert Griesemer, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Michal Bohuslávek, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      View Change

      1 comment:

      • File src/strings/strings.go:

        • Fair point. Feel free to send a CL.

          While writing the code, "after" actually means the results after this cut to me.

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Comment-Date: Wed, 17 Aug 2022 05:03:38 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Robert Griesemer <g...@google.com>

      Michal Bohuslávek (Gerrit)

      unread,
      Aug 17, 2022, 6:51:06 PM8/17/22
      to Changkun Ou, Robert Griesemer, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      Attention is currently required from: Changkun Ou.

      View Change

      1 comment:

      • File src/strings/strings.go:

        • Shouldn't it have been named "before"?

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Attention: Changkun Ou <ma...@changkun.de>
      Gerrit-Comment-Date: Tue, 16 Aug 2022 21:02:14 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Gerrit-MessageType: comment

      Michal Bohuslávek (Gerrit)

      unread,
      Aug 17, 2022, 6:51:06 PM8/17/22
      to Changkun Ou, Robert Griesemer, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      Attention is currently required from: Changkun Ou.

      View Change

      1 comment:

      • File src/strings/strings.go:

        • "after" actually means the results after this cut to me

          That was one of the alternatives I considered. But then I looked at the Cut function, and in that context it stoped making sense. I'll be happy to send a CL.

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Attention: Changkun Ou <ma...@changkun.de>
      Gerrit-Comment-Date: Wed, 17 Aug 2022 05:16:59 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Changkun Ou <ma...@changkun.de>

      Michal Bohuslávek (Gerrit)

      unread,
      Aug 19, 2022, 6:28:03 AM8/19/22
      to Changkun Ou, Robert Griesemer, goph...@pubsubhelper.golang.org, Benny Siegert, Gopher Robot, Brad Fitzpatrick, Russ Cox, Ingo Oeser, Caleb Spare, Robert Griesemer, Ian Lance Taylor, golang-co...@googlegroups.com

      Attention is currently required from: Changkun Ou.

      View Change

      1 comment:

      • File src/strings/strings.go:

        • > "after" actually means the results after this cut to me […]

          See CL 424922.

      To view, visit change 407176. To unsubscribe, or for help writing mail filters, visit settings.

      Gerrit-Project: go
      Gerrit-Branch: master
      Gerrit-Change-Id: Ie03c2614ffee30ebe707acad6b9f6c28fb134a45
      Gerrit-Change-Number: 407176
      Gerrit-PatchSet: 4
      Gerrit-Owner: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Benny Siegert <bsie...@gmail.com>
      Gerrit-Reviewer: Caleb Spare <ces...@gmail.com>
      Gerrit-Reviewer: Changkun Ou <ma...@changkun.de>
      Gerrit-Reviewer: Gopher Robot <go...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
      Gerrit-Reviewer: Ian Lance Taylor <ia...@google.com>
      Gerrit-Reviewer: Robert Griesemer <g...@golang.org>
      Gerrit-Reviewer: Robert Griesemer <g...@google.com>
      Gerrit-CC: Brad Fitzpatrick <brad...@golang.org>
      Gerrit-CC: Ingo Oeser <night...@googlemail.com>
      Gerrit-CC: Michal Bohuslávek <mbohu...@gmail.com>
      Gerrit-CC: Russ Cox <r...@golang.org>
      Gerrit-Attention: Changkun Ou <ma...@changkun.de>
      Gerrit-Comment-Date: Fri, 19 Aug 2022 10:27:56 +0000
      Reply all
      Reply to author
      Forward
      0 new messages