Hi Violeta, On 8/31/22 09:02, Violeta Kabadzhova wrote:
Hello,According to the Reporting man pages bug <https://www.kernel.org/doc/man-pages/reporting_bugs.html> article, in case of a spotted typo (one-liner), one should write to the maintainers and CC the current mailing list.
Well done. Ideally, you should send plain text emails, since the mailing list discards HTML email, but I understand that some tools are not friendly to send plain text emails, so don't worry.
In the socket(2) <https://man7.org/linux/man-pages/man2/socket.2.html>::ERRORS man page there's a duplicate EINVAL (depicted below).image.png
That's because socket(2) will set errno to EINVAL if any of those two situations happen. I know it's a bit weird the first time you see it, but you get used to it. I don't know of a better way to express it concisely, and other Unix systems seem to do the same thing[1].
[1]: <https://man.openbsd.org/clock_getres.2#ERRORS>I got a list of all of the duplicate errors, which I used to compare it to the OpenBSD manual pages. I'll share it here so that it's easier to remember if I need to.
The below script makes use of man_section(), defined in <scripts/bash_aliases> in the man-pages repository, for which I also copied the definition below.
Cheers, Alex
Best, Violeta
man_section() { if [ $# -lt 2 ]; then >&2 echo "Usage: ${FUNCNAME[0]} <dir> <section>..."; return $EX_USAGE; fi local page="$1"; shift; local sect="$*"; find "$page" -type f \ |xargs wc -l \ |grep -v -e '\b1 ' -e '\btotal\b' \ |awk '{ print $2 }' \ |sort \ |while read -r manpage; do (sed -n '/^\.TH/,/^\.SH/{/^\.SH/!p}' <"$manpage"; for s in $sect; do <"$manpage" \ sed -n \ -e "/^\.SH $s/p" \ -e "/^\.SH $s/,/^\.SH/{/^\.SH/!p}"; done;) \ |man -P cat -l - 2>/dev/null; done; } And the list is: $ man_section man2 ERRORS \ | grep -e '^\w*(2)' -e '^ E' \ | grep -o '^ *[^ ]*' \ | sed '/^\w/p' \ | uniq -d \ | tac \ | sed -n '/^ /,/^[^ ]/p' \ | tac; ACCEPT(2) EINVAL ACCESS(2) EINVAL ENOTDIR ADD_KEY(2) EINVAL EPERM ADJTIMEX(2) EINVAL BIND(2) EADDRINUSE EINVAL BPF(2) EINVAL CAPGET(2) EPERM CHMOD(2) EBADF ENOTDIR EPERM CHOWN(2) EBADF ENOTDIR EPERM CLOCK_GETRES(2) EINVAL CLOCK_NANOSLEEP(2) EINVAL CLONE(2) EINVAL ENOSPC EPERM COPY_FILE_RANGE(2) EBADF EFBIG EINVAL EXDEV DUP(2) EBADF EINVAL EPOLL_CREATE(2) EINVAL EMFILE EPOLL_CTL(2) EINVAL EXECVE(2) EACCES ELOOP EPERM FALLOCATE(2) EFBIG EINVAL EPERM FANOTIFY_INIT(2) EMFILE FANOTIFY_MARK(2) EBADF EINVAL ENOTDIR FCNTL(2) EBADF EBUSY EINTR EINVAL EPERM FORK(2) EAGAIN ENOMEM FUTEX(2) EAGAIN EDEADLK EINVAL ENOSYS EPERM ESRCH GETGROUPS(2) EINVAL EPERM GETRLIMIT(2) EPERM GETTIMEOFDAY(2) EINVAL INOTIFY_INIT(2) EMFILE IOCTL(2) ENOTTY KEXEC_LOAD(2) EADDRNOTAVAIL EINVAL KEYCTL(2) EDEADLK EINVAL ENOENT ENOKEY EOPNOTSUPP EPERM LINK(2) EPERM ENOENT LISTEN(2) EADDRINUSE MADVISE(2) EINVAL ENOMEM MEMFD_CREATE(2) EINVAL MEMFD_SECRET(2) EMFILE MINCORE(2) ENOMEM MKDIR(2) ENOSPC ENOTDIR MKNOD(2) ENOTDIR MLOCK(2) EINVAL ENOMEM EPERM MMAP(2) EINVAL ENOMEM EPERM MOUNT(2) EACCES EBUSY EINVAL ELOOP EPERM MOUNT_SETATTR(2) EBADF EBUSY EINVAL EPERM MPROTECT(2) EINVAL ENOMEM MSGCTL(2) EPERM MSGOP(2) EINVAL ENOMSG OPEN(2) EACCES EINVAL EISDIR ELOOP ENOENT ENOMEM ENOTDIR ENXIO EPERM ETXTBSY OPEN_BY_HANDLE_AT(2) EINVAL EBADF OPENAT2(2) EAGAIN EINVAL ELOOP EXDEV PIDFD_GETFD(2) EBADF PIDFD_OPEN(2) EINVAL PIDFD_SEND_SIGNAL(2) EINVAL EPERM PIPE(2) ENFILE PIVOT_ROOT(2) EINVAL POLL(2) EINVAL PRCTL(2) EACCES EFAULT EINVAL ENXIO EPERM PROCESS_MADVISE(2) EINVAL PROCESS_VM_READV(2) EFAULT EINVAL QUOTACTL(2) EINVAL ESRCH READ(2) EAGAIN EINVAL READLINK(2) EINVAL ENOTDIR READV(2) EINVAL REMAP_FILE_PAGES(2) EINVAL RENAME(2) EINVAL REQUEST_KEY(2) EINVAL RMDIR(2) EPERM RT_SIGQUEUEINFO(2) EPERM S390_PCI_MMIO_WRITE(2) EFAULT S390_RUNTIME_INSTR(2) EINVAL SCHED_SETAFFINITY(2) EINVAL SCHED_SETATTR(2) EPERM SCHED_SETPARAM(2) EINVAL SCHED_SETSCHEDULER(2) EINVAL SECCOMP(2) EINVAL ENOMEM SELECT(2) EINVAL SEMGET(2) EINVAL SEND(2) EAGAIN SENDFILE(2) EINVAL SETNS(2) EINVAL SETRESUID(2) EAGAIN SETREUID(2) EAGAIN SETUID(2) EAGAIN SETXATTR(2) ENOTSUP SHMGET(2) EINVAL SIGNALFD(2) EINVAL SOCKET(2) EINVAL SPLICE(2) EINVAL STAT(2) EBADF ENOENT ENOTDIR STATX(2) EINVAL SWAPON(2) EINVAL SYMLINK(2) ENOENT ENOTDIR TIMER_SETTIME(2) EINVAL TIMERFD_CREATE(2) EINVAL EINVAL TKILL(2) EAGAIN TRUNCATE(2) EPERM EBADF EINVAL UMOUNT(2) EINVAL UNLINK(2) EPERM UNSHARE(2) EINVAL ENOSPC EPERM UTIME(2) EACCES UTIMENSAT(2) EBADF EINVAL WAIT(2) ECHILD WRITE(2) EAGAIN -- Alejandro Colomar <http://www.alejandro-colomar.es/>
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature