Ncurses
將目前 terminfo 數據庫與 terminfo 源文件進行比較
我們如何將所有可用的 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