aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-02-10open.2, rename.2: Refer to tmpfs rather than shmemHEADmasterAlyssa Ross2-3/+3
Skimming open(2), I was surprised not to see tmpfs mentioned as a filesystem supported by O_TMPFILE. If I'm understanding correctly (I'm very possibly not!), tmpfs is a filesystem built on shmem, so I think it's more correct (and probably much more widely understandable) to refer to tmpfs here. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-10rename.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09netdevice.7: wfixMichael Kerrisk1-2/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09netdevice.7: ffixMichael Kerrisk1-3/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09mmap2.2: Fix prototype parameter typesAlejandro Colomar1-2/+3
There are many slightly different prototypes for this syscall, but none of them is like the documented one. Of all the different prototypes, let's document the asm-generic one. This manual page was actually using a prototype similar to mmap(2), but there's no glibc wrapper function called mmap2(2), as the wrapper for this syscall is mmap(2). Therefore, the documented prototype should be the kernel one. ...... .../linux$ grep_syscall mmap2 arch/csky/kernel/syscall.c:17: SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, off_t, offset) arch/microblaze/kernel/sys_microblaze.c:46: SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, pgoff) arch/nds32/kernel/sys_nds32.c:12: SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, pgoff) arch/powerpc/kernel/syscalls.c:60: SYSCALL_DEFINE6(mmap2, unsigned long, addr, size_t, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, pgoff) arch/riscv/kernel/sys_riscv.c:37: SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, off_t, offset) arch/s390/kernel/sys_s390.c:49: SYSCALL_DEFINE1(mmap2, struct s390_mmap_arg_struct __user *, arg) arch/sparc/kernel/sys_sparc_32.c:101: SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, pgoff) arch/ia64/include/asm/unistd.h:30: asmlinkage unsigned long sys_mmap2( unsigned long addr, unsigned long len, int prot, int flags, int fd, long pgoff); arch/ia64/kernel/sys_ia64.c:139: asmlinkage unsigned long sys_mmap2 (unsigned long addr, unsigned long len, int prot, int flags, int fd, long pgoff) arch/m68k/kernel/sys_m68k.c:40: asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) arch/parisc/kernel/sys_parisc.c:275: asmlinkage unsigned long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) arch/powerpc/include/asm/syscalls.h:15: asmlinkage long sys_mmap2(unsigned long addr, size_t len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); arch/sh/include/asm/syscalls.h:8: asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); arch/sh/kernel/sys_sh.c:41: asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff) arch/sparc/kernel/systbls.h:23: asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); include/asm-generic/syscalls.h:14: asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); .../linux$ function grep_syscall() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.c$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^\w*SYSCALL_DEFINE.\(${1},.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; find * -type f \ |grep '\.[ch]$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^asmlinkage\s+[\w\s]+\**sys_${1}\s*\(.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09mlock.2: mlock2(): Fix prototype parameter typesAlejandro Colomar1-1/+1
The documented prototype for mlock2() was a mix of the glibc wrapper prototype and the kernel syscall prototype. Let's document the glibc wrapper prototype, which is shown below. ...... .../glibc$ grep_glibc_prototype mlock2 sysdeps/unix/sysv/linux/bits/mman-shared.h:55: int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW; .../glibc$ function grep_glibc_prototype() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <func>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.h$' \ |sort -V \ |xargs pcregrep -Mn \ "(?s)^[^\s#][\w\s]+\s+\**${1}\s*\([\w\s()[\]*,]*?(...)?\)[\w\s()]*;" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09execveat.2: srcfix: add a link to glibc bug requesting wrapperMichael Kerrisk1-0/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09execveat.2: Fix prototypeAlejandro Colomar1-1/+1
It's been 6 years since execveat(2) was added to the kernel, and there's still no glibc wrapper. Let's document the kernel syscall prototype. I reported a bug against glibc requesting a wrapper; when glibc adds the wrapper, this commit should probably be reverted. ...... .../linux$ grep_syscall execveat fs/exec.c:2062: SYSCALL_DEFINE5(execveat, int, fd, const char __user *, filename, const char __user *const __user *, argv, const char __user *const __user *, envp, int, flags) fs/exec.c:2083: COMPAT_SYSCALL_DEFINE5(execveat, int, fd, const char __user *, filename, const compat_uptr_t __user *, argv, const compat_uptr_t __user *, envp, int, flags) include/linux/compat.h:815: asmlinkage long compat_sys_execveat(int dfd, const char __user *filename, const compat_uptr_t __user *argv, const compat_uptr_t __user *envp, int flags); include/linux/syscalls.h:980: asmlinkage long sys_execveat(int dfd, const char __user *filename, const char __user *const __user *argv, const char __user *const __user *envp, int flags); .../linux$ function grep_syscall() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.c$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^\w*SYSCALL_DEFINE.\(${1},.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; find * -type f \ |grep '\.[ch]$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^asmlinkage\s+[\w\s]+\**sys_${1}\s*\(.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Glibc bug: <https://sourceware.org/bugzilla/show_bug.cgi?id=27364> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09ipc.2: Fix prototype parameter typesAlejandro Colomar1-3/+2
The types for some of the parameters are incorrect (different than the kernel). Fix them. Below are shown the types that the kernel uses. ...... .../linux$ grep_syscall ipc ipc/syscall.c:110: SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second, unsigned long, third, void __user *, ptr, long, fifth) ipc/syscall.c:205: COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second, u32, third, compat_uptr_t, ptr, u32, fifth) include/linux/compat.h:874: asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32); include/linux/syscalls.h:1221: asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, unsigned long third, void __user *ptr, long fifth); .../linux$ function grep_syscall() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.c$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^\w*SYSCALL_DEFINE.\(${1},.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; find * -type f \ |grep '\.[ch]$' \ |sort -V \ |xargs pcregrep -Mn "(?s)^asmlinkage\s+[\w\s]+\**sys_${1}\s*\(.*?\)" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09rpc.3: ffixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-09stat.2: Remove <unistd.h> from synopsisJonathan Wakely1-1/+0
There seems to be no reason <unistd.h> is shown here, so remove it. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-07getpriority.2, recv.2, fts.3: wfixMichael Kerrisk3-5/+3
These pages have the odd wording 'the external variable errno', which does not occur in other pages. Make these pages conform with the norm. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-07ferror.3: POSIX.1-2008: these functions won't change 'errno' if 'stream' is ↵Michael Kerrisk1-1/+10
valid See https://www.austingroupbugs.net/view.php?id=401. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-07ferror.3: Add a RETURN VALUE sectionMichael Kerrisk1-0/+12
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-07ferror.3: Remove fileno(3) content that was migrated to new fileno(3) pageMichael Kerrisk1-40/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-07fileno.3: Split fileno(3) content out of ferror(3) into new pageMichael Kerrisk1-1/+117
fileno(3) differs from the other functions in various ways. For example, it is governed by different standards, and can set 'errno'. Conversely, the other functions are about examining the status of a stream, while fileno(3) simply obtains the underlying file descriptor. Furthermore, splitting this function out allows for some cleaner upcoming changes in ferror(3). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06ipc.2: Minor tweak to Alex's patch regarding use of syscall()Michael Kerrisk1-1/+2
Calling ipc() directly would be a rather unusual thing to do, so add some text to emphasize that point. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06bdflush.2, capget.2, get_mempolicy.2, ipc.2, lookup_dcookie.2, mbind.2, ↵Alejandro Colomar7-0/+33
migrate_pages.2: Add notes about missing glibc wrappers .../glibc$ grep_syscall_wrapper bdflush .../glibc$ grep_syscall_wrapper capget .../glibc$ grep_syscall_wrapper capset .../glibc$ grep_syscall_wrapper get_mempolicy .../glibc$ grep_syscall_wrapper ipc .../glibc$ grep_syscall_wrapper lookup_dcookie .../glibc$ grep_syscall_wrapper mbind .../glibc$ grep_syscall_wrapper migrate_pages .../glibc$ function grep_syscall_wrapper() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.h$' \ |sort -V \ |xargs pcregrep -Mn \ "(?s)^[^\s#][\w\s]+\s+\**${1}\s*\([\w\s()[\]*,]*?(...)?\)[\w\s()]*;" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06getsockname.2: Use restrict in prototypesAlejandro Colomar1-2/+2
POSIX specifies that the 2nd and 3rd parameters to getsockname() shall be 'restrict'. Glibc uses 'restrict' too. Let's use it here too. ...... .../glibc$ grep_syscall_wrapper getsockname socket/sys/socket.h:116: extern int getsockname (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __len) __THROW; .../glibc$ grep -rn '# *define __SOCKADDR_ARG' socket/sys/socket.h:58: # define __SOCKADDR_ARG struct sockaddr *__restrict .../glibc$ function grep_syscall_wrapper() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.h$' \ |sort -V \ |xargs pcregrep -Mn \ "(?s)^[^\s#][\w\s]+\s+\**${1}\s*\([\w\s()[\]*,]*?(...)?\)[\w\s()]*;" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06gettimeofday.2: Use restrict in prototypesAlejandro Colomar1-3/+4
POSIX specifies that the parameters of gettimeofday() shall be 'restrict'. Glibc uses 'restrict' too. Let's use it here too. ...... .../glibc$ grep_syscall_wrapper gettimeofday time/sys/time.h:66: extern int gettimeofday (struct timeval *__restrict __tv, void *__restrict __tz) __THROW __nonnull ((1)); .../glibc$ function grep_syscall_wrapper() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.h$' \ |sort -V \ |xargs pcregrep -Mn \ "(?s)^[^\s#][\w\s]+\s+\**${1}\s*\([\w\s()[\]*,]*?(...)?\)[\w\s()]*;" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06getitimer.2: Use restrict in prototypesAlejandro Colomar1-2/+2
POSIX specifies that the 2nd and 3rd parameters to setitimer() shall be 'restrict'. Glibc uses 'restrict' too. Let's use it here too. ...... .../glibc$ grep_syscall_wrapper setitimer time/sys/time.h:129: extern int setitimer (__itimer_which_t __which, const struct itimerval *__restrict __new, struct itimerval *__restrict __old) __THROW; .../glibc$ function grep_syscall_wrapper() { if ! [ -v 1 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <syscall>"; return ${EX_USAGE}; fi find * -type f \ |grep '\.h$' \ |sort -V \ |xargs pcregrep -Mn \ "^[^\s][\w\s]+\s+\**${1}\s*\((?s)[\w\s()[\]*,]*?(...)?\)[\w\s()]*;" \ |sed -E 's/^[^:]+:[0-9]+:/&\n/'; } Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06epoll_wait.2: srcfix: glibc doesn't provide epoll_pwait2() yetAlejandro Colomar1-0/+3
I filed a bug against glibc requesting the wrapper for the new syscall. Glibc bug: <https://sourceware.org/bugzilla/show_bug.cgi?id=27359> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06getgid.2, getuid.2: Note that these interfaces never modify 'errno'Michael Kerrisk2-2/+10
See https://www.austingroupbugs.net/view.php?id=511 and the POSIX.1-2008 specifications of the interfaces. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06setbuf.3: POSIX doesn't require to errno to be unchanged after successful ↵Michael Kerrisk1-0/+15
setbuf() See https://www.austingroupbugs.net/view.php?id=397#c799 Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-06setbuf.3: tfixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-04s390_guarded_storage.2: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-02process_madvise.2: Restructure the text in DESCRIPTION a littleMichael Kerrisk1-39/+36
The 'advice' subsection fell in the middle of other text in the DESCRIPTION, which is a little confusing. Instead, move that subsection to the end of the DESCRIPTION, and make some other minor text reorganization so that related details are placed in the same paragraphs. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-02process_madvise.2: Minor edits to Suren Baghdasaryan's patchMichael Kerrisk1-20/+25
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-02madvise.2: SEE ALSO: add process_madvise(2)Michael Kerrisk1-0/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-02pidfd_open.2: Note the process_madvise(2) use case for PID file descriptorsMichael Kerrisk1-0/+6
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-02process_madvise.2: Document process_madvise(2)Suren Baghdasaryan1-0/+223
Initial version of process_madvise(2) manual page. Initial text was extracted from [1], amended after fix [2] and more details added using man pages of madvise(2) and process_vm_readv(2) as examples. It also includes the changes to required permission proposed in [3]. [1] https://lore.kernel.org/patchwork/patch/1297933/ [2] https://lkml.org/lkml/2020/12/8/1282 [3] https://patchwork.kernel.org/project/selinux/patch/20210111170622.2613577-1-surenb@google.com/#23888311 Signed-off-by: Suren Baghdasaryan <surenb@google.com> Reviewed-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-02-01malloc_trim.3: Remove mention of free() callDmitry Vorobev1-9/+0
'malloc_trim' was and is never called from the 'free' function. see related bug in glibc tracker: https://sourceware.org/bugzilla/show_bug.cgi?id=2531. or '__int_free' function. Only the top part of the heap is trimmed after some calls to 'free', which is different from 'malloc_trim' which also releases memory in between chunks from all the arenas/heaps. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Minor tweaks to Bastien's patchMichael Kerrisk1-4/+0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Reorder the textBastien Roucariès1-43/+52
Move the the text describing how to set environment variable before the list(s) of variables in order to improve readability. [mtk: rewrote commit message] Signed-off-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Note the default if PAGER is not definedMichael Kerrisk1-0/+7
Reported-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: ffix + tfixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Various edits to Bastien Roucariès's patchMichael Kerrisk1-15/+12
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Document that HOME, LOGNAME, SHELL, USER are set at login timeBastien Roucariès1-4/+30
Clearly document that HOME, LOGNAME, SHELL and USER are set at login time by a program like such as login(1). Document also that using su could result in a mixed environment, and point to the su(1) manual page. [mtk: edited commit message] Signed-off-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: wfixMichael Kerrisk1-2/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: Improve the description of PATHMichael Kerrisk1-2/+16
Add more details of how PATH is used, and mention the legacy use of an empty prefix. Changed after a suggested patch by Bastien Roucariès. Reported-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30environ.7: wfix in description of PATHMichael Kerrisk1-1/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-30time.1: wfix: remove crufty sentenceMichael Kerrisk1-1/+0
Remove a sentence that should have been removed in commit f0e173d6816895ba42c547643eca5904b0b38bf9. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-29tmpfile.3: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28netdevice.7: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28netdevice.7: Update documentation for SIOCGIFADDR SIOCSIFADDR SIOCDIFADDRPali Rohár1-9/+55
Unlike SIOCGIFADDR and SIOCSIFADDR which are supported by many protocol families, SIOCDIFADDR is supported by AF_INET6 and AF_APPLETALK only. Unlike other protocols, AF_INET6 uses struct in6_ifreq. Cc: Dmitry V. Levin <ldv@altlinux.org> Cc: <netdev@vger.kernel.org> Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28man-pages.7: tfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28uri.7: tfix (logical quoting style)Michael Kerrisk1-1/+1
Reported-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28man.7: tfix (logical quoting style)Michael Kerrisk1-1/+1
Reported-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28rcmd.3: tfix (logical quoting style)Michael Kerrisk1-1/+1
Reported-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28shmget.2: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28access.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28mmap.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28man-pages.7: tfixJakub Wilk1-1/+1
Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Minor tweaks to Bastien's patchMichael Kerrisk1-4/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Document convention of string in environBastien Roucariès1-1/+7
Document the name=value system and that nul byte is forbidden. Signed-off-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Minor fixes to Bastien's patchMichael Kerrisk1-2/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Add see also ld.so(8) for LD_ variablesBastien Roucariès1-1/+2
Signed-off-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Be a little more precise when discussing 'exec'Michael Kerrisk1-2/+2
Say "execve(2)" instead of "exec(3)", and note that this step starts a new program (not a new process!). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-28environ.7: Relocate and reword the mention of _GNU_SOURCEMichael Kerrisk1-6/+12
Using _GNU_SOURCE to obtain the declaration of 'environ' is nonstandard. Therefore, move the mention of this detail to NOTES. At the same time, add a few words proposed by Bastien. Cowritten-by: Bastien Roucariès <rouca@debian.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-25man-pages.7: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-25man-pages.7: Add a FORMATTING AND WORDING CONVENTIONS sectionMichael Kerrisk1-0/+95
In man-pages-5.11, a large number of pages were edited to achieve greater consistency in the SYNOPIS, RETURN VALUE and ATTRIBUTES sections. To avoid future inconsistencies, try to capture some of the preferred conventions in text in man-pages(7). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-25sock_diag.7: Fix recvmsg() usage in the examplePali Rohár1-3/+6
The msg_name field for recvmsg() call points to a caller-allocated buffer nladdr that is used to return the source address of the (netlink) socket. As recvmsg() does not read this buffer and fills it for a caller, do not initialize it and instead check its value in the example. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-24semget.2, shm_open.3: tfixJakub Wilk2-2/+2
Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-24random.3: srcfix: Don't break proper names into different linesAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-24kexec_load.2: srcfix: Don't break a line that doesn't get past the right marginAlejandro Colomar1-6/+5
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-24MAINTAINER_NOTES: tfixJakub Wilk1-1/+1
Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-24fopencookie.3: wsfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-23uri.7: Note that 'logical' quoting is the norm in EuropeMichael Kerrisk1-6/+1
Drop the reference to the Hacker Writing Guide (and the broken URL) and simply note that the logical quoting style is the norm in European languages also. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21man-pages.7: Note some rationale for the use of real minus signsMichael Kerrisk1-0/+10
See: https://lore.kernel.org/linux-man/20210121061158.5ul7226fgbrmodbt@localhost.localdomain/ From: "G. Branden Robinson" <g.branden.robinson@gmail.com> Cc: linux-man <linux-man@vger.kernel.org>, groff@gnu.org Subject: Re: Escaping hyphens ("real" minus signs in groff) Date: Thu, 21 Jan 2021 17:12:00 +1100 and also groff_char(7). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21Various pages: use "\-" to generate real minus in circumstances where ↵Michael Kerrisk50-123/+123
appropriate Use \- for math formulas, pathnames, manual page cross references, etc. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21inotify.7: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21mq_overview.7: ffixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21Various pages: use real minus signs in pathnamesMichael Kerrisk52-91/+91
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21confstr.3: ffix: Use real minus sign inside a stringMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-21Various pages: Inside code blocks (.EX/.EE) use \- to get real minus signsMichael Kerrisk79-199/+199
A real minus can be cut and pasted... THere are a few exceptions that gave been excluded in the this change. For example, where there' is a string such as "<p1-name>", where p1-name is soome sort of pseudo-identifier. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-20fread.3: Swap size and nmemb paramsAlessandro Bono1-2/+2
It works both way, but this one feels more right. We are reading four elements sizeof(*buffer) bytes each. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-20mount.2: Note that the 'data' argument can be NULLMichael Kerrisk1-0/+1
Verified from reading the kernel source and looking at the source of mount(8). Surprisingly, this has not documented after so many years. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-20tcp.7: Documentation revision for TCP_USER_TIMEOUTEnke Chen1-1/+2
mtk: Enke later noted that this patch provides better documentation of longstanding behavior (rather documenting a change in behavior). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-20circleq.3: Fix CIRCLEQ_LOOP_*() return typeAlejandro Colomar1-4/+14
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-20environ.7: Document valid values of pathnames for SHELL, PAGER and EDITOR/VISUALBastien Roucariès1-1/+7
The environ(7) man page says: SHELL The pathname of the user's login shell. PAGER The user's preferred utility to display text files. EDITOR/VISUAL The user's preferred utility to edit text files. but doesn't say whether the pathnames must be absolute or they can be resolved using $PATH, or whether they can have options. Note that at least for SHELL, this is not specified by POSIX. This issue was raised in the Austin Group mailing-list, and the answer is that "what constitutes a valid value for a platform should be documented" [1]. Since OpenSSH assumes that $SHELL is an absolute pathname (when set), it is supposed that the documentation should be: SHELL The absolute pathname of the user's login shell. For PAGER, POSIX says: "Any string acceptable as a command_string operand to the sh -c command shall be valid." For EDITOR, it does not need to be an absolute pathname since POSIX gives the example: EDITOR=vi fc and since it is specified as "the name of a utility", It assumes that arguments (options) must not be provided. Page 3013 about "more", it is said: "If the last pathname component in EDITOR is either vi or ex, [...]", thus again, it is assumed to be a pathname. For VISUAL, POSIX says: "Determine a pathname of a utility to invoke when the visual command [...]", thus it is also a pathname. It is not clear whether the pathname must be absolute, but for consistency with EDITOR, it will be resolved using $PATH. [1] https://www.mail-archive.com/austin-group-l@opengroup.org/msg01399.html Reported-by: Vincent Lefevre <vincent@vinc17.net> Signed-off-by: Bastien Roucaries <rouca@debian.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-19man-pages.7: Document "acknowledgement" as the preferred spellingMichael Kerrisk1-0/+5
When I inherited man-pages in 2004, it was a hodge-podge mix of American vs British spelling. My native spelling is the latter, but I value consistency and felt that things needed to be standardized on one or other, and in computing, American is the norm so that is what I settled on. Among the changes was the substitution of various instances of "acknowledgement" for "acknowledgment". The latter spelling is not one I care for, but I believed it to be the American norm. Alex Colomar proposed a patch to change the spelling back to "acknowledgement", and some discussion and investigation ensued, whereby I learned the following: * The situation is not clear cut. * Historically, "acknowledgment" was the norm in British English, but was eclipsed by "acknowledgement" some decades ago. * Even in American English, "acknowledgment" is not universal, and "acknowledgement" has become more common in recent decades (although it still remains minority usage) [2]. * The BSD license uses "acknowledgement" even though it was (presumably) written in California. * The POSIX standard uses "acknowledgement". * The Debian BTS uses "acknowledgement". * Looking at a corpus of manual pages from various systems that I have assembled over the years, "acknowledgement" seems a little more common than "acknowledgment". Summary: the situation is not clear cut, but let's follow BSD, POSIX, and the personal preference of the man-pages maintainers. [1] https://books.google.com/ngrams/graph?content=acknowledgment%2Cacknowledgement&year_start=1800&year_end=2019&corpus=29&smoothing=3# [2] https://books.google.com/ngrams/graph?content=acknowledgment%2Cacknowledgement&year_start=1800&year_end=2000&corpus=5&smoothing=3& Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-19netlink.7, tcp.7: Spelling fix: s/acknowledgment/acknowledgement/Alejandro Colomar2-9/+9
Signed-off-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-19clone.2: tfixJohannes Wellhöfer1-1/+1
For the alternate signal stack to be cleared, CLONE_VM should and CLONE_VFORK should not be specified. [mtk: fixes my commit 52e5819c4190c3f248df4b976e0a04cc561289e4] Signed-off-by: Johannes Wellhöfer <johannes.wellhofer@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-18cacheflush.2: tfixJakub Wilk1-1/+1
Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-18pipe.7: tfixJakub Wilk1-9/+9
Escape hyphens in pathnames, as per man-pages(7) Signed-off-by: Jakub Wilk <jwilk@jwilk.net> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-18system.3: ffixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-18system.3: Document bug and workaround when the command name starts with a hypenAlejandro Colomar1-0/+20
man-pages bug: 211029 https://bugzilla.kernel.org/show_bug.cgi?id=211029 Complete workaround example (it was too long for the page, but it may be useful here): ...... $ sudo ln -s -T /usr/bin/echo /usr/bin/-echo; $ cc -o system_hyphen -x c - ; #include <stdlib.h> int main(void) { system(" -echo Hello world!"); exit(EXIT_SUCCESS); } $ ./system_hyphen; Hello world! Reported-by: Ciprian Dorin Craciun <ciprian.craciun@gmail.com> Cc: Florian Weimer <fweimer@redhat.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-17netlink.7: Fix minimal Linux version for NETLINK_CAP_ACKPali Rohár1-1/+1
NETLINK_CAP_ACK option was introduced in commit 0a6a3a23ea6e which first appeared in Linux version 4.3 and not 4.2. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-17rtnetlink.7: Remove IPv4 from descriptionPali Rohár1-1/+1
rtnetlink is not only used for IPv4 Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-17ulimit.3: tfixAlyssa Ross1-1/+1
The parentheses here make it look like a function rather than a command. This was a typo introduced by a script-assisted global edit. Signed-off-by: Alyssa Ross <hi@alyssa.is> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-17execveat.2: Normalize notes about missing wrappersAlejandro Colomar1-4/+8
It's been a long time sine kernel 3.19. There's still no glibc wrapper. ...... $ grep -rn 'execveat *(' glibc/ $ Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-17cacheflush.2: Update SYNOPSIS for glibc wrapperAlejandro Colomar1-2/+2
Glibc uses 'void *' instead of 'char *'. And the prototype is declared in <sys/cachectl.h>. ...... $ syscall='cacheflush'; $ ret='int'; $ find glibc/ -type f -name '*.h' \ |xargs pcregrep -Mn "(?s)^[\w\s]*${ret}\s*${syscall}\s*\(.*?;"; glibc/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h:27: extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW; glibc/sysdeps/unix/sysv/linux/mips/sys/cachectl.h:35: extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW; glibc/sysdeps/unix/sysv/linux/arc/sys/cachectl.h:30: extern int cacheflush (void *__addr, int __nbytes, int __op) __THROW; glibc/sysdeps/unix/sysv/linux/csky/sys/cachectl.h:30: extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-15crypt.3: Update crypt() FTM requirements to note glibc 2.28 changesMichael Kerrisk1-1/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-15crypt.3: Reformat FTM info (in preparation for next patch)Michael Kerrisk1-2/+16
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-12epoll_wait.2: Minor tweaks to Willem de Bruijn's patchMichael Kerrisk1-6/+8
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-12epoll_wait.2: Add documentation of epoll_pwait2()Willem de Bruijn1-2/+29
Expand the epoll_wait() page with epoll_pwait2(), an epoll_wait() variant that takes a struct timespec to enable nanosecond resolution timeout. Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-11clone.2: Fix types in clone_argsValentin Kettner1-2/+2
A file descriptor is an int so it should be stored through an int pointer while parent_tid should have the same type as child_tid which is pid_t pointer. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-10malloc.3: Document that realloc(p, 0) is specific to glibc and nonportableAlejandro Colomar1-1/+17
A more detailed notice is on realloc(3p). ...... $ man 3p realloc \ |sed -n \ -e '/APPLICATION USAGE/,/^$/p' \ -e '/FUTURE DIRECTIONS/,/^$/p'; APPLICATION USAGE The description of realloc() has been modified from pre‐ vious versions of this standard to align with the ISO/IEC 9899:1999 standard. Previous versions explicitly permitted a call to realloc(p, 0) to free the space pointed to by p and return a null pointer. While this be‐ havior could be interpreted as permitted by this version of the standard, the C language committee have indicated that this interpretation is incorrect. Applications should assume that if realloc() returns a null pointer, the space pointed to by p has not been freed. Since this could lead to double-frees, implementations should also set errno if a null pointer actually indicates a failure, and applications should only free the space if errno was changed. FUTURE DIRECTIONS This standard defers to the ISO C standard. While that standard currently has language that might permit real‐ loc(p, 0), where p is not a null pointer, to free p while still returning a null pointer, the committee responsible for that standard is considering clarifying the language to explicitly prohibit that alternative. Bug: 211039 <https://bugzilla.kernel.org/show_bug.cgi?id=211039> Reported-by: Johannes Pfister <johannes.pfister@josttech.ch> Cc: libc-alpha@sourceware.org Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-10Various pages: srcfix: Remove redundant .PPAlejandro Colomar12-34/+2
.PP are redundant just after .SH or .SS. Remove them. $ find man? -type f \ |xargs sed -i '/^\.S[HS]/{n;/\.PP/d}'; Plus a couple manual edits. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-10Revert "stailq.3, utmp.5, time_namespaces.7: srcfix: remove redundant .PP"Michael Kerrisk3-0/+4
Do this in order to apply a better patch from Alex Colomar. This reverts commit f7fc28f97a1012631f835adcbfdcd3a048fa31b2.
2021-01-10xcrypt.3: srcfix: use .PP rather than .LPMichael Kerrisk1-1/+1
.LP is equivalent .PP, but the latter is what is used throughout man-pages. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-10shm_open.3: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-10stailq.3, utmp.5, time_namespaces.7: srcfix: remove redundant .PPMichael Kerrisk3-4/+0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09getfsent.3: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09mprotect.2, readv.2, sigaltstack.2, sigreturn.2, ctime.3, scandir.3, ↵Michael Kerrisk8-9/+9
random.4, pkeys.7: ffix: s/-1/\-1/ Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09mlock.2: CONFORMING TO: note more explicitly which APIs are in the standardsMichael Kerrisk1-0/+5
The current wording is a little unclear... Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09alloc_hugepages.2: CONFORMING TO: reword to reflect that these system calls ↵Michael Kerrisk1-2/+1
are long gone Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09epoll_create.2: CONFORMING TO: mention also that epoll_create1() is ↵Michael Kerrisk1-1/+3
Linux-specific Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09epoll_wait.2: CONFORMING TO: mention also that epoll_pwait() is Linux-specificMichael Kerrisk1-1/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09time.1, ioctl_console.2, daemon.3, updwtmp.3, mouse.4, smartpqi.4: tfix ↵Michael Kerrisk6-7/+7
(Oxford comma) Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09smartpqi.4: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09open.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09inode.7: wfixMichael Kerrisk1-1/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09Various pages: tfix (Oxford comma)Michael Kerrisk11-12/+12
Found using: git grep -lE '^[^.].*,.*,.*[^,] (and|or)\>' Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09suffixes.7: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09tailq.3: srcfix: remove redundant .PPMichael Kerrisk1-2/+0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09Various pages: tfix (Oxford comma)Michael Kerrisk42-56/+56
Discovered using: git grep -lE '^[^.].*, [^ ]*[^,] (or|and)\>' Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09round.3: wsfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09circleq.3, list.3, slist.3, stailq.3, queue.7: tfix (Oxford comma)Michael Kerrisk5-5/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09encrypt.3: wfixMichael Kerrisk1-1/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09ioctl_fslabel.2, ioctl_fideduperange.2: wfixMichael Kerrisk2-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09ioctl_console.2, msgctl.2, msgget.2, msgop.2, semctl.2, semget.2, semop.2, ↵Michael Kerrisk10-45/+9
shm_open.3, shmget.2, shmop.2: ERRORS: remove redundant statement that 'errno' is set This is implied in every other manual page. There is no need to state it explicitly in these pages. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09semget.2: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09write.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09getsid.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09clone.2: wfixMichael Kerrisk1-5/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-09setlocale.3: Restructure a particularly difficult sentenceMichael Kerrisk1-11/+17
Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Reported-by: Bruno Haible <bruno@clisp.org> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-08Various pages: Remove redundant "\\ " to escape spacesMichael Kerrisk6-14/+14
Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-08keyctl.2: wfixMichael Kerrisk1-0/+2
Fix a glitch in commit ff91beca5bec550a7a16d9dfe2fd3f9210fbb06c. Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-08msr.4, veth.4, packet.7, sched.7, unicode.7: Remove redundant .PPAlejandro Colomar5-5/+0
.PP and .IP are redundant just before .SH or .SS. Remove them. $ find man? -type f \ |xargs sed -i '/^\.[IP]P$/{N;s/.*\n\(\.S[HS]\)/\1/}'; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-08Various pages: tfix: Use Oxford commaAlejandro Colomar8-10/+10
Found using: $ pcregrep -rnM "^\.[B|I]R .*,\n\.[B|I].*[^,]\nor" man? \ |grep ^man \ |sort; Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-08close.2, getpriority.2, ioctl_userfaultfd.2, expm1.3, lio_listio.3, rcmd.3, ↵Alejandro Colomar8-11/+11
lirc.4, mount_namespaces.7: tfix: Fix punctuation Found using: $ pcregrep -rnM '^..[^"].*[^.]\.\n[a-z]' man? Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07semctl.2: Correct SEM_STAT_ANY descriptionYang Xu1-2/+2
Since kernel commit a280d6dc77eb ("ipc/sem: introduce semctl(SEM_STAT_ANY)"), it only skips read access check when using SEM_STAT_ANY command. And it should use the semid_ds struct instead of seminfo struct. Fix this. Signed-off-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com> Acked-by: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07rcmd.3: wfix (errno)Michael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07wait.2: Minor wording fixes in RETURN VALUEMichael Kerrisk1-5/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07sched_setaffinity.2: wfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07epoll_wait.2: wfixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07cacheflush.2: wfix (errno)Michael Kerrisk1-3/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07adjtimex.2: wfix (errno)Michael Kerrisk1-1/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various pages: Various improvements in wording in RETURN VALUEMichael Kerrisk9-22/+27
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various System V IPC pages: Improve wording describing RETURN VALUE and ↵Michael Kerrisk6-27/+28
setting of 'errno' Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various pages: Standardize wording around setting of 'errno' on errorMichael Kerrisk15-47/+46
In the RETURN VALUE sections, a number of different wordings are used in to describe the fact that 'errno' is set on error. There's no reason for the difference in wordings, since the same thing is being described in each case. Switch to a standard wording that is the same as FreeBSD and similar to the wording used in POSIX.1. In this change, miscellaneous descriptions of the setting of 'errno' are reworded to the norm of "is set to indicate the error". Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various pages: Standardize wording around setting of 'errno' on errorMichael Kerrisk14-24/+31
In the RETURN VALUE sections, a number of different wordings are used in to describe the fact that 'errno' is set on error. There's no reason for the difference in wordings, since the same thing is being described in each case. Switch to a standard wording that is the same as FreeBSD and similar to the wording used in POSIX.1. In this change, reword various cases saying that 'errno' is set "appropriately" to "is set to indicate the error". Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various pages: Standardize wording around setting of 'errno' on errorMichael Kerrisk157-165/+167
In the RETURN VALUE sections, a number of different wordings are used in to describe the fact that 'errno' is set on error. There's no reason for the difference in wordings, since the same thing is being described in each case. Switch to a standard wording that is the same as FreeBSD and similar to the wording used in POSIX.1. In this change, fix some instances stating that 'errno' is set "appropriately" to instead say "to indicate the error". Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07Various pages: Standardize wording around setting of 'errno' on errorMichael Kerrisk47-56/+56
In the RETURN VALUE sections, a number of different wordings are used in to describe the fact that 'errno' is set on error. There's no reason for the difference in wordings, since the same thing is being described in each case. Switch to a standard wording that is the same as FreeBSD and similar to the wording used in POSIX.1. In this change, "to indicate the cause of the error" is changed to "to indicate the error". Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07wordexp.3: Minor wording fixes in RETURN VALUEMichael Kerrisk1-3/+6
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07memusage.1: wfixMichael Kerrisk1-1/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07chroot.2: ffixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07ioctl_tty.2: srcfixMichael Kerrisk1-7/+7
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07ioctl_tty.2: Reformat argument type informationMichael Kerrisk1-43/+172
The current mark-up renders poorly. To resolve this, move the type information into a separate line. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07netlink.7: srcfixMichael Kerrisk1-1/+0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-07clone.2, ioctl_tty.2, syslog.2, setlocale.3, stdio.3, console_codes.4, ↵Michael Kerrisk11-188/+530
inode.7, namespaces.7, netlink.7, signal-safety.7, socket.7: Better table formatting In particular, allow for rendering in widths different from (especially less than) 80 columns. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06syscalls.2: ffix: Improve table formattingMichael Kerrisk1-69/+131
Allow more text wrapping in the Notes column Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06man-pages.7: ffix: don't fill text in tablesMichael Kerrisk1-1/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06slist.3: tfixMichael Kerrisk1-1/+1
Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06Various pages: add missing .nf/.fi in FTM infoMichael Kerrisk35-3/+75
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06rcmd.3: srcfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06Various pages: Remove redundant escaping of space characters in FTM infoMichael Kerrisk196-352/+352
Since we are using .nf/.fi to bracket FTM info, escaping space characters serves no space and clutters the source. Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06fsync.2: srcfix: add missing ./f/.fi in FTMsMichael Kerrisk1-0/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06wait4.2: ffix (Make FTM text narrower)Michael Kerrisk1-1/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06circleq.3, list.3, slist.3, stailq.3, tailq.3: Improve readability, ↵Alejandro Colomar5-509/+433
especially in SYNOPSIS - Group macros by kinds. - Align so that it's easiest to distinguish differences between related macros. (Align all continuations for consistency on PDF.) - Fix minor typos. - Remove redundant text: 'The macro xxx() ...': The first paragraph already says that these are macros. 'circular|tail|... queue': Don't need to repeat every time. Generic text makes it easier to spot the differences. - Fit lines into 78 columns. - Reorder descriptions to match SYNOPSIS, and add subsections to DESCRIPTION. - srcfix: fix a few semantic newlines. I noticed a bug which should be fixed next: CIRCLEQ_LOOP_*() return a 'struct TYPE *'. Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06resolv.conf.5: tfixJohn Morris1-1/+1
Change `RES_USE_EDNSO` to `RES_USE_EDNS0`, defined in `resolv.h`. (This is written correctly in `man3/resolver.3` in this same repo.) Helps with grepping and internet searches! Signed-off-by: John Morris <john@zultron.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06Various pages: Formatting tweaks after "Improve formatting in ATTRIBUTES"Michael Kerrisk31-75/+161
Various ATTRIBUTES table improvements following the previous commit. In particular, make use of T{...T} to allow wrapping in table cells that have a lot of text. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06Various pages: Improve formatting in ATTRIBUTESMichael Kerrisk524-721/+2966
Make the formatting more consistent inside the tables in the ATTRIBUTES sections. Make the source code more uniform; in particular, eliminate the use of custom tweaks using 'lbwNN'/'lwNN' and .br macros. In addition, ensure that hyphenation and text justification do not occur inside the tables. This is a script-driven edit: [[ PAGE_LIST=$(git grep -l 'SH ATTRIBUTES' man[23]) # Strip out any preexisting .sp/.br/.ad macros sed -i '/SH ATTR/,/^\.SH/{/^\.sp/d; /^\.br/d; /\.ad/d}' $PAGE_LIST # Eliminate any use of 'wNN' in tables; default first column # to fill unused space sed -i '/SH ATTR/,/^\.SH/s/lbw[0-9]*/lb/g' $PAGE_LIST sed -i '/SH ATTR/,/^\.SH/s/lw[0-9]*/l/g' $PAGE_LIST sed -i '/SH ATTR/,/^\.SH/s/^lb /lbx /' $PAGE_LIST # Nest the tables inside ".ad l"+".nh" and ".hy"+".ad"+".sp 1" # ".ad l" ==> no right justification of text in table cells # ".nh" ==> No hyphenation in table cells # ".sp 1" ==> ensure a blank line before the next section heading sed -i '/SH ATTR/,/^\.SH/{/\.TS/i.ad l\n.nh }' $PAGE_LIST sed -i '/SH ATTR/,/^\.SH/{/\.TE/a.hy\n.ad\n.sp 1 }' $PAGE_LIST # In a few of the tables, the third column has a lot of text, so # make that column wide (rather than the first column) sed -i '/^lbx/{s/lbx/lb/;s/lb$/lbx/}' \ man3/bindresvport.3 \ man3/fmtmsg.3 man3/gethostbyname.3 man3/getlogin.3 \ man3/getnetent.3 man3/getprotoent.3 man3/getpwent.3 \ man3/getservent.3 man3/getspnam.3 man3/getutent.3 man3/glob.3 \ man3/login.3 \ man3/setnetgrent.3 \ man3/wordexp.3 ]] Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06getlogin.3: ffixMichael Kerrisk1-1/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-06man-pages.7: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05Various pages: Use internally consistent continuation indents in SYNOPSISMichael Kerrisk16-35/+34
In the SYNOPSIS, a long function prototype may need to be continued over to the next line. The continuation line is indented according to the following rules: 1. If there is a single such prototype that needs to be continued, then align the continuation line so that when the page is rendered on a fixed-width font device (e.g., on an xterm) the continuation line starts just below the start of the argument list in the line above. (Exception: the indentation may be adjusted if necessary to prevent a very long continuation line or a further continuation line where the function prototype is very long.) Thus: int tcsetattr(int fd, int optional_actions, const struct termios *termios_p); 2. But, where multiple functions in the SYNOPSIS require continuation lines, and the function names have different lengths, then align all continuation lines to start in the same column. This provides a nicer rendering in PDF output (because the SYNOPSIS uses a variable width font where spaces render narrower than most characters). Thus: int getopt(int argc, char * const argv[], const char *optstring); int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex); Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05stat.2: Move the obsolete _BSD_SOURCE FTM to the end of the FTM infoMichael Kerrisk1-2/+2
Since _BSD_SOURCE is obsolete for quite some time now, it should not be listed as the first FTM for lstat(). Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05Various pages: ffix: More layout consistency fixes for FTMsMichael Kerrisk28-30/+84
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05futex.2, syscalls.2, vmsplice.2, bpf-helpers.7: wfix: Write consistently ↵Alejandro Colomar4-5/+5
'user space' instead of 'userspace' Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05fseeko.3: Move info about obsolete FTM from SYNOPSIS to NOTESMichael Kerrisk1-1/+5
This makes the SYNOPSIS more consistent with other pages. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05j0.3, strerror.3, y0.3: wspfixMichael Kerrisk3-3/+3
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05brk.2, chmod.2, gethostname.2, setpgid.2, wait4.2, atoi.3, fwide.3, ↵Michael Kerrisk11-23/+23
getlogin.3, printf.3, strtoul.3, wprintf.3: Consistency fix-up in FTMs Generally, place '||' at start of a line, rather than the end of the previous line. Rationale: this placement clearly indicates that that each piece is an alternative. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05qecvt.3: srcfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05fsync.2, gethostname.2, stat.2, getutent.3: Minor consistency clean-ups in FTMsMichael Kerrisk4-5/+5
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-05Various pages: Simplify mark-up for Feature Test Macro requirementsMichael Kerrisk223-1973/+1312
Different source styles are used in different pages to achieve the same formatted output, and in some cases the source mark-up is a rather convoluted combination of .RS/.RE/.TP/.PD macros. Simplify this greatly, and unify all of the pages to use more or less the same source code style. This makes the source code rather easier to read, and may simplify future scripted global changes. The feature test macro info is currently bracketed by .nf/.fi pairs. This is not strictly necessary (i.e., it makes no difference to the rendered output), but for the moment we keep these "brackets" in case they may be replaced with something else. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04gethostid.3: srcfixMichael Kerrisk1-1/+0
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04Various pages: replace '.ad b' macro with '.ad'Michael Kerrisk93-93/+93
Verified no change in rendered output Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04clock_getres.2, atan2.3, ctime.3, getcwd.3, isgreater.3, iswblank.3, ↵Michael Kerrisk7-8/+8
scalbln.3: ffix Consistently use 4-space indents for FTMs. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04chroot.2, rename.2, getgrent.3, nextafter.3, ttyslot.3, wprintf.3: ffixMichael Kerrisk6-45/+23
Bring a bit more consistency to the layout of FTMs. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04grantpt.3, ptsname.3, unlockpt.3: Remove mention of _XOPEN_SOURCE_EXTENDED FTMMichael Kerrisk3-6/+6
This rather ancient FTM is not mentioned in other pages for reasons discussed in feature_test_macros(7). Remove this FTM from the three pages where it does appear. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04nice.2, putenv.3, strtok.3, toascii.3, tzset.3: ffixMichael Kerrisk5-16/+24
Where FTM requirements span multiple lines, start the FTMs on a new line. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04getpagesize.2, getdtablesize.3: tfixMichael Kerrisk2-4/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04fanotify_init.2, fanotify.7: Minor edits to Jan Kara's patchMichael Kerrisk2-5/+8
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04fanotify_init.2, fanotify.7: Document FAN_AUDIT flag and FAN_ENABLE_AUDITJan Kara2-1/+15
Acked-by: Steve Grubb <sgrubb@redhat.com> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04exec.3: tfixMichael Kerrisk1-2/+2
Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04malloc_hook.3: tfixMichael Kerrisk1-1/+1
Reported-by: Alejandro Colomar (man-pages) <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04ecvt.3, gcvt.3: Update FTM requirementsMichael Kerrisk2-30/+20
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04getpagesize.2, getdtablesize.3: Update/correct FTM requirementsMichael Kerrisk2-33/+14
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04gethostid.3: Update FTM requirements for gethostid()Michael Kerrisk1-3/+8
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04gethostname.2: Update FTM requirements for gethostname()Michael Kerrisk1-5/+4
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04feature_test_macros.7: wfixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04feature_test_macros.7: tfixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04wait.2, getaddrinfo.3, getnameinfo.3: ffix: Bring greater consistency to FTM ↵Michael Kerrisk3-14/+14
layout Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04qecvt.3: Update feature test macro requirementsMichael Kerrisk1-1/+6
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04Various pages: Use .nf/.fi in SYNOPSISMichael Kerrisk12-9/+24
Fix various pages missed in commit c7db92b96a3f88dc146a35d6851453e3b354f4fc. Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04getutent.3: ffixMichael Kerrisk1-1/+1
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04bsd_signal.3: ffixMichael Kerrisk1-2/+2
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-04scandir.3: ffixMichael Kerrisk1-6/+6
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2021-01-03string.3: tfixMichael Kerrisk1-1/+1
Reported-by: Pádraig Brady <P@draigBrady.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>