1: fix utf-8 decoding.
2: convert to optionng. PR: ports/169780 Submitted by: Kuan-Chung Chiu <buganini@gmail.com> [1]
This commit is contained in:
parent
284cac9d87
commit
5876ab6ca0
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=302471
2 changed files with 55 additions and 14 deletions
|
@ -7,14 +7,14 @@
|
|||
|
||||
PORTNAME= irssi
|
||||
PORTVERSION= 0.8.15
|
||||
PORTREVISION= 3
|
||||
PORTREVISION= 4
|
||||
CATEGORIES?= irc
|
||||
MASTER_SITES= http://mirror.irssi.org/
|
||||
|
||||
MAINTAINER?= vanilla@FreeBSD.org
|
||||
COMMENT?= A modular IRC client with many features
|
||||
|
||||
LIB_DEPENDS= glib-2.0:${PORTSDIR}/devel/glib20
|
||||
LIB_DEPENDS= glib-2:${PORTSDIR}/devel/glib20
|
||||
|
||||
CONFLICTS= irssi-devel-[0-9]* zh-irssi-[0-9]*
|
||||
|
||||
|
@ -26,11 +26,14 @@ WANT_PERL= yes
|
|||
|
||||
MAN1= irssi.1
|
||||
|
||||
OPTIONS= PERL "Enable perl support" on \
|
||||
PROXY "Enable proxy support" off \
|
||||
SOCKS "Enable socks proxy support" off \
|
||||
IPV6 "Enable IPv6" on \
|
||||
BOT "Enable bot" off
|
||||
OPTIONS_DEFINE= PERL PROXY SOCKS IPV6 BOT
|
||||
PERL_DESC= Perl support
|
||||
PROXY_DESC= Proxy support
|
||||
SOCKS_DESC= Socks proxy support
|
||||
IPV6_DESC= IPV6 support
|
||||
BOT_DESC= Bot support
|
||||
OPTIONS_DEFAULT= PERL IPV6
|
||||
|
||||
# USE_OPENSSL must be defined before bsd.port.pre.mk so use old schema
|
||||
# for WITH_SSL option
|
||||
|
||||
|
@ -40,11 +43,11 @@ CONFIGURE_ARGS+= --disable-ssl
|
|||
USE_OPENSSL= yes
|
||||
.endif
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
# Process options.
|
||||
|
||||
.if !defined(WITHOUT_PERL)
|
||||
.if ${PORT_OPTIONS:MPERL}
|
||||
USE_PERL5= yes
|
||||
CONFIGURE_ARGS+= --with-perl-lib=site
|
||||
PLIST_SUB+= WITH_PERL=""
|
||||
|
@ -53,23 +56,23 @@ CONFIGURE_ARGS+= --without-perl
|
|||
PLIST_SUB+= WITH_PERL="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_PROXY)
|
||||
.if ${PORT_OPTIONS:MPROXY}
|
||||
CONFIGURE_ARGS+= --with-proxy
|
||||
PLIST_SUB+= WITH_PROXY=""
|
||||
.else
|
||||
PLIST_SUB+= WITH_PROXY="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_SOCKS)
|
||||
.if ${PORT_OPTIONS:MSOCKS}
|
||||
CONFIGURE_ARGS+= --with-socks
|
||||
.endif
|
||||
|
||||
.if defined(WITHOUT_IPV6)
|
||||
.if !${PORT_OPTIONS:MIPV6}
|
||||
CONFIGURE_ARGS+= --disable-ipv6
|
||||
CATEGORIES+= ipv6
|
||||
.endif
|
||||
|
||||
.if defined(WITH_BOT)
|
||||
.if ${PORT_OPTIONS:MBOT}
|
||||
CONFIGURE_ARGS+= --with-bot
|
||||
PLIST_SUB+= WITH_BOT=""
|
||||
.else
|
||||
|
@ -92,4 +95,4 @@ post-install:
|
|||
@${ECHO_MSG} "You may install x11-themes/irssi-themes for"
|
||||
@${ECHO_MSG} " additional themes."
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
.include <bsd.port.mk>
|
||||
|
|
38
irc/irssi/files/patch-irssi-utf8
Normal file
38
irc/irssi/files/patch-irssi-utf8
Normal file
|
@ -0,0 +1,38 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
--- src/fe-common/core/utf8.h (revision 5189)
|
||||
+++ src/fe-common/core/utf8.h (working copy)
|
||||
@@ -12,5 +12,6 @@
|
||||
int mk_wcwidth(unichar c);
|
||||
|
||||
#define unichar_isprint(c) (((c) & ~0x80) >= 32)
|
||||
+#define is_utf8_leading(c) (((c) & 0xc0) != 0x80)
|
||||
|
||||
#endif
|
||||
--- src/fe-text/textbuffer.c (revision 5189)
|
||||
+++ src/fe-text/textbuffer.c (working copy)
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "module.h"
|
||||
#include "misc.h"
|
||||
#include "formats.h"
|
||||
+#include "utf8.h"
|
||||
|
||||
#include "textbuffer.h"
|
||||
|
||||
@@ -157,6 +158,16 @@
|
||||
if (left > 0 && data[left-1] == 0)
|
||||
left--; /* don't split the commands */
|
||||
|
||||
+ /* don't split utf-8 character. (assume we can split non-utf8 anywhere. */
|
||||
+ if (left < TEXT_CHUNK_USABLE_SIZE && !is_utf8_leading(data[left])) {
|
||||
+ int i;
|
||||
+ for (i = 1; i < 4 && left >= i; i++)
|
||||
+ if (is_utf8_leading(data[left - i])) {
|
||||
+ left -= i;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
memcpy(chunk->buffer + chunk->pos, data, left);
|
||||
chunk->pos += left;
|
Loading…
Reference in a new issue