Received: (at 77387) by debbugs.gnu.org; 9 Apr 2025 13:00:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 09 09:00:07 2025 Received: from localhost ([127.0.0.1]:38267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u2V2E-0004Up-Kj for submit <at> debbugs.gnu.org; Wed, 09 Apr 2025 09:00:07 -0400 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]:53409) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1u2V2B-0004Ri-SP for 77387 <at> debbugs.gnu.org; Wed, 09 Apr 2025 09:00:05 -0400 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ac2963dc379so194805466b.2 for <77387 <at> debbugs.gnu.org>; Wed, 09 Apr 2025 06:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1744203598; x=1744808398; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QvcuQ2DRyo0TmylsQeHtNTrTxtIFql2NoHQagYAUvyY=; b=nAdaqCC1AVV1tt5H/4cBOBDUg4q4bVofVdmJt9Fy4X+uQNkuCdbZU2AQQ4hkUQPu1/ CW/swA/BRzGmO/MDQ0lIXYSYnCMHp/EeBmGDBNE/lusiR9mpN/irNYTvvl0UzCUMVGLn m/CT3rObREZ1lgMk7s4u8/i9UR3G4VGy9iRlam+NvfTX+CC23yGf528oQ9l/JmAnDam0 bqQh4tcM9+nCt+prhWAh2XXAGOo8rJ1lDdakKtTXszBCd/9SOkiqAMhpgg/gakAbnCxc ihxMlw2L3werzMH0ViqEzvXF/K/9jccYGzynnlqmnZEYBN6/Jvjqjq+A4HlG25/Gy+j/ TNKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744203598; x=1744808398; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QvcuQ2DRyo0TmylsQeHtNTrTxtIFql2NoHQagYAUvyY=; b=CCdrvCljQxx6jMB1RL7XAPrbS/FoMCImGtGS5NajNAMXjCNJPyLcBYIbxKG9jtt6Oj XWZfelliZgb3u6Dj0JcALc3Oig8DpYNXQ5oDYY/o+mn6iVX10iEbP1cvkaabGFePDL89 HauyPNNbBDxaksm6DJqyg8QmCdF31D/MB0HiBqeWnj3bozv/R9QuyK0APuYd+tHMxbTf r2h6QZI2/T7JSKPfInCNwuabaXfO/moNaiq49UX/I4RxI4rGWFpSM1OfLcU/SP5IFJ70 uD37Yl8FToOp1eIj+IyT52WgNlm3psXl4IIWPg3GRWI+3mMYlvr8jMw1gnBj8g2iB+d9 3Luw== X-Forwarded-Encrypted: i=1; AJvYcCU3yG87b9mgNkQflBHI+XZG3AieGP0+aJLLHZazf1vvmfB5gC5BI5bn/0DtY0ep6+JlITOk1w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy38ilAFEJrjuV/0Eud1VPCIlKGQc0e5xiRANNGnxsnapXEScr5 1FpV8XvIR1IpvNNI+jdE/RdT8YWsIH3xYQREijMpqiclmVl5iVGAYBboPTl3fdw= X-Gm-Gg: ASbGnctOMhKWfgZNDqIipQTPd7MAvqdWFP3N84R8tY3KWAyZz2isnb8jwsMPGyQ/cjT jqumdIi3QY8/bQTscTzqURaDfLHNbc1ANd/BsALKzRPh954vkV5a98P0Y9em9kA+CDlOey5nvyI /jqrfI/SfQv5eIXX//YlQpwLmF5t3FutxmUBbrdJd2NTNj0bL+T46rzi9FtMPWlrwu0igClHOec 6gwKsx0ExhOUgCQXDb7DtuA8hnqlKZnSfyeEaVrTAWwG40+GEvPg5egE+8Qq+pcbuVdJjT3bsWC yoX4xF8eFT5ctwyvftItfZn4kiUT7hNiby0lAg== X-Google-Smtp-Source: AGHT+IH9QIh6IwSNHX1ArmVa94Pv7SoTkCdEdJGXliq4xseSjs1UvCH+Wrq0+j6jlzCX0CQoO05BWQ== X-Received: by 2002:a17:907:3ea2:b0:ac6:fc40:c996 with SMTP id a640c23a62f3a-aca9d6183b5mr230261266b.23.1744203597277; Wed, 09 Apr 2025 05:59:57 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-acaa1cb4070sm94092166b.102.2025.04.09.05.59.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 05:59:56 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: [bug#77387] [PATCH 1/2] man-db: Parse man macro arguments better. In-Reply-To: <87ikne4ric.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 08 Apr 2025 17:11:55 +0200") References: <cover.1743343624.git.sarg@HIDDEN> <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> <87r02cdr08.fsf@HIDDEN> <87h637ekj9.fsf@HIDDEN> <87ikne4ric.fsf@HIDDEN> User-Agent: mu4e 1.12.9; emacs 30.0.92 Date: Wed, 09 Apr 2025 14:59:55 +0200 Message-ID: <87h62xh4ms.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Josselin Poiret <dev@HIDDEN>, 77387 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi, Ludovic Courtès <ludo@HIDDEN> writes: >>>> + (in-string? #f)) >>>> + (if (>= pos (string-length input)) >>>> + ;; End of input >>>> + (unless in-string? >>>> + (reverse (if (null? current) >>>> + tokens >>>> + (cons (list->string (reverse current)) tokens)))) >>> >>> So this procedure can return *unspecified*, right? Sounds fishy. >>> >> Why is it fishy? Is it unconventional? Such return value is handled >> correctly by the calling code (`match`). > > It’s unconventional; usually, procedures are monomorphic and in this > case, the expectation is that it always returns a list of tokens. > > I would either return the empty list in the ‘in-string?’ case or throw > an exception (because that means we failed to parse the thing). > > Does that make sense? I wouldn't throw an exception as this would break the derivation building an consequently profile switch. I've removed the offending `unless` altogether. `man` itself seem to be forgiving for such syntax violations.
guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 9 Apr 2025 12:47:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 09 08:47:02 2025 Received: from localhost ([127.0.0.1]:38226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u2Upa-0003pF-4A for submit <at> debbugs.gnu.org; Wed, 09 Apr 2025 08:47:02 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]:54446) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1u2UpV-0003oU-9p for 77387 <at> debbugs.gnu.org; Wed, 09 Apr 2025 08:46:57 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5eb92df4fcbso11467490a12.0 for <77387 <at> debbugs.gnu.org>; Wed, 09 Apr 2025 05:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1744202811; x=1744807611; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ucLOSm14qKdOSQif27H7Y9oQ4cdaGa8rKhIfks6CXtI=; b=sZnMT8OWxxS6o7kruGOBVx9oh7tIyuWOicMM8yRsX+TWEVP+hM1iiiZ/oIQTlUVheb 45DHHaw+TRGEFG73p3A66fDJzBhyH+aK6AAND1t9ZkYYg6/xFyrc8Rj1B5tgrJRPQnPy K+cO1HH8zVtZ+Rhe0CYCMDmd6jvmrZCgLgmknNYwrZyEk6huL7yEvfFZ3btBLvrFe1wD HXkUjmS/QvKww4KeZnlneyhqPUQHj9jexbQp/ERWhPDNhaqQlVt0r4TbtXUHZCie23mw YuLrR4NmNiNLley/n7Y7TGDHJLOIqYoXETSDvI6Cr0qJz6sSdL0kWxvSWHb1Z9LFOpE0 +X0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744202811; x=1744807611; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ucLOSm14qKdOSQif27H7Y9oQ4cdaGa8rKhIfks6CXtI=; b=tAnH/f43ViXY+izL+2nzpOav+cj15YvHT7xRn1q33j36gMDXVn1T37ZkwmepfJVmlH At99WGJXDYGKga+X3A0Ri+bRnC9g5Ox9ugaxomi3NArc6BbKsg/fFGysadtXAm6uFGrO B6Gc31SPqWbvc7/mMUffLyphDKSUpgXGdLkQIv3gkAQhJrkQAOQYf3HZrvYAmPD4vuct Pb2ShHo9NFHD9knaV/gAQ+JWEougiAhMAB1f2Za1Wuatq7CNnGVD8P/wzJpHJYMoZJwQ 8Vl0JeavAi+UIyOZC4PV40EduIh0jzDefV8QsrY0ffzbpOsbhybdRMxA0VdsBO0CYdLN UGqg== X-Gm-Message-State: AOJu0YySlocZZiifz//f7b0hG7eb21qXz6PtFcEqt8gCGZq4mDWdjC0S LmHxwNVOA06je27NEQJOoRWZ/JMTPqUbvKar9FJJQbk+hDoTLwMVMzW4pUcj367eXiakZGBZXm7 J+zI= X-Gm-Gg: ASbGnctFtt5OSUeywR0q7dxLgbLDY9fjYiEJSRCeCHniQeo5l3iJMfr4lo0E6aEp3GY rXhw+xWvcSK+x13c9TzzNNlAJdI97ET0gP8cHeut7NvOBUU63mSYyvgTbfVRYKDMG9CRgc5+9u9 XVz1/CgIl+py89PIeIeBgLuhx8FVIOlqfu7zsemCn3oP6i3cbzbUi5gZbGP17zJJkLPye/FJBzk zURFqhE7TMMkL58mR+L8OvNH/8wwVHZZI455pLbrBZac5YpYEqDOsob41rMJ2uiWVQmoglfUt1o GkAwVmFYv7e5FjLE8/I+lvNVSxd0ec9h8RUB0gVjfN0KFUkg X-Google-Smtp-Source: AGHT+IFOcntlBj4xBVUTRo5xqPBvmzH7gj96AOyI2A+8nLDPbH3Tx1L6zs9kK5J0ip2fnC4BSaVkgA== X-Received: by 2002:a05:6402:1941:b0:5f0:b245:a15 with SMTP id 4fb4d7f45d1cf-5f2f86a3573mr1895032a12.33.1744202809851; Wed, 09 Apr 2025 05:46:49 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5f2fbc2d6a4sm773171a12.40.2025.04.09.05.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 05:46:49 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH v2 2/2] man-db: Support mdoc-formatted man pages. Date: Wed, 9 Apr 2025 14:46:41 +0200 Message-ID: <df4d607fdf72164e9507a085c6cde892ecd8f5f4.1744202723.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 In-Reply-To: <a0040cd0faf8501a35b71848b33d83dc45d6659b.1744202723.git.sarg@HIDDEN> References: <a0040cd0faf8501a35b71848b33d83dc45d6659b.1744202723.git.sarg@HIDDEN> MIME-Version: 1.0 X-Debbugs-Cc: Sergey Trofimov <sarg@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-page->entry): Extract man name and section from .Dt macro. Change-Id: I02dc99d73dceecdb077315805025efad9a650e91 --- guix/man-db.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index 1259658f52..59723fb336 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -227,10 +227,13 @@ (define* (man-page->entry file #:optional (resolve identity)) ;; man 7 groff groff_mdoc groff_man ;; look for metadata in macro invocations (lines starting with .) (match (and (string-prefix? "." line) (man-macro-tokenize line)) - ((".TH" name (= string->number section) _ ...) + ;; "Title Header" or "Document title" + (((or ".TH" ".Dt") name (= string->number section) _ ...) (loop name section synopsis kind)) + ;; "Section Header" ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) + ;; include source ((".so" link) (match (and=> (resolve link) (cut man-page->entry <> resolve)) -- 2.49.0
sarg@HIDDEN, ludo@HIDDEN, guix@HIDDEN, dev@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 9 Apr 2025 12:46:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 09 08:46:58 2025 Received: from localhost ([127.0.0.1]:38223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u2UpV-0003on-AB for submit <at> debbugs.gnu.org; Wed, 09 Apr 2025 08:46:57 -0400 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]:54593) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1u2UpS-0003oQ-22 for 77387 <at> debbugs.gnu.org; Wed, 09 Apr 2025 08:46:55 -0400 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5efe8d9eb12so9908364a12.1 for <77387 <at> debbugs.gnu.org>; Wed, 09 Apr 2025 05:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1744202807; x=1744807607; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=oBly8/ybtx0vOTH8DSTkoRFYmSxWC/vxVFPkOmU9JUk=; b=J9nhG90jN914UKkGIVcBP/1tH9l9tZ5BaweCNUTcn4ESn5614LPtHJUIR93TmG2j8J cFfj3U64fBUEheibD8s7ntZHxPjAlhffuELAII70d+WvCBqk0wfdpvn4p7w0WOe8TReH 6rt35AUiRWOCKAj6QgrpOVodbPBVZlSKkNYuEl8MnMZFQ0LvCGm3HsPMA0be03PaHFsh hkVnVOQF+frRhAfp6HFudBIY60BhEcI7W9mJ1KyO3pvWLFtstt/t3CxcZdjPxhb/lVTq Wwy6I5OFMNjbYnpgUE6Iy4eGxs/BOn0+uycyEwFh6Th4yvCKlfovxLQdSCkFTlhWw24t zU+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744202807; x=1744807607; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=oBly8/ybtx0vOTH8DSTkoRFYmSxWC/vxVFPkOmU9JUk=; b=FZTLqiXZqtow+za8gJRyyIy1VASG8XiKpoLy/9eRtSfVbBfK9k8zQIIPsC6kxWBace My3YqNGnx9dWpFU0eCK9+DOEuWdwut/XUblv70/lb83W8hY+RRA8Z6HyEunfIjVIuMQv TOmLIxlOjIx1bQ4QnRXBeyt9YsoEQ/9wvwCXllF+kCzfIb4OJ9PBycRsvd8FAUARHHo/ eeZoH+8y+QSjDzMBlWQJ+ydEk15Y2/Jppn3+I37EXjLaZpJmmpF/o1BFOofKJ3hufWMs SzFIXr9H6xkbgxna1cJ8IdPCBfyZt02EeEf63agJE2hIAO92bDprbI+b/zl6dNijzUSm MG6Q== X-Gm-Message-State: AOJu0Yz/ZGA1oeBXDKWF4K93wTRM73iiEQfZ3pyJkZonJaAYmEXYnyJs W+3a/Jbe4gSoGdgwf/BUlnA0vpH7mRYS9+Og8LCrgoE2ZV68/fzaOfcT1sxWds9yHsJ+kxvgESC CSjA= X-Gm-Gg: ASbGncuNseZknHcUMjX+1ajXyC25k/7HWZJRLc3e+KiEDSpxSYIQp1u1DVDt+xFBj+K AKWobEZzARC/vZHMe+al5JKjrqHty1WQ55DNeH0z9O5/HYTywBk9qKvHp10RBv8YhOZlUIBn7HE fmXPwg+kwLnlgwisiOUI/jmBGawB/NHlqURGfcV+NJfi5KLW4QsHncTMATJLhpuZ8Vcpk5U0v5C AV8Muut8/DQT6ec85Svo3fU6akGHj5tv3ipDbX8cxlvDaqfEcu5l2RZDN8FixmI0LTUx4ZZUDyS HJgPr5HoDHSYfTsQTU7ojuNX1mNmvctPZvLe/NBD+N8vCEF2 X-Google-Smtp-Source: AGHT+IFpD8u96UD8JU2yZppn8BNtTniP+gQ95XU/N92kuPDvbBloe3QGdHn1S7io9Ta2lfpB7JeS5w== X-Received: by 2002:a17:906:e87:b0:ac1:fb27:d3a2 with SMTP id a640c23a62f3a-aca9d5cedebmr207689566b.5.1744202806332; Wed, 09 Apr 2025 05:46:46 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-acaa1c0126asm92676766b.78.2025.04.09.05.46.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 05:46:45 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH v2 1/2] man-db: Parse man macro arguments better. Date: Wed, 9 Apr 2025 14:46:40 +0200 Message-ID: <a0040cd0faf8501a35b71848b33d83dc45d6659b.1744202723.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Debbugs-Cc: Sergey Trofimov <sarg@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-macro-tokenize): New procedure to parse man macros. (man-page->entry): Parse macro line using man-macro-tokenize. Change-Id: Iea0ffbc65290757df746138e0a6174646b5a3eb8 --- guix/man-db.scm | 55 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index bba90ed473..1259658f52 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -161,16 +161,51 @@ (define (read-synopsis port) (line (loop (cons line lines)))))) +(define (man-macro-tokenize input) + "Split INPUT string, a man macro invocation, into a list containing the macro's +name followed by its arguments." + (let loop ((pos 0) + (tokens '()) + (characters '()) + (in-string? #f)) + (if (>= pos (string-length input)) + ;; End of input + (reverse (if (null? characters) + tokens + (cons (list->string (reverse characters)) tokens))) + (let ((c (string-ref input pos))) + (cond + ;; Inside a string + (in-string? + (if (char=? c #\") + (if (and (< (+ pos 1) (string-length input)) + (char=? (string-ref input (+ pos 1)) #\")) + ;; Double quote inside string + (loop (+ pos 2) tokens (cons #\" characters) #t) + ;; End of string + (loop (+ pos 1) (cons (list->string (reverse characters)) tokens) '() #f)) + ;; Regular character in string + (loop (+ pos 1) tokens (cons c characters) #t))) + + ;; Whitespace outside string + ((char-whitespace? c) + (if (null? characters) + (loop (+ pos 1) tokens '() #f) + (loop (+ pos 1) (cons (list->string (reverse characters)) tokens) '() #f))) + + ;; Start of string + ((char=? c #\") + (if (null? characters) + (loop (+ pos 1) tokens '() #t) + (loop pos (cons (list->string (reverse characters)) tokens) '() #f))) + + ;; Symbol character + (else + (loop (+ pos 1) tokens (cons c characters) #f))))))) + (define* (man-page->entry file #:optional (resolve identity)) "Parse FILE, a gzip or zstd compressed man page, and return a <mandb-entry> for it." - (define (string->number* str) - (if (and (string-prefix? "\"" str) - (> (string-length str) 1) - (string-suffix? "\"" str)) - (string->number (string-drop (string-drop-right str 1) 1)) - (string->number str))) - (define call-with-input-port* (cond ((gzip-compressed? file) call-with-gzip-input-port) @@ -189,8 +224,10 @@ (define* (man-page->entry file #:optional (resolve identity)) (if (eof-object? line) (mandb-entry file name (or section 0) (or synopsis "") kind) - (match (string-tokenize line) - ((".TH" name (= string->number* section) _ ...) + ;; man 7 groff groff_mdoc groff_man + ;; look for metadata in macro invocations (lines starting with .) + (match (and (string-prefix? "." line) (man-macro-tokenize line)) + ((".TH" name (= string->number section) _ ...) (loop name section synopsis kind)) ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) base-commit: 621d09a185b106364fe7636923ab39c8bca35141 -- 2.49.0
sarg@HIDDEN, ludo@HIDDEN, guix@HIDDEN, dev@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 8 Apr 2025 15:30:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 08 11:30:48 2025 Received: from localhost ([127.0.0.1]:34782 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1u2AuV-0008UJ-8N for submit <at> debbugs.gnu.org; Tue, 08 Apr 2025 11:30:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35648) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1u2AuS-0008Ta-Tg for 77387 <at> debbugs.gnu.org; Tue, 08 Apr 2025 11:30:45 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1u2AuM-0002B9-1K; Tue, 08 Apr 2025 11:30:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=ymbHgPg+YChB9K95Ehsax65vEypB1Uz+EQWNr0hvTRk=; b=E8v+6khzx13jcjiz6Wjk JI9/a4xL85sJrSdK+w9oOtK32RHcBPQ+tIKNKpVaGU/A6VgfWBooRNjO8a7jWxgNOdN303za1vZSv IpnL9PJxBOOx+Van2lCJsLdgxiw0SbcM6c0c9K2xuORcdl/zLgVyqcB207SOKIJENPvGl4jK1JYvP 8+7OJpwpY+Drf8brMN7k0ToH8FCSufCTnelvH7Cdg9gky2tIYo4EwcRKMOj04ITa4GiXC5zu2+/2O uGF441+mwKjBRvWzy2js68ar9tEsdFX0T0UsJBS9HHnpYGcedJWC32qvYRzy+DwSOTUdtfMpBZfKs BsQec3e5paJRBA==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Sergey Trofimov <sarg@HIDDEN> Subject: Re: [bug#77387] [PATCH 1/2] man-db: Parse man macro arguments better. In-Reply-To: <87h637ekj9.fsf@HIDDEN> (Sergey Trofimov's message of "Tue, 01 Apr 2025 21:42:02 +0200") References: <cover.1743343624.git.sarg@HIDDEN> <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> <87r02cdr08.fsf@HIDDEN> <87h637ekj9.fsf@HIDDEN> Date: Tue, 08 Apr 2025 17:11:55 +0200 Message-ID: <87ikne4ric.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77387 Cc: Josselin Poiret <dev@HIDDEN>, 77387 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi, Sergey Trofimov <sarg@HIDDEN> skribis: > Ludovic Court=C3=A8s <ludo@HIDDEN> writes: > >>> + (in-string? #f)) >>> + (if (>=3D pos (string-length input)) >>> + ;; End of input >>> + (unless in-string? >>> + (reverse (if (null? current) >>> + tokens >>> + (cons (list->string (reverse current)) tokens))= )) >> >> So this procedure can return *unspecified*, right? Sounds fishy. >> > Why is it fishy? Is it unconventional? Such return value is handled > correctly by the calling code (`match`). It=E2=80=99s unconventional; usually, procedures are monomorphic and in this case, the expectation is that it always returns a list of tokens. I would either return the empty list in the =E2=80=98in-string?=E2=80=99 ca= se or throw an exception (because that means we failed to parse the thing). Does that make sense? Thanks, Ludo=E2=80=99.
guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 1 Apr 2025 19:42:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 01 15:42:12 2025 Received: from localhost ([127.0.0.1]:51437 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzhUy-0004hn-5l for submit <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:42:12 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]:54769) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tzhUw-0004gn-4M for 77387 <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:42:10 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-ac6ed4ab410so942899066b.1 for <77387 <at> debbugs.gnu.org>; Tue, 01 Apr 2025 12:42:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743536524; x=1744141324; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IhMum3XPUKVPoAeYgvCpdMIzqcTUC2qwx0tMYQAoPXs=; b=RA0LTmzVCjA/Jf6QyGa0TyQSR/m5RMR3fGdD6hM5i+EJvyc84OlKEGlCznnlqmgeJZ Erse02qgn0YGcbO6JkCuVyKCTxbVmx0NoXwikbpN7iqrx47EfY/9F46VRNyiij4u2EJd 8FJHcN+S7dCTm/IFfwGl9LdSpJikPBVZt23g37K4U276IGEjCU/YygnwIKM0Hdg4ubzt GXSJVCfOaZpBqQsRwrsUrzEMZNHu/62yXxEEPYTrNkNV3dczhCI5U9/AdJR66T1OXHyQ nC0wDYhTsj9H5wVzukCGQPBXkvXcGw5rhGF87wO1hKcG/4cb0+QLraof9Tr6nVNhzUMG gIwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743536524; x=1744141324; h=content-transfer-encoding:mime-version:message-id:date:user-agent :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IhMum3XPUKVPoAeYgvCpdMIzqcTUC2qwx0tMYQAoPXs=; b=l827uG7SVwrIMgh0l22t3PrEJ/sZpG0MPMpLeE0sKg7/+E3GRtchqhABfymlMn/VaB /yHVU4tZqJMgFG2c/7dRe/M5kCLaE9LTTzixieLr+xzW6P/Yy7qmHBChJS+GmukpSNDe D+1uht1CVJDoq5VZwLu84pD4GuCRDzU0Cll2UV/ZNuaP7rdXPFj+RU/GL2rH2DsngGWw XR+gT2Y0WfhhploejUdZM8D6f7EuzfzsgTwt3rh1utATjSxKS3uSeuV+85x19R6IoHok mXG1+3S5uQrUrXTQdVqPOEsAzplzjW8/iG+8JGSqfo2zWLY4ctXyOniQ8qLmyLWR9spR 5R8g== X-Gm-Message-State: AOJu0Yx3QATp6uyEvM7otcNwRMOIIE4rtJBsyvbP+9oWFblucxg+/U+V xsHTD47UUFDGyIiWFRZnk7WmewmSfttZ1RdROsEld88/kK5cdi8RlSXux9emOshESKAqd647FiA CQBTa7Q== X-Gm-Gg: ASbGncuDYgO7hJV7R4SA43/lFVGvYRkY77It92v8nLD6PyfwAM2x4sWfPgkk0iuBraz 9l8ozLPwXGWXk760XA199vPd44Dbc6V7USkI/snc3vObWm9j10tOdx0HIYaf8OLDA/o3dzeAOFO MFGKZvyivqwKZKIQxH212chS8YuECV5JQdaGmyou2COv0sr817LpwbYSvpYnU4korjGpp9aHGCQ 8FXSR+gaQ7fZOyiGSbmfpxcRji3ssQ9XG+GzNTU92P0x/obm0sh7Mx1oE+z6fCvILW3q/XYsuQH +yKYKSPJt8wQF+TThUcHKp4DaMbd7JRvJXREXNc/Dw== X-Google-Smtp-Source: AGHT+IG7gREhNZYypzpyB+ZoT0O77jnVQrPqfIlTjkGCVhDaSD1Ly+ffV6Rvqt9gIkjtqNotn5CuHQ== X-Received: by 2002:a17:906:cec7:b0:ac7:391a:e157 with SMTP id a640c23a62f3a-ac7391ae294mr1151823666b.58.1743536523944; Tue, 01 Apr 2025 12:42:03 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac719220358sm801473066b.36.2025.04.01.12.42.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 12:42:03 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: [bug#77387] [PATCH 1/2] man-db: Parse man macro arguments better. In-Reply-To: <87r02cdr08.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 01 Apr 2025 14:07:35 +0200") References: <cover.1743343624.git.sarg@HIDDEN> <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> <87r02cdr08.fsf@HIDDEN> User-Agent: mu4e 1.12.9; emacs 30.0.92 Date: Tue, 01 Apr 2025 21:42:02 +0200 Message-ID: <87h637ekj9.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Josselin Poiret <dev@HIDDEN>, 77387 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludovic, I've sent an amended series. Ludovic Courtès <ludo@HIDDEN> writes: >> + (in-string? #f)) >> + (if (>= pos (string-length input)) >> + ;; End of input >> + (unless in-string? >> + (reverse (if (null? current) >> + tokens >> + (cons (list->string (reverse current)) tokens)))) > > So this procedure can return *unspecified*, right? Sounds fishy. > Why is it fishy? Is it unconventional? Such return value is handled correctly by the calling code (`match`).
guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 1 Apr 2025 19:32:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 01 15:32:28 2025 Received: from localhost ([127.0.0.1]:51389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzhLX-0003Oq-Sn for submit <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:32:28 -0400 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]:60621) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tzhLV-0003Nc-Fb for 77387 <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:32:25 -0400 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-ac28e66c0e1so892010866b.0 for <77387 <at> debbugs.gnu.org>; Tue, 01 Apr 2025 12:32:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743535939; x=1744140739; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9N5M1Capkss/5bpF6QdtNcZTD5SLCSMNQoltOh7SGcI=; b=KnyyEi+jeqvMoJ0fzcLHgXFOqEaIKHnwzkVObyn4S7Wt1RmsbEAdiuDMAhF21rXcXG W16cCO5X8DGevXQPafAhx+MC4bUcVmrshaKB+Dz//q3E17jBiqUJxwVfDz65Nxow3MKN sK+MIjmIcg2DhMKUdzC8FEAg0855oJlOAhouYfXeypnk001x8jPhwZcwgK9Ma1FO4qOA +Bm+ORO3uTSsZQLYfmMGvu5dvlOw+yMS7q9wgwKzdjtaJIAffs1VmSecSzofn6bfXzYX xE/D3mUSrOItdj5obFQGgL9WrJAM3YOoJeygC6N5ywlSEmay9k3+sgFesQ44OydujCRQ 8xlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743535939; x=1744140739; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9N5M1Capkss/5bpF6QdtNcZTD5SLCSMNQoltOh7SGcI=; b=h/ohToiMigkW0FNJ0TBiRpSYMT490sKkWmz8qFr5zCQDWL0SFhJyForZdIP6bCH+D3 ASKI18G3sv1GS8FsOgHOEuwMgTLuNe8WB9wt0TRwqsu1h7XNqq9IlNpFeySiFZeGMpOh s3O9p9a8V+fH2rKZR+mMDJfrTzz81D1il0LMJ2zLGn08mf/pl56WAwbiqrG5EhfBJq80 +lmbZV/aFZHHzYW27JMmyDIgmj7Ap33TPKcVr+ycrVAWupii1acXaAaKztUiFVM24IWB U6dWJLGpX+AvKcpRM3msxxTeEWVg0oexTovUEUrzcwDiIOq/p7zPIpBbZVEySDydwszy i+rg== X-Gm-Message-State: AOJu0YwO1tuTpHGzlUr2NFcTGdKxhF+tH30JRNKnUQEC3bgZpkNezTFQ C7bFlLVRLh7qeYv2eO6x2m8T6RY9MEPOUNksUmr4tFJivpxJeeqYAVtLsHIHxfLJGsXYENGfhtO KirY= X-Gm-Gg: ASbGnctfFS0KCAyzFnNsa90mLHxc8fa+Mt4a+iYe185US4tOH9DtOoruLKTRLLO5kAH 6Gi5tyiwaajew9be3p/ZaYINhc12bDKv43oY+iq74W6c7yIZqBIShhse0CRbrpzC/YTfwUaQD6Z t+f4sPrYXZm+PxXBwfRgH3+ev34hPaH3l5QabEPaiP8Kwq+FjhiOKGIZPbht2eYex+C53HpduF6 LiWOqai0y7r5VqV+hoc5diwuJcqva9iSF9R5TGb8xmPCv13NGgj2t5nk3rH18a9GkbDU7Zx4dpT gG2KiZS1xDENCZSBeAQipmLE6M3iPdu1WhrqMH1Pdw== X-Google-Smtp-Source: AGHT+IFAn7WfTVeqFMdZ0c3YRrFl+WXuGg+SHOGfIkMD5hI+a76Pxx8NZzUkc/bU5BSmCC0PKM3B2A== X-Received: by 2002:a17:907:97c9:b0:ac6:e42b:7556 with SMTP id a640c23a62f3a-ac7389e6743mr1398638466b.11.1743535938917; Tue, 01 Apr 2025 12:32:18 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71922c0c5sm805005666b.9.2025.04.01.12.32.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 12:32:18 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH v1 2/2] man-db: Support mdoc-formatted man pages. Date: Tue, 1 Apr 2025 21:32:00 +0200 Message-ID: <b861158e0e55b40d58b24ebfec2b80bb2591645b.1743535900.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 In-Reply-To: <109f10a155f45adf26420b11787153cf96bbdc8b.1743535900.git.sarg@HIDDEN> References: <109f10a155f45adf26420b11787153cf96bbdc8b.1743535900.git.sarg@HIDDEN> MIME-Version: 1.0 X-Debbugs-Cc: Sergey Trofimov <sarg@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-page->entry): Extract man name and section from .Dt macro. Change-Id: I02dc99d73dceecdb077315805025efad9a650e91 --- guix/man-db.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index 94231264f0..7601580c40 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -228,10 +228,13 @@ (define* (man-page->entry file #:optional (resolve identity)) ;; man 7 groff groff_mdoc groff_man ;; look for metadata in macro invocations (lines starting with .) (match (and (string-prefix? "." line) (man-macro-tokenize line)) - ((".TH" name (= string->number section) _ ...) + ;; "Title Header" or "Document title" + (((or ".TH" ".Dt") name (= string->number section) _ ...) (loop name section synopsis kind)) + ;; "Section Header" ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) + ;; include source ((".so" link) (match (and=> (resolve link) (cut man-page->entry <> resolve)) -- 2.49.0
sarg@HIDDEN, ludo@HIDDEN, guix@HIDDEN, dev@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 1 Apr 2025 19:32:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 01 15:32:26 2025 Received: from localhost ([127.0.0.1]:51387 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzhLW-0003OU-42 for submit <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:32:26 -0400 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]:50442) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tzhLT-0003NM-Lq for 77387 <at> debbugs.gnu.org; Tue, 01 Apr 2025 15:32:25 -0400 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-ac339f53df9so1047733566b.1 for <77387 <at> debbugs.gnu.org>; Tue, 01 Apr 2025 12:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743535937; x=1744140737; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=84B+HaKIkCtXiSnzduMypItwc6yngjgrkSnqfB23XGQ=; b=idEBLc69R1J5wDfKuHB8QGeYXmUQTAj7f52mEf6d7BOYweOurbhnpWaWyCp+z5NTXw /BHdZdLdofoZ+95Tvto9ShrlbRoyj0iYzLZjOgZb1VxDeGfE/AHKnR3wNao9HOT3IAYZ CyAZZWNQ0HzRmDBSkbQvgl2L69FS5aLKIwpuxNxX8vSGdeXzKXkmdchlFNsVM8NMQMUR UJn+rmjJiuPQDH94QFxcMqvnqoV0pgtDiAtPkuH2ZZyMDukNjHfkNm0BOCyXYrUBYGfk 1DGcvFPPfXYFfm3j1FyGZ3g48iYY7t/WmBwyhLMQbkry4JEXan59iI3mBIZMaJbg+gYf Yfyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743535937; x=1744140737; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=84B+HaKIkCtXiSnzduMypItwc6yngjgrkSnqfB23XGQ=; b=l8bH10go+CfBw5vWMCyfXOKUuKXAgUMtv1IENRWEIwj0gvPNZR1rzDc/kXDkVi5OZG yU7cB6aUxj0nGcJDZYDSOUQkdkdh1TopQmJG3n5I2ux74fpmrnBQvRZRBJCcQZl1FKXn ZxpfGHXHwye4CV0wXC2uIWo9AvgdaVYBS0WqeRmTdRnJTfj42IHTBlKMRfYKeU6Z/j/0 Eejck9XN58K2oPICXS/q4g0IKV1dt4atePDukInQT5MjDmjwYuqG+O2jXnfdT2RtflJo av1sFOAoMDyL0dzA7HnyzKblUpjmRL8PkVFFwIyjZTiRQ4vJ+YhbecV3rFhEml/fBj4t KKzA== X-Gm-Message-State: AOJu0Yygs0BgoCbSrZeKptLElUYusodn92ER+JYF9Lrbp5dVHpYJPFXN SSwyKKhUKWUar6pqeEaE4EXyOWtosUJuFEk24OhPI+x3wCyb3GkuKp5ZUmBWAWHM8dUEZyWvNok JYJk= X-Gm-Gg: ASbGncs5tHW9jK8qi+5y9KhcXaV2F8wlbx9DSF05mDr1Oh2MlncEynyx8OK7Mc2fcq1 lm0HgmV+syVCDggVnymbUEBnnVTr7vN/gndJkN+q0CBzzHacQ4Fd7vbNhe2waARw+1qswyVXrXK w62nZUl6qCRPtEe0PFZTKArrScNPnsbeUUHW7jvvTqwZsWal6U59TNkRC93vhgCtCZdAGJhGMDD 6kVrvErj2xVosd6u8DfaB2dp7PO4XvRHjsZXoVqQL+8BciJfZlYhrxEjLCqSvITC7stIX18jEBX yD8cz1ecd4DKCZMGYvJ9Zfuo4HU4/DTXhOW8Yo2jLQ== X-Google-Smtp-Source: AGHT+IEqMwPmDSPU8HHmcL9LMU/JzTkgRFHo1CXTSWqQ+/F26XMBvTzUwqO+Dh0vu2TtBaKWgT/JyA== X-Received: by 2002:a17:906:c144:b0:ac1:def4:ce20 with SMTP id a640c23a62f3a-ac7389e6c75mr1343218166b.18.1743535936743; Tue, 01 Apr 2025 12:32:16 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71967fcf4sm796746366b.129.2025.04.01.12.32.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Apr 2025 12:32:16 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH v1 1/2] man-db: Parse man macro arguments better. Date: Tue, 1 Apr 2025 21:31:59 +0200 Message-ID: <109f10a155f45adf26420b11787153cf96bbdc8b.1743535900.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Debbugs-Cc: Sergey Trofimov <sarg@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-macro-tokenize): New procedure to parse man macros. (man-page->entry): Parse macro line using man-macro-tokenize. Change-Id: Iea0ffbc65290757df746138e0a6174646b5a3eb8 --- guix/man-db.scm | 56 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index bba90ed473..94231264f0 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -161,16 +161,52 @@ (define (read-synopsis port) (line (loop (cons line lines)))))) +(define (man-macro-tokenize input) + "Split INPUT string, a man macro invocation, into a list containing the macro's +name followed by its arguments." + (let loop ((pos 0) + (tokens '()) + (characters '()) + (in-string? #f)) + (if (>= pos (string-length input)) + ;; End of input + (unless in-string? + (reverse (if (null? characters) + tokens + (cons (list->string (reverse characters)) tokens)))) + (let ((c (string-ref input pos))) + (cond + ;; Inside a string + (in-string? + (if (char=? c #\") + (if (and (< (+ pos 1) (string-length input)) + (char=? (string-ref input (+ pos 1)) #\")) + ;; Double quote inside string + (loop (+ pos 2) tokens (cons #\" characters) #t) + ;; End of string + (loop (+ pos 1) (cons (list->string (reverse characters)) tokens) '() #f)) + ;; Regular character in string + (loop (+ pos 1) tokens (cons c characters) #t))) + + ;; Whitespace outside string + ((char-whitespace? c) + (if (null? characters) + (loop (+ pos 1) tokens '() #f) + (loop (+ pos 1) (cons (list->string (reverse characters)) tokens) '() #f))) + + ;; Start of string + ((char=? c #\") + (if (null? characters) + (loop (+ pos 1) tokens '() #t) + (loop pos (cons (list->string (reverse characters)) tokens) '() #f))) + + ;; Symbol character + (else + (loop (+ pos 1) tokens (cons c characters) #f))))))) + (define* (man-page->entry file #:optional (resolve identity)) "Parse FILE, a gzip or zstd compressed man page, and return a <mandb-entry> for it." - (define (string->number* str) - (if (and (string-prefix? "\"" str) - (> (string-length str) 1) - (string-suffix? "\"" str)) - (string->number (string-drop (string-drop-right str 1) 1)) - (string->number str))) - (define call-with-input-port* (cond ((gzip-compressed? file) call-with-gzip-input-port) @@ -189,8 +225,10 @@ (define* (man-page->entry file #:optional (resolve identity)) (if (eof-object? line) (mandb-entry file name (or section 0) (or synopsis "") kind) - (match (string-tokenize line) - ((".TH" name (= string->number* section) _ ...) + ;; man 7 groff groff_mdoc groff_man + ;; look for metadata in macro invocations (lines starting with .) + (match (and (string-prefix? "." line) (man-macro-tokenize line)) + ((".TH" name (= string->number section) _ ...) (loop name section synopsis kind)) ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) base-commit: 5735c278e16517d9be5e26235fe68dea9bae3527 prerequisite-patch-id: f9cc903b8048c8c6fde576fbf38ab110263020e3 prerequisite-patch-id: 220ddf11addf3a6c7ab3b349077bca6849241556 prerequisite-patch-id: fc7d254c8dc198bc2f083e1c8aea18960c73b165 prerequisite-patch-id: b6d30068ce4971d4d8e67517229916df4e76c529 -- 2.49.0
sarg@HIDDEN, ludo@HIDDEN, guix@HIDDEN, dev@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 1 Apr 2025 12:08:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 01 08:08:47 2025 Received: from localhost ([127.0.0.1]:46855 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzaQA-0007Zx-VV for submit <at> debbugs.gnu.org; Tue, 01 Apr 2025 08:08:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45998) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tzaQ8-0007YU-5K for 77387 <at> debbugs.gnu.org; Tue, 01 Apr 2025 08:08:44 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tzaQ1-0007Ac-NA; Tue, 01 Apr 2025 08:08:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=c4ZJ/WQJhBLo5uQFJnexOX9sIuoXsmMT9ivg6+k4gPo=; b=jixOHmAIzf33tMIQrfIr 6YvaNIdYCnZrtGiJIcN0qW2nJ9Ex8r78ucpp78oCLAihlM/yIeAiqTPEHn5nBUuuGd2LGtV67MXLl 8LyEBJZ59VMbHgLrq0Zmw8FMyoVZj+rSEiuTJoMYDUd2o2KW6bSjKJHJv+mf2JbaIxDRixkzuAjVg QY9+L8HRgHejyN/hWsEfm55DX/jcbPqP8gPnV8MsTKju6fSLtXSAsFaHp9QfDwzBBluz8B7c3vzcM +3CSc9uOf2iHSY56cyP5ttJpxShnKgj6MlXDEatcX+syPRp/ii2Mg+bjuLF2+MDxwKMvtj4x/36r5 98JHXrSPXMsMmA==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Sergey Trofimov <sarg@HIDDEN> Subject: Re: [bug#77387] [PATCH 2/2] man-db: Support mdoc-formatted man pages. In-Reply-To: <43b006e62f2034b3acdd611e72029c9664922618.1743349817.git.sarg@HIDDEN> (Sergey Trofimov's message of "Sun, 30 Mar 2025 16:32:55 +0200") References: <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743349817.git.sarg@HIDDEN> <43b006e62f2034b3acdd611e72029c9664922618.1743349817.git.sarg@HIDDEN> Date: Tue, 01 Apr 2025 14:08:31 +0200 Message-ID: <87msd0dqyo.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77387 Cc: Josselin Poiret <dev@HIDDEN>, 77387 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Sergey Trofimov <sarg@HIDDEN> skribis: > * guix/man-db.scm (man-page->entry): Extract man name and section from > .Dt macro. > > Change-Id: I02dc99d73dceecdb077315805025efad9a650e91 [...] > (match (if (string-prefix? "." line) (man-macro-tokeni= ze line) #f) > - ((".TH" name (=3D string->number section) _ ...) > + (((or ".TH" ".Dt") name (=3D string->number section)= _ ...) Likewise, please add a short comment above the clause explaining that =E2=80=98.Dt=E2=80=99 is produced by =E2=80=98mandoc=E2=80=99 (did I get th= at right?). Ludo=E2=80=99.
guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 1 Apr 2025 12:08:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Apr 01 08:08:12 2025 Received: from localhost ([127.0.0.1]:46850 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzaPc-0007Tv-2O for submit <at> debbugs.gnu.org; Tue, 01 Apr 2025 08:08:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58648) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tzaPa-0007Ss-40 for 77387 <at> debbugs.gnu.org; Tue, 01 Apr 2025 08:08:10 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tzaPQ-000739-BT; Tue, 01 Apr 2025 08:08:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=9ew0dvI46yQTSjiysMx/VlPtOnfXcAWbqBSoRiLa43I=; b=r89ZkvXjRo/OCWKK+OQJ vjqxGt15UpDXCBcH55PAkUQItqNA5ALZpyhAabpb/0vMAQCS0AzysnkkzU7rgYjbXK8KF32qFzT3u FjDgtE07zDhRTuhZAJKaQTfqzHp4BLKshtwLR/GfyRpXlklKdPKaNQgX5gYY0a4yqsv+PuPT7i/1b JKvHR/gFkUxO1rGsDAErB91B8yq6PLS7KVfkv7lj1SHkCMgR9kXMc9aaxsNoxsGEz/W6ohAzxc2hs DC2PNA5E4wTLQsg22E6PKqmMJoCnNnqpf9P0z01ttsQ1f24W7tlj+pj9UsqWWJaC9TjX8kPR36Xk/ mt1SAdhwxsKo4g==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Sergey Trofimov <sarg@HIDDEN> Subject: Re: [bug#77387] [PATCH 1/2] man-db: Parse man macro arguments better. In-Reply-To: <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> (Sergey Trofimov's message of "Sun, 30 Mar 2025 16:32:54 +0200") References: <cover.1743343624.git.sarg@HIDDEN> <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> Date: Tue, 01 Apr 2025 14:07:35 +0200 Message-ID: <87r02cdr08.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77387 Cc: Josselin Poiret <dev@HIDDEN>, 77387 <at> debbugs.gnu.org, Simon Tournier <zimon.toutoune@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN>, Christopher Baines <guix@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi! Glad you fixed this problem. :-) Sergey Trofimov <sarg@HIDDEN> skribis: > * guix/man-db.scm (man-macro-tokenize): New procedure to parse man > macros. > (man-page->entry): Parse macro line using man-macro-tokenize. > > Change-Id: Iea0ffbc65290757df746138e0a6174646b5a3eb8 [...] > +(define (man-macro-tokenize input) Could you add a docstring explaining what it takes and what it returns? > + (let loop ((pos 0) > + (tokens '()) > + (current '()) Maybe s/current/characters/ ? > + (in-string? #f)) > + (if (>=3D pos (string-length input)) > + ;; End of input > + (unless in-string? > + (reverse (if (null? current) > + tokens > + (cons (list->string (reverse current)) tokens)))) So this procedure can return *unspecified*, right? Sounds fishy. > @@ -189,8 +223,8 @@ (define* (man-page->entry file #:optional (resolve id= entity)) > (if (eof-object? line) > (mandb-entry file name (or section 0) (or synopsis "") > kind) > - (match (string-tokenize line) > - ((".TH" name (=3D string->number* section) _ ...) > + (match (if (string-prefix? "." line) (man-macro-tokeni= ze line) #f) > + ((".TH" name (=3D string->number section) _ ...) Please add a comment above =E2=80=98match=E2=80=99 explaining what=E2=80=99= s happening (why we call =E2=80=98man-macro-tokenize=E2=80=99 etc.). Also: (and (string-prefix? "." line) (man-macro-tokenize line)) Ludo=E2=80=99.
guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 30 Mar 2025 15:50:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 30 11:50:37 2025 Received: from localhost ([127.0.0.1]:37821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tyuvl-0007O8-2o for submit <at> debbugs.gnu.org; Sun, 30 Mar 2025 11:50:37 -0400 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]:50646) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tyuvi-0007Ni-RB for 77387 <at> debbugs.gnu.org; Sun, 30 Mar 2025 11:50:35 -0400 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-ac339f53df9so674377066b.1 for <77387 <at> debbugs.gnu.org>; Sun, 30 Mar 2025 08:50:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743349828; x=1743954628; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+v61YczsJiy0hyAaMtUpc1cPgjb+r21CvSHSPhJsarw=; b=cAAVIsqmUtQs8iNK9R3tgx3BagcAB9twET1rXhrYXK+brlPzWCTn2LQMoIu2ulI/0M vOa0mhynTONTcUImZ6YQeettcdx5c2iYeme+a3QCiOYDTyKE5MQbimd/x2mcwSOE03Az R2Yk/V11TpxNMK7m8Y4tfs3Z1zKOUBszUqfomEGHkDg2qd5GlP+oA9hSMPY/hlnbAdJx 0K381TS/Kr5csLauq5a8Qibtls62OSKg0vDh+mQRZ0cL56weZxN/f2vA0+cNfMowLOmt dsaMAdnCdHHPr4zcq4gOXWv8zhbZbNcYLE0PGRTaepVeKiKOSYbtlj5ZbIv64yFzSIEV ik9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743349828; x=1743954628; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+v61YczsJiy0hyAaMtUpc1cPgjb+r21CvSHSPhJsarw=; b=j9YCuz8AliNHO7vD0f11iKlbYjrw41C4wkRSjq0BtLupzL4MEOE13lYO9g43t0yLUI QRAWdu+hKHqxEzcwSMDvHKvBi8HAe7rDxxAsz0YgxXA+jIG1Suq+l4iR39zmOahY7nkn +AjD33OVVT8+PeYAqmx8HN5AXdRVaDmg4Mjb62vtc2alyMLf5BbeF3sKQwosSN5+SbOU a+i6GfHSoAu62pVPuBtGK/v1FTYVS01I8weTB3TyqzJDcMTN+U0tWTyD1YWMtTII5BKn KOrIFLo4BMX2dzTtZFpQEhsxE5v9xBepd6uBGZY144412oBwvtOBb+H94YD71P2EKA7S B2dA== X-Gm-Message-State: AOJu0Yxmp1EmxcOSHYjv2aL+STOE/5HvTX/Y+1fPeLJQouLI76ywg9rz 0WexUyVRhwGYwCp5vkdqaNVC8DFTlO1CVt7KjseIwCjAXzgO1agbcZlucH0U6xmL5aY8d+j2/Jc aBEw= X-Gm-Gg: ASbGncs7qcMIuHYDSkWgkm+DEZuaL+VpNTZgtmHbF2thQRNO05/tMcV/OhHxuhJVrxS haIwrvvUJQA6phsPOdvdaM9l87qcPdOdaaXQ5mHFJ3i3W811hXEdjX/0Oq/6lEb2UQKR8kOfpsh YWqgXI5LuQdNCbzRtNFwJYJej0Sd1oh3u/86kLRWhvyGWheWJWKKfn2rvVTYg8wXCUUFDriojLy QbTQ0fSOPqEQlU1f71KIgC+MYoBDFZkDuhcH+9jAPzFd73VK6d+wYXZjxJFAlqF2QWXtnS9uw9x XxjR9vVAeFDV5/M7xGTCZJQH5WpkaqexqWyGeqMqvg== X-Google-Smtp-Source: AGHT+IEwY8isAsHwZNFvlpcPk+BjZlptC5xsEBDAlvvrRV+sMl9YBAWnRXVLKLXwavH7VXYo793qGA== X-Received: by 2002:a17:907:d14:b0:ac3:9587:f2ac with SMTP id a640c23a62f3a-ac738a8db2bmr559568866b.33.1743349827462; Sun, 30 Mar 2025 08:50:27 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71922ba02sm500642166b.10.2025.03.30.08.50.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Mar 2025 08:50:27 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH 2/2] man-db: Support mdoc-formatted man pages. Date: Sun, 30 Mar 2025 16:32:55 +0200 Message-ID: <43b006e62f2034b3acdd611e72029c9664922618.1743349817.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 In-Reply-To: <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743349817.git.sarg@HIDDEN> References: <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743349817.git.sarg@HIDDEN> MIME-Version: 1.0 X-Debbugs-Cc: Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-page->entry): Extract man name and section from .Dt macro. Change-Id: I02dc99d73dceecdb077315805025efad9a650e91 --- guix/man-db.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index 44c01ac298..44668a3ebf 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -224,7 +224,7 @@ (define* (man-page->entry file #:optional (resolve identity)) (mandb-entry file name (or section 0) (or synopsis "") kind) (match (if (string-prefix? "." line) (man-macro-tokenize line) #f) - ((".TH" name (= string->number section) _ ...) + (((or ".TH" ".Dt") name (= string->number section) _ ...) (loop name section synopsis kind)) ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) -- 2.49.0
guix@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at 77387) by debbugs.gnu.org; 30 Mar 2025 15:50:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 30 11:50:36 2025 Received: from localhost ([127.0.0.1]:37819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tyuvk-0007O1-E8 for submit <at> debbugs.gnu.org; Sun, 30 Mar 2025 11:50:36 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]:56421) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tyuvh-0007Ng-BW for 77387 <at> debbugs.gnu.org; Sun, 30 Mar 2025 11:50:34 -0400 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ac2bdea5a38so612505366b.0 for <77387 <at> debbugs.gnu.org>; Sun, 30 Mar 2025 08:50:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743349826; x=1743954626; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=t96MmNdEdMDhyCwll8S1Y4AAwglQBlqeJl7Mq5jnfOE=; b=sIBKmVhJzVJHLVkS4hLla2lnst4nwt54e6oD6H54s70IexaMu3xomoDtFsoJ5ocFT8 xf/dFwyhNMbq2P2GEoQWdYehP27ZoPgacIBEgAvPTlsiQiw2t3RctXmQBnmlvXBC4Kc5 YorHYHR1+7mP6CpHu8tlDdBcifOw0BsoFLK116PF8Nbg5TecmUogg3JvHb9C+GN3ag/m /VFyoZDRxZPaInlOtEORaEoG5sMXjNdGV1GjF16V1t1CP9YOC+ZNF7GkxiGVEXjDQD8k L+0XGcHoSCdloZxUGUo3weohoSOwB3d55M+1l2vlDLbrg5upSokKgoMOr6fjmyxghvL0 AorA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743349826; x=1743954626; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t96MmNdEdMDhyCwll8S1Y4AAwglQBlqeJl7Mq5jnfOE=; b=k7jmT/6AM3f/uBx92JwaEGNA/fW1RaiAEkVUJc5ND5pJnuuXkUEThEQPBdi47r61tt vDhIxddJsGut7cv9umLL1vx9m8rGJ/GghmvD/Kfl01M/Nry2lQ50Orj1moeEqFvu281y t5bVXy1cFFGyWyk2h86ATlbGhihf5YpdHLw97WQJmVJhH6utLta0jbuBGUz9KPPUaCE5 JT692A+Ve/teA6pg68pfYDY7yU3wJFCCyr/0pdEA7erYKv2MNdHY7IBGwLBYspi55ixb u4qjGfattc9hCw5EfIknvisSLf/KTyzu8yGtXC98ykaLqZB0eFeCSG3BmXZGKz+ORJM8 16Vg== X-Gm-Message-State: AOJu0YyqZru8yuQAY5IrcaAyoOwNXvhVF+xjnJ5dL6K1bzInb6UoDImr xcPHOaA2spw+iQtcxtbIsSE8pxwGH4ARO1/CLxnn59JypfvNMu0LdwwP5XiJDsm3muKK1EVKV7W pwB0= X-Gm-Gg: ASbGnctaoOlN4yetAkIL6NpfbVfpVDUksEZp/oBkTYMdRNCJQFEbRvZfLvnuDOVzrws zq5fZzjeXpp6JlmExiiGY22eXLvzPD6C3fpWhgOty+y7hAwXiJMP/9h52azuY9aQbh4kK+cWosp xE3CVZsG2uKex7URCsZOUPPopPmUKKRr8oDqmxKLvHNnl6W3ITeq3e1F087zApMGWR13Mn72F1s cBI5/yHVwssPMYGZeWFA8dbOaXpVarjo1TvV3MJa187vBQYrGREntEt9l8iA8CR0U9CgWE0kLzm 675eX//TGrz2L/5qiU9abc7cPU+zIh9bdVbI7bMlFQ== X-Google-Smtp-Source: AGHT+IHvNbYf7df6BsEix2t5VBrZtoNQSXlrk0ifDr2L6MfeUhdYaosxNMsV/iYXTIcWFlf/9KMaZA== X-Received: by 2002:a17:907:948b:b0:abf:6db5:c9a9 with SMTP id a640c23a62f3a-ac738bbe871mr479144566b.39.1743349825836; Sun, 30 Mar 2025 08:50:25 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5edc16d4f4bsm4419215a12.30.2025.03.30.08.50.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Mar 2025 08:50:25 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: 77387 <at> debbugs.gnu.org Subject: [PATCH 1/2] man-db: Parse man macro arguments better. Date: Sun, 30 Mar 2025 16:32:54 +0200 Message-ID: <7068d5eb173f3d0c7cb69ae9592cb61b2dd84281.1743343624.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 In-Reply-To: <cover.1743343624.git.sarg@HIDDEN> References: <cover.1743343624.git.sarg@HIDDEN> MIME-Version: 1.0 X-Debbugs-Cc: Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77387 Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) * guix/man-db.scm (man-macro-tokenize): New procedure to parse man macros. (man-page->entry): Parse macro line using man-macro-tokenize. Change-Id: Iea0ffbc65290757df746138e0a6174646b5a3eb8 --- guix/man-db.scm | 52 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/guix/man-db.scm b/guix/man-db.scm index bba90ed473..44c01ac298 100644 --- a/guix/man-db.scm +++ b/guix/man-db.scm @@ -161,16 +161,50 @@ (define (read-synopsis port) (line (loop (cons line lines)))))) +(define (man-macro-tokenize input) + (let loop ((pos 0) + (tokens '()) + (current '()) + (in-string? #f)) + (if (>= pos (string-length input)) + ;; End of input + (unless in-string? + (reverse (if (null? current) + tokens + (cons (list->string (reverse current)) tokens)))) + (let ((c (string-ref input pos))) + (cond + ;; Inside a string + (in-string? + (if (char=? c #\") + (if (and (< (+ pos 1) (string-length input)) + (char=? (string-ref input (+ pos 1)) #\")) + ;; Double quote inside string + (loop (+ pos 2) tokens (cons #\" current) #t) + ;; End of string + (loop (+ pos 1) (cons (list->string (reverse current)) tokens) '() #f)) + ;; Regular character in string + (loop (+ pos 1) tokens (cons c current) #t))) + + ;; Whitespace outside string + ((char-whitespace? c) + (if (null? current) + (loop (+ pos 1) tokens '() #f) + (loop (+ pos 1) (cons (list->string (reverse current)) tokens) '() #f))) + + ;; Start of string + ((char=? c #\") + (if (null? current) + (loop (+ pos 1) tokens '() #t) + (loop pos (cons (list->string (reverse current)) tokens) '() #f))) + + ;; Symbol character + (else + (loop (+ pos 1) tokens (cons c current) #f))))))) + (define* (man-page->entry file #:optional (resolve identity)) "Parse FILE, a gzip or zstd compressed man page, and return a <mandb-entry> for it." - (define (string->number* str) - (if (and (string-prefix? "\"" str) - (> (string-length str) 1) - (string-suffix? "\"" str)) - (string->number (string-drop (string-drop-right str 1) 1)) - (string->number str))) - (define call-with-input-port* (cond ((gzip-compressed? file) call-with-gzip-input-port) @@ -189,8 +223,8 @@ (define* (man-page->entry file #:optional (resolve identity)) (if (eof-object? line) (mandb-entry file name (or section 0) (or synopsis "") kind) - (match (string-tokenize line) - ((".TH" name (= string->number* section) _ ...) + (match (if (string-prefix? "." line) (man-macro-tokenize line) #f) + ((".TH" name (= string->number section) _ ...) (loop name section synopsis kind)) ((".SH" (or "NAME" "\"NAME\"")) (loop name section (read-synopsis port) kind)) -- 2.49.0
guix@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.Received: (at submit) by debbugs.gnu.org; 30 Mar 2025 14:26:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 30 10:26:31 2025 Received: from localhost ([127.0.0.1]:37659 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tytcM-0003Np-Mb for submit <at> debbugs.gnu.org; Sun, 30 Mar 2025 10:26:31 -0400 Received: from lists.gnu.org ([2001:470:142::17]:55086) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <sarg@HIDDEN>) id 1tytcJ-0003ND-Le for submit <at> debbugs.gnu.org; Sun, 30 Mar 2025 10:26:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <sarg@HIDDEN>) id 1tytbq-0005aH-D1 for guix-patches@HIDDEN; Sun, 30 Mar 2025 10:25:58 -0400 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <sarg@HIDDEN>) id 1tytbo-0006nb-DE for guix-patches@HIDDEN; Sun, 30 Mar 2025 10:25:58 -0400 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-5e5e63162a0so2051086a12.3 for <guix-patches@HIDDEN>; Sun, 30 Mar 2025 07:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sarg.org.ru; s=google; t=1743344751; x=1743949551; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=lqTqnWUoFSHwpuGES5pQSahBA12+x1BLK5szO+pAQwM=; b=eA33w2oyRj3QC/RrZukHahFegWK1ANNq13DQk6SkTP9K/9Mp6dpIt/DbyxbmjluYpq dbeG6XR1TNcY0MgWyzPpnQloZJ+F1Ow9SVKTdbngxP2KnYgFyYaeBIuNfC5MxyLEBDiv /4Pwbo9l6J0TQ5449TMka5kVJx3tK6dDeDi+A7OcxxcdyinoOJ9pmhF+42bn/SEKz/Aa 1xRSLiC531bWJ99GnyGSHN0XH2Z0dS2vcv3mtqvjsmGm6n0csgY0AQdo1gkF+2dwSr3d LQRWzsPu3L+/K76B6wzsT8A5VjSAtQEGB0C4FdnZ3dE5oUq/4cGDPLpKPIhInzsw5AaU NWfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743344751; x=1743949551; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lqTqnWUoFSHwpuGES5pQSahBA12+x1BLK5szO+pAQwM=; b=HSP9dX3yXHKzse0MkVlzjwkJ6GvW+K06EsEE22l3ZKeUek02XXBXVnqHXe+szhFsHo oTZFQYiMl5WYKGKli3wm9h7w/oUJKXTxSKZ1yE7jVGUjO2VgOIOY6sLj6s9xGBdBJ1qy UEVzf2d3Ts/qaXjG16hGdlRy1CbOAoMDSx1umwpz2vpsY3G4sHqLQKA7F6BqXVcZQx8T ZZ9eREx/9auhpAGJJOjXzrrnC+bPw8TwaeH21c+tqkMu+W9wg+iCXYYVHEGY13eCmYXv 9faBMo0zObGk8cPG0e7j6qtPuQK2/F7jvv7FO0WYrck52PAZ+YfhzlrhmYM9G8Rju0Iy kNkA== X-Gm-Message-State: AOJu0Yw+kTk71gwYuHLO1ZcOpk1+GkvyJOHzT5Lz7wTNqbnTyY4qo0tI 3jhnCvOB+sco90mlwRz4TauLV1j7u6nip9K4cKGau8x+YynnxLk3U+NaKxuGuFDHwRzD81F1yZJ 6rX4= X-Gm-Gg: ASbGnctNMEGys/2vM4bhS1YGeKN7s73g3O0uDdYpN2cZDL1CP/l7yY1RtSdocunBqxs /RBCb2GI/fkArI3xy40UMhRSqJH+qB9lCE0RjEsV/sTndi2BPi1EoN78SvOeoF9+Of7et3Rdfpe m9zV21da/9zmPmapAvD0biwcohh1hcM/ywcw2zipYqApdMEYRfkVlSURfHDfBrj2Fvf30NeloZ+ UcjPAD+wW6kITw1OW2QdhJ7z15K9s3yn2xfVF8ZexLFIubnkEssxuBmawWZVJx+6h7NcsEAhIMy 2apfGRBVy60PCBGo9FQr8wsMWGMvdRakPhOwJEfimQ== X-Google-Smtp-Source: AGHT+IHtj9PU0I8V2K2+oBV1G/hM9eO77M5kNvH+svq9TnE71sHR/QqJeJ/Oja+Jwb5fx4Gg2Gda1A== X-Received: by 2002:a05:6402:51c6:b0:5e4:cd5c:50f6 with SMTP id 4fb4d7f45d1cf-5edfd157900mr4971295a12.18.1743344751412; Sun, 30 Mar 2025 07:25:51 -0700 (PDT) Received: from localhost ([2a02:2454:a095:5600:a64e:31ff:fe38:fd6c]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5edc16d4752sm4349139a12.27.2025.03.30.07.25.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Mar 2025 07:25:50 -0700 (PDT) From: Sergey Trofimov <sarg@HIDDEN> To: guix-patches@HIDDEN Subject: [PATCH 0/2] man-db: Better parsing of man macros. Date: Sun, 30 Mar 2025 16:25:46 +0200 Message-ID: <cover.1743343624.git.sarg@HIDDEN> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Debbugs-Cc: Christopher Baines <guix@HIDDEN>, Josselin Poiret <dev@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Mathieu Othacehe <othacehe@HIDDEN>, Simon Tournier <zimon.toutoune@HIDDEN>, Tobias Geerinckx-Rice <me@HIDDEN> Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::531; envelope-from=sarg@HIDDEN; helo=mail-ed1-x531.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: Sergey Trofimov <sarg@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Hey guix, I've noticed that quite a lot man pages are reported to belong to a wrong section by `man -k`: --8<---------------cut here---------------start------------->8--- $ man -k "" | grep "(0)" ... ssh-pkcs11-helper (0) - (unknown subject) ssh-sk-helper (0) - (unknown subject) ssh_config (0) - (unknown subject) sshd (0) - (unknown subject) sshd_config (0) - (unknown subject) sudo (0) - (unknown subject) sudo.conf (0) - (unknown subject) tc-cgroup (0) - control group based traffic control filter tc-connmark (0) - (unknown subject) ... --8<---------------cut here---------------end--------------->8--- A side-effect of it is that `M-x man` doesn't list such pages in auto-completion. I've attempted to fix that, see the following patch. With the patch `man -k` and `M-x man` work properly: --8<---------------cut here---------------start------------->8--- $ man -k sudo cvtsudoers (1) - (unknown subject) sudo (8) - (unknown subject) sudo.conf (5) - (unknown subject) sudo_logsrv.proto (5) - (unknown subject) sudo_logsrvd (8) - (unknown subject) ... --8<---------------cut here---------------end--------------->8--- Note, that synopsis extraction also needs improvement, however it turns out to be more complicated as proper formatting requires cleaning up / expanding macros. Sergey Trofimov (2): man-db: Parse man macro arguments better. man-db: Support mdoc-formatted man pages. guix/man-db.scm | 52 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) base-commit: 2ed28b5c24c599b2f9bc60dfc93151cf489ca477 -- 2.49.0
Sergey Trofimov <sarg@HIDDEN>
:guix@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
.
Full text available.guix@HIDDEN, dev@HIDDEN, ludo@HIDDEN, othacehe@HIDDEN, zimon.toutoune@HIDDEN, me@HIDDEN, guix-patches@HIDDEN
:bug#77387
; Package guix-patches
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.