現在のterminfoデータベースをterminfoソースファイルと比較します。

現在のterminfoデータベースをterminfoソースファイルと比較します。

利用可能なすべてのterminfoエントリ(現在コンパイルされたデータベース全体)をterminfoソースファイルとどのように比較しますか?

ユーティリティにはオプションがinfocmpあります-Fが、2つのファイルを比較する必要がありますが、すべてのエントリをエクスポートしてデータベース全体のファイルを生成するオプションはありません。各項目に対して呼び出す必要があるため、各項目を個別にエクスポートする必要があります。すべてのエントリを一度にエクスポートする方法がある場合は、infocmpを2回呼び出す2つの手順で実行できます(一度はすべてのデータベースをエクスポートし、もう1つはファイルを比較します)。

ベストアンサー1

ソースコードを新しいディレクトリにコンパイルし、それを使用してinfocmp -d各項目を比較できます。

mkdir -p dir && cd dir
TERMINFO=$PWD tic -x /path/to/terminfo.src
for entry in */*; do
  infocmp -x -d -B "$PWD" "${entry#*/}" "${entry#*/}"
done

関連コンテキストとの違いのみを印刷するには、次のようにします。

mkdir -p dir && cd dir
TERMINFO=$PWD tic -x /path/to/terminfo.src
for entry in */*; do
  LC_ALL=C infocmp -x -d -B "$PWD" "${entry#*/}" "${entry#*/}" |
    awk '
      /^comparing/ {entry=$1" "$2; next}
      $1 == "comparing" {section=$0; next}
      entry {print entry; entry = 0}
      section {print section; section = 0}
      {print}'
done

おすすめ記事