[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:02977] kterm TERMCAP bug-fix patch
- From: mkojima@xxxxxxxxxxxx
- Subject: [debian-users:02977] kterm TERMCAP bug-fix patch
- Date: Mon, 24 Nov 1997 13:46:51 +0900
- X-dispatcher: imput version 971024
- X-ml-count: 02977
- X-ml-driver: CMLD (Version 2.5)
- X-ml-name: debian-users
- Message-id: <199711240456.NAA02193@xxxxxxxxxxxxxxxxx>
- X-mailer: Mew version 1.70 on Emacs 19.34.1 / Mule 2.3
小島基靖と申します.
kterm-6.2.0 で -lncurses でコンパイルした時
おかしな TERMCAP が 設定される件の修正 patch です.
xfree86_3.3.orig.tar.gz
での xterm のソースを参考に修正してます.
動作確認後 反映していただきたく.> Yoshiaki Yanagihara <yochi@xxxxxxxxxxx> 様.
kterm-6.2.0.orig.tar.gz に当ててください.
============ ここから ==========================================
--- main.c.orig Fri Jul 12 14:01:38 1996
+++ main.c Sun Nov 23 22:04:08 1997
@@ -2253,14 +2253,17 @@
#ifndef KTERM_NOTEK
}
#endif /* !KTERM_NOTEK */
+
+ *ptr = 0;
TermName = NULL;
if (resource.term_name) {
if (tgetent (ptr, resource.term_name) == 1) {
TermName = resource.term_name;
+ if (*ptr)
#ifndef KTERM_NOTEK
- if (!screen->TekEmu)
+ if (!screen->TekEmu)
#endif /* !KTERM_NOTEK */
- resize (screen, TermName, termcap, newtc);
+ resize (screen, TermName, termcap, newtc);
} else {
fprintf (stderr, "%s: invalid termcap entry \"%s\".\n",
ProgramName, resource.term_name);
@@ -2270,10 +2273,11 @@
while (*envnew != NULL) {
if(tgetent(ptr, *envnew) == 1) {
TermName = *envnew;
+ if (*ptr)
#ifndef KTERM_NOTEK
- if(!screen->TekEmu)
+ if(!screen->TekEmu)
#endif /* !KTERM_NOTEK */
- resize(screen, TermName, termcap, newtc);
+ resize(screen, TermName, termcap, newtc);
break;
}
envnew++;
@@ -3149,8 +3153,10 @@
# ifndef KTERM_NOTEK
if(!screen->TekEmu) {
# endif /* !KTERM_NOTEK */
- strcpy (termcap, newtc);
- resize (screen, TermName, termcap, newtc);
+ if(*newtc) {
+ strcpy (termcap, newtc);
+ resize (screen, TermName, termcap, newtc);
+ }
# ifndef KTERM_NOTEK
}
# endif /* !KTERM_NOTEK */
@@ -3166,9 +3172,11 @@
remove_termcap_entry (newtc, ":im=");
remove_termcap_entry (newtc, ":ei=");
remove_termcap_entry (newtc, ":mi");
- strcat (newtc, ":im=\\E[4h:ei=\\E[4l:mi:");
+ if (*newtc)
+ strcat (newtc, ":im=\\E[4h:ei=\\E[4l:mi:");
}
- Setenv ("TERMCAP=", newtc);
+ if (*newtc)
+ Setenv ("TERMCAP=", newtc);
# ifdef sony
switch (jmode & KM_KANJI) {
case KM_JIS:
============ ここまで ==========================================
以前
>From: mkojima@xxxxxxxxxxxx
>Subject: [debian-users:02867] Re: [Q] lynx on kterm
>Date: Sun, 16 Nov 1997 04:58:43 +0900
>Message-ID: <199711152007.FAA06004@xxxxxxxxxxxxxxxxx>
>
>> 小島基靖と申します.
で,出した patch は,できがよくないので破棄してください.
今度はちゃんと patchの動作を把握しているので大丈夫ですが,
オリジナルのbug もしっかり残ってます.
Known bug :
Q1) 環境変数 TERMCAP=co#80:li#24:
が設定された ターミナルから,kterm を起動すると
TERMCAP=co#80:li#24:
が引き継がれ,画面サイズを変更しても更新されない.
A1) XFree86 3.3 付属の xterm でも直っておらず,対処してません.
正常な TERMCAP entry を設定するか,又は 環境変数 TERMCAP を消
すことで 正常に動作します.
> あと,初歩的な質問ですが,最新の xterm のソースってどこにあるのでしょう?
結局 以下の URLを見付けて
http://ring.nacsis.ac.jp/archives/unix/XFree86/3.3/untarred/xc/programs/xterm/
展開済のものをもらって来ました.
# これで,やっと一段落.
-----
小島基靖 Private E-mail: mkojima@xxxxxxxxxxxx