diff options
author | amdmi3 <amdmi3@FreeBSD.org> | 2009-05-22 09:41:10 +0800 |
---|---|---|
committer | amdmi3 <amdmi3@FreeBSD.org> | 2009-05-22 09:41:10 +0800 |
commit | d64d6a5ff38aee482827a67c70a20fe4269f2b5d (patch) | |
tree | 38ebc1b74ae81ee1a27e1869ed0dfe7b0c6df452 /russian | |
parent | f09e62d9bb6a1df6a0d6ca8a49d7ff3946e05f9e (diff) | |
download | freebsd-ports-gnome-d64d6a5ff38aee482827a67c70a20fe4269f2b5d.tar.gz freebsd-ports-gnome-d64d6a5ff38aee482827a67c70a20fe4269f2b5d.tar.zst freebsd-ports-gnome-d64d6a5ff38aee482827a67c70a20fe4269f2b5d.zip |
- Fix unicode handling
PR: 134790
Submitted by: Vyacheslav Anikin <anikinsl@gmail.com> (maintainer)
Diffstat (limited to 'russian')
-rw-r--r-- | russian/rux/Makefile | 1 | ||||
-rw-r--r-- | russian/rux/files/patch-rux.c | 37 |
2 files changed, 38 insertions, 0 deletions
diff --git a/russian/rux/Makefile b/russian/rux/Makefile index e9cc4984bc37..1b524b2c736b 100644 --- a/russian/rux/Makefile +++ b/russian/rux/Makefile @@ -7,6 +7,7 @@ PORTNAME= rux PORTVERSION= 0.79 +PORTREVISION= 1 CATEGORIES= russian MASTER_SITES= SF diff --git a/russian/rux/files/patch-rux.c b/russian/rux/files/patch-rux.c new file mode 100644 index 000000000000..de062355712d --- /dev/null +++ b/russian/rux/files/patch-rux.c @@ -0,0 +1,37 @@ +--- rux.c.orig 2009-05-21 20:46:40.000000000 +0400 ++++ rux.c 2009-05-22 01:11:14.000000000 +0400 +@@ -436,9 +436,16 @@ + + #ifndef DEBUG + if (strcmp(i_cp->cp_name, "utf-8") == 0) { ++ char hook[4]; ++ hook[0] = o_cp->cp_data[6]; ++ hook[1] = o_cp->cp_data[34]; ++ hook[2] = o_cp->cp_data[18]; ++ hook[3] = o_cp->cp_data[39]; ++ + while ((c = getc(in)) != EOF) { + if (c == (u_char)0xd0 || c == (u_char)0xd1) { +- ; ++ conv_tab[0x91] = c == 0xd1 ? hook[0] : hook[1]; ++ conv_tab[0x81] = c == 0xd1 ? hook[2] : hook[3]; + } else { + putc(conv_tab[(u_char) c], out); + } +@@ -484,8 +491,16 @@ + recode_buf(u_char *conv_tab, u_char *buf, int len, FILE *out) + { + if (strcmp(i_cp->cp_name, "utf-8") == 0) { ++ char hook[4]; ++ hook[0] = o_cp->cp_data[6]; ++ hook[1] = o_cp->cp_data[34]; ++ hook[2] = o_cp->cp_data[18]; ++ hook[3] = o_cp->cp_data[39]; ++ + while (len--) { + if (*buf == (u_char)0xd0 || *buf == (u_char)0xd1) { ++ conv_tab[0x91] = *buf == 0xd1 ? hook[0] : hook[1]; ++ conv_tab[0x81] = *buf == 0xd1 ? hook[2] : hook[3]; + ++buf; + } else { + putc(conv_tab[*buf++], out); |