From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, URIBL_ZEN_BLOCKED_OPENDNS autolearn=ham autolearn_force=no version=3.4.4 Received: from txout-a2-smtp.messagingengine.com (txout-a2-smtp.messagingengine.com [103.168.172.225]) by inbox.vuxu.org (Postfix) with ESMTP id C367222371 for ; Thu, 18 Dec 2025 14:51:28 +0100 (CET) Received: from localhost.localdomain (phl-topicbox-02.internal [10.202.2.220]) by mailtxout.phl.internal (Postfix) with ESMTP id 1B5C81C0254 for ; Thu, 18 Dec 2025 08:51:27 -0500 (EST) ARC-Authentication-Results: i=3; topicbox.com; arc=pass (as.1.mailchannels.net=pass, ams.1.mailchannels.net=pass) smtp.remote-ip=23.83.222.44; dkim=pass (2048-bit rsa key sha256) header.d=ecloud.org header.i=@ecloud.org header.b=iQlAxSLH header.a=rsa-sha256 header.s=dreamhost x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=ecloud.org; spf=pass smtp.mailfrom=lists@ecloud.org smtp.helo=crimson.ash.relay.mailchannels.net; x-internal-arc=fail (as.2.topicbox.com=pass, ams.2.topicbox.com=fail (message has been altered), as.1.mailchannels.net=pass, ams.1.mailchannels.net=fail (message has been altered)) (Message modified while forwarding at Topicbox) ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=from:content-type:content-transfer-encoding :mime-version:subject:date:references:to:in-reply-to:message-id :list-help:list-id:list-post:list-subscribe:reply-to :list-unsubscribe; s=sysmsg-1; t=1766065887; bh=+g/ycl1dd1FyLn7s 6mmA31DceRVQtRRGYI8c904MQXo=; b=BTvAzVGblr99/4z+jo6TGcjopyV1WBPd m+42vsrQhD8usJkxYtctAnOlMrCGDW/C/46ePVtC1Wf549I7uqFZWsEr345IR01d JowL0VYyhe+H0RMfLnZchvSV76AI47JkTOhaIx8R/eXMD6mRXADXEEUbFZoia+xZ 5ILQZJ8c4U4= ARC-Seal: i=3; a=rsa-sha256; cv=pass; d=topicbox.com; s=sysmsg-1; t= 1766065887; b=Fe6Bhvwt6EZ6Tm8W+N8BaFGliU7FRCbiVcJedF2ZPR0QND1OjZ oA3cv98SA053rbx6n3dMMkaseD82vo9wDWiPAgYRca/2Uqtu692X0F2t/BZsMCuv rDtRP5Vi4hspqe8BQZareRA3HWVHQoX6XfiK1TfRrG0afy1hcVJYxSuJw= Authentication-Results: topicbox.com; arc=pass (as.1.mailchannels.net=pass, ams.1.mailchannels.net=pass) smtp.remote-ip=23.83.222.44; dkim=pass (2048-bit rsa key sha256) header.d=ecloud.org header.i=@ecloud.org header.b=iQlAxSLH header.a=rsa-sha256 header.s=dreamhost x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=ecloud.org; spf=pass smtp.mailfrom=lists@ecloud.org smtp.helo=crimson.ash.relay.mailchannels.net; x-internal-arc=fail (as.2.topicbox.com=pass, ams.2.topicbox.com=fail (message has been altered), as.1.mailchannels.net=pass, ams.1.mailchannels.net=fail (message has been altered)) (Message modified while forwarding at Topicbox) X-Received-Authentication-Results: authmilter.topicbox.com; arc=pass (as.1.mailchannels.net=pass, ams.1.mailchannels.net=pass) smtp.remote-ip=23.83.222.44; bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=ecloud.org header.i=@ecloud.org header.b=iQlAxSLH header.a=rsa-sha256 header.s=dreamhost x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=ecloud.org; iprev=pass smtp.remote-ip=23.83.222.44 (crimson.ash.relay.mailchannels.net); spf=pass smtp.mailfrom=lists@ecloud.org smtp.helo=crimson.ash.relay.mailchannels.net; x-aligned-from=pass (Address match); x-me-sender=none; x-ptr=pass smtp.helo=crimson.ash.relay.mailchannels.net policy.ptr=crimson.ash.relay.mailchannels.net; x-return-mx=pass header.domain=ecloud.org policy.is_org=yes (MX Records found: mx2.mailchannels.net,mx1.mailchannels.net); x-return-mx=pass smtp.domain=ecloud.org policy.is_org=yes (MX Records found: mx2.mailchannels.net,mx1.mailchannels.net); x-tls=pass smtp.version=TLSv1.3 smtp.cipher=TLS_AES_256_GCM_SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=9fans.net; h=from :content-type:content-transfer-encoding:mime-version:subject :date:references:to:in-reply-to:message-id:list-help:list-id :list-post:list-subscribe:reply-to:list-unsubscribe; s=dkim-1; t=1766065887; x=1766152287; bh=S/cAUCpg6yv5O65dTFkWonOVcrBsPXbg LR1k1pHmjmQ=; b=XePzrD9cS3p7vx70cy73u1+mzC84kheRl7bHRm+h58CUl5mI tmcHOgmN1fzRMgy1ktQ3VMKpBHe7P6ZWvCss9PIJBib4X6zjRIZs1aO/gNUFsJWK pkarEgK2zwdP53gk0s8N8csQOVyGgUZNtApOxrXmyS/7kNe0DBxYmMPmRZc= Received: from authmilter.topicbox.com (unknown [172.17.0.1]) by mx.topicbox.com (Postfix) with ESMTP id 907624D88868 for <9fans@9fans.net>; Thu, 18 Dec 2025 04:53:52 -0500 (EST) Received: from mx.topicbox.com (172.17.0.1 [172.17.0.1]) by authmilter.topicbox.com (Authentication Milter) with ESMTP id F36DFA05BAA; Thu, 18 Dec 2025 04:53:52 -0500 ARC-Seal: i=2; a=rsa-sha256; cv=pass; d=topicbox.com; s=arcseal; t= 1766051632; b=hXB0DE6M9p1Zh1WDgq70hy77PEAxmxDzoJq5Up+aTWkx61UnVG L6aTnEmf3RITIrE6sqwYStuBoVJPGrZp/rcAbFBQXgw/oxsCwzjH+95iwKfKFIay AH0V8vfUhwpciI3rcgyLVFYMokCnez7y7A34xrSkdM/fnlyFThqzyXS34A9SB/Bj GB8zSuJEm4r2XwDnKAIXAfS1GPxkJWbSa3a4CY2OtLHcpaYkcSwm3GGfi+eP18ZH FmwMjpXsffnIE5Ch0SeM6//bQ4SNZ6F5lLMXXYXNTWaST8J4xgbC6nu2Smp9sZlJ xm7yfeHRVFTwvaXvgDKZH0Mb2AkoScaMOF4A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d= topicbox.com; h=from:content-type:content-transfer-encoding :mime-version:subject:date:references:to:in-reply-to:message-id; s=arcseal; t=1766051632; bh=CopReKa+f9YsMyH/pCFO3ywpN3QJDjvSVcq 4wyqNGG0=; b=RyC7olgD7Ywyzc6spMNhJwNx839TGHPz3tAI320GsWsIaUp7YmY V/oxndmsTqp6ZjkbxVGJ6sJdaSqR1901IJX3GxznWbX+LRlIcRx1FVXyNZSV/luU 1CcCXSTnVRqenuF9pQoUdKvdYTMrS/93/xkDcAhTXMyRZPtD0Y/K1fgwKW+VdDRJ l9PMpbuzdHgkC6zYCAVHoPKxBCOtvaWVW7naNwatzDdnHgVRmwgddbvMXURK/lAJ y7Sn7PMK0LhsR+UOJkFqgzqHw7DlVjqYO+RxdKCpHiTD/MdG0GJ6kyDGD4Ro+zK8 SCwJjmicmJfNI3AdzgBurr0nhRMN6V59/fw== ARC-Authentication-Results: i=2; authmilter.topicbox.com; arc=pass (as.1.mailchannels.net=pass, ams.1.mailchannels.net=pass) smtp.remote-ip=23.83.222.44; bimi=skipped (DMARC did not pass); dkim=pass (2048-bit rsa key sha256) header.d=ecloud.org header.i=@ecloud.org header.b=iQlAxSLH header.a=rsa-sha256 header.s=dreamhost x-bits=2048; dmarc=none policy.published-domain-policy=none policy.applied-disposition=none policy.evaluated-disposition=none (p=none,d=none,d.eval=none) policy.policy-from=p header.from=ecloud.org; iprev=pass smtp.remote-ip=23.83.222.44 (crimson.ash.relay.mailchannels.net); spf=pass smtp.mailfrom=lists@ecloud.org smtp.helo=crimson.ash.relay.mailchannels.net; x-aligned-from=pass (Address match); x-me-sender=none; x-ptr=pass smtp.helo=crimson.ash.relay.mailchannels.net policy.ptr=crimson.ash.relay.mailchannels.net; x-return-mx=pass header.domain=ecloud.org policy.is_org=yes (MX Records found: mx2.mailchannels.net,mx1.mailchannels.net); x-return-mx=pass smtp.domain=ecloud.org policy.is_org=yes (MX Records found: mx2.mailchannels.net,mx1.mailchannels.net); x-tls=pass smtp.version=TLSv1.3 smtp.cipher=TLS_AES_256_GCM_SHA384 smtp.bits=256/256; x-vs=clean score=0 state=0 X-ME-VSCause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdegheduudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecunecujfgurhephfgtgf gguffffhfvjgfkofesthhqmhdthhdtjeenucfhrhhomhepufhhrgifnhcutfhuthhlvggu ghgvuceolhhishhtshesvggtlhhouhgurdhorhhgqeenucggtffrrghtthgvrhhnpedtle efleejvdeuteevveeludehhfekffelfeeffedvkeeggffhfedvteefgfffueenucfkphep vdefrdekfedrvddvvddrgeegpdekhedrudeigedrkeekrdduvddtnecuvehluhhsthgvrh fuihiivgeptdenucfrrghrrghmpehinhgvthepvdefrdekfedrvddvvddrgeegpdhhvghl oheptghrihhmshhonhdrrghshhdrrhgvlhgrhidrmhgrihhltghhrghnnhgvlhhsrdhnvg htpdhmrghilhhfrhhomhepoehlihhsthhssegvtghlohhuugdrohhrgheqpdhnsggprhgt phhtthhopedupdhrtghpthhtohepoeelfhgrnhhsseelfhgrnhhsrdhnvghtqe X-ME-VSScore: 0 X-ME-VSCategory: clean Received-SPF: pass (ecloud.org: Sender is authorized to use 'lists@ecloud.org' in 'mfrom' identity (mechanism 'include:relay.mailchannels.net' matched)) receiver=authmilter.topicbox.com; identity=mailfrom; envelope-from="lists@ecloud.org"; helo=crimson.ash.relay.mailchannels.net; client-ip=23.83.222.44 Received: from crimson.ash.relay.mailchannels.net (crimson.ash.relay.mailchannels.net [23.83.222.44]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx.topicbox.com (Postfix) with ESMTPS for <9fans@9fans.net>; Thu, 18 Dec 2025 04:53:51 -0500 (EST) X-Sender-Id: dreamhost|x-authsender|lists@ecloud.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 6EBF356253B for <9fans@9fans.net>; Thu, 18 Dec 2025 09:53:50 +0000 (UTC) Received: from pdx1-sub0-mail-a234.dreamhost.com (trex-green-1.trex.outbound.svc.cluster.local [100.103.185.50]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id B78105618DD for <9fans@9fans.net>; Thu, 18 Dec 2025 09:53:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; d=mailchannels.net; s=arc-2022; cv=none; t=1766051629; b=9IPiykjwbl1CVl4J9Bp39OUG1NAWOiJWS0lX2yLPbbqqzj/JSEuQ6UWJ6WLnW1L/9Sjhce 6jvWmBTklfgdafI9RlFqYgQZVv/syNeP2sCyD8Yhtf1L40Yx2uyA9u9sLzYtbFUzJcB+Lu 1S8SwVLMygzuufeVl83tXUAl/LFP/Zy+VbsR2mvXxddC56bK1Lr8WDpJs29PbJdkuW1xRU ichkoZo0uVf2lZ5E5twRGVpwNCEsCTS9C75LAL1yRw4v/yWIgmc1/UIQBtqdAwSennYzxg twpdFJA6FLHkJv2wUOAuR4VpL90llmnjvazqG82hPIusu8m36AEf2NbpqMQCtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1766051629; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CopReKa+f9YsMyH/pCFO3ywpN3QJDjvSVcq4wyqNGG0=; b=NQKN/1rcB2dlkKtUA/o6pEFhV0W6CRyRIWYxT25HdB5xkO/PjUiT5qpELUBfhzUlqNKeJU UTdQRSvK6VdoYWXQn04jueksFGg3PcEFntWBTUwEWaivvgN20KuWDpki65XLMigTgULj/5 zGsNZULFDIk9Jw+Tp9h6KS+p0FO0qIFB1rz8FzlMVPEjg+z6VbG1K0NIMFMgK0ajhFpjm2 raLYN3oVqc7aVkDEPCxoeC8Hwgch0ZoQA4OCaHsIVjbYcVw9rEf/vU8oAtJVUTbPKB5ZNv ORmNmM+HErRXGmnTR12AGQI36LZnlWdsbGJd8/EWRmwaa+00DFcNMAMoGPAbtA== ARC-Authentication-Results: i=1; rspamd-659888d77d-vjzlb; auth=pass smtp.auth=dreamhost smtp.mailfrom=lists@ecloud.org X-Sender-Id: dreamhost|x-authsender|lists@ecloud.org X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|lists@ecloud.org X-MailChannels-Auth-Id: dreamhost X-Rock-Daffy: 2160d4930c610eac_1766051630293_3950675144 X-MC-Loop-Signature: 1766051630293:163862285 X-MC-Ingress-Time: 1766051630292 Received: from pdx1-sub0-mail-a234.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.103.185.50 (trex/7.1.3); Thu, 18 Dec 2025 09:53:50 +0000 Received: from smtpclient.apple (ti0007a400-2414.bb.online.no [85.164.88.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: lists@ecloud.org) by pdx1-sub0-mail-a234.dreamhost.com (Postfix) with ESMTPSA id 4dX5bK1x9xz103S for <9fans@9fans.net>; Thu, 18 Dec 2025 01:53:49 -0800 (PST) From: Shawn Rutledge Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.200.81.1.6\)) Subject: Re: [9fans] Why does utfutf() exist? Date: Thu, 18 Dec 2025 10:53:35 +0100 References: <2ae07915-6e27-49f6-9424-d3eacc73e9e7@posixcafe.org> To: 9fans <9fans@9fans.net> In-Reply-To: <2ae07915-6e27-49f6-9424-d3eacc73e9e7@posixcafe.org> Message-Id: X-Mailer: Apple Mail (2.3864.200.81.1.6) Topicbox-Policy-Reasoning: moderate: sender is a member; group holds all messages Topicbox-Message-UUID: 762db2b6-dbf7-11f0-a46b-3d746bc11ef0 Archived-At: =?UTF-8?B?PGh0dHBzOi8vOWZhbnMudG9waWNib3guY29tL2dyb3Vwcy85?= =?UTF-8?B?ZmFucy9UODgzMTA3M2Y4YjhiYjM1MS1NY2YxYWFkNTQ5YjI5ODlkNjliNGQ2?= =?UTF-8?B?MzQ3Pg==?= List-Help: List-Id: "9fans" <9fans.9fans.net> List-Post: List-Software: Topicbox v0 List-Subscribe: Precedence: list Reply-To: 9fans <9fans@9fans.net> List-Unsubscribe: , Topicbox-Delivery-ID: 2:9fans:437d30aa-c441-11e9-8a57-d036212d11b0:522be890-2105-11eb-b15e-8d699134e1fa:Mcf1aad549b2989d69b4d6347:1:hLeoKX-4_fD4HuG8SchZG8B8uVjfSI9V15MKjM38HU8 > On Dec 17, 2025, at 22:17, Jacob Moody wrote: >=20 > I've been poking at some of the utf* functions lately and utfutf is a bit= puzzling. > At face value, strstr() should be sufficient for handling utf8 encoded st= rings just as strcmp() is. Maybe normalization could be the reason: there can be multiple representati= ons, for example, =C3=BC might be one code point (Unicode: U+00FC, UTF-8: C= 3 BC), or might be u with a combining umlaut. I would assume converting to= a rune would turn out the same either way: then you can compare them even = if the haystack is represented one way in utf8 and the needle is the other = way. (Disclaimer: I=E2=80=99m not a unicode expert, even less so on 9) ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T8831073f8b8bb351-Mcf1aa= d549b2989d69b4d6347 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription