From patchwork Tue Jul 14 15:30:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikola Arlotti X-Patchwork-Id: 139145 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1E8644BA2E1A for ; Tue, 14 Jul 2026 15:34:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1E8644BA2E1A Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=Kp+RvXHF X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) by sourceware.org (Postfix) with ESMTPS id AA7504BA2E21 for ; Tue, 14 Jul 2026 15:34:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AA7504BA2E21 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AA7504BA2E21 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::435 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784043243; cv=none; b=r4/VsjPVPkU12/wYDSraX139jBRUwTCVrKVIIMt/pzrH1+fYg/DGMWNibrzaPZ1+DNpM7/zIsOrlPyP7faV5s6tuqbiHscINyNUuMUUqonCCdXOFvCc+ULf3t01HOiAsjp0nP71bV8fcIZ7PTHdukyNDN3t5gUOLmGg2ZLDhLEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1784043243; c=relaxed/simple; bh=EoKHm16Ea/HwqpcBb2cuvRSO35yeknfc14AY3dly0ro=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=x8rIqMrqHyWP0i9BfCXxvyoe+MJxAgwcN4dEMD6WzFj/IYKUOmikaincrkhEF+7vzUuf/hibaJe03njG0hHw6F06d1akxDmJn5m75z1ogtGmQaHC7xMShK21AZfIOGzwh8d0Taq/ixrN/XQm7i6AimneGGOqU5fCfh6rDK9ZesE= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=Kp+RvXHF DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AA7504BA2E21 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-47122683cf3so2494506f8f.0 for ; Tue, 14 Jul 2026 08:34:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784043242; x=1784648042; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=xr2QHDHvflrSQMazW1T6uhlid7YoNZG+0iEVGwZYqL0=; b=Kp+RvXHFia+R3c3W7ezbqNqNDGADXZEBlA9Wm3k6gLbH4EibqvevzB2NA+kIvMixmV 22/EbU/KceTRXWSsF2WBIgb5dk7ZJlUUo1752HDBpXylOXPLTuHJHXOpV5eYDIrqBEQW tg25Of+6oHyGyxtwmFrT19fOlHLZ72l8nK9twNaBmFY0g9Vfj3GMnG2qOXkjbsoo7qif bFA8CuLQM4LW0p/0SHg/+W3gc6ICCTyMOXqANYMQmLY6y/5AvfHE46HLIkw7wZ6wd4d4 11gV+8DtO9FMq2GL3cd1wqlC4ZbTZSEEaB+ES+bjabCzmIz5K2Tji13X2ZkFbv9qSy1Q eXAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784043242; x=1784648042; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=xr2QHDHvflrSQMazW1T6uhlid7YoNZG+0iEVGwZYqL0=; b=YGpLQd9x/pu51WYRHgL5V8r4AuxAPuLMOcvGTBal7jkLCFB/E2Xu5M5R07w4KPdpQ5 9VAZ6iU2RV/1Cppw2FMEOZlKYZZjPKahWJSFaHdIxuMyESIVzSjJ2Mk9huV98eukdkFB XUQbuXurEzKrjkoxuFmtf8CXeFREJnIiWyAXV7rxSc5sFKeVUOXE1v3wZUYP5VQFCYEe H6UuNxmJRXNTry+2tM8yQAmXiOJBBl39r6y2qA6wZSo+c/xwryUlk6KXPCOSYfghV5xs cI8KS36jvAbYVLwL0i+ckswTf7qhdQFpPQBgkAz8jkC4B7DfHwa9R0xKGmD1vX7HZ2pD NIMg== X-Gm-Message-State: AOJu0YzE5nZbFYa/oQtq7F5UVnCsHwn9MuLVTVxfWjz83TYFmYkdAfKQ sujMNJvu9kwUXVo0xTm1rd0Ph9moEfadhhVruKC8rrrX4v2FLOXfh2hymWpBssUN X-Gm-Gg: AfdE7cmDUirJGcKopGa8W2Fq8Ypi3Dwvu70LSq3/AtvHY63dHX59BBW2UmSSi6kuGOD lbklOCnHoHZJ2A5jLahse3VM+txt+grIkvWM7aZ2XICd1AvKikCl0I+hnygHFe4rpHZbJv4Im96 Hx0uBq9Pkvm5WOKzhcqRccy9PBnOb451u7OLxZ0lrpaltfcx929SEsWnvvwm3Y6MCthw2xk2Cqq TxfbsCNwteSjSaGBqFdE+RELIfKv74HpWfyrhnAAgl/odVkssYc6khDbdrdXEFEyQ2nCWNoQhvQ LWHSOClnedIb5MgiWMn/f92HQMlx2WlyVO4O3xVK4pD2YHfCdLNnG4KzG+Wy1/zPBJNi6pOqarN utuT5WevmiVwtKz4QM7NXVZIuQzUVEqhKYMkwogGxljrHTQA76RoBDoJg5jXKeVn/LyaFP9fKuX nruEwgZINTfqLhuom2mikZK/ZUIaEvG/1qzxySkJhrmJa0J1NR9cy+HephIw== X-Received: by 2002:a05:600c:638f:b0:493:dcad:84da with SMTP id 5b1f17b1804b1-495158c6a66mr44824945e9.1.1784043241946; Tue, 14 Jul 2026 08:34:01 -0700 (PDT) Received: from bigputer.tail57e6b2.ts.net (85-193-2-230.rib.o2.cz. [85.193.2.230]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2e0f165sm273109045e9.0.2026.07.14.08.33.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 08:34:00 -0700 (PDT) From: Nikola Arlotti To: libc-alpha@sourceware.org Cc: Nikola Arlotti , arjun@redhat.com Subject: [PATCH] manual: document wcwidth and wcswidth [BZ #33740] Date: Tue, 14 Jul 2026 17:30:28 +0200 Message-ID: <20260714153044.20782-1-nikola.arlotti@gmail.com> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_PBL, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org This patch documents functions wcwidth and wcswidth, solving bug #33740. CC'ing Arjun so he can add it to his stats for the next glibc contribution workshop ;) Signed-off-by: Nikola Arlotti --- manual/ctype.texi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/manual/ctype.texi b/manual/ctype.texi index d09249c6cf..0eeb3f77de 100644 --- a/manual/ctype.texi +++ b/manual/ctype.texi @@ -380,6 +380,30 @@ by a successful call to @code{wctype}. This function is declared in @file{wctype.h}. @end deftypefun +@deftypefun int wcwidth (wchar_t @var{wc}) +@standards{POSIX, wchar.h} +@safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}} +This function returns the number of collumns needed to represent +the wide character @var{wc}. If @var{wc} is a printable wide character, +the value is 0 or higher. If @var{wc} is a null-wide character (L'\0'), +the value is 0. Otherwise, this function returns -1. + +@pindex wchar.h +This function is declared in @file{wchar.h}. +@end deftypefun + +@deftypefun int wcswidth (const wchar_t @var{*s}, size_t @var{n}) +@standards{POSIX, wchar.h} +@safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}} +This function returns the number of collumns needed to represent +the wide character string pointed to by @var{*s}, but at most +@var{n} wide characters. If a nonprintable wide character occurs +among these characters, this function returns -1. + +@pindex wchar.h +This function is declared in @file{wchar.h}. +@end deftypefun + To make it easier to use the commonly-used classification functions, they are defined in the C library. There is no need to use @code{wctype} if the property string is one of the known character