Ncurses

將目前 terminfo 數據庫與 terminfo 源文件進行比較

  • August 9, 2017

我們如何將所有可用的 terminfo 條目(完整的目前編譯數據庫)與 terminfo 源文件進行比較?

infocmp實用程序具有-F選項,但需要比較兩個文件,但沒有選項可以導出所有條目並生成完整目前數據庫的文件,需要對每個條目呼叫它並導出每個條目條目分開。如果有辦法一次導出所有條目,它將分兩步完成,呼叫 infocmp 兩次(一個導出所有數據庫,另一個比較文件)

您可以將原始碼編譯到一個新目錄中並用於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

引用自:https://unix.stackexchange.com/questions/384735