이 스레드의 제목이 거의 모든 것을 말해줍니다.
이 문제를 검색했을 때 내가 원하는 것을 수행한다고 하는 이라는 프로그램에 대한 언급을 찾았지만 untic
이 프로그램은 내 배포판(Debian)의 공식 패키지에는 없는 것 같습니다.
(컴파일된) terminfo에서 termcap로 이동하는 다른 방법이 있습니까?
답변1
infotocap - terminfo 설명을 termcap 설명으로 변환
주석이 달린
유틸리티는 실제로 링크입니다.
tic
, 달리다-C
모델. 다른 것을 사용할 수 있습니다tic
다음과 같은 옵션-f
그리고-x
.
이것은 소스 대 소스입니다. 컴파일된 terminfo 소스(terminfo 또는 termcap)의 경우 다음을 사용합니다.infocmp
:
생성의 원천
-C
옵션은 termcap 항목으로 직접 사용할 수 있지만 매개변수화된 모든 문자열을 termcap 형식으로 변경할 수 있는 것은 아닙니다.infocmp
대부분의 매개변수화된 정보를 변환하려는 시도가 이루어지며, 변환되지 않은 정보는 출력에서 명확하게 표시되고 주석 처리됩니다. 이는 수동으로 편집해야 합니다.
infocmp
이를 사용하는 방법은 다양합니다. termcap으로 변환하는 것은 그 중 하나일 뿐입니다.
infocmp
바이너리 terminfo 항목을 다른 terminfo 항목과 비교하고 terminfo 설명을 다시 작성하는 데 사용할 수 있습니다.use=
terminfo 필드 또는다양한 형식의 바이너리 파일(용어)에서 용어 정보 설명을 인쇄합니다. 모든 경우에 부울 필드가 먼저 인쇄되고 그 다음 숫자 필드, 마지막으로 문자열 필드가 인쇄됩니다.
tic 및 infocmp는 매뉴얼 페이지에서 처리되는 터미널 데이터베이스의 위치에 대한 정보를 가정합니다.TERMINFO
. 터미널 데이터베이스의 일부가 아닌 임의의 파일 이름의 경우 스크립트를 사용하여 기존 터미널 데이터베이스와 같은 디렉터리에 복사할 수 있습니다.
#!/bin/sh
mytemp=$(mktemp -d)
trap 'rm -rf "$mytemp"; exit 1' INT QUIT TERM HUP
trap 'rm -rf "$mytemp"; exit 0' EXIT
TERMINFO=$mytemp; export TERMINFO
TERMINFO_DIRS=$mytemp; export TERMINFO_DIRS
for name in "$@"
do
[ -f "$name" ] || continue
case $(file "$name") in
*Compiled\ *terminfo\ entry*)
actual=$(file "$name" | sed -E -e 's%^.*"([^"]+)".*$%\1%')
leader=$(echo "$actual" | sed -E -e 's%^(.).*%\1%')
part="$mytemp/$leader"
mkdir -p "$part"
cp "$name" "$part/$actual"
full="$part/$actual"
infocmp -C -T "$actual" | sed -e "s%$full%$name%"
;;
esac
done
그건 아니야완전히일반적으로 ncurses를 사용하는 일부 플랫폼은 다음과 같은 다른 구조를 사용하기 때문에term
맨 페이지.