mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
man: fix @BUILD_ROOT@ insertion
@BUILD_ROOT@ is replaced with the _quoted_ build path. Hence, if @BUILD_ROOT@ is quoted, the result is doubly quoted, and the script does not work if the path contains spaces. Fixes #37953.
This commit is contained in:
committed by
Luca Boccassi
parent
51cc3825d1
commit
aecb6eaed7
10
man/html.in
10
man/html.in
@@ -8,21 +8,21 @@ if [ -z "$1" ]; then
|
||||
fi
|
||||
|
||||
# make sure the rules have been regenerated (in case update-man-rules was just run)
|
||||
ninja -C "@BUILD_ROOT@" src/version/version.h
|
||||
ninja -C @BUILD_ROOT@ src/version/version.h
|
||||
|
||||
target="man/$1.html"
|
||||
ninja -C "@BUILD_ROOT@" "$target"
|
||||
ninja -C @BUILD_ROOT@ "$target"
|
||||
|
||||
fullname="@BUILD_ROOT@/$target"
|
||||
fullname=@BUILD_ROOT@/"$target"
|
||||
if [ -f "$fullname" ]; then
|
||||
redirect="$(readlink "$fullname" || :)"
|
||||
else
|
||||
redirect=""
|
||||
fi
|
||||
if [ -n "$redirect" ]; then
|
||||
ninja -C "@BUILD_ROOT@" "man/$redirect"
|
||||
ninja -C @BUILD_ROOT@ "man/$redirect"
|
||||
|
||||
fullname="@BUILD_ROOT@/man/$redirect"
|
||||
fullname=@BUILD_ROOT@/man/"$redirect"
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
14
man/man.in
14
man/man.in
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Use: $0 page-name (with no section suffix)"
|
||||
@@ -9,22 +9,22 @@ if [ -z "$1" ]; then
|
||||
fi
|
||||
|
||||
# make sure the rules have been regenerated (in case update-man-rules was just run)
|
||||
ninja -C "@BUILD_ROOT@" src/version/version.h
|
||||
ninja -C @BUILD_ROOT@ src/version/version.h
|
||||
|
||||
page="$(echo "$1" | sed 's/\./\\./')"
|
||||
target=$(ninja -C "@BUILD_ROOT@" -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
|
||||
target=$(ninja -C @BUILD_ROOT@ -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
|
||||
if [ -z "$target" ]; then
|
||||
echo "Cannot find page $1"
|
||||
exit 1
|
||||
fi
|
||||
ninja -C "@BUILD_ROOT@" "$target"
|
||||
ninja -C @BUILD_ROOT@ "$target"
|
||||
|
||||
fullname="@BUILD_ROOT@/$target"
|
||||
fullname=@BUILD_ROOT@/"$target"
|
||||
redirect="$(sed -n -r '1 s|^\.so man[0-9]/(.*)|\1|p' "$fullname")"
|
||||
if [ -n "$redirect" ]; then
|
||||
ninja -C "@BUILD_ROOT@" "man/$redirect"
|
||||
ninja -C @BUILD_ROOT@ "man/$redirect"
|
||||
|
||||
fullname="@BUILD_ROOT@/man/$redirect"
|
||||
fullname=@BUILD_ROOT@/man/"$redirect"
|
||||
fi
|
||||
|
||||
exec man "$fullname"
|
||||
|
||||
Reference in New Issue
Block a user