| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2023-03-30 | man*/, man-pages.7: VERSIONS, STANDARDS, HISTORY: Reorganize sections | Alejandro Colomar | 558 | -2446/+3509 | |
| - Add a new HISTORY section that covers the history of an API, both regarding implementations and regarding old standards. This was previously covered in VERSIONS, and in some cases in STANDARDS. - Repurpose VERSIONS to cover differing implementations in _current_ systems. - STANDARDS is reduced to only cover current versions of standards. That basically means only C11 (C99 has been superseeded by C11; C17 is just a bugfix of C11, so not really a new version), and POSIX.1-2008 (*-2001 was superseeded by *-2008; *-2017 was just a bugfix for *-2008). The section also mentions for example 'Linux', 'GNU' or 'BSD' when a non-standard API is Linux- or GNU-only or if it's (de-facto) standard in the BSDs. - In some cases content that should go into one of these sections was in NOTES. Move it from there to where it corresponds. - In the SYNOPSIS, I added [[deprecated]] in some functions that I found are deprecated by the relevant standards. - A few other related changes... Cc: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-21 | man*/: Replace links to <sources.redhat.com> | Yedidyah Bar David | 26 | -36/+36 | |
| <sources.redhat.com/bugzilla> seems broken right now. Apparently it was replaced, quite a long time ago --based on what I can find on the net-- with <www.sourceware.org/bugzilla>, which does work. This patch was created with: $ find man* -type f \ | xargs grep -l 'sources.redhat.com/bugzilla' \ | xargs sed -i 's;http://sources.redhat.com/bugzilla/;https://www.sourceware.org/bugzilla/;g' Verified with: $ git diff | sed -n 's;^+.*\(https://www.sourceware.org/bugzilla/show_bug.cgi?id=[0-9]*\).*;\1;p' > URLs $ mkdir test $ cd test $ wget -i ../URLs Signed-off-by: Yedidyah Bar David <didi@redhat.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-18 | arc4random.3: Simplify STANDARDS; add HISTORY | Alejandro Colomar | 1 | -1/+8 | |
| Data copied from libbsd's page. Reported-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-18 | man*/: tfix | Tom Schwindl | 1 | -1/+1 | |
| Signed-off-by: Tom Schwindl <schwindl@posteo.de> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-17 | man2/, man3/, man-pages.7: Move VERSIONS next to STANDARDS | Alejandro Colomar | 160 | -607/+607 | |
| VERSIONS and STANDARDS are closely related (and often the distinction is not so clear). Now that we're going to add another section, HISTORY, that is related to both, it makes sense to have the three together. As a curiosity, the list in man-pages(7) that detailed what each section should contain had them by accident(?) in the order that we're moving to, instead of the order that was used elsewhere. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-15 | arc4random.3, man-pages.7: ffix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Jakub Wilk <jwilk@jwilk.net> Cc: Tom Schwindl <schwindl@posteo.de> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-13 | Revert "Many pages: Remove references to C89" | Alejandro Colomar | 85 | -86/+131 | |
| This reverts commit 72b349dd8c209d7375d4d4f76e2315943d654ee9. This removal caused inconveniences to some programmers. We've agreed to keep the information about C89, since there's an easy way to keep it correct by checking against a plain-text copy of the standard itself: $ stdc89() { grep "[[:alpha:]] \**\b$1([[:alnum:]*,. ]*);" /path/to/c89-draft.txt; } $ stdc89 printf int printf(const char *format, ...); int printf(const char *format, ...); We will also do a split of the information in STANDARDS, since now it's a mix of what a proper STANDARDS section would be plus a HISTORY section commonly-found in other manual pages. C89 will go into HISTORY. Link: <https://lore.kernel.org/linux-man/b73a9636-1a17-36f3-3718-d9ca3b9293ed@gmail.com/T/> Link: <https://port70.net/~nsz/c/c89/c89-draft.txt> Reported-by: Oskari Pirhonen <xxc3ncoredxx@gmail.com> Reported-by: Matt Jolly <Matt.Jolly@footclan.ninja> Cc: Brian Inglis <Brian.Inglis@Shaw.ca> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-12 | man*/: Fix ISO -> ISO/IEC where appropriate | Alejandro Colomar | 1 | -1/+1 | |
| Link: <https://www.iso.org> Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-10 | posix_memalign.3: SYNOPSIS: Mark functions as [[deprecated]] | Alejandro Colomar | 1 | -3/+3 | |
| These functions are declared as obsolete in the same page. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-08 | man3/: srcfix (\" t comments) | Alejandro Colomar | 2 | -1/+1 | |
| Add missing or remove redundant \" t comments (for tbl(1)). Reported-by: mandoc(1) (make lint-man-mandoc) Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-03-08 | man*/: ffix (semantic newlines; commas) | Alejandro Colomar | 4 | -8/+14 | |
| Reported-by: mandoc(1) (make lint-man-mandoc) Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-25 | malloc.3: EXAMPLES: Add example program with mallocarray() and macros | Alejandro Colomar | 1 | -0/+32 | |
| mallocarray() is safer than malloc(3), since it checks for overflow; it should be preferred almost always (with the exception of non-arrays maybe). The macros like MALLOCARRAY() --and MALLOC()-- that perform automatic casting and sizeof() are also safer than calling the functions directly: - The type of the allocated object (not the pointer) is specified as an argument, which improves readability: - It is directly obvious what is the type of the object just by reading the macro call. - It allows grepping for all allocations of a given type. This is admittedly similar to using sizeof() to get the size of the object, but we'll see why this is better. - In the case of reallocation macros, an extra check is performed to make sure that the previous pointer was compatible with the allocated type, which can avoid some mistakes. - The cast is performed automatically, with a pointer type derived from the type of the object. This is the best point of this macro, since it does an automatic cast, where there's no chance of typos. Usually, programmers have to decide whether to cast or not the result of malloc(3). Casts usually hide warnings, so are to be avoided. However, these functions already return a void *, so a cast doesn't really add much danger. Moreover, a cast can even add warnings in this exceptional case, if the type of the cast is different than the type of the assigned pointer. Performing a manual cast is still not perfect, since there are chances that a mistake will be done, and even ignoring accidents, they clutter code, hurting readability. And now we have a cast that is synced with sizeof. - Whenever the type of the object changes, since we perform an explicit cast to the old type, there will be a warning due to type mismatch in the assignment, so we'll be able to see all lines that are affected by such a change. This is especially important, since changing the type of a variable and missing to update an allocation call far away from the declaration is easy, and the consequences can be quite bad Apart from those benefits, there are other minor style benefits: - Consistency in getting the size of the object from sizeof(type), instead of a mix of sizeof(type) sometimes and sizeof(*p) other times. - More readable code: no casts, and no sizeof(), so also shorter lines that we don't need to cut. - Consistency in using array allocation calls for allocations of arrays of objects, even when the object size is 1. Link: <https://github.com/shadow-maint/shadow/pull/649> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: "Valentin V. Bartenev" <vbartenev@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-15 | sscanf.3: RETURN VALUE: These functions don't use a stream | Alejandro Colomar | 1 | -7/+0 | |
| This text I forgot to remove it when the page was split from scanf(3). Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-15 | memcmp.3: wfix | Tom Schwindl | 1 | -1/+1 | |
| Link: <https://lore.kernel.org/linux-man/27264e6b-bc50-f772-f8d5-1abc4ebcbe62@gmail.com/T/> Signed-off-by: Tom Schwindl <schwindl@posteo.de> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-12 | _Generic.3: Remove example code | Alejandro Colomar | 1 | -89/+0 | |
| Casting sockaddr structures is just a symptom that these APIs were seriously misdesigned. In GNU C, there's already a better way to handle this (see [[gnu::transparent_union]]). ISO C should be fixed. Let's not promote this kind of code. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-12 | register_printf_specifier.3, register_printf_modifier.3, ↵ | Alex Colomar | 3 | -0/+3 | |
| register_printf_type.3: Add links to printf.h(3head) Cc: Walter Harms <wharms@bfs.de> Cc: <Radisson97@gmx.de> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: <libc-alpha@sourceware.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2023-02-10 | man*/: srcfix (^ -> \[ha]) | G. Branden Robinson | 4 | -8/+8 | |
| Use correct *roff special character for hat/caret/circumflex accent. Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[bu] instead of \(bu | Alejandro Colomar | 49 | -167/+167 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Various pages: Use \[rq] instead of \(rq | Alejandro Colomar | 1 | -3/+3 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Various pages: Use \[lq] instead of \(lq | Alejandro Colomar | 1 | -3/+3 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[ha] instead of \(ha | Alejandro Colomar | 10 | -17/+17 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[ti] instead of \(ti | Alejandro Colomar | 4 | -8/+8 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[em] instead of \(em | Alejandro Colomar | 18 | -21/+21 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[en] instead of \(en | Alejandro Colomar | 6 | -32/+32 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use \[aq] instead of \(aq | Alejandro Colomar | 112 | -325/+325 | |
| This improves readability in the source code, since it delimits where the escape sequence ends. Cc: наб <nabijaczleweli@nabijaczleweli.xyz> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Brian Inglis <Brian.Inglis@Shaw.ca> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | Many pages: Use lowercase for 'glibc' | Alejandro Colomar | 159 | -246/+246 | |
| It's a proper noun, whose original letter case should be respected. glibc's own documentation uses always lowercase; let's do the same here. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | sscanf.3: BUGS: Document the UB in some conversion specifiers | Alejandro Colomar | 1 | -0/+19 | |
| This is a bug in the standards, but implementation should not follow the standard in this case. Link: <https://lore.kernel.org/linux-man/20221208123454.13132-1-abbotti@mev.co.uk/T/#u> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Cc: Joseph Myers <joseph@codesourcery.com> Cc: Eric Biggers <ebiggers@kernel.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-02-05 | regex.3: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Mario Blaettermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | fopencookie.3: EXAMPLES: Fix memory leak | Alejandro Colomar | 1 | -0/+2 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | getdate.3: EXAMPLES: Fix printf() conversion specifier | Alejandro Colomar | 1 | -1/+1 | |
| Fixes: b42296e4 "Various pages: EXAMPLES: Use unsigned types for loop iterators" Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | pthread_setschedparam.3: EXAMPLES: Don't assign unused value | Alejandro Colomar | 1 | -1/+1 | |
| We're not reading the value after it's set. And I just checked that that function can't fail for reasonable input. Reported-by: cppcheck(1) Reported-by: `make lint-c-cppcheck` Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | tsearch.3: EXAMPLES: Don't else after noreturn | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | stpncpy.3: EXAMPLES: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | rpmatch.3: EXAMPLES: Use _DEFAULT_SOURCE instead of _SVID_SOURCE | Alejandro Colomar | 1 | -1/+1 | |
| _SVID_SOURCE is deprecated. Show how a program should be written today. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | static_assert.3: srcfix | Alejandro Colomar | 1 | -0/+1 | |
| Add missing ." SRC END comment. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-26 | Various pages: EXAMPLES: Fix -Wdeclaration-after-statement errors | Alejandro Colomar | 2 | -4/+5 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-22 | string.3: wfix | Alejandro Colomar | 1 | -2/+2 | |
| Use consistent syntax for 'dest' vs 'dst' in string(3). Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blaettermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-19 | getnameinfo.3: SYNOPSIS: Add missing _Nullable qualifiers | Alejandro Colomar | 1 | -2/+4 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-19 | roundup.3: New page documenting roundup(3) | Alejandro Colomar | 1 | -0/+56 | |
| Cc: Paul Eggert <eggert@cs.ucla.edu> Cc: Wilco Dijkstra <Wilco.Dijkstra@arm.com> Cc: Adhemerval Zanella <adhemerval.zanella@linaro.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-07 | intro.3: ffix | G. Branden Robinson | 1 | -1/+3 | |
| Set "feature test macros" in italics when introducing it as a technical term. Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-07 | intro.3: srcfix | G. Branden Robinson | 1 | -15/+27 | |
| * Break input lines at phrase boundaries more often. * Break input lines after commas. * Set multi-word parentheticals on their own input lines. Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-07 | Many pages: TH: Use lowercase | Alejandro Colomar | 29 | -29/+29 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-07 | bcmp.3, memcmp.3, strcasecmp.3, strcmp.3, strcoll.3, strxfrm.3: Deprecate ↵ | Alejandro Colomar | 6 | -59/+6 | |
| bcmp(3) It is identical to memcmp(3). Use that. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-05 | arc4random.3: Raise the severity of the CAVEATS to BUGS | Alejandro Colomar | 1 | -2/+2 | |
| This is a misdesign that the original OpenBSD developers fail to acknowledge. Link: <https://inbox.sourceware.org/libc-alpha/068b01c4-d0c4-0849-eabb-09c020a1480b@gmail.com/T/> Cc: "Jason A. Donenfeld" <Jason@zx2c4.com> Cc: Arsen Arsenović <arsen@aarsen.me> Cc: Sam James <sam@gentoo.org> Cc: "Serge E. Hallyn" <serge@hallyn.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-05 | memchr.3: Deprecate rawmemchr(3) | Alejandro Colomar | 1 | -16/+12 | |
| It is not optimized, and it calls either strlen(3) or memchr(3), so the caller can do it directly, and it will be better. Suggested-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-05 | index.3, memchr.3, strchr.3, string.3, strpbrk.3, strsep.3, strspn.3, ↵ | Alejandro Colomar | 9 | -73/+16 | |
| strstr.3, strtok.3: Deprecate index(3) and rindex(3) They are identical to strchr(3) and strrchr(3). Use those. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-02 | intro.3: tfix | G. Branden Robinson | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-02 | arc4random.3: Be consistent in uses of pseudorandom | Alejandro Colomar | 1 | -5/+5 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-01 | arc4random_buf.3, arc4random_uniform.3: Add links to arc4random(3) | Alejandro Colomar | 2 | -0/+2 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2023-01-01 | arc4random.3: New page documenting the arc4random(3) family of functions | Alejandro Colomar | 1 | -0/+104 | |
| arc4random(3) arc4random_uniform(3) arc4random_buf(3) Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-31 | powerof2.3: New page documenting powerof2(3) | Alejandro Colomar | 1 | -0/+46 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-31 | bstring.3: bcopy(3)'s replacement is memmove(3), not memcpy(3) | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Aaron Peter Bachmann <aaron_ng@inode.at> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-31 | bstring.3: bzero(3) is not deprecated in my book | Alejandro Colomar | 1 | -6/+4 | |
| It is technically superior to memset(3) in every way. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-30 | rand.3: SYNOPSIS: Mark rand_r() as deprecated | Alejandro Colomar | 1 | -1/+2 | |
| POSIX.1-2008 says so, and it's not a very useful function either. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-29 | memchr.3: The function always returns a pointer to the match | Alejandro Colomar | 1 | -2/+1 | |
| Otherwise, it means we're deep into UB lands, and there be dragons. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-29 | rand.3: EXAMPLES: Show how to get a random seed | Alejandro Colomar | 1 | -0/+8 | |
| This is useful when testing many different cases, but repeatability is more important than quality of the random numbers. Cc: Jonny Grant <jg@jguk.org> Cc: Cristian Rodríguez <crrodriguez@opensuse.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-29 | Many pages: Remove references to C89 | Alejandro Colomar | 85 | -132/+87 | |
| C89 is obsolete, and programs should target newer standards. If someone needs information about is, the Standard itself is a better resource. Let's move forward, so readers get the intended notice that C89 is not a useful version of C. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-29 | scanf.3, sscanf.3, vsscanf.3: Split the page, one for strings and one for FILEs | Alejandro Colomar | 3 | -665/+756 | |
| From these functions, the ones that read from a FILE* are very difficult --if not impossible-- to use correctly. Let's split the page into two, so that we give the impression that sscanf(3) is the first class citizen, and the others are just historic artifacts that are kept for backwards-compatibility reasons. FILE* variants are now in a page which clearly tells the reader to look for other ways to read input. Link: <https://lore.kernel.org/linux-man/633629bd-753c-3097-9896-2491a0b0f1a2@gmail.com/T/> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-21 | strncat.3: EXAMPLES: Check the return of malloc(3) | Alejandro Colomar | 1 | -0/+3 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-21 | strcpy.3: EXAMPLES: Check the return of malloc(3) | Alejandro Colomar | 1 | -0/+5 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-20 | strncat.3: Rewrite to be consistent with string_copying.7 | Alejandro Colomar | 1 | -100/+57 | |
| Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-20 | stpncpy.3, strncpy.3: Document in a single page | Alejandro Colomar | 2 | -194/+102 | |
| Rewrite to be consistent with the new string_copying.7 page. Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-20 | stpcpy.3, strcpy.3, strcat.3: Document in a single page | Alejandro Colomar | 3 | -360/+152 | |
| Rewrite to be consistent with the new string_copying.7 page. Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-20 | stpecpy.3, stpecpyx.3, ustpcpy.3, ustr2stp.3, zustr2stp.3, zustr2ustp.3: Add ↵ | Alejandro Colomar | 6 | -0/+6 | |
| new links to string_copying(7) Cc: Martin Sebor <msebor@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Serge Hallyn <serge@hallyn.com> Cc: Iker Pedrosa <ipedrosa@redhat.com> Cc: Andrew Pinski <pinskia@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-15 | Many pages: Add '\" t' comment where necessary | Alejandro Colomar | 518 | -0/+518 | |
| Scripted change: $ grep -l -x '^[.]TS$' man*/* | sort -u | xargs sed -i -e "1i'\\\\\" t" Link: <https://lore.kernel.org/linux-man/07a7d4e7-79a6-b2c3-6892-1e39a0679f27@gmail.com/T/#mcf36c8a387fd5ff4f800dc220e3dbdd229b556bd> Reported-by: Jakub Wilk <jwilk@jwilk.net> Cc: Mike Frysinger <vapier@gentoo.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-12 | scanf.3: Do not mention the ERANGE error | Ian Abbott | 1 | -7/+0 | |
| The `scanf()` function does not intentionally set `errno` to `ERANGE`. That is just a side effect of the code that it uses to perform conversions. It also does not work as reliably as indicated in the 'man' page when the target integer type is narrower than `long`. Typically (at least in glibc) for target integer types narrower than `long`, the number has to exceed the range of `long` (for signed conversions) or `unsigned long` (for unsigned conversions) for `errno` to be set to `ERANGE`. Documenting `ERANGE` in the ERRORS section kind of implies that `scanf()` should return `EOF` when an integer overflow is encountered, which it doesn't (and doing so would violate the C standard). Just remove any mention of the `ERANGE` error to avoid confusion. Fixes: 646af540e467 ("Add an ERRORS section documenting at least some of the errors that may occur for scanf().") Link: <https://lore.kernel.org/linux-man/5af4f708-337f-fddf-9a2d-e0e4602d3a72@mev.co.uk/T/#m900a1b1741afefab008a69e6b76919cd94aa81ef> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-12 | scanf.3: Deprecate unsafe conversion specifiers | Alejandro Colomar | 1 | -0/+11 | |
| Use of numeric conversion specifiers can produce Undefined Behvaior under conditions that the program doesn't control; therefore, there's no way to use them safely. Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Zack Weinberg <zack@owlfolio.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-12 | intro.3: Document subsections of man3 | Alejandro Colomar | 1 | -0/+31 | |
| Cowritten-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-11 | shm_open.3: tfix | Alejandro Colomar | 1 | -2/+2 | |
| Reported-by: 1092615079 <1092615079@qq.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | stpncpy.3, strncpy.3: wfix | Alejandro Colomar | 2 | -4/+4 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | strncat.3: Overrunning the dest buffer is not that bad | Alejandro Colomar | 1 | -117/+28 | |
| With the right function call, that is, one that always copies the same amount of bytes, and is so simple that can be inlined, the behavior will be consistent enough to be warned by the compiler in most cases of overrun, and crash quite consistently in the remaining. Prefer simplicity over correctness, so suggest the simpler ustr2stp(). Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | string.3, strncat.3: Undeprecate strncat(3) | Alejandro Colomar | 2 | -36/+198 | |
| After some investigation, I found a case where this function is useful: Concatenating an unterminated string into a string. It's not an ideal API for that, but there's no other API that does it. The closest thing, and something that some projects use instead of strncat(3), is calling mempcpy(3) directly. However mempcpy(3) isn't ideal either (it's faster; just that). It even requires a multiline pattern to use correctly, which is a source of bugs. So, suggest using a custom alternative that needs to be defined by the programmer, which handles all the subtle details much better than any of the conventional functions: ustr2stpe(). Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | string.3, strncat.3: Fix typo in prototype of strncat(3) | Alejandro Colomar | 2 | -2/+2 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | string.3: strncpy(3), strncat(3): Obsolete, and fix | Alejandro Colomar | 1 | -28/+29 | |
| The prototype for strncat(3) was wrong. Fix it. Mark the functions as obsolete. Fix the descriptions, to remove misleading text. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-06 | strncat.3: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncat.3: BUGS: Truncation | Alejandro Colomar | 1 | -0/+7 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strcat.3, strncat.3: RIP strncat(3) | Alejandro Colomar | 2 | -72/+95 | |
| Never use this function. Really. Cc: <pkg-shadow-devel@alioth-lists.debian.net> Cc: <libc-alpha@sourceware.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strcat.3: SYNOPSIS: Fix the size of 'dest' | Alejandro Colomar | 1 | -3/+2 | |
| I had a mistake when adding VLA syntax to this prototype. From this fixed prototype, it's visible how broken the design for this function is. Next move is to kill this function. Cc: <libc-alpha@sourceware.org> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | stpncpy.3: Clarify what this function is for | Alejandro Colomar | 1 | -34/+48 | |
| Use concise wording to make the points more direct. This function is rarely used for its only valid purpose. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncpy.3: Rename CAVEATS to BUGS | Alejandro Colomar | 1 | -2/+2 | |
| Those are not caveats, but actual bugs. This function was misdesigned. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncpy.3: wfix | Alejandro Colomar | 1 | -1/+0 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncpy.3: NAME: Clarify what this function is | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncpy.3: SEE ALSO: Remove some references | Alejandro Colomar | 1 | -3/+0 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-05 | strncpy.3: Deprecate strncpy(3) in favor of stpncpy(3) | Alejandro Colomar | 1 | -6/+15 | |
| It is equivalent, but reports truncation. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | strncpy.3: Move description of valid use up | Alejandro Colomar | 1 | -8/+9 | |
| To make it more visible; and refer CAVEATS to still discourage its use. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | strncpy.3: CAVEATS: It can't detect truncation | Alejandro Colomar | 1 | -0/+7 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | strncpy.3: ffix | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | strncpy.3: Fix TH, and add myself to copyright | Alejandro Colomar | 1 | -2/+3 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | strcpy.3, strncpy.3: Split the page and document them separately | Alejandro Colomar | 2 | -118/+122 | |
| strncpy(3) is completely unrelated to strcpy(3). Rewrite its documentation to be more explicit about this. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | cpow.3: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | wcsspn.3: NAME: Fix summary-description | Alejandro Colomar | 1 | -2/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | towctrans.3: wfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | Many pages: wfix | Alejandro Colomar | 212 | -287/+287 | |
| Refer consistently to software versions. In most cases, it is done as <software> <version>. In the case of Linux and glibc, use the project name, instead of other terms such as 'kernel' or 'library'. I found the uses of inconsistent language with the following: $ find man* -type f \ | xargs grep -i '\(since\|before\|after\|until\|to\|from\|in\|between\|version\|with\) \(kernel\|version\|2\.\|3\.\|4\.\|5\.\)' \ | sort However, I might have missed some cases. Anyway, 99% consistency is pretty good consistency. We'll fix the remaining cases as we see them. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | mq_close.3: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | malloc.3: ffix | Alejandro Colomar | 1 | -1/+3 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | iswctype.3: wfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-04 | errno.3: wfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Mario Blättermann <mario.blaettermann@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-12-02 | _Static_assert.3, static_assert.3: Add documentation for static_assert() | Alejandro Colomar | 2 | -0/+119 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-28 | confstr.3: srcfix | Jakub Wilk | 1 | -1/+1 | |
| At least on Debian systems, there's no "confstr" in the info directory node, so the command "info confstr" either fails with: info: No menu item 'confstr' in node '(dir)Top' or shows you this very man page. Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-22 | sendfile.2, vfork.2, alloca.3, getcontext.3, tmpfs.5, ttytype.5, spufs.7: ffix | Alejandro Colomar | 2 | -3/+7 | |
| Break lines containing two man page references into a line for each. This is not only more consistent with our guidelines (man-pages(7)); it also helps prepare for the future adoption of the MR man(7) macro. Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-12 | _Generic.3: EXAMPLES: Add sockaddr_cast() macro | Alejandro Colomar | 1 | -1/+90 | |
| This macro is an example of how C++-style casts can be implemented in C. They are better than C's casts because they only allow certain conversions, while disallowing most. This adds considerable type safety. They also make code more greppable. A macro similar to const_cast() can also be implemented in a similar manner: /* This code is in the public domain. */ #define qual_cast(t, p) \ _Generic(typeof_unqual(&*(p)), \ typeof_unqual(t): \ _Generic(&*(p), \ const t: (t) (p), \ volatile t: (t) (p), \ const volatile t: (t) (p), \ default: (p)) \ default: \ (p) \ ) Note that typeof_unqual() is yet unsupported by GCC and Clang, and will be added to C23. Similar behavior can be achieved by combining GNU builtins. Cc: Andrew Clayton <andrew@digital-domain.net> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-11 | memmem.3: Add list of known systems where this is available | Andrew Clayton | 1 | -1/+4 | |
| While looking at which systems provide memmem(3) I have been able to discern the following: musl libc since v0.9.7 (2012) bionic since Android 9 (2018) FreeBSD since 6.0 (2005) OpenBSD since 5.4 (2013) NetBSD macOS Illumos For macOS and Illumos I checked the memmem(3) man page on those systems. For the rest there are links below to on-line man pages or commit logs. Where I could determine what version memmem(3) was introduced, I've noted that in the man page. Link: <http://git.musl-libc.org/cgit/musl/commit/src/string/memmem.c?id=c86f2974e2acd330be2d587173dd4dd56db82e22> Link: <https://android.googlesource.com/platform/bionic/+/android-9.0.0_r3/libc/bionic/memmem.cpp> Link: <https://www.freebsd.org/cgi/man.cgi?query=memmem&sektion=3&format=html> Link: <https://man.openbsd.org/memmem.3> Link: <https://anonhg.netbsd.org/src/diff/96a37d536271/common/lib/libc/string/memmem.c> Suggested-by: Alejandro Colomar <alx@kernel.org> Signed-off-by: Andrew Clayton <andrew@digital-domain.net> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-10 | Various pages: SYNOPSIS: Use VLA syntax in 'void *' function parameters | Alex Colomar | 28 | -65/+89 | |
| Use VLA syntax also for void *, even if it's a bit more weird. Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2611.htm> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Martin Uecker <uecker@tugraz.at> Cc: <gcc@gcc.gnu.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-11-10 | Various pages: SYNOPSIS: Use VLA syntax in function parameters | Alejandro Colomar | 72 | -147/+186 | |
| The WG14 charter for C23 added one principle to the ones in previous standards: [ 15. Application Programming Interfaces (APIs) should be self-documenting when possible. In particular, the order of parameters in function declarations should be arranged such that the size of an array appears before the array. The purpose is to allow Variable-Length Array (VLA) notation to be used. This not only makes the code's purpose clearer to human readers, but also makes static analysis easier. Any new APIs added to the Standard should take this into consideration. ] ISO C doesn't allow using VLA syntax when the parameter used for the size of the array is declared _after_ the parameter that is a VLa. That's a minor issue that could be easily changed in the language without backwards-compatibility issues, and in fact it seems to have been proposed, and not yet discarded, even if it's not going to change in C23. Since the manual pages SYNOPSIS are not bounded by strict C legal syntax, but we already use some "tricks" to try to convey the most information to the reader even if it might not be the most legal syntax, we can also make a small compromise in this case, using illegal syntax (at least not yet legalized) to add important information to the function prototypes. If we're lucky, compiler authors, and maybe even WG14 members, may be satisfied by the syntax used in these manual pages, and may decide to implement this feature to the language. It seems to me a sound syntax that isn't ambiguous, even if it deviates from the common pattern in C that declarations _always_ come before use. But it's a reasonable tradeoff. This change will make the contract between the programmer and the implementation clearer just by reading a prototype. For example, size_t strlcpy(char *restrict dst, const char *restrict src, size_t size); vs size_t strlcpy(char dst[restrict .size], const char *restrict src, size_t size); the second prototype above makes it clear that the 'dst' buffer will be safe from overflow, but the 'src' one clearly needs to be NUL-terminated, or it might cause UB, since nothing tells the function how long it is. Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2611.htm> Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Martin Uecker <uecker@tugraz.at> Cc: <gcc@gcc.gnu.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-11-10 | errno.3: srcfix | Alejandro Colomar | 1 | -3/+3 | |
| Reported-by: lint-man-groff - groff(1) Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-11-05 | Various pages: Replace noreturn by [[noreturn]] | Alejandro Colomar | 5 | -9/+9 | |
| ISO C23 will declare the noreturn macro and the _Noreturn function specifier as obsolescent features. They are replaced by the C++-compatible [[noreturn]] attribute. Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-31 | errno.3: tfix | Alejandro Colomar | 1 | -1/+1 | |
| Reported-by: Jun Ishiguro <algon.0320@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-30 | get_nprocs.3, get_nprocs_conf.3, program_invocation_name.3, sysvipc.7: Match ↵ | Alejandro Colomar | 3 | -97/+97 | |
| page title with file name and NAME section Manually tweak a few pages that weren't covered by the scripts used in the 2 previous commits. On 10/30/22 23:00, G. Branden Robinson wrote: > For those to whom this change is coming as an unpleasant surprise, the > forthcoming groff 1.23.0 features an option that will reverse this > change at rendering time. > > From groff_man(7): > > -rCT=1 Capitalize titles, setting the man page title (the first > argument to .TH) in full capitals in headers and footers. > This transformation is off by default because it discards > case distinction information. > > This register can also be set in a site-local "man.local" file to force > it on for all pages. On Debian-based systems, this file is in > /etc/groff. The following line will do the trick. > > .nr CT 1 > > The groff_man_style(7) man page offers further examples of such > rendering customization. > > /usr/local/share/groff/site-tmac/man.local > Put site‐local changes and customizations into this file. > > .\" Use narrower indentation on terminals and similar. > .if n .nr IN 4n > .\" Put only one space after the end of a sentence. > .ss 12 0 \" See groff(7). > .\" Keep pages narrow even on wide terminals. > .if n .if \n[LL]>78n .nr LL 78n > .\" Ensure hyperlinks are enabled for terminals. > .nr U 1 > > On multi‐user systems, it is more considerate to users whose > preferences may differ from the administrator’s to be less > aggressive with such settings, or to permit their override > with a user‐specific man.local file. This can be achieved by > placing one or both of following requests at the end of the > site‐local file. > .soquiet \V[XDG_CONFIG_HOME]/man.local > .soquiet \V[HOME]/.man.local > However, a security‐sandboxed man(1) program may lack > permission to open such files. Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-30 | Many pages: Use correct letter case in page titles (TH) | Alejandro Colomar | 534 | -534/+534 | |
| Scripted change: $ find man* -type f \ | xargs grep -L '\.so' \ | while read f; do P=$(basename $f); T=$(grep '\.TH ' $f | cut -f2,3 -d' ' | sed 's/ /./'); p=$(echo $P | tr '[:upper:]' '[:lower:]'); t=$(echo $T | tr '[:upper:]' '[:lower:]'); Tn=$(echo $T | sed 's/\.[^.]\+$//') Pn=$(echo $P | sed 's/\.[^.]\+$//') N=$(man_section $f NAME \ | sed -n '/NAME/,/ - /p' \ | sed 's/ - .*//' \ | grep -v '^NAME$' \ | tr ', ' '\n' \ | grep -i "^$Pn$" \ | head -n1) test $P = $T \ && test -n $N \ && continue; if test "x$p" != "x$t"; then echo 1 $P $T $N; elif test -z "$N"; then echo 2 $P $T $N; else sed -i "/\.TH /s/$Tn/$N/" $f; fi; done; On 10/30/22 23:00, G. Branden Robinson wrote: > For those to whom this change is coming as an unpleasant surprise, the > forthcoming groff 1.23.0 features an option that will reverse this > change at rendering time. > > From groff_man(7): > > -rCT=1 Capitalize titles, setting the man page title (the first > argument to .TH) in full capitals in headers and footers. > This transformation is off by default because it discards > case distinction information. > > This register can also be set in a site-local "man.local" file to force > it on for all pages. On Debian-based systems, this file is in > /etc/groff. The following line will do the trick. > > .nr CT 1 > > The groff_man_style(7) man page offers further examples of such > rendering customization. > > /usr/local/share/groff/site-tmac/man.local > Put site‐local changes and customizations into this file. > > .\" Use narrower indentation on terminals and similar. > .if n .nr IN 4n > .\" Put only one space after the end of a sentence. > .ss 12 0 \" See groff(7). > .\" Keep pages narrow even on wide terminals. > .if n .if \n[LL]>78n .nr LL 78n > .\" Ensure hyperlinks are enabled for terminals. > .nr U 1 > > On multi‐user systems, it is more considerate to users whose > preferences may differ from the administrator’s to be less > aggressive with such settings, or to permit their override > with a user‐specific man.local file. This can be achieved by > placing one or both of following requests at the end of the > site‐local file. > .soquiet \V[XDG_CONFIG_HOME]/man.local > .soquiet \V[HOME]/.man.local > However, a security‐sandboxed man(1) program may lack > permission to open such files. Cc: Ingo Schwarze <schwarze@openbsd.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-30 | FILE.3type: Move page to correct subsection | Alejandro Colomar | 1 | -34/+0 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-30 | Change alx's email address | Alejandro Colomar | 8 | -8/+8 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-29 | Many pages: Use a consistent style for lists | Alejandro Colomar | 49 | -152/+152 | |
| There are different kinds of lists: Tagged paragraphs These are fixed in a separate commit (the previous one). They are used for a list of tags and their descriptions. An example is this commit message itself. Ordered lists Elements are preceeded by a number in parentheses. These represent a set of steps that have an order. When there are substeps, they will be numbered like (4.2). Positional lists Elements are preceeded by a number in square brackets (index). These represent fields in a set. The index will start at: 0 fields of a C data structure, to be consistent with arrays. 1 fields of a file, to be consistent with tools like cut(1). Alternatives list Elements are preceeded by a letter in parentheses. These represent a set of (normally) exclusive alternatives. Bullet lists Elements are preceeded by bullet symbols. Anything that doesn't fit elsewhere usually is covered by this type of list. Notes Not really a list, but the syntax is identical to "positional lists". There should always be 2 spaces between the list symbol and the elements. This doesn't apply to "tagged paragraphs", which use the default indentation rules. Reported-by: Mike Frysinger <vapier@gentoo.org> Cc: <groff@gnu.org> Acked-by: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-29 | Many pages: Use .TP for tagged paragraphs | Alejandro Colomar | 8 | -60/+81 | |
| Reported-by: Mike Frysinger <vapier@gentoo.org> Cc: <groff@gnu.org> Acked-by: Douglas McIlroy <douglas.mcilroy@dartmouth.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-18 | ferror.3: CAVEATS: Need to get EOF before calling these functions | Alejandro Colomar | 1 | -0/+14 | |
| Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-09 | dist.mk, All pages: .TH: Generate date at 'make dist' | Alejandro Colomar | 581 | -581/+581 | |
| Replace the date by a placeholder (date) in the repo, as we're doing with the version (unreleased). It will be filled when the tarball is generated with 'make dist' (or equivalent) with the date of the most recent git commit that modifies the page (as was done previously by update_timestamps.sh, which has been removed). Scripted change (mostly): $ find man* -type f \ | xargs sed -Ei '/^\.TH /s/.TH +([^ ]+ +[^ ]+) +[^ ]+ +(.*)/.TH \1 (date) \2/' Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-09 | getent.1, iconv.1, intro.1, ldd.1, locale.1, localedef.1, memusage.1, ↵ | Alejandro Colomar | 581 | -581/+581 | |
| memusagestat.1, mtrace.1, pldd.1, sprof.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, add_key.2, adjtimex.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bdflush.2, bind.2, bpf.2, brk.2, cacheflush.2, capget.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, clone.2, close.2, close_range.2, connect.2, copy_file_range.2, create_module.2, delete_module.2, dup.2, epoll_create.2, epoll_ctl.2, epoll_wait.2, eventfd.2, execve.2, execveat.2, exit_group.2, fallocate.2, fanotify_init.2, fanotify_mark.2, fcntl.2, flock.2, fork.2, fsync.2, futex.2, futimesat.2, get_kernel_syms.2, get_mempolicy.2, get_robust_list.2, getcpu.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getitimer.2, getpagesize.2, getpeername.2, getpid.2, getpriority.2, getrandom.2, getresuid.2, getrlimit.2, getrusage.2, getsid.2, getsockname.2, getsockopt.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, getxattr.2, idle.2, init_module.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, intro.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, io_submit.2, ioctl.2, ioctl_console.2, ioctl_fat.2, ioctl_ficlonerange.2, ioctl_fideduperange.2, ioctl_fslabel.2, ioctl_getfsmap.2, ioctl_iflags.2, ioctl_ns.2, ioctl_tty.2, ioctl_userfaultfd.2, ioperm.2, iopl.2, ioprio_set.2, ipc.2, kcmp.2, kexec_load.2, keyctl.2, kill.2, landlock_add_rule.2, landlock_create_ruleset.2, landlock_restrict_self.2, link.2, listen.2, listxattr.2, llseek.2, lookup_dcookie.2, lseek.2, madvise.2, mbind.2, membarrier.2, memfd_create.2, memfd_secret.2, migrate_pages.2, mincore.2, mkdir.2, mknod.2, mlock.2, mmap.2, mmap2.2, modify_ldt.2, mount.2, mount_setattr.2, move_pages.2, mprotect.2, mq_getsetattr.2, mremap.2, msgctl.2, msgget.2, msgop.2, msync.2, nanosleep.2, nfsservctl.2, nice.2, open.2, open_by_handle_at.2, openat2.2, outb.2, pause.2, pciconfig_read.2, perf_event_open.2, perfmonctl.2, personality.2, pidfd_getfd.2, pidfd_open.2, pidfd_send_signal.2, pipe.2, pivot_root.2, pkey_alloc.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_madvise.2, process_vm_readv.2, ptrace.2, query_module.2, quotactl.2, read.2, readahead.2, readdir.2, readlink.2, readv.2, reboot.2, recv.2, recvmmsg.2, remap_file_pages.2, removexattr.2, rename.2, request_key.2, restart_syscall.2, rmdir.2, rt_sigqueueinfo.2, s390_guarded_storage.2, s390_pci_mmio_write.2, s390_runtime_instr.2, s390_sthyi.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setattr.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, seccomp.2, seccomp_unotify.2, select.2, select_tut.2, semctl.2, semget.2, semop.2, send.2, sendfile.2, sendmmsg.2, set_mempolicy.2, set_thread_area.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setns.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, setup.2, setxattr.2, sgetmask.2, shmctl.2, shmget.2, shmop.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, socket.2, socketcall.2, socketpair.2, splice.2, spu_create.2, spu_run.2, stat.2, statfs.2, statx.2, stime.2, subpage_prot.2, swapon.2, symlink.2, sync.2, sync_file_range.2, syscall.2, syscalls.2, sysctl.2, sysfs.2, sysinfo.2, syslog.2, tee.2, time.2, timer_create.2, timer_delete.2, timer_getoverrun.2, timer_settime.2, timerfd_create.2, times.2, tkill.2, truncate.2, umask.2, umount.2, uname.2, unimplemented.2, unlink.2, unshare.2, uselib.2, userfaultfd.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, open_how.2type, CPU_SET.3, FILE.3, INFINITY.3, MAX.3, MB_CUR_MAX.3, MB_LEN_MAX.3, _Generic.3, __ppc_get_timebase.3, __ppc_set_ppr_med.3, __ppc_yield.3, __setfpucw.3, a64l.3, abort.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_cancel.3, aio_error.3, aio_fsync.3, aio_init.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, alloca.3, argz_add.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, backtrace.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, bswap.3, btowc.3, btree.3, byteorder.3, bzero.3, cabs.3, cacos.3, cacosh.3, canonicalize_file_name.3, carg.3, casin.3, casinh.3, catan.3, catanh.3, catgets.3, catopen.3, cbrt.3, ccos.3, ccosh.3, ceil.3, cexp.3, cexp2.3, cfree.3, cimag.3, circleq.3, clearenv.3, clock.3, clock_getcpuclockid.3, clog.3, clog10.3, clog2.3, closedir.3, cmsg.3, confstr.3, conj.3, copysign.3, cos.3, cosh.3, cpow.3, cproj.3, creal.3, crypt.3, csin.3, csinh.3, csqrt.3, ctan.3, ctanh.3, ctermid.3, ctime.3, daemon.3, dbopen.3, des_crypt.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dladdr.3, dlerror.3, dlinfo.3, dlopen.3, dlsym.3, drand48.3, drand48_r.3, duplocale.3, dysize.3, ecvt.3, ecvt_r.3, encrypt.3, end.3, endian.3, envz_add.3, erf.3, erfc.3, err.3, errno.3, error.3, ether_aton.3, euidaccess.3, exec.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fclose.3, fcloseall.3, fdim.3, fenv.3, ferror.3, fexecve.3, fflush.3, ffs.3, fgetc.3, fgetgrent.3, fgetpwent.3, fgetwc.3, fgetws.3, fileno.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmemopen.3, fmin.3, fmod.3, fmtmsg.3, fnmatch.3, fopen.3, fopencookie.3, fpathconf.3, fpclassify.3, fpurge.3, fputwc.3, fputws.3, fread.3, frexp.3, fseek.3, fseeko.3, ftime.3, ftok.3, fts.3, ftw.3, futimes.3, fwide.3, gamma.3, gcvt.3, get_nprocs_conf.3, get_phys_pages.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getentropy.3, getenv.3, getfsent.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getifaddrs.3, getipnodebyname.3, getline.3, getloadavg.3, getlogin.3, getmntent.3, getnameinfo.3, getnetent.3, getnetent_r.3, getopt.3, getpass.3, getprotoent.3, getprotoent_r.3, getpt.3, getpw.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent.3, getrpcent_r.3, getrpcport.3, gets.3, getservent.3, getservent_r.3, getspnam.3, getsubopt.3, getttyent.3, getusershell.3, getutent.3, getutmp.3, getw.3, getwchar.3, glob.3, gnu_get_libc_version.3, grantpt.3, group_member.3, gsignal.3, hash.3, hsearch.3, hypot.3, iconv.3, iconv_close.3, iconv_open.3, if_nameindex.3, if_nametoindex.3, ilogb.3, index.3, inet.3, inet_net_pton.3, inet_ntop.3, inet_pton.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, isfdtype.3, isgreater.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, j0.3, key_setsecret.3, killpg.3, ldexp.3, lgamma.3, lio_listio.3, list.3, localeconv.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, login.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, mallinfo.3, malloc.3, malloc_get_state.3, malloc_hook.3, malloc_info.3, malloc_stats.3, malloc_trim.3, malloc_usable_size.3, mallopt.3, matherr.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, mcheck.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, mempcpy.3, memset.3, mkdtemp.3, mkfifo.3, mkstemp.3, mktemp.3, modf.3, mpool.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, nan.3, netlink.3, newlocale.3, nextafter.3, nextup.3, nl_langinfo.3, ntp_gettime.3, offsetof.3, on_exit.3, open_memstream.3, opendir.3, openpty.3, perror.3, popen.3, posix_fallocate.3, posix_madvise.3, posix_memalign.3, posix_openpt.3, posix_spawn.3, pow.3, pow10.3, printf.3, profil.3, program_invocation_name.3, psignal.3, pthread_atfork.3, pthread_attr_init.3, pthread_attr_setaffinity_np.3, pthread_attr_setdetachstate.3, pthread_attr_setguardsize.3, pthread_attr_setinheritsched.3, pthread_attr_setschedparam.3, pthread_attr_setschedpolicy.3, pthread_attr_setscope.3, pthread_attr_setsigmask_np.3, pthread_attr_setstack.3, pthread_attr_setstackaddr.3, pthread_attr_setstacksize.3, pthread_cancel.3, pthread_cleanup_push.3, pthread_cleanup_push_defer_np.3, pthread_create.3, pthread_detach.3, pthread_equal.3, pthread_exit.3, pthread_getattr_default_np.3, pthread_getattr_np.3, pthread_getcpuclockid.3, pthread_join.3, pthread_kill.3, pthread_kill_other_threads_np.3, pthread_mutex_consistent.3, pthread_mutexattr_getpshared.3, pthread_mutexattr_init.3, pthread_mutexattr_setrobust.3, pthread_rwlockattr_setkind_np.3, pthread_self.3, pthread_setaffinity_np.3, pthread_setcancelstate.3, pthread_setconcurrency.3, pthread_setname_np.3, pthread_setschedparam.3, pthread_setschedprio.3, pthread_sigmask.3, pthread_sigqueue.3, pthread_spin_init.3, pthread_spin_lock.3, pthread_testcancel.3, pthread_tryjoin_np.3, pthread_yield.3, ptsname.3, putenv.3, putgrent.3, putpwent.3, puts.3, putwchar.3, qecvt.3, qsort.3, raise.3, rand.3, random.3, random_r.3, rcmd.3, re_comp.3, readdir.3, readdir_r.3, realpath.3, recno.3, regex.3, remainder.3, remove.3, remquo.3, resolver.3, rewinddir.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, scanf.3, sched_getcpu.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, setlocale.3, setlogmask.3, setnetgrent.3, shm_open.3, siginterrupt.3, signbit.3, significand.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sincos.3, sinh.3, sleep.3, slist.3, sockatmark.3, sqrt.3, stailq.3, statvfs.3, stdarg.3, stdin.3, stdio.3, stdio_ext.3, stpcpy.3, stpncpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfmon.3, strfromd.3, strfry.3, strftime.3, string.3, strlen.3, strnlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtod.3, strtoimax.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tailq.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, towctrans.3, towlower.3, towupper.3, trunc.3, tsearch.3, ttyname.3, ttyslot.3, tzset.3, ualarm.3, ulimit.3, undocumented.3, ungetwc.3, unlocked_stdio.3, unlockpt.3, updwtmp.3, uselocale.3, usleep.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstoimax.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wordexp.3, wprintf.3, xcrypt.3, xdr.3, y0.3, NULL.3const, sysexits.h.3head, aiocb.3type, blkcnt_t.3type, blksize_t.3type, cc_t.3type, clock_t.3type, clockid_t.3type, dev_t.3type, div_t.3type, double_t.3type, epoll_event.3type, fenv_t.3type, id_t.3type, intN_t.3type, intmax_t.3type, intptr_t.3type, iovec.3type, itimerspec.3type, lconv.3type, mode_t.3type, off_t.3type, ptrdiff_t.3type, regex_t.3type, size_t.3type, sockaddr.3type, stat.3type, time_t.3type, timer_t.3type, timespec.3type, timeval.3type, tm.3type, va_list.3type, void.3type, cciss.4, console_codes.4, cpuid.4, dsp56k.4, fd.4, full.4, fuse.4, hd.4, hpsa.4, initrd.4, intro.4, lirc.4, loop.4, lp.4, mem.4, mouse.4, msr.4, null.4, pts.4, ram.4, random.4, rtc.4, sd.4, sk98lin.4, smartpqi.4, st.4, tty.4, ttyS.4, vcs.4, veth.4, wavelan.4, acct.5, charmap.5, core.5, dir_colors.5, elf.5, filesystems.5, ftpusers.5, gai.conf.5, group.5, host.conf.5, hosts.5, hosts.equiv.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, nss.5, nsswitch.conf.5, passwd.5, proc.5, protocols.5, repertoiremap.5, resolv.conf.5, rpc.5, securetty.5, services.5, shells.5, slabinfo.5, sysfs.5, termcap.5, tmpfs.5, ttytype.5, tzfile.5, utmp.5, intro.6, address_families.7, aio.7, armscii-8.7, arp.7, ascii.7, attributes.7, boot.7, bootparam.7, bpf-helpers.7, capabilities.7, cgroup_namespaces.7, cgroups.7, charsets.7, complex.7, cp1251.7, cp1252.7, cpuset.7, credentials.7, ddp.7, environ.7, epoll.7, fanotify.7, feature_test_macros.7, fifo.7, futex.7, glob.7, hier.7, hostname.7, icmp.7, inode.7, inotify.7, intro.7, ip.7, ipc_namespaces.7, ipv6.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, kernel_lockdown.7, keyrings.7, koi8-r.7, koi8-u.7, landlock.7, libc.7, locale.7, mailaddr.7, man-pages.7, man.7, math_error.7, mount_namespaces.7, mq_overview.7, namespaces.7, netdevice.7, netlink.7, network_namespaces.7, nptl.7, numa.7, operator.7, packet.7, path_resolution.7, persistent-keyring.7, pid_namespaces.7, pipe.7, pkeys.7, posixoptions.7, process-keyring.7, pthreads.7, pty.7, queue.7, random.7, raw.7, regex.7, rtld-audit.7, rtnetlink.7, sched.7, sem_overview.7, session-keyring.7, shm_overview.7, sigevent.7, signal-safety.7, signal.7, sock_diag.7, socket.7, spufs.7, standards.7, suffixes.7, symlink.7, system_data_types.7, sysvipc.7, tcp.7, termio.7, thread-keyring.7, time.7, time_namespaces.7, udp.7, udplite.7, unicode.7, units.7, unix.7, uri.7, user-keyring.7, user-session-keyring.7, user_namespaces.7, utf-8.7, uts_namespaces.7, vdso.7, vsock.7, x25.7, xattr.7, iconvconfig.8, intro.8, ld.so.8, ldconfig.8, nscd.8, sln.8, tzselect.8: tstamp Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-10-08 | memfd_create.2, mlock.2, poll.2, select.2, fopen.3, capabilities.7: tfix | Štěpán Němec | 1 | -1/+1 | |
| Signed-off-by: Štěpán Němec <stepnem@smrk.net> Signed-off-by: Alejandro Colomar <alx@kernel.org> | |||||
| 2022-09-18 | wcsnlen.3: Fix off-by-one error | Alex Colomar | 1 | -1/+1 | |
| Same change as in 45323bbef7fb06eec3fa210ee6c1651bbc57c38d. Cc: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-18 | inet_net_pton.3: tfix | Alex Colomar | 1 | -1/+1 | |
| Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-15 | Various pages: EXAMPLES: Remove unused variables | Alex Colomar | 5 | -5/+5 | |
| Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-15 | Various pages: EXAMPLES: Use unsigned types for loop iterators | Alex Colomar | 30 | -68/+70 | |
| Looping with unsigned types is safer. See the link below. When the iterators are used for accessing an array, use size_t; otherwise, use the most appropriate unsigned type, which in most cases is just 'unsigned int'. Also adjust other variables that have to interact with the iterators, to avoid comparison of integers of different signedness. Link: <https://gustedt.wordpress.com/2013/07/15/a-praise-of-size_t-and-other-unsigned-types/> Cc: Jens Gustedt <jens.gustedt@inria.fr> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-15 | envz_add.3: EXAMPLES: Fix type of variable | Alex Colomar | 1 | -2/+2 | |
| Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-15 | printf.3: SYNOPSIS: Remove incorrect header | Alex Colomar | 1 | -2/+0 | |
| Reported-by: Sam James <sam@gentoo.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-13 | __ppc_get_timebase.3, if_nameindex.3, rtime.3: EXAMPLES: wsfix | Alex Colomar | 3 | -4/+4 | |
| Reported-by: cpplint(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-13 | setbuf.3: Don't build example program | Alex Colomar | 1 | -1/+1 | |
| The example program is invalid on purpose; don't build it. Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-13 | Various pages: EXAMPLES: Remove unused variables | Alex Colomar | 2 | -2/+2 | |
| Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-13 | Various pages: EXAMPLES: Use <err.h> functions | Alex Colomar | 7 | -70/+54 | |
| When reporting errors, prefer using conventional <err.h> functions, rather than home-made macros. Home-made macros are necessary for portable programs, so in documentation about portable functions, keep using the macros. However, in the documentation for functions that are only available in GNU/Linux and/or BSD systems, prefer <err.h>, which is available in both systems. Do the same in example programs documenting portable functions but in which we already require _GNU_SOURCE for some other reason. Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-13 | __ppc_get_timebase.3, __ppc_yield.3: Remove incorrect text | Alex Colomar | 2 | -2/+0 | |
| This was accidentally introduced in a scripted change. Fixes: 45186a5da74285d72199744eb5d2888fe348f680 Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | Various pages: EXAMPLES: Remove unused variables | Alex Colomar | 13 | -14/+14 | |
| Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | matherr.3: EXAMPLES: Can't build program | Alex Colomar | 1 | -1/+1 | |
| The documented functions don't exist anymore. Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | getsubopt.3: EXAMPLES: Fix indentation | Alex Colomar | 1 | -29/+31 | |
| Fixes: 645259f4357baa3b3931ae24c79648baa155ebdf Fixes: 35facf001e3682c0bafbdd139d8cfc6a8cb2a301 Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | getpwent_r.3: EXAMPLES: Add missing include | Alex Colomar | 1 | -0/+1 | |
| Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | fopencookie.3: EXAMPLES: Remove 'else' after 'return' | Alex Colomar | 1 | -5/+3 | |
| Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | encrypt.3: SYNOPSIS: Mark functions as [[deprecated]] | Alex Colomar | 1 | -6/+6 | |
| These functions don't exist anymore. Reported-by: clang(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | Various pages: EXAMPLES: Sort includes | Alex Colomar | 65 | -108/+117 | |
| Reported-by: clang-tidy(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | pthread_setschedparam.3: EXAMPLES: Remove trailing semicolon in macro definition | Alex Colomar | 1 | -1/+1 | |
| Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | mq_getattr.3: EXAMPLES: Octal permissions are more readable | Alex Colomar | 1 | -1/+1 | |
| Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | Various pages: EXAMPLES: Use %s __func__ | Alex Colomar | 4 | -17/+18 | |
| Instead of hardcoding the function name. Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | Various pages: EXAMPLES: Fix alignment | Alex Colomar | 21 | -95/+98 | |
| In some cases, add braces, for readability. Link: <https://nginx.org/en/docs/dev/development_guide.html#code_style> Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | Various pages: EXAMPLES: Separate variable declarations from the function body | Alex Colomar | 11 | -32/+50 | |
| Reported-by: checkpatch(1) Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | rtime.3: EXAMPLES: Optimize | Alex Colomar | 1 | -1/+1 | |
| Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | bsearch.3: EXAMPLES: Use ARRAY_SIZE() | Alex Colomar | 1 | -4/+4 | |
| This is more generic code, and hopefully, it will inspire other to use such a pattern. Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | bsearch.3: EXAMPLES: Separate struct and variable definitions | Alex Colomar | 1 | -3/+5 | |
| Separate struct definition from variable definition. Also use 'static' and 'const' when possible. Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-12 | _Generic.3: EXAMPLES: Allow taking a pointer to &my_imaxabs | Alex Colomar | 1 | -4/+7 | |
| And show the pointer value in the example, and show also those of &labs and &llabs to compare. Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: Florian Weimer <fweimer@redhat.com> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.org> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-10 | Many pages: EXAMPLES: Add wrapper comments SRC BEGIN and SRC END | Alejandro Colomar | 99 | -3/+209 | |
| This is used by the Makefile to extract the example program. Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-09 | Revert "src.mk, All pages: Move man* to man/" | Alejandro Colomar | 1664 | -0/+97802 | |
| This reverts commit 70ac1c4785fc1e158ab2349a962dba2526bf4fbc. Link: <https://lore.kernel.org/linux-man/YxcV4h+Xn7cd6+q2@pevik/T/> Reported-by: Petr Vorel <pvorel@suse.cz> Reported-by: Jakub Wilk <jwilk@jwilk.net> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alex Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | src.mk, All pages: Move man* to man/ | Alejandro Colomar | 1664 | -97802/+0 | |
| The root of the repository is becoming a bit overpopulated and unorganized, due to the recent addition of more mandirs, and more informative and configuration files too. Let's create a specific mandir <man/> that contains the mandirs <man[1-8]*>. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | getpw.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| This function is insecure. Use getpwuid(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | matherr.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -2/+2 | |
| This is no longer supported by glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | __setfpucw.3: SYNOPSIS: Mark __setfpucw() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| The function doesn't exist anymore. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | ftw.3: SYNOPSIS: Mark ftw() as [[deprecated]] | Alejandro Colomar | 1 | -0/+1 | |
| Use nftw(3) instead. ftw(3) has issues with [sig]longjmp(3). Link: <https://stackoverflow.com/q/19617783/6872717> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | ulimit.3: SYNOPSIS: Mark ulimit() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | ecvt.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -4/+4 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | ecvt_r.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -10/+12 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | qecvt.3: SYNOPSIS: Mark q*cvt() as [[deprecated]] | Alejandro Colomar | 1 | -7/+5 | |
| Use snprintf(3) instead. Most Unix systems lack these functions. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | ctime.3: SYNOPSIS: Use VLA notation for [as]ctime_r() buffer | Alejandro Colomar | 1 | -2/+4 | |
| As N2417 (a proposal for C2x that was not accepted) suggests. This syntax is very informative, and also, if used by library implementers, can improve static analysis. Since it is backwards compatible with pointer syntax, we can do this. Also, the reason for not being accepted, as Jens noted, was incompatibility with C++. But IMO, that's not something that we should care too much. Users of other languages should know what to expect when reading C code, and are expected to know C/C++ incompatibilities. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Jens Gustedt <jens.gustedt@loria.fr> Cc: Glibc <libc-alpha@sourceware.org> | |||||
| 2022-09-05 | getpass.3: SYNOPSIS: Mark getpass() as [[deprecated]] | Alejandro Colomar | 1 | -2/+7 | |
| Suggest readpassphrase(3bsd) as an alternative. Some implementations of getpass(3) may suffer from the same issues that gets(3) suffers and some more. See the long discussion in the mailing list for more details (link at the bottom of this commit message). I'll quote some relevant parts here: Eugene Syromyatnikov <evgsyr@gmail.com>: { And the only mention of getpass() in POSIX (at least, since the 2001's edition) indeed seems to be [1], in the list of functions that have not been carried forward from XSH5, the 1997 revision of “System Interfaces and Headers” (that is, SUSv2)[2], where it is inherited from SUSv1[4] from XPG[5] and, as Alejandro already mentioned, marked as obsolete, per XPG3 to XPG4 migration guide[6]; the previous, 1988, version of POSIX[3] does not mention getpass() at all. [1] https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap01.html [2] https://pubs.opengroup.org/onlinepubs/7908799/xsh/getpass.html [3] https://mirror.math.princeton.edu/pub/oldlinux/download/c953.pdf [4] https://pubs.opengroup.org/onlinepubs/9695969499/toc.pdf [5] https://bitsavers.computerhistory.org/pdf/xOpen/X_Open_Portability_Guide_1985/xpg_2_xopen_system_v_specification_2.pdf [6] http://archive.opengroup.org/publications/archive/CDROM/g501.pdf } Theo de Raadt <deraadt@openbsd.org>: { The community finally had the balls to get rid of gets(3). getpass(3) shares the same flaw, that the buffer size isn't passed. This has been an issue in the past, and incorrectly led to readpassphrase(3). readpassphrase(3) has a few too many features/extensions for my taste, but at least it is harder to abuse. } Alejandro Colomar <alx.manpages@gmail.com>: { I found readpassphrase(3) in FreeBSD and OpenBSD. It is also present in libbsd(7), which is available in most Linux distributions. I also found it on a Mac that I have access. NetBSD has getpass_r(3) instead. It is not in any other system I have access. } Zack Weinberg <zack@owlfolio.org>: { I was about to post exactly the same thing. getpass(3) is not deprecated because there's a better replacement, it's deprecated because it's _unsafe_. The glibc implementation wraps getline(3) and therefore doesn't truncate the passphrase or overflow a fixed-size buffer, no matter how long the input is, but portable code cannot rely on that. And come to think of it, using getline(3) means that prefixes of the passphrase may be left lying around in malloc's free lists. (getpass also cannot be made thread safe, due to recycling of a static buffer, but a program in which multiple threads are racing to prompt the user for passwords would be a UX disaster anyway, so I don't think that's a critical flaw the way it is for e.g. strtok(3).) The Linux manpage project's documentation is, as I understand it, for Linux with glibc _first_, but not _only_; it should not describe this function as not-deprecated just because glibc has patched its worst problems and doesn't offer any better API. } List: <https://lore.kernel.org/linux-man/6d8642e9-71f7-4a83-9791-880d04f67d17@www.fastmail.com/T/#t> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Git <git@vger.kernel.org> Cc: Glibc <libc-alpha@sourceware.org> Cc: OpenBSD <tech@openbsd.org> Cc: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Cc: Benoit Lecocq <benoit@openbsd.org> Cc: Klemens Nanni <kn@openbsd.org> Cc: Randall <rsbecker@nexbridge.com> Cc: Eugene Syromyatnikov <evgsyr@gmail.com> Cc: Theo de Raadt <deraadt@openbsd.org> Cc: Zack Weinberg <zack@owlfolio.org> Cc: Florian Weimer <libc-alpha@sourceware.org> | |||||
| 2022-09-05 | gsignal.3: SYNOPSIS: Mark [gs]signal() as [[deprecated]] | Alejandro Colomar | 1 | -2/+2 | |
| They are obsolete in other systems, and broken in glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | re_comp.3: SYNOPSIS: Mark these functions as [[deprecated]] | Alejandro Colomar | 1 | -2/+2 | |
| They are MT unsafe, and replaced by the MT-safe POSIX regex(3) functions. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | rexec.3: SYNOPSIS: Mark rexec*() as [[deprecated]] | Alejandro Colomar | 1 | -0/+3 | |
| They are insecure, and replaced by rcmd(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | toascii.3: SYNOPSIS: Mark toascii() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| It cannot be used portably in a localized application. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | scalb.3: SYNOPSIS: Mark these functions as [[deprecated]] | Alejandro Colomar | 1 | -3/+3 | |
| Use scalbn(3) instead. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | getcwd.3: SYNOPSIS: Use VLA notation for getwd()'s argument | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | gethostbyname.3: Move non-deprecated functions to the top | Alejandro Colomar | 1 | -15/+15 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | gethostbyname.3: SYNOPSIS: Mark several symbols as [[deprecated]] | Alejandro Colomar | 1 | -6/+10 | |
| *hostent*() are the only ones that are not deprecated, AFAICS. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | bcmp.3: SYNOPSIS: Mark bcmp() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| Use memcmp(3) instead. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | gets.3: SYNOPSIS: Mark gets() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | resolver.3: SYNOPSIS: Use [[deprecated]] instead of a 'Deprecated' subsection | Alejandro Colomar | 1 | -6/+8 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | perror.3: SYNOPSIS: Mark sys_errlist[] and sys_nerr as [[deprecated]] | Alejandro Colomar | 1 | -2/+3 | |
| They are no longer exposed by glibc. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | getcwd.3: SYNOPSIS: Mark getwd() as [[deprecated]] | Alejandro Colomar | 1 | -1/+2 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | strsignal.3: SYNOPSIS: Mark sys_siglist[] as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | inet.3: SYNOPSIS: Mark inet_ntoa() as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| See inet_ntop(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | strcpy.3: SYNOPSIS: Add missing 'restrict' | Alejandro Colomar | 1 | -1/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | pthread_mutexattr_setrobust.3: SYNOPSIS: Mark *_np() old functions as ↵ | Alejandro Colomar | 1 | -0/+2 | |
| [[deprecated]] Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | readdir_r.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -2/+3 | |
| Glibc: dirent/dirent.h:183: extern int readdir_r (DIR *__restrict __dirp, struct dirent *__restrict __entry, struct dirent **__restrict __result) __nonnull ((1, 2, 3)) __attribute_deprecated__; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | pthread_yield.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| sched_yield(3) is identical and is in POSIX. See glibc commit c2fd60a5861efef48252f5cc7efc70e1d8a0da9a. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | getipnodebyname.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -5/+6 | |
| These functions are not anymore in glibc. All other systems call them deprecated. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | gamma.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -3/+3 | |
| These functions are misleading, and in some systems mean a different thing (tgamma(3) vs lgamma(3)). Never use gamma(3). Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | bcopy.3: SYNOPSIS: Mark as [[deprecated]] | Alejandro Colomar | 1 | -1/+1 | |
| memmove(3) completely replaces bcopy(3), being an almost identical function, except for the different order in the arguments. memmove(3) is part of ISO C and POSIX. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-09-05 | pthread_mutex_consistent.3: Mark *_np() old function as [[deprecated]] | Alejandro Colomar | 1 | -0/+1 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-30 | termios.3: mention the integer types in SEE ALSO | наб | 1 | -0/+3 | |
| Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-26 | pthread_setname_np.3: Rename 'len' to 'size' | Alejandro Colomar | 1 | -3/+3 | |
| The parameter doesn't represent a string length (strlen(3)), but a buffer size (sizeof()). Use a more proper name. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-25 | confstr.3: Rename 'len' to 'size' | Alejandro Colomar | 1 | -6/+6 | |
| The parameter doesn't represent a string length (strlen(3)), but a buffer size (sizeof()). Use a more proper name. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-25 | Various pages: Fit rendered pages in 80 columns | Alejandro Colomar | 2 | -4/+4 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-25 | wcswidth.3, wcwidth.3, veth.4: Fix accidents in .TH | Alejandro Colomar | 2 | -2/+2 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-24 | _Generic.3: EXAMPLES: Use a constant expression | Alejandro Colomar | 1 | -4/+4 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-21 | _Generic.3: intmax_t can't be int | Alejandro Colomar | 1 | -1/+0 | |
| Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-21 | All pages: Remove the 5th argument to .TH | Alejandro Colomar | 580 | -581/+581 | |
| Now that we have the LIBRARY section, and a 4th argument that already tells that it's a page from the Linux man-pages project, the 5th argument isn't telling any information that the default value wouldn't. So let's just remove it. Scripted change: $ find man* -type f \ | xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+ +"[^"]+") .*/\1/' Acked-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de> Cc: Michael Kerrisk <mtk.manpages@gmail.com> | |||||
| 2022-08-21 | All pages: Replace the 4th argument to .TH by "Linux man-pages (unreleased)" | Alejandro Colomar | 580 | -580/+580 | |
| On 8/20/22 13:57, Alejandro Colomar wrote: > On 8/20/22 07:43, G. Branden Robinson wrote: >> >> In my opinion it would benefit readers of the Linux man-pages if the >> fourth argument to `TH` were what it is in many other man pages: an >> identifier for the name and version number of the release originating >> them. In every page it would be clear what version of the man-pages was >> being viewed. Little sophistication would be demanded of the user to >> check the Web to determine the relative age of the pages, independently >> of the modification date of the particular page. Such usage would be >> congruent with the argument's purpose in AT&T and BSD Unix, where this >> datum was "7th Edition", "System III", or "4.2 Berkeley Distribution", >> or similar. > > I thought about it in the past... That field was the only thing that > said where a function came from. If we removed GNU (or something else), > how would someone know where does the function or whatever comes from?? > > I guess that's also why the colophon was appended to the pages by > Michael. Since we couldn't use the 4th field for that, we had to have a > COLOPHON section. > > However, the addition of the LIBRARY section seems to fix this issue, > and so now we have an even more precise way to determine where a given > function comes from (including the library file name, and the linker > option). > > This gives me another argument for those who don't like to have a > LIBRARY section for libc stuff (since -lc is unnecessary), and consider > it noise. > >> >> Further, as the libc-related man pages in this project expand coverage >> to other libcs than GNU's, the alternatives to the empty string >> proferred in man-pages(7) seem less and less appropriate. > > Agree. LIBRARY seems much more appropriate for that purpose. > > And this helps remove the COLOPHON section (or at least, we don't need > to autogenerate it, since the version number now comes in .TH, and the > COLOPHON is static; so I can even move it to a smaller REPORTING BUGS > section). Scripted change: $ find man* -type f \ |xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+) +"[^"]*"/\1 "Linux man-pages (unreleased)"/' $ find man* -type f \ |xargs sed -Ei '/^.TH /s/(.TH +[^ ]+ +[^ ]+ +[^ ]+) +[^" ]+/\1 "Linux man-pages (unreleased)"/' $ git restore man5/tzfile.5 $ git restore man8/zdump.8 $ git restore man8/zic.8 $ git restore man7/bpf-helpers.7 Link: <https://lore.kernel.org/linux-man/20220819180323.dbsgxh5qvcjabjm6@jwilk.net/T/#u> Reported-by: Jakub Wilk <jwilk@jwilk.net> Reported-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de> Cc: Michael Kerrisk <mtk.manpages@gmail.com> | |||||
| 2022-08-21 | _Generic.3: New page documenting _Generic() | Alejandro Colomar | 1 | -0/+60 | |
| Also add a hint of how intmax(3) and other functions using [u]intmax_t types could be better defined by ISO C, by requiring that they're implemented as type-generic macros, to avoid having problems with the ABI. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Cc: JeanHeyd Meneide <wg14@soasis.org> Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: Ingo Schwarze <schwarze@openbsd.de> | |||||
| 2022-08-15 | getaddrinfo_a.3: actually gnu.cz => gnu.org | наб | 1 | -2/+2 | |
| Fixes: a2feb3e14f51a0e74daeb6f0217887ca31799967 ("getaddrinfo_a.3: gnu.cz => gnu.org") Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-15 | getaddrinfo_a.3: {ftp.us => mirrors}.kernel.org, likewise for IP | наб | 1 | -6/+6 | |
| Make the address consistent between 128.30.2.36 (some address in MIT space) and 139.178.88.99 (valid, current) ftp.us.kernel.org EAI_NONAMEs: turn it into mirrors.kernel.org, because the new text uses 139.178.88.99 which is mirrors.kernel.org Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-15 | getaddrinfo_a.3: gnu.cz => gnu.org | наб | 1 | -4/+4 | |
| gnu.cz exists at a different address (but is unreachable there), and the address we had is an unassigned coolhousing one Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-15 | getline.3: wfix. | enh | 1 | -0/+5 | |
| Clarify in the RETURN VALUE section that it's necessary to free the buffer, since at least one person missed this up at the start of the DESCRIPTION. Signed-off-by: Elliott Hughes <enh@google.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-15 | getline.3: srcfix. | enh | 1 | -8/+8 | |
| Signed-off-by: Elliott Hughes <enh@google.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-02 | argz_add.3: srcfix | Alejandro Colomar | 1 | -1/+1 | |
| mandoc: man3/argz_add.3:20:77: STYLE: unterminated quoted argument Reported-by: 'make lint-man' Reported-by: mandoc(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-02 | getgrent_r.3, psignal.3: ffix | Alejandro Colomar | 2 | -0/+4 | |
| Reported-by: 'make lint-man' Reported-by: groff(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-01 | __setfpucw.3: ffix | Alejandro Colomar | 1 | -3/+10 | |
| an.tmac:man3/__setfpucw.3:58: style: 5 leading space(s) on input line an.tmac:man3/__setfpucw.3:59: style: 5 leading space(s) on input line an.tmac:man3/__setfpucw.3:60: style: 5 leading space(s) on input line Reported-by: 'make lint-man' Reported-by: groff(1) Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-01 | __setfpucw.3: pfix | Alejandro Colomar | 1 | -3/+3 | |
| \- is unnecessary here. As a list enumerator, any character is good. Simplify. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
| 2022-08-01 | byteorder.3: STANDARDS: Simplify | Alejandro Colomar | 1 | -5/+0 | |
| No current systems require the inclusion of <netinet/in.h> anymore. POSIX.1-2001 has been around for more than 20 years, so let's simplify. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> | |||||
