GNU bug report logs -
#77387
[PATCH 0/2] man-db: Better parsing of man macros.
Previous Next
Reported by: Sergey Trofimov <sarg <at> sarg.org.ru>
Date: Sun, 30 Mar 2025 14:27:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #14 received at 77387 <at> debbugs.gnu.org (full text, mbox):
Hi!
Glad you fixed this problem. :-)
Sergey Trofimov <sarg <at> sarg.org.ru> 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 (>= 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 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) _ ...)
Please add a comment above ‘match’ explaining what’s happening (why we
call ‘man-macro-tokenize’ etc.).
Also: (and (string-prefix? "." line) (man-macro-tokenize line))
Ludo’.
This bug report was last modified 39 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.