mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-02-14 03:12:10 +02:00
ls: --hyperlink: switch to more standard delimiters
* src/ls.c (quote_name): Use ST (ESC \) rather than BEL, as that's the only terminator mentioned in at least ECMA-48, DEC STD 070, and EK-VT520-RM. * NEWS: Mention the change in behavior. * tests/ls/hyperlink.sh: Adjust accordingly. Suggested by Egmont Koblinger.
This commit is contained in:
3
NEWS
3
NEWS
@@ -71,6 +71,9 @@ GNU coreutils NEWS -*- outline -*-
|
||||
'fmt' -w,--width no longer includes '\n' in the width of a line.
|
||||
I.e., the specified width is interpreted to be an _inclusive_ maximum.
|
||||
|
||||
'ls --hyperlink' now uses more standard format hyperlinks.
|
||||
'ESC\' (ST) is now used as a delimiter, instead of '\a' (BEL).
|
||||
|
||||
'ptx' -t is no longer a no-op, and now sets the default width to 100 columns.
|
||||
|
||||
'timeout' now honors ignored signals and will not propagate them. E.g.,
|
||||
|
||||
4
src/ls.c
4
src/ls.c
@@ -4723,7 +4723,7 @@ quote_name (char const *name, struct quoting_options const *options,
|
||||
For example since ls is outputting a dense block of URIs
|
||||
it would be best to not underline by default, and only
|
||||
do so upon hover etc. */
|
||||
printf ("\033]8;;file://%s%s%s\a", h, *n == '/' ? "" : "/", n);
|
||||
printf ("\033]8;;file://%s%s%s\033\\", h, *n == '/' ? "" : "/", n);
|
||||
free (h);
|
||||
free (n);
|
||||
}
|
||||
@@ -4740,7 +4740,7 @@ quote_name (char const *name, struct quoting_options const *options,
|
||||
|
||||
if (absolute_name)
|
||||
{
|
||||
fputs ("\033]8;;\a", stdout);
|
||||
fputs ("\033]8;;\033\\", stdout);
|
||||
if (skip_quotes)
|
||||
putchar (*(buf + len - 1));
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ encode() {
|
||||
ls_encoded() {
|
||||
ef=$(encode "$1")
|
||||
echo "$ef" | grep 'dir$' >/dev/null && dir=: || dir=''
|
||||
printf '\033]8;;file:///%s\a%s\033]8;;\a%s\n' \
|
||||
printf '\033]8;;file:///%s\033\\%s\033]8;;\033\\%s\n' \
|
||||
"$ef" "$1" "$dir"
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ for f in 'an#chor' 'back\slash' 'col:on' 'encoded%3Fquestion' \
|
||||
done
|
||||
)
|
||||
ln -s testdir testdirl || framework_failure_
|
||||
(cat exp.t && printf '\n' && sed 's/[^\/]testdir/&l/' exp.t) > exp \
|
||||
(cat exp.t && printf '\n' && sed 's|[^/]testdir|&l|' exp.t) > exp \
|
||||
|| framework_failure_
|
||||
ls --hyper testdir testdirl >out.t || fail=1
|
||||
strip_host_and_path <out.t >out || framework_failure_
|
||||
|
||||
Reference in New Issue
Block a user