From: Alejandro Colomar <alx.manpages@gmail.com>
To: Violeta Kabadzhova <vkabadzhova@gmail.com>
Cc: linux-man@vger.kernel.org, mtk.manpages@gmail.com
Subject: Repeated ERRORS (was: A typo report in socket(2))
Date: Wed, 31 Aug 2022 14:01:03 +0200 [thread overview]
Message-ID: <7cf06ed9-3f25-bd17-dfbf-1488cd53f229@gmail.com> (raw)
In-Reply-To: <CAFxh5QD20xDA0DXYOw9EyWAzN4PCxy8SPEN4zx=rfCieYFgA4w@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 6512 bytes --]
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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next parent reply other threads:[~2022-08-31 12:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAFxh5QD20xDA0DXYOw9EyWAzN4PCxy8SPEN4zx=rfCieYFgA4w@mail.gmail.com>
2022-08-31 12:01 ` Alejandro Colomar [this message]
2022-08-31 12:05 ` Repeated ERRORS (was: A typo report in socket(2)) Alejandro Colomar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7cf06ed9-3f25-bd17-dfbf-1488cd53f229@gmail.com \
--to=alx.manpages@gmail.com \
--cc=linux-man@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=vkabadzhova@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox