summaryrefslogtreecommitdiff
path: root/app-i18n/canfep/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:56:41 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 20:56:41 +0100
commitd87262dd706fec50cd150aab3e93883b6337466d (patch)
tree246b44c33ad7a57550430b0a60fa0df86a3c9e68 /app-i18n/canfep/files
parent71bc00c87bba1ce31de0dac6c3b7fd1aee6917fc (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'app-i18n/canfep/files')
-rw-r--r--app-i18n/canfep/files/canfep-posix-pty.patch67
-rw-r--r--app-i18n/canfep/files/canfep-termcap.patch266
2 files changed, 0 insertions, 333 deletions
diff --git a/app-i18n/canfep/files/canfep-posix-pty.patch b/app-i18n/canfep/files/canfep-posix-pty.patch
deleted file mode 100644
index caa451232ef4..000000000000
--- a/app-i18n/canfep/files/canfep-posix-pty.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-https://bugs.gentoo.org/show_bug.cgi?id=212709
-
-Author: OKUMURA N. Shin-ya <oku.ns@dream.com>
-
---- a/pty.C
-+++ b/pty.C
-@@ -257,6 +257,23 @@
- }
- }
-
-+#if defined(_POSIX_C_SOURCE)
-+ // BSD pty が開けないので、POSIX の方法を試す
-+ if ((master = posix_openpt(O_RDWR)) >= 0) {
-+ if (grantpt(master) == 0 && unlockpt(master) == 0) {
-+ // マスタデバイス名は固定
-+ strcpy(line, "/dev/ptmx");
-+ tcgetattr(0, &tt);
-+ tt.c_iflag &= ~ISTRIP;
-+ ioctl(0, TIOCGWINSZ, (char*) &win);
-+ return;
-+ }
-+ close(master);
-+ } else {
-+ perror("/dev/ptmx");
-+ }
-+#endif // _POSIX_C_SOURCE
-+
- printf("Out of pty's\n");
- fail();
- }
-@@ -265,12 +282,36 @@
- void
- Pty::getslave()
- {
-+#if defined(_POSIX_C_SOURCE)
-+ // マスタデバイスが POSIX 方式の場合
-+ if (strcmp(line, "/dev/ptmx") == 0) {
-+ char *slave_devname = ptsname(master);
-+ if (slave_devname == NULL) {
-+ perror("ptsname");
-+ fail();
-+ }
-+ slave = open(slave_devname, O_RDWR);
-+ if (slave < 0) {
-+ perror(slave_devname);
-+ fail();
-+ }
-+ strcpy(line, slave_devname);
-+ } else {
-+ line[strlen("/dev/")] = 't';
-+ slave = open(line, O_RDWR);
-+ if (slave < 0) {
-+ perror(line);
-+ fail();
-+ }
-+ }
-+#else // ! _POSIX_C_SOURCE
- line[strlen("/dev/")] = 't';
- slave = open(line, O_RDWR);
- if (slave < 0) {
- perror(line);
- fail();
- }
-+#endif // _POSIX_C_SOURCE
- tcsetattr(slave, TCSAFLUSH, &tt);
- if (!hs)
- win.ws_row--;
diff --git a/app-i18n/canfep/files/canfep-termcap.patch b/app-i18n/canfep/files/canfep-termcap.patch
deleted file mode 100644
index afd215b07e79..000000000000
--- a/app-i18n/canfep/files/canfep-termcap.patch
+++ /dev/null
@@ -1,266 +0,0 @@
---- a/pty.C
-+++ b/pty.C
-@@ -4,9 +4,18 @@
- int Pty::child = 0;
- struct termios Pty::tt;
- int Pty::wfd = 0;
-+char Pty::buf[] = "";
-+char Pty::funcstr[] = "";
- int Pty::hs = 0;
-+char* Pty::so = 0;
-+char* Pty::se = 0;
-+char* Pty::us = 0;
-+char* Pty::ue = 0;
-+char* Pty::sc = 0;
-+char* Pty::rc = 0;
- char* Pty::ce = 0;
- char* Pty::ts = 0;
-+char* Pty::fs = 0;
- char* Pty::ds = 0;
- char Pty::endstr[] = "";
- char Pty::endmsg[] = "";
-@@ -14,88 +23,7 @@
- // コンストラクタだよん
- Pty::Pty(int ac, char** av, char* amsg, char* emsg)
- {
-- // 環境変数 TERM のエントリを取得
-- char buff[BUFSIZ];
-- char* term = getenv("TERM");
-- if (!term)
-- term = "vt100";
-- int ret = tgetent(buff, term);
-- if (ret != 1) {
-- tgetent(buff, "vt100");
-- putenv("TERM=vt100");
-- }
--
-- // termcap から装飾用のエントリを取ってくる
-- char funcstr[BUFSIZ];
-- char* pt = funcstr;
--
-- // スタンドアウト (反転)
-- so = tgetstr("so", &pt);
-- adjstr(so);
-- se = tgetstr("se", &pt);
-- adjstr(se);
--
-- // アンダーライン (下線)
-- us = tgetstr("us", &pt);
-- adjstr(us);
-- ue = tgetstr("ue", &pt);
-- adjstr(ue);
--
-- // カーソル位置の保存,保存した位置への復帰
-- sc = tgetstr("sc", &pt);
-- adjstr(sc);
-- rc = tgetstr("rc", &pt);
-- adjstr(rc);
--
-- // カーソル位置から行の最後までを削除する
-- ce = tgetstr("ce", &pt);
-- adjstr(ce);
--
-- // ステータスラインを持っているかどうか
-- hs = tgetflag("hs");
--
-- // kon と jfbterm ではステータスラインを使わない
-- if (strcmp(term, "kon") == 0)
-- hs = 0;
-- if (strcmp(term, "jfbterm") == 0)
-- hs = 0;
--
-- // ステータスラインへ移動,戻る
-- if (hs) {
-- ts = tgoto(tgetstr("ts", &pt), 0, 0);
-- adjstr(ts);
-- fs = tgetstr("fs", &pt);
-- adjstr(fs);
-- ds = tgetstr("ds", &pt);
-- adjstr(ds);
-- if (ds) {
-- strcat(endstr, ds);
-- strcat(endstr, ce);
-- }
-- }
-- else {
-- char* cs = tgoto(tgetstr("cs", &pt), tgetnum("li") - 2, 0);
-- adjstr(cs);
-- if (cs) {
-- write(1, ce, strlen(ce));
-- write(1, cs, strlen(cs));
-- }
-- char* cl = tgetstr("cl", &pt);
-- adjstr(cl);
-- if (cl) {
-- write(1, cl, strlen(cl));
-- strcat(endstr, cl);
-- }
-- ds = tgoto(tgetstr("cs", &pt), tgetnum("li") - 1, 0);
-- adjstr(ds);
-- if (ds) {
-- strcat(endstr, ds);
-- strcat(endstr, ce);
-- }
-- ts = tgoto(tgetstr("cm", &pt), 0, tgetnum("li") - 1);
-- adjstr(ts);
-- fs = rc;
-- }
-+ gettermcap();
-
- // 開始と終了のメッセージ
- if (amsg && ac == 1)
-@@ -209,21 +137,75 @@
- done();
- }
-
--// termcap エントリからパディングを削除する
- void
--Pty::adjstr(char* str)
-+Pty::gettermcap()
- {
-- char* sp = strdup(str);
-- char* p = sp;
-- while (*p != '\0') {
-- if (strncmp(p, "$<", 2) == 0) {
-- while (*p != '>')
-- p++;
-- *p = '\0';
-+ // 環境変数 TERM のエントリを取得
-+ char* term = getenv("TERM");
-+ if (!term)
-+ term = "vt100";
-+ int ret = tgetent(buf, term);
-+ if (ret != 1) {
-+ tgetent(buf, "vt100");
-+ putenv("TERM=vt100");
-+ }
-+
-+ // termcap から装飾用のエントリを取ってくる
-+ char* pt = funcstr;
-+
-+ // スタンドアウト (反転)
-+ so = tgetstr("so", &pt);
-+ se = tgetstr("se", &pt);
-+
-+ // アンダーライン (下線)
-+ us = tgetstr("us", &pt);
-+ ue = tgetstr("ue", &pt);
-+
-+ // カーソル位置の保存,保存した位置への復帰
-+ sc = tgetstr("sc", &pt);
-+ rc = tgetstr("rc", &pt);
-+
-+ // カーソル位置から行の最後までを削除する
-+ ce = tgetstr("ce", &pt);
-+
-+ // ステータスラインを持っているかどうか
-+ hs = tgetflag("hs");
-+
-+ // kon と jfbterm ではステータスラインを使わない
-+ if (strcmp(term, "kon") == 0)
-+ hs = 0;
-+ if (strcmp(term, "jfbterm") == 0)
-+ hs = 0;
-+
-+ // ステータスラインへ移動,戻る
-+ if (hs) {
-+ ts = tgoto(tgetstr("ts", &pt), 0, 0);
-+ fs = tgetstr("fs", &pt);
-+ ds = tgetstr("ds", &pt);
-+ if (ds) {
-+ strcat(endstr, ds);
-+ strcat(endstr, ce);
- }
-- *str++ = *p++;
- }
-- free(sp);
-+ else {
-+ char* cs = tgoto(tgetstr("cs", &pt), tgetnum("li") - 2, 0);
-+ if (cs) {
-+ write(1, ce, strlen(ce));
-+ write(1, cs, strlen(cs));
-+ }
-+ char* cl = tgetstr("cl", &pt);
-+ if (cl) {
-+ write(1, cl, strlen(cl));
-+ strcat(endstr, cl);
-+ }
-+ ds = tgoto(tgetstr("cs", &pt), tgetnum("li") - 1, 0);
-+ if (ds) {
-+ strcat(endstr, ds);
-+ strcat(endstr, ce);
-+ }
-+ ts = tgoto(tgetstr("cm", &pt), 0, tgetnum("li") - 1);
-+ fs = rc;
-+ }
- }
-
- // マスタデバイスを取る
-@@ -327,34 +309,7 @@
- {
- signal(SIGWINCH, SIG_IGN);
-
-- // ステータスラインが使えない場合は cs/ds/ts を取り直す
-- if (!hs) {
-- char buff[BUFSIZ];
-- char* term = getenv("TERM");
-- tgetent(buff, term);
-- char funcstr[BUFSIZ];
-- char* pt = funcstr;
-- char* cs = tgoto(tgetstr("cs", &pt), tgetnum("li") - 2, 0);
-- adjstr(cs);
-- if (cs) {
-- write(1, ce, strlen(ce));
-- write(1, cs, strlen(cs));
-- }
-- char* cl = tgetstr("cl", &pt);
-- adjstr(cl);
-- if (cl) {
-- write(1, cl, strlen(cl));
-- strcpy(endstr, cl);
-- }
-- ds = tgoto(tgetstr("cs", &pt), tgetnum("li") - 1, 0);
-- adjstr(ds);
-- if (ds) {
-- strcat(endstr, ds);
-- strcat(endstr, ce);
-- }
-- ts = tgoto(tgetstr("cm", &pt), 0, tgetnum("li") - 1);
-- adjstr(ts);
-- }
-+ gettermcap();
-
- // ウィンドウのサイズを設定し直す (stty -a の 行数/桁数 等)
- struct winsize win;
---- a/pty.H
-+++ b/pty.H
-@@ -50,18 +50,21 @@
- int rfd;
- static int wfd;
- private:
-- static void adjstr(char* str);
-+ static char buf[BUFSIZ];
-+ static char funcstr[BUFSIZ];
-+private:
-+ static void gettermcap();
- protected:
- static int hs;
-- char* so;
-- char* se;
-- char* us;
-- char* ue;
-- char* sc;
-- char* rc;
-+ static char* so;
-+ static char* se;
-+ static char* us;
-+ static char* ue;
-+ static char* sc;
-+ static char* rc;
- static char* ce;
- static char* ts;
-- char* fs;
-+ static char* fs;
- static char* ds;
- private:
- static void finish();