From 20a0eb14ae7e1c054f59bdb68c96c609a8a82b66 Mon Sep 17 00:00:00 2001 From: Ding-Yi Chen Date: May 15 2009 05:02:32 +0000 Subject: Upstream update --- diff --git a/.cvsignore b/.cvsignore index 8950326..9f63e71 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -fbterm-1.4.tar.gz +fbterm-1.5.tar.gz diff --git a/fbterm-1.4-iminput.patch b/fbterm-1.4-iminput.patch deleted file mode 100644 index ed90826..0000000 --- a/fbterm-1.4-iminput.patch +++ /dev/null @@ -1,111 +0,0 @@ -diff -up ./src/input.cpp.iminput ./src/input.cpp ---- ./src/input.cpp.iminput 2009-03-14 12:07:59.000000000 +1000 -+++ ./src/input.cpp 2009-03-23 13:52:04.000000000 +1000 -@@ -183,30 +183,31 @@ void TtyInput::readyRead(s8 *buf, u32 le - if (len > start) PUT_KEYS(buf + start, len - start); - } - --typedef enum { -- ALT_L = 1 << 0, ALT_R = 1 << 1, -- CTRL_L = 1 << 2, CTRL_R = 1 << 3, -- SHIFT_L = 1 << 4, SHIFT_R = 1 << 5, --} ModifierType; -- --static u16 modState; -+static bool keyDown[NR_KEYS]; -+static u32 downNum; - - void TtyInput::switchIm(bool enter, bool raw) - { -- modState = 0; - mImEnable = enter; - mRawMode = (enter && raw); - - ioctl(STDIN_FILENO, KDSKBMODE, mRawMode ? K_MEDIUMRAW : K_UNICODE); - setupSysKey(mRawMode); -+ -+ if (mRawMode) { -+ downNum = 0; -+ memset(keyDown, 0, sizeof(bool) * NR_KEYS); -+ } - } - - void TtyInput::processRawKeys(s8 *buf, u32 len) - { -+ u32 start = 0; - for (u32 i = 0; i < len; i++) { - bool down = !(buf[i] & 0x80); - u16 code = buf[i] & 0x7f; -- -+ u32 orig = i; -+ - if (!code) { - if (i + 2 >= len) break; - -@@ -214,48 +215,29 @@ void TtyInput::processRawKeys(s8 *buf, u - code |= buf[++i] & 0x7f; - if (!(buf[i] & 0x80) || !(buf[i - 1] & 0x80)) continue; - } -+ if (code >= NR_KEYS) continue; - -- u16 mod = 0; -- switch (code) { -- case KEY_LEFTALT: -- mod = ALT_L; -- break; -- -- case KEY_RIGHTALT: -- mod = ALT_R; -- break; -- -- case KEY_LEFTCTRL: -- mod = CTRL_L; -- break; -- -- case KEY_RIGHTCTRL: -- mod = CTRL_R; -- break; -- -- case KEY_LEFTSHIFT: -- mod = SHIFT_L; -- break; -- -- case KEY_RIGHTSHIFT: -- mod = SHIFT_R; -- break; -- -- default: -- break; -+ if (down ^ keyDown[code]) { -+ keyDown[code] = down; -+ -+ if (down) downNum++; -+ else downNum--; -+ } else if (!down) { -+ if (orig > start) ImProxy::instance()->sendKey(buf + start, orig - start); -+ start = i + 1; - } - -- if (mod) { -- if (down) modState |= mod; -- else modState &= ~mod; -- } else if (down) { -- u16 ctrl = (CTRL_L | CTRL_R); -- if ((modState & ctrl) && !(modState & ~ctrl) && code == KEY_SPACE) { -- FbTerm::instance()->processSysKey(CTRL_SPACE); -- return; -- } -+ if (down && code == KEY_SPACE && downNum == 2 && (keyDown[KEY_LEFTCTRL] || keyDown[KEY_RIGHTCTRL])) { -+ if (orig > start) ImProxy::instance()->sendKey(buf + start, orig - start); -+ -+ s8 ctrl = 0x80 | (keyDown[KEY_LEFTCTRL] ? KEY_LEFTCTRL : KEY_RIGHTCTRL); -+ ImProxy::instance()->sendKey(&ctrl, 1); -+ -+ FbTerm::instance()->processSysKey(CTRL_SPACE); -+ return; - } - } - - ImProxy::instance()->sendKey(buf, len); -+ if (len > start) ImProxy::instance()->sendKey(buf + start, len - start); - } diff --git a/fbterm-1.5-rpmpack.patch b/fbterm-1.5-rpmpack.patch new file mode 100644 index 0000000..2589f3e --- /dev/null +++ b/fbterm-1.5-rpmpack.patch @@ -0,0 +1,18 @@ +diff -up ./src/Makefile.am.rpmpack ./src/Makefile.am +--- ./src/Makefile.am.rpmpack 2009-05-15 13:42:54.000000000 +1000 ++++ ./src/Makefile.am 2009-05-15 13:43:37.000000000 +1000 +@@ -12,11 +12,7 @@ fbterm_LDADD = lib/libshell.a @FT2_LIB@ + install-exec-hook: + KERV=`uname -r | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'`; \ + [[ $$KERV -lt 20615 ]] && exit 0; \ +- [[ "`id -u`" != "0" ]] && { \ +- echo "run 'make install' as root!"; \ +- exit 1; \ +- } || { \ +- [[ $$KERV -ge 20627 ]] \ ++ [[ $$KERV -ge 20627 ]] \ + && setcap 'cap_sys_tty_config+ep' $(DESTDIR)$(bindir)/fbterm$(EXEEXT) 2>/dev/null \ +- || chmod u+s $(DESTDIR)$(bindir)/fbterm$(EXEEXT); \ +- } ++ || chmod u+s $(DESTDIR)$(bindir)/fbterm$(EXEEXT) ++ diff --git a/fbterm.spec b/fbterm.spec index 41fc15d..2aac92d 100644 --- a/fbterm.spec +++ b/fbterm.spec @@ -1,13 +1,14 @@ Name: fbterm -Version: 1.4 +Version: 1.5 Release: 1%{?dist} License: GPLv2+ Group: Applications/System URL: http://code.google.com/p/fbterm/ Source0: http://fbterm.googlecode.com/files/%{name}-%{version}.tar.gz -#Patch0: %{name}-1.2-kernel-header.patch -#Patch1: %{name}-1.3-setcap.patch -Patch2: %{name}-%{version}-iminput.patch +#Patch0: %{name}-1.2-kernel-header.patch +#Patch1: %{name}-1.3-setcap.patch +#Patch2: %{name}-1.4-iminput.patch +Patch3: %{name}-1.5-rpmpack.patch Summary: A frame buffer terminal emulator Summary(zh_CN): 运行在帧缓冲的快速终端仿真器 Summary(zh_TW): 運行在Framebuffer的快速終端模擬機 @@ -15,6 +16,7 @@ Summary(zh_TW): 運行在Framebuffer的快速終端模擬機 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: autoconf, automake BuildRequires: fontconfig-devel gpm-devel Requires: fontconfig @@ -39,9 +41,11 @@ Features include: %setup -q #%patch0 -p0 -b .kernel-header #%patch1 -p0 -b .setcap -%patch2 -p0 -b .iminput +#%patch2 -p0 -b .iminput +%patch3 -p0 -b .rpmpack %build +autoreconf -iv %configure --disable-static --disable-rpath make %{?_smp_mflags} @@ -72,6 +76,18 @@ setcap 'cap_sys_tty_config+ep' %{_bindir}/%{name} %changelog +* Fri May 15 2009 Ding-Yi Chen - 1.5-1 +- Upstream update: + 1. added support for text rendering with backround image + 2. added command-line arguments to customize command executed in sub-window + 3. added Alt-Fn and all FbTerm's shortcuts support when input method is actived + 4. added option "-v/--verbose" to show some useful information + 5. fixed some text color issues with version 1.4 + 6. fixed encoding selection error when locale is C/POSIX + 7. fixed a bug where screen is cleared on startup even in inactive tty + 8. fixed a bug where variable HOME is not defined +- rpmpack.patch is to allow rpm buildable for non-root account. + * Mon Mar 23 2009 Ding-Yi Chen - 1.4-1 - Upstream update: 1. improved text rendering performence diff --git a/import.log b/import.log index 368fc42..dccc8ca 100644 --- a/import.log +++ b/import.log @@ -5,3 +5,4 @@ fbterm-1_2-2_fc10:HEAD:fbterm-1.2-2.fc10.src.rpm:1228959810 fbterm-1_3-0_fc10:HEAD:fbterm-1.3-0.fc10.src.rpm:1231119727 fbterm-1_3-1_fc10:HEAD:fbterm-1.3-1.fc10.src.rpm:1231208300 fbterm-1_4-1_fc10:HEAD:fbterm-1.4-1.fc10.src.rpm:1237784276 +fbterm-1_5-1_fc11:HEAD:fbterm-1.5-1.fc11.src.rpm:1242363702 diff --git a/sources b/sources index 94c765b..e6bcbb4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -58543d0e630bc9bfd7cda93b5e844564 fbterm-1.4.tar.gz +8f4eb318718aac9f16bf3bd4e401c936 fbterm-1.5.tar.gz