[PATCH] daemon: Replace Unicode single quotes with poor simulacra.

  • Open
  • quality assurance status badge
Details
4 participants
  • Thiago Jung Bauermann
  • Ludovic Courtès
  • Maxime Devos
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Tobias Geerinckx-Rice
Severity
normal
T
T
Tobias Geerinckx-Rice wrote on 18 May 2021 18:34
(address . guix-patches@gnu.org)
20210518163405.3618-1-me@tobias.gr
The correct ‘ and ’ are not considered word boundaries by some(?)
terminal emulators like Alacritty, making double-click selection
tedious. Avoid them in untranslated strings like it's 1992.

* nix/libstore/build.cc (UserLock::acquire)
(DerivationGoal::haveDerivation, DerivationGoal::closureRepaired)
(DerivationGoal::startBuilder, DerivationGoal::runChild)
(DerivationGoal::registerOutputs): Replace ‘’ with `' in output.
* nix/libstore/local-store.cc (canonicalisePathMetaData_)
(LocalStore::queryValidPathId): Likewise.
* nix/libstore/optimise-store.cc (LocalStore::optimisePath_): Likewise.
* nix/libutil/util.cc (readLink): Likewise.
---
nix/libstore/build.cc | 24 ++++++++++++------------
nix/libstore/local-store.cc | 4 ++--
nix/libstore/optimise-store.cc | 4 ++--
nix/libutil/util.cc | 2 +-
4 files changed, 17 insertions(+), 17 deletions(-)

Toggle diff (157 lines)
diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
index 5697ae5a43..d6f9a15a46 100644
--- a/nix/libstore/build.cc
+++ b/nix/libstore/build.cc
@@ -525,7 +525,7 @@ void UserLock::acquire()
int err = getgrouplist(pw->pw_name, pw->pw_gid,
supplementaryGIDs.data(), &ngroups);
if (err == -1)
- throw Error(format("failed to get list of supplementary groups for ‘%1%’") % pw->pw_name);
+ throw Error(format("failed to get list of supplementary groups for `%1%’") % pw->pw_name);
supplementaryGIDs.resize(ngroups);
@@ -903,7 +903,7 @@ void DerivationGoal::haveDerivation()
trace("loading derivation");
if (nrFailed != 0) {
- printMsg(lvlError, format("cannot build missing derivation ‘%1%’") % drvPath);
+ printMsg(lvlError, format("cannot build missing derivation `%1%’") % drvPath);
done(BuildResult::MiscFailure);
return;
}
@@ -1058,7 +1058,7 @@ void DerivationGoal::closureRepaired()
{
trace("closure repaired");
if (nrFailed > 0)
- throw Error(format("some paths in the output closure of derivation ‘%1%’ could not be repaired") % drvPath);
+ throw Error(format("some paths in the output closure of derivation `%1%’ could not be repaired") % drvPath);
done(BuildResult::AlreadyValid);
}
@@ -1748,10 +1748,10 @@ void DerivationGoal::startBuilder()
printMsg(lvlChatty, format("setting up chroot environment in `%1%'") % chrootRootDir);
if (mkdir(chrootRootDir.c_str(), 0750) == -1)
- throw SysError(format("cannot create ‘%1%’") % chrootRootDir);
+ throw SysError(format("cannot create `%1%’") % chrootRootDir);
if (chown(chrootRootDir.c_str(), 0, buildUser.getGID()) == -1)
- throw SysError(format("cannot change ownership of ‘%1%’") % chrootRootDir);
+ throw SysError(format("cannot change ownership of `%1%’") % chrootRootDir);
/* Create a writable /tmp in the chroot. Many builders need
this. (Of course they should really respect $TMPDIR
@@ -1808,7 +1808,7 @@ void DerivationGoal::startBuilder()
chmod_(chrootStoreDir, 01775);
if (chown(chrootStoreDir.c_str(), 0, buildUser.getGID()) == -1)
- throw SysError(format("cannot change ownership of ‘%1%’") % chrootStoreDir);
+ throw SysError(format("cannot change ownership of `%1%’") % chrootStoreDir);
foreach (PathSet::iterator, i, inputPaths) {
struct stat st;
@@ -2007,13 +2007,13 @@ void DerivationGoal::runChild()
local to the namespace, though, so setting MS_PRIVATE
does not affect the outside world. */
if (mount(0, "/", 0, MS_REC|MS_PRIVATE, 0) == -1) {
- throw SysError("unable to make ‘/’ private mount");
+ throw SysError("unable to make `/’ private mount");
}
/* Bind-mount chroot directory to itself, to treat it as a
different filesystem from /, as needed for pivot_root. */
if (mount(chrootRootDir.c_str(), chrootRootDir.c_str(), 0, MS_BIND, 0) == -1)
- throw SysError(format("unable to bind mount ‘%1%’") % chrootRootDir);
+ throw SysError(format("unable to bind mount `%1%’") % chrootRootDir);
/* Set up a nearly empty /dev, unless the user asked to
bind-mount the host /dev. */
@@ -2423,7 +2423,7 @@ void DerivationGoal::registerOutputs()
if (pathExists(dst)) deletePath(dst);
if (rename(actualPath.c_str(), dst.c_str()))
throw SysError(format("renaming `%1%' to `%2%'") % actualPath % dst);
- throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs from ‘%3%’")
+ throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs from `%3%’")
% drvPath % path % dst);
} else
throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs")
@@ -2501,11 +2501,11 @@ void DerivationGoal::registerOutputs()
Path prev = i->path + checkSuffix;
if (pathExists(prev))
throw NotDeterministic(
- format("output ‘%1%’ of ‘%2%’ differs from ‘%3%’ from previous round")
+ format("output `%1%’ of `%2%’ differs from `%3%’ from previous round")
% i->path % drvPath % prev);
else
throw NotDeterministic(
- format("output ‘%1%’ of ‘%2%’ differs from previous round")
+ format("output `%1%’ of `%2%’ differs from previous round")
% i->path % drvPath);
}
assert(false); // shouldn't happen
@@ -2518,7 +2518,7 @@ void DerivationGoal::registerOutputs()
if (curRound < nrRounds) {
Path dst = i.second.path + checkSuffix;
if (rename(i.second.path.c_str(), dst.c_str()))
- throw SysError(format("renaming ‘%1%’ to ‘%2%’") % i.second.path % dst);
+ throw SysError(format("renaming `%1%’ to `%2%’") % i.second.path % dst);
}
}
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc
index 675d1ba66f..8b9c9bebd5 100644
--- a/nix/libstore/local-store.cc
+++ b/nix/libstore/local-store.cc
@@ -380,7 +380,7 @@ static void canonicalisePathMetaData_(const Path & path, uid_t fromUid, InodesSe
/* Really make sure that the path is of a supported type. */
if (!(S_ISREG(st.st_mode) || S_ISDIR(st.st_mode) || S_ISLNK(st.st_mode)))
- throw Error(format("file ‘%1%’ has an unsupported type") % path);
+ throw Error(format("file `%1%’ has an unsupported type") % path);
/* Fail if the file is not owned by the build user. This prevents
us from messing up the ownership/permissions of files
@@ -647,7 +647,7 @@ uint64_t LocalStore::queryValidPathId(const Path & path)
{
auto use(stmtQueryPathInfo.use()(path));
if (!use.next())
- throw Error(format("path ‘%1%’ is not valid") % path);
+ throw Error(format("path `%1%’ is not valid") % path);
return use.getInt(0);
}
diff --git a/nix/libstore/optimise-store.cc b/nix/libstore/optimise-store.cc
index eb303ab4c3..2662253b91 100644
--- a/nix/libstore/optimise-store.cc
+++ b/nix/libstore/optimise-store.cc
@@ -181,12 +181,12 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa
}
if (st.st_size != stLink.st_size) {
- printMsg(lvlError, format("removing corrupted link ‘%1%’") % linkPath);
+ printMsg(lvlError, format("removing corrupted link `%1%’") % linkPath);
unlink(linkPath.c_str());
goto retry;
}
- printMsg(lvlTalkative, format("linking ‘%1%’ to ‘%2%’") % path % linkPath);
+ printMsg(lvlTalkative, format("linking `%1%’ to `%2%’") % path % linkPath);
/* Make the containing directory writable, but only if it's not
the store itself (we don't want or need to mess with its
diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc
index 69f1c634a9..cf5099a4fe 100644
--- a/nix/libutil/util.cc
+++ b/nix/libutil/util.cc
@@ -202,7 +202,7 @@ Path readLink(const Path & path)
if (rlsize == -1)
throw SysError(format("reading symbolic link '%1%'") % path);
else if (rlsize > st.st_size)
- throw Error(format("symbolic link ‘%1%’ size overflow %2% > %3%")
+ throw Error(format("symbolic link `%1%’ size overflow %2% > %3%")
% path % rlsize % st.st_size);
return string(buf, st.st_size);
}
--
2.31.1
M
M
Maxime Devos wrote on 18 May 2021 19:13
0ec7123db2721333ebe103200e42a266c4015d03.camel@telenet.be
Tobias Geerinckx-Rice via Guix-patches via schreef op di 18-05-2021 om 18:34 [+0200]:
Toggle quote (4 lines)
> The correct ‘ and ’ are not considered word boundaries by some(?)
> terminal emulators like Alacritty, making double-click selection
> tedious. Avoid them in untranslated strings like it's 1992.

N months later, while Tobias Geerinckx-Rice is asleep, a new patch appears:

Typographically Correct via Guix-patches [...]
Toggle quote (6 lines)
> It isn't 1992 anymore; the proper ‘ and ’ quotation marks are now
> well-supported in software. Use the typographically-correct ‘ and ’
> in the English translation instead of the unrelated characters ` and '.
>
> [...]

FWIW, double-click seems to work well in Emacs, Gnome Terminal.
Instead of working-around bugs, can ‘we’ fix the bug in Alacritty?
Or at least, open a bug report?

Unfortunately, GitHub's TOS and Privacy Policy were ... not great
last time I checked, though I can't find the ‘badness’ anymore except
for some weird section on ‘idemnity’. In any case, there is an #alacritty
channel:


Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYKP11RccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7pa/AP43GEjb39oLL2eW9z6fCdcPDg0A
zxUMZAd1XPWZ+3HfQQEApl/d41lhfOVNNCKsVCNjSja4XUBV8pqSyAoZ/YHJWAI=
=2Dc2
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 21 May 2021 12:28
Re: bug#48501: [PATCH] daemon: Replace Unicode single quotes with poor simulacra.
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)(address . 48501@debbugs.gnu.org)
87h7iw4bzo.fsf@gnu.org
Hi,

Tobias Geerinckx-Rice <me@tobias.gr> skribis:

Toggle quote (19 lines)
> The correct ‘ and ’ are not considered word boundaries by some(?)
> terminal emulators like Alacritty, making double-click selection
> tedious. Avoid them in untranslated strings like it's 1992.
>
> * nix/libstore/build.cc (UserLock::acquire)
> (DerivationGoal::haveDerivation, DerivationGoal::closureRepaired)
> (DerivationGoal::startBuilder, DerivationGoal::runChild)
> (DerivationGoal::registerOutputs): Replace ‘’ with `' in output.
> * nix/libstore/local-store.cc (canonicalisePathMetaData_)
> (LocalStore::queryValidPathId): Likewise.
> * nix/libstore/optimise-store.cc (LocalStore::optimisePath_): Likewise.
> * nix/libutil/util.cc (readLink): Likewise.
> ---
> nix/libstore/build.cc | 24 ++++++++++++------------
> nix/libstore/local-store.cc | 4 ++--
> nix/libstore/optimise-store.cc | 4 ++--
> nix/libutil/util.cc | 2 +-
> 4 files changed, 17 insertions(+), 17 deletions(-)

No objection from me!

Ludo’.
T
T
Thiago Jung Bauermann wrote on 21 May 2021 16:23
Re: [bug#48501] [PATCH] daemon: Replace Unicode single quotes with poor simulacra.
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
3094026.NOWVCxSc26@popigai
Hello,

[ I'm just an onlooker on the Guix mailing lists, so don't assign much
weight to this comment. ]

Em terça-feira, 18 de maio de 2021, às 13:34:05 -03, Tobias Geerinckx-Rice
via Guix-patches via escreveu:
Toggle quote (32 lines)
> The correct ‘ and ’ are not considered word boundaries by some(?)
> terminal emulators like Alacritty, making double-click selection
> tedious. Avoid them in untranslated strings like it's 1992.
>
> * nix/libstore/build.cc (UserLock::acquire)
> (DerivationGoal::haveDerivation, DerivationGoal::closureRepaired)
> (DerivationGoal::startBuilder, DerivationGoal::runChild)
> (DerivationGoal::registerOutputs): Replace ‘’ with `' in output.
> * nix/libstore/local-store.cc (canonicalisePathMetaData_)
> (LocalStore::queryValidPathId): Likewise.
> * nix/libstore/optimise-store.cc (LocalStore::optimisePath_): Likewise.
> * nix/libutil/util.cc (readLink): Likewise.
> ---
> nix/libstore/build.cc | 24 ++++++++++++------------
> nix/libstore/local-store.cc | 4 ++--
> nix/libstore/optimise-store.cc | 4 ++--
> nix/libutil/util.cc | 2 +-
> 4 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc
> index 5697ae5a43..d6f9a15a46 100644
> --- a/nix/libstore/build.cc
> +++ b/nix/libstore/build.cc
> @@ -525,7 +525,7 @@ void UserLock::acquire()
> int err = getgrouplist(pw->pw_name, pw->pw_gid,
> supplementaryGIDs.data(), &ngroups);
> if (err == -1)
> - throw Error(format("failed to get list of supplementary
> groups for ‘%1%’") % pw->pw_name); + throw
> Error(format("failed to get list of supplementary groups for `%1%’") %
> pw->pw_name);

IMHO the backtick looks ugly when it tries to mimick the opening quote
character. I think the text looks better if both quote characters are
replaced with the straight quote character, e.g. '%1'.

--
Regards from the peanut gallery,
Thiago
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 48501@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 48501
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch