{Vimの全能補完}{補完}{命令行}{仕類}{Vim}{やりたい}=}(6)
{田符}{expand}{仕類}=}(3)

{expand用類に指定する田符の数を自動的に計算する K#9-D657/A-DE9F}

expand用類の-t応付子に指定する田符→空白の数は,前の空白の数を足し合わせた形式でないといけない(←日本語が酷すぎる)。

要は,

<- 5 -><- 3 -><- 2 -><- 4 ->

みたいな展開を行いたければ-t 5,8,10,14と指定しなくてはいけない。
これは状況によっては面倒なので,↓こうすることで自動的に計算できるようにした。

(
export IFS=','
{
set -- '5,3,2,4'
set -- 0 $1
while [ $# -gt 1 ]; do
eval \
' shift 2
set -- '"$(($1+$2))"' "$@"'
printf "$1 "
done
} | {
eval \
' set -- '"$(cat)"
printf '%s\n' "$*"
}
)

もうちょい簡単な方法もありそうだが。

=}
{可搬運用機構界面}{仕類}=}(2)

{算術精度及び演算 K#9-D657/A-8E64}

Arithmetic Precision and Operations
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag_17_01_02_01

なお,節の題はJIS X 3010:2003のものに準じた。

演算子 ISO C 標準での等価参照
() Section 6.5.1 一次式
後置++ Section 6.5.2 後置演算子
後置--
単項+ Section 6.5.3 単項演算子
単項-
前置++
前置--
~
!
sizeof()
* Section 6.5.5 乗除演算子
/
%
+ Section 6.5.6 加減演算子
-
<< Section 6.5.7 ビット単位変位演算子
>>
<, <= Section 6.5.8 関係演算子
>, >=
== Section 6.5.9 等価演算子
!=
& Section 6.5.10 ビット単位AND演算子
^ Section 6.5.11 ビット単位排他OR演算子
| Section 6.5.12, ビット単位包含OR演算子
&& Section 6.5.13 論理AND演算子
|| Section 6.5.14 論理OR演算子
<var>式</var>?<var>式</var>:<var>式</var> Section 6.5.15 条件演算子
=, *=, /=, %=, +=, -= Section 6.5.16 代入演算子
<<=, >>=, &=, ^=, |=
if () Section 6.8.4 選択文
if () ... else
switch ()
while () Section 6.8.5 繰返文
do ... while ()
for ()
goto Section 6.8.6 分岐文
continue
break
return
{辞書}{RFC 7932「Brotli情報圧縮形式」}{Brotli}{fold}{変換}{set}{対人可読}{仕類}=}(8)

{Brotliの静的辞書の内容を対人可読形式に変換する K#9-D657/A-332D}

#!/bin/sh

: '@prefix : <http://purl.org/net/ns/doas#>. <> a :Script;
:一行説明   "Brotliの静的辞書を対人可読な形式に";
:作成日     "2021-08-11";
:公開版     ( [:版 "0.1.0"; :作成日 "2021-08-11"] );
:作成者     "cmplstofB";
:権利       "ⓒ 2021 cmplstofB";
:ライセンス <http://www.wtfpl.net/txt/copying/>;
:依存関係   "POSIX.1-2017".'

# Usage: < ./rfc7932.txt thiscmd.sh

set -o errexit; set -o nounset; set -o noclobber
umask 0027
# shellcheck disable=SC2155
export PATH="$(command -p getconf PATH)${PATH:+:$PATH}"
export POSIXLY_CORRECT='200809' UNIX_STD='2003' \
       COMMAND_MODE='unix2003' XPG_SUS_ENV='ON'

set -- "${TMPDIR:-/tmp}/${0##*/}.$$.bin"

atexit() { set -- $? "$1"
	rm -f "$2"
	trap - EXIT
	exit $1
}

trap "atexit $1" EXIT HUP INT QUIT ABRT ALRM TERM

sed -n -e '
/^Appendix A/,/^Appendix B/{
	/[[:blank:]]*'\
'\([[:xdigit:]]\{64\}\)'\
'[[:blank:]]*/!d
	 s//\1/1
	 s/../ $((0x&))/g
	 s/^/printf "%b" '\
'"$(printf "\\\\%03o"/1
	 s/$/)"/1
p
}
' | sh > "$1" &&
<<. sh | sh
set -- dmy dmy 0 \
    0  0  0 10 10 11 11 10 10 10 10 10 \
    9  9  8  7  7  8  7  7  6  6  5  5
while [ \$# -gt 1 ]; do
set -- "\$((\$# < 26 ?
  (\$1 + ((26 - \$#) *
  (\$# < 23 ? 1 << \$2 : 0)))
  : 0))" "\$@"
[ \$((27 - \$#)) -ge 1 ] && {
<<.. cat
< "$1" \
dd bs=1 skip="\$2" \
  count="\$((\$1 - \$2))" 2> /dev/null |
tr '\n' '\357' |
fold -b -w "\$((27 - \$#))" |
tr '\357' '\n'
..
}
eval ' set -- '"\$1"'
  '"\$(shift 3; printf ' %s' "\$@")"
done
.
=}
{後戻り法}{Perl言語}{鳥海 秀一}{POSIX NFA}{正規表現}{仕類}=}(6)
{仕類}
{}