From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2058.outbound.protection.outlook.com [40.107.15.58]) by sourceware.org (Postfix) with ESMTPS id 222F63858D1E for ; Thu, 7 Sep 2023 22:14:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 222F63858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/7Q2zMr5Hg3eJbiCCwQHLycsY1WHw8bIdlAD/gW34jg=; b=zK4FFP5OLu8PF8j30BXhVo9u6KZW3MaN4P+QfmCalv5b73JgpYOD8Pns2cjgNSfFn5BQepH0Hzt4JQGhLstladYPEtIrI66/D/YQSKqRcnGr4fScjk8x/MfieZA2lp7IkIu0vYHM9n9+7UYkE+qsuZvnFO6UGzK4Gq4lMu2ubpM= Received: from AS9PR05CA0029.eurprd05.prod.outlook.com (2603:10a6:20b:488::8) by AS4PR08MB7631.eurprd08.prod.outlook.com (2603:10a6:20b:4ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.30; Thu, 7 Sep 2023 22:14:29 +0000 Received: from AM7EUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:488:cafe::2e) by AS9PR05CA0029.outlook.office365.com (2603:10a6:20b:488::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.30 via Frontend Transport; Thu, 7 Sep 2023 22:14:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT032.mail.protection.outlook.com (100.127.140.65) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.28 via Frontend Transport; Thu, 7 Sep 2023 22:14:28 +0000 Received: ("Tessian outbound c99fbc01d472:v175"); Thu, 07 Sep 2023 22:14:28 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 42532637aa00f98c X-CR-MTA-TID: 64aa7808 Received: from d74e020bf373.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D10F4787-C607-4679-825A-0656233A2183.1; Thu, 07 Sep 2023 22:14:21 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d74e020bf373.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 07 Sep 2023 22:14:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rl8NteK8AllKWBRW692i+Vfnos6Sqq6J8FtiUEpsPfkYRKrGT6fXZJv9Nq43NXHJtz59L06fxXhkkpFOhILLANTvToq/d/z6gr7uh9BNkXsoxxmhP6nOUu108y9jyCsn2E6SgAEHW4DEAPxHPotqLDzrHDceN+aDYPHZMfgArWvZ8Uc01/1ipPtGBZfdDfY/dojbLzFa4q7ing6efmrPUxOwZW/1abdUJ8cV6/pmNanGx4VI+uuCQUvkX0we1AThMJLAwMGslYEol5KmIxqiA6SaM0pbmp4NsM3RLe++7YiVxh5oXIyvw51FMcEfwAmqH7d96T1g6Fx/een2IrN45A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/7Q2zMr5Hg3eJbiCCwQHLycsY1WHw8bIdlAD/gW34jg=; b=N0DL6+aip2LYx4BkZrUeGoC64ec2OaLBtbq39vGyNL/MeU20Dn6XScjLUMjm9Fhey/fubTx8mLyvhn4Z4TLIvTvDpYLixcoM1O9cXUk2qNWxbvCWag7Ctn81hCBDJfp0iSOP9mKFGuX/3tK9HV1p0SBvGSnCXkavVcxRbxDk1Y38VdTo+r0R57q3F1lkAefmAFdlgxQKDRdFqCtlivnqVMbC7bbIkTEz2+2CE3z15hWE2gon2CP9hrIUFzCs3+l3/FWKvX4K4Vr86hs9mDwk5wislAaK/7PkbbmYAgU40iDlqjLue2zL32zP2P+7S/95CCcCD5utQlDfGcP2NAvdtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/7Q2zMr5Hg3eJbiCCwQHLycsY1WHw8bIdlAD/gW34jg=; b=zK4FFP5OLu8PF8j30BXhVo9u6KZW3MaN4P+QfmCalv5b73JgpYOD8Pns2cjgNSfFn5BQepH0Hzt4JQGhLstladYPEtIrI66/D/YQSKqRcnGr4fScjk8x/MfieZA2lp7IkIu0vYHM9n9+7UYkE+qsuZvnFO6UGzK4Gq4lMu2ubpM= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by DB9PR08MB6443.eurprd08.prod.outlook.com (2603:10a6:10:261::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.29; Thu, 7 Sep 2023 22:14:16 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::ff3d:6e95:9971:a7e]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::ff3d:6e95:9971:a7e%5]) with mapi id 15.20.6745.034; Thu, 7 Sep 2023 22:14:16 +0000 From: Wilco Dijkstra To: "tirtajames45@gmail.com" CC: 'GNU C Library' Subject: [PATCH] strcasestr: check if ne[0] is in hs with strchr or strpbrk as does strstr Thread-Topic: [PATCH] strcasestr: check if ne[0] is in hs with strchr or strpbrk as does strstr Thread-Index: AQHZ4dAd5lZhjOSe8k+Jyf663Rm12g== Date: Thu, 7 Sep 2023 22:14:16 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|DB9PR08MB6443:EE_|AM7EUR03FT032:EE_|AS4PR08MB7631:EE_ X-MS-Office365-Filtering-Correlation-Id: 96dc4923-20d8-4e8d-462b-08dbafefcdeb x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: QIDTja2MI7lTA0Ow0yyCp60p4PmIYqBWbrd1f5V9JGe8NnHblc4N9To9aCly4tY/xV5M5y35IoY/Ju5NoCaRKOi5PZwqDppR10iOikBGv+6gxj5XuPAmxpX7N/CSqKkHa0OlYtufqqMjPIg/jjAsjf8naUsPxJ/Yk0I7fYMlZywxbpQHnjv95e6MvRxav5VQM9huuNtxGYAXDKJZjTbHpW6o7Bu06Lb1Q2RqFzobWN6aGuXdACpxjgLIrkFbdam/s5lyowandpxQwTSzGrGt41d+h5gn8WDbeg2gPECCV37BySZ+QzyH9WzDnqk+97hspxyLuPcoGxoAKfdfoVN3q4BjmDysf9uUxZlIg50fFzm1PLQ8XGF0AKE9NTbLWfY7N4R+maIctInd5re6K3Ojpdf1tBr6fiAxBo80AAhsOGkAEygNhSvGcGFqoS5V7YIhpPKSBqb8wc2mXXjbnCZGYd7JyY0YZ5eZVOo/tfGJ1oKX9CllcHJRZTL2vdU1NSeThQkuq9wSh1EujAkH+MHpn/ZZL0YkokplYbWzQQ9yaycj7s3ff85r/11JAxdvroXltnWyqMyAKM24UgIvtljX9wvSqoIB9ebZfLU2I8eZGLKIviHNJfBEbHBHkjDuTFgmw9FAKDL26hjz0XyqTibvwLLPYWWikEmWnrVwJlG8Ql8VDoq8iWQQ8QZXTUWGK/PzHRdJXa++aud5JVhu7TByetfYhnwoBmAjXDFjE2pAw9U= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAWPR08MB8982.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(39860400002)(366004)(346002)(136003)(376002)(186009)(1800799009)(451199024)(2906002)(66476007)(478600001)(316002)(52536014)(4744005)(91956017)(66556008)(4326008)(64756008)(38070700005)(66446008)(8936002)(7696005)(33656002)(8676002)(71200400001)(66946007)(86362001)(41300700001)(38100700002)(55016003)(5660300002)(9686003)(6916009)(76116006)(26005)(6506007)(122000001)(40753002)(17423001)(133343001)(156123004);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6443 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e8d34607-d28a-476b-974a-08dbafefc63d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C0KHY2TX9J4HRzHqG8eYOWocECQW4zUn/nUyUbrcoT9ecXcxxamvf9Ar/d803b9L//GW9gY5K9/VuLStOj370IB5BORh+HHPsWm1+ZIZBxjM9bFJ+oUBG7+l1UAnp9I3xdCEdWEmIaICMXQI7KVsW42D4S/X9yhXDLKB6bymbNCh3wJFwss2alt2lJ36i6ld4VmEIvQ0UnLPn467ood8gjpWKBR0/vp+eitAvxsLR1xT7pKsXeKwj3iAastX9uFRpfaYWZBMvbGC0kPlfhOeqXtz6vqIPd19RRIHP2NxGHg9K5/GU12OWoBhaZ11hydtd4976WNm+vf4Yg36mHwJiMapYjvnr2NEDk0Km65XX3Vfjm6YEFqvvGu8kMqm7eYX3BP1zy0vBz5eAxGyzdMN4v3uF+WC2AbP1OEKSzAxgOrDqulQCiBv6VsggpD+91j5GfhZZZvBiVS9RgTMy3C2HlSPZFjsMx0mlB2vljXREZuJ5DaR54/p4hI0mA06VAZcw8Ng8g+OtnLurF3QRi0ro6muslw+5jseP2jwsUBhZqzzsdOEDjr8Q3r8oEWiLqtgoE3W0bNnWA42S83erdZmMq6bbc7kR057M07Rw7EK9aE7TFCI9J6/Nr3Dq0dei7RjPNMZc5KNxj0sykSXamsFmlfwHc5XZgBrqZyS8YmOamh/EavaU4g1Mc3hyrI4ZkYBQVU/rhxOs0B1JZnVn0WFTvuRoXfS1pa1V7+NehAo3mxCkQRNXJXe5qlmdpjW4o3eSGLZDL4A/Kz9CGOTEqze57dOW5OclyBVGiSsP3L3/0redZurM702yhAwO/sc2zSofcuGkJipxjz3QI7phc2GY9k2jtdXmVj2d6XCuIiBwX0= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230031)(4636009)(346002)(39860400002)(376002)(396003)(136003)(451199024)(1800799009)(82310400011)(186009)(40470700004)(36840700001)(46966006)(81166007)(7696005)(6506007)(356005)(40460700003)(86362001)(33656002)(55016003)(82740400003)(40480700001)(36860700001)(47076005)(26005)(4744005)(2906002)(336012)(9686003)(478600001)(70586007)(41300700001)(70206006)(52536014)(8936002)(5660300002)(8676002)(4326008)(6862004)(316002)(40753002)(17423001)(133343001)(156123004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 22:14:28.9224 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 96dc4923-20d8-4e8d-462b-08dbafefcdeb X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7631 X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi James,=0A= =0A= This looks correct to me, but what about performance?=0A= =0A= + if (isalpha(*needle)) {=0A= + const char a[] =3D { tolower(*needle), toupper(*needle), '\0'};=0A= + haystack =3D strpbrk(haystack, a);=0A= =0A= strpbrk has a high startup overhead and is slow overall. A basic=0A= while loop checking tolower (haystack[0]) will be faster here.=0A= =0A= + } else {=0A= + haystack =3D strchr(haystack, *needle);=0A= + }=0A= + if (haystack =3D=3D NULL || needle[1] =3D=3D '\0')=0A= + return (char *)haystack;=0A= =0A= This should help a bit in some cases, but searching for the first=0A= character match improves performance the most if you check for=0A= a full match before the expensive initialization of the main algorithm=0A= (similar to what strstr does).=0A= =0A= Note that using strchr on a large haystack may actually result in a=0A= slowdown given that the matching algorithms are faster than strchr=0A= on typical inputs (due to being superlinear).=0A= =0A= Cheers,=0A= Wilco=0A=