[Manual] Unreadable navigation links and oversize titles
Hello, A recent update of gnulib/manual.css (Rev. 1.7) made the navigation links in almost invisible, at least for me. The next one drastically increased font size, to 48px for the main heading and 32px for node headings on a standard desktop screen. These huge font sizes may work for Gnulib, but don't forget that manual.css is used by many GNU manuals. I found several examples of long titles where switching to a 40px font would decrease wrapping [0]. The huge node titles are also disturbing, IMO. (Please note that I'm using DejaVu Sans -- default in Debian 10.) A patch is attached. It increases the contrast of navigation links, brings font sizes to more reasonable values, and removes a useless definition. Thanks in advance for looking into this issue! Best regards, Thérèse [0] https://www.gnu.org/prep/maintain/maintain.html https://www.gnu.org/software/units/manual/units.html https://www.gnu.org/software/shepherd/manual/shepherd.html https://www.gnu.org/software/jtw/manual/jtw.html https://www.gnu.org/software/diffutils/manual/diffutils.html https://www.gnu.org/software/smalltalk/manual/gst.html etc. Index: manual.css === RCS file: /web/gnulib/gnulib/manual.css,v retrieving revision 1.8 diff -U 2 -r1.8 manual.css --- manual.css 13 Nov 2020 21:28:02 - 1.8 +++ manual.css 13 Dec 2020 07:23:09 - @@ -38,6 +38,5 @@ .header { line-height: 2em; -font-size: 80%; -font-weight: lighter; +font-size: 87.5%; color: #433; } @@ -47,9 +46,9 @@ .settitle, .top, .chapter { font-family: Fira Sans, sans; -font-size: 300%; +font-size: 250%; } .section, .subsection, .subsubsection { font-family: Fira Sans, sans; -font-size: 200%; +font-size: 150%; } @@ -73,7 +72,4 @@ body { -/* The shadow around the body is distracting. */ -box-shadow: 0 0 0 0; - /* Make sure the body doesn't become to wide: long lines are hard to read. */
Re: [Manual] Unreadable navigation links and oversize titles
Hello Thérèse, > A recent update of gnulib/manual.css (Rev. 1.7) made the navigation > links in almost invisible, at least for me. The > next one drastically increased font size, to 48px for the main heading > and 32px for node headings on a standard desktop screen. > > These huge font sizes may work for Gnulib, but don't forget that > manual.css is used by many GNU manuals. I found several examples of long > titles where switching to a 40px font would decrease wrapping [0]. The > huge node titles are also disturbing, IMO. (Please note that I'm using > DejaVu Sans -- default in Debian 10.) > > A patch is attached. It increases the contrast of navigation links, > brings font sizes to more reasonable values, and removes a useless > definition. > > Thanks in advance for looking into this issue! > > Best regards, > Thérèse > > [0] https://www.gnu.org/prep/maintain/maintain.html > https://www.gnu.org/software/units/manual/units.html > https://www.gnu.org/software/shepherd/manual/shepherd.html > https://www.gnu.org/software/jtw/manual/jtw.html > https://www.gnu.org/software/diffutils/manual/diffutils.html > https://www.gnu.org/software/smalltalk/manual/gst.html > etc. As I can see from 'cvs log manual.css' that this file is being maintained by Ludo', and Ludo' is not subscribed to this mailing list, I'm adding him to this thread. Style is like taste: it can be debated, and there is no definitive answer that will please everyone. Also, once people have been accustomed to a particular style, they will often prefer this style; therefore debates around style are often influenced by the people's current/recent experience. For me, as long as it's black-on-white or black-on-grey (and not e.g. green-on-black), I'm fine with it. I have no opinion on subtitle sizes and so on. Bruno
Re: [Manual] Unreadable navigation links and oversize titles
Hi Bruno, Le 13/12/2020 à 17:22, Bruno Haible a écrit : [...] > For me, as long as it's black-on-white or black-on-grey (and not e.g. > green-on-black), I'm fine with it. I have no opinion on subtitle sizes > and so on. > > Bruno > There are 2 issues: 1. Navigation links. Some people are able to easily see very small print with very low contrast. I am not, and many people are like me. See the WACG Guidelines, especially criterion 1.4.6 [0], which www.gnu.org tries to satisfy. 2. Huge headings. It's not only a matter of taste. They decrease usability on smartphones. Best, Thérèse [0] https://www.w3.org/WAI/WCAG21/quickref/?showtechniques=143%2C146#distinguishable
Re: [Manual] Unreadable navigation links and oversize titles
On Sun, 2020-12-13 at 17:58 +0100, Thérèse Godefroy wrote: > 2. Huge headings. > It's not only a matter of taste. They decrease usability on > smartphones. I have to agree with Thérèse on this: the new font sizes are too big. It feels like the author is shouting at me when I read them. I also agree on the other topic: the low contrast makes it harder to find the links. https://www.gnu.org/software/make/manual/html_node/Introduction.html Yes, things like this are subjective, but that's why we should aim for layouts with appropriate sizing and simple, high contrast. If people need larger fonts for readability that's between them and their browser: browsers have ample ways to allow users to customize things like that. What I think would be helpful would be a "sample document" that provided a full suite of texinfo features including all header sizes, link types, indexes, etc. that could be displayed with the CSS so we could get a clear picture of all impacts of changes. However, I am definitely glad someone is thinking about this because I do agree that the doc CSS could use some brush-up. Hopefully this doesn't discourage more work here!
Re: execute, spawn-pipe: Make multithread-safe on native Windows
> 2020-11-30 Bruno Haible > > execute, spawn-pipe: Make multithread-safe on native Windows. Oops, there was a mistake in this change: it caused two tests (test-pipe-filter-ii1.sh, test-pipe-filter-gi1.sh) to hang. The hang is a symptom that there is one extra handle left open to a pipe. (The OS knows that a pipe is done when there is no reader or no writer any more.) This patch fixes it. 2020-12-13 Bruno Haible spawn-pipe: Fix hanging processes on Windows (regression 2020-11-30). * lib/spawn-pipe.c (create_pipe): After spawning the subprocess, close the stdin_handle and/or stdout_handle. diff --git a/lib/spawn-pipe.c b/lib/spawn-pipe.c index ba07d20..bd34959 100644 --- a/lib/spawn-pipe.c +++ b/lib/spawn-pipe.c @@ -222,6 +222,8 @@ create_pipe (const char *progname, bool must_close_ofd0 = pipe_stdin; /* Create standard file handles of child process. */ + HANDLE stdin_handle = INVALID_HANDLE_VALUE; + HANDLE stdout_handle = INVALID_HANDLE_VALUE; nulloutfd = -1; stdinfd = -1; stdoutfd = -1; @@ -243,7 +245,7 @@ create_pipe (const char *progname, to pass NULL, the child process would inherit a copy of the environment block - ignoring the effects of putenv() and [un]setenv(). */ { - HANDLE stdin_handle = + stdin_handle = (HANDLE) _get_osfhandle (pipe_stdin ? ofd[0] : prog_stdin == NULL ? STDIN_FILENO : stdinfd); if (pipe_stdin) @@ -261,7 +263,7 @@ create_pipe (const char *progname, close (ofd[0]); /* implies CloseHandle (stdin_handle); */ stdin_handle = duplicate; } - HANDLE stdout_handle = + stdout_handle = (HANDLE) _get_osfhandle (pipe_stdout ? ifd[1] : prog_stdout == NULL ? STDOUT_FILENO : stdoutfd); if (pipe_stdout) @@ -306,10 +308,22 @@ create_pipe (const char *progname, if (nulloutfd >= 0) close (nulloutfd); - if (must_close_ofd0) -close (ofd[0]); - if (must_close_ifd1) -close (ifd[1]); + if (pipe_stdin) +{ + if (must_close_ofd0) +close (ofd[0]); + else +if (stdin_handle != INVALID_HANDLE_VALUE) + CloseHandle (stdin_handle); +} + if (pipe_stdout) +{ + if (must_close_ifd1) +close (ifd[1]); + else +if (stdout_handle != INVALID_HANDLE_VALUE) + CloseHandle (stdout_handle); +} # else /* __KLIBC__ */ if (!(directory == NULL && strcmp (directory, ".") == 0))
Re: [PATCH 2/6] canonicalize: fix EOVERFLOW bug
On 12/11/20 3:47 AM, Bruno Haible wrote: This patch introduced a unit test regression on AIX 7.2 ../../gltests/test-canonicalize.c:112: assertion 'result1 == NULL' failed FAIL test-canonicalize (exit status: 134) Thanks for reporting it. My recent changes to the canonicalize code assumed POSIX, but AIX readlink departs from the POSIX spec by failing with ERANGE instead of truncating link contents. Plus, the code had a natural assumption that POSIX might not support, namely, that readlink ("a/", ...) should fail with ENOTDIR (not EINVAL) when "a" is not a directory. I installed the attached patches to work around these issues, along with other stuff I noticed while testing this under AIX 7.2 (gcc119, which is power8-aix). The relevant unit tests succeed for me now. From 4cb6b1493983e76eafa2da3aabff87510f2d63d5 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 13 Dec 2020 16:48:26 -0800 Subject: [PATCH 1/5] readlink, readlinkat: add ERANGE portability Fix some portability issues with Gnulib's readlink and readlinkat, notably mostly working around the ERANGE problem in AIX and HP-UX. * doc/posix-functions/readlink.texi: * doc/posix-functions/readlinkat.texi: ERANGE problem is mostly fixed now. Mention AIX problem with trailing / and EINVAL. Lessen differences between these two files. * lib/readlink.c (rpl_readlink): * lib/readlinkat.c (rpl_readlinkat): If stat ("FILE/", ...) reports EOVERFLOW, treat FILE/ as an existing directory. Mostly work around READLINK_TRUNCATE BUG. Lessen spurious differences between the readlink and readlinkat code. * lib/readlinkat.c (rpl_readlinkat): Fix bug where stat was used where fstatat was intended. * m4/readlink.m4 (gl_FUNC_READLINK): Rename gl_cv_func_readlink_works to gl_cv_func_readlink_trailing_slash to identify readlink problems more precisely. All uses changed. Guess no on AIX or HP-UX for this variable. Add check for whether readlink truncates results, and define new macro READLINK_TRUCATE_BUG accordingly. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Also check gl_cv_func_readlink_trailing_slash when deciding whether to replace readlinkat. * modules/readlinkat (Depends-on): Most dependencies are also needed if replacing readlinkat. fstatat is different, as it is needed only if replacing an existing readlinkat. --- ChangeLog | 29 ++ doc/posix-functions/readlink.texi | 41 ++- doc/posix-functions/readlinkat.texi | 35 - lib/readlink.c | 48 ++- lib/readlinkat.c| 47 ++ m4/readlink.m4 | 61 - m4/readlinkat.m4| 13 +++--- modules/readlinkat | 20 +- 8 files changed, 230 insertions(+), 64 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3f62960f..2ebf31995 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,32 @@ +2020-12-13 Paul Eggert + + readlink, readlinkat: add ERANGE portability + Fix some portability issues with Gnulib's readlink and readlinkat, + notably mostly working around the ERANGE problem in AIX and HP-UX. + * doc/posix-functions/readlink.texi: + * doc/posix-functions/readlinkat.texi: + ERANGE problem is mostly fixed now. Mention AIX problem with + trailing / and EINVAL. Lessen differences between these two files. + * lib/readlink.c (rpl_readlink): + * lib/readlinkat.c (rpl_readlinkat): + If stat ("FILE/", ...) reports EOVERFLOW, treat FILE/ as an + existing directory. Mostly work around READLINK_TRUNCATE BUG. + Lessen spurious differences between the readlink and readlinkat code. + * lib/readlinkat.c (rpl_readlinkat): + Fix bug where stat was used where fstatat was intended. + * m4/readlink.m4 (gl_FUNC_READLINK): + Rename gl_cv_func_readlink_works to gl_cv_func_readlink_trailing_slash + to identify readlink problems more precisely. All uses changed. + Guess no on AIX or HP-UX for this variable. + Add check for whether readlink truncates results, + and define new macro READLINK_TRUCATE_BUG accordingly. + * m4/readlinkat.m4 (gl_FUNC_READLINKAT): + Also check gl_cv_func_readlink_trailing_slash when deciding + whether to replace readlinkat. + * modules/readlinkat (Depends-on): Most dependencies are also + needed if replacing readlinkat. fstatat is different, as it + is needed only if replacing an existing readlinkat. + 2020-12-13 Bruno Haible spawn-pipe: Fix hanging processes on Windows (regression 2020-11-30). diff --git a/doc/posix-functions/readlink.texi b/doc/posix-functions/readlink.texi index b2ccceee7..d4421380a 100644 --- a/doc/posix-functions/readlink.texi +++ b/doc/posix-functions/readlink.texi @@ -9,34 +9,55 @@ Gnulib module: readlink Portability problems fixed by Gnulib: @itemize @item -Some platforms mistakenly succeed on @code{readlink("link/",buf,len)}: +This function is missing on some platforms: +mingw, MSVC 14. +@item +Some platforms mistakenly succeed o