#!/bin/sh # Copyright 2022 - 2023 Paul Hänsch # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR # IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. . "$_EXEC/cgilite/cgilite.sh" . "$_EXEC/tools.sh" . "$_EXEC/acl.sh" _(){ printf %s\\n "$*"; } [ "${LANGUAGE}" -a -r "${_EXEC}/l10n/${LANGUAGE}.sh" ] && . "${_EXEC}/l10n/${LANGUAGE}.sh" LIST=true DIFF= while [ $# -gt 0 ]; do case $1 in --list) LIST=true shift 1 ;; --no-list) LIST= shift 1 ;; --diff) DIFF=true shift 1 ;; --no-diff) DIFF= shift 1 ;; *)page="$1" shift 1 ;; esac; done page_abs="$(page_abs "$page")" page_default="${page_abs%:*/}" if ! acl_read "$page_abs"; then return 0 fi printf '
\n' if [ "$REV_PAGES" != true ]; then printf '
%s
' "$(_ GIT is not available to handle revisioning.)" exit 1 fi if [ "$LIST" = true ]; then printf '\n' fi if [ "$DIFF" = true -a "$LANGUAGE_DEFAULT" -a "$page_default" != "$page_abs" ]; then commit="$(git -C "$_DATA" log --pretty=format:%H -- "pages${page_abs}#page.md" |head -n1)" printf '

%s

' "$(_ 'Latest changes to the original language page')" git -C "$_DATA" diff -U3 "$commit" -- "pages${page_default}#page.md" |tail -n+5 \ | while read -r diff; do case $diff in @@\ *\ @@*) line="${diff#@@ * @@}" num="${diff%"${line}"}" printf '%s\n' "$(HTML "$num")" printf '%s\n' "$(HTML "$line")" ;; -*) printf '%s\n' "$(HTML "$diff")";; +*) printf '%s\n' "$(HTML "$diff")";; \ *) printf '%s\n' "$(HTML "$diff")";; \\\ *) printf '%s\n' "$(HTML "$diff")";; esac; done printf '
' fi printf '
\n'