app-i18n/canna: new package, add 3.7_p3-r4

Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
Alessandro Barbieri
2022-06-22 04:34:24 +02:00
parent 1a5c418638
commit 3a19c07b16
35 changed files with 1652 additions and 0 deletions

2
app-i18n/canna/Manifest Normal file
View File

@@ -0,0 +1,2 @@
DIST 09_fix_manpages_error.patch 35789 BLAKE2B 83765aef44cf459922b027d6ea5e083fc793da5cff422fd4aae68d4fd2b921553b32f0d5afb488141dd8b87ceeb3495f256b33a3bb55fcd6c959a117da5ea015 SHA512 6b80744743a0421fdac30d4d470f3e0cc53c5aedaa3b9ca0c7b12db587c2dd02333d166fabda428dd8618a36b5b559dfd6a64db44b98d490d8a920703c38f6b4
DIST Canna37p3.tar.bz2 1263065 BLAKE2B b5fb496c0ef71dc57b2da1409eea2238ea62ece3286d498d694bc7a18cb0f5e052dca95d692b4302988acd2199d350b893ae4aedc91aab0b737c3e0675be9cba SHA512 82846f2393aa2654dd2c97a93178098b8bd11e5409b584447f1b6fdf303adacc9802e2293cafd98b68af8b69622625ed00aa9712bf270feaa119adfdf4211158

View File

@@ -0,0 +1,207 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools cannadic edo systemd tmpfiles toolchain-funcs
MY_P="Canna${PV//[._]/}"
MYPV="${PV/_/}"
DESCRIPTION="A client-server based Kana-Kanji conversion system"
HOMEPAGE="http://canna.osdn.jp/"
SRC_URI="
mirror://sourceforge.jp/${PN}/9565/${MY_P}.tar.bz2
https://sources.debian.org/data/main/c/${PN}/${MYPV}-19/debian/patches/09_fix_manpages_error.patch
"
S="${WORKDIR}/${MY_P}"
LICENSE="MIT GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="canuum doc ipv6"
RDEPEND="
acct-group/canna
acct-user/canna
canuum? (
dev-libs/libspt
sys-libs/ncurses:=
)
"
DEPEND="${RDEPEND}"
BDEPEND="
x11-misc/gccmakedep
x11-misc/imake
canuum? ( virtual/pkgconfig )
doc? (
app-text/ghostscript-gpl
dev-texlive/texlive-langjapanese
dev-texlive/texlive-latexrecommended
)
"
PATCHES=(
"${FILESDIR}/Canna-3.6-dont-grab-ctrl-o.patch"
"${FILESDIR}/Canna-oldsock.patch"
"${FILESDIR}/Canna-3.6-fix-warnings.patch"
"${FILESDIR}/Canna-3.6-wconv.patch"
"${FILESDIR}/Canna-3.7p1-fix-duplicated-strings.patch"
"${FILESDIR}/Canna-3.7p1-notimeout.patch"
"${FILESDIR}/Canna-3.7p3-fix-gcc4-warning.patch"
"${FILESDIR}/Canna-3.7p3-redecl.patch"
"${FILESDIR}/Canna-3.7p3-yenbs.patch"
"${FILESDIR}/${PN}-gentoo.patch"
"${FILESDIR}/${PN}-05_fix_spelling_error.patch"
"${FILESDIR}/${PN}-06_fix_manpages_error.patch"
"${FILESDIR}/${PN}-07_fix_ftbfs_on_hurd-i386.patch"
"${FILESDIR}/${PN}-Wformat.patch"
"${FILESDIR}/${PN}-Wformat-security.patch"
"${DISTDIR}/09_fix_manpages_error.patch"
"${FILESDIR}/${PN}-10_fix_configure.ac.patch"
"${FILESDIR}/${PN}-11_fix_spelling_error_in_binary.patch"
"${FILESDIR}/${PN}-12_make_the_output_of_mkbindic_reproducible.patch"
"${FILESDIR}/${PN}-canuum.patch"
"${FILESDIR}/${PN}-kpdef.patch"
"${FILESDIR}/${PN}-overflow.patch"
"${FILESDIR}/${PN}-posix-sort.patch"
"${FILESDIR}/${PN}-respect-flags.patch"
"${FILESDIR}/${PN}-rundir.patch"
)
src_prepare() {
tc-export CC LD AR
export CDEBUGFLAGS="${CFLAGS}"
export LOCAL_LDFLAGS="${LDFLAGS}"
export SHLIBGLOBALSFLAGS="${LDFLAGS}"
export LOCAL_LDFLAGS="${LDFLAGS}"
export CCOPTIONS="${CFLAGS} ${CPPFLAGS}"
default
sed \
-e "/DefLibCannaDir/s:/lib$:/$(get_libdir):" \
-e "/UseInet6/s:0:$(usex ipv6 1 0):" \
-i ${PN^c}.conf \
|| die
eautoreconf
rm -rf autom4te.cache || die
if use canuum; then
pushd canuum || die
mv configure.{in,ac} || die
eautoreconf
rm -rf autom4te.cache || die
popd || die
fi
}
src_configure() {
xmkmf -a || die
if use canuum; then
pushd canuum >/dev/null || die
xmkmf -a || die
# workaround for sys-libs/ncurses[tinfo]
sed -i "/^TERMCAP_LIB/s:=.*:=$($(tc-getPKG_CONFIG) --libs ncurses):" Makefile || die
popd >/dev/null || die
fi
if use doc; then
pushd doc/man/guide/tex >/dev/null || die
xmkmf -a || die
popd >/dev/null || die
fi
}
src_compile() {
# bug #279706
emake -j1 canna \
CC="${CC}" \
AR="${AR} -cq" \
CDEBUGFLAGS="${CFLAGS}" \
LOCAL_LDFLAGS="${LDFLAGS}" \
SHLIBGLOBALSFLAGS="${LDFLAGS}" \
CCOPTIONS="${CFLAGS} ${CPPFLAGS}"
edo ${CC} ${CFLAGS} ${LDFLAGS} -fPIE "${FILESDIR}/cannaping.c" -o ./misc/cannaping -I./include -L./lib/canna -lcanna
if use canuum; then
einfo "Compiling canuum"
emake -C canuum -j1 canuum \
CC="${CC}" \
AR="${AR} -cq" \
CDEBUGFLAGS="${CFLAGS}" \
LOCAL_LDFLAGS="${LDFLAGS}" \
SHLIBGLOBALSFLAGS="${LDFLAGS}" \
CCOPTIONS="${CFLAGS} ${CPPFLAGS}"
fi
if use doc; then
# NOTE: build fails if infinality enabled in fontconfig
einfo "Compiling DVI, PS, and PDF documents"
# bug #223077
export JLATEXCMD="platex -kanji=euc"
export DVI2PSCMD="dvips"
export VARTEXFONTS="${T}/fonts"
emake -C doc/man/guide/tex -j1 canna.ps canna.pdf
fi
}
src_install() {
emake DESTDIR="${D}" install install.man
einstalldocs
dodoc *CHANGES* INSTALL* RKCCONF* WHATIS*
if use canuum; then
emake -C canuum DESTDIR="${D}" install install.man
docinto canuum
dodoc README.jp
fi
use doc && dodoc doc/man/guide/tex/canna.{dvi,ps,pdf}
# for backward compatibility
dosbin "${FILESDIR}/update-canna-dics_dir"
dobin ./misc/cannaping
exeinto /usr/libexec/canna
doexe dic/ideo/pubdic/pod
insinto /etc
newins "${FILESDIR}/canna.hosts" hosts.canna
insinto /etc/canna
newins "${FILESDIR}/dot-canna" "default.canna"
newins "${FILESDIR}/canna.hosts" "cannahosts"
insinto /etc/canna/dics.dir.d
newins "${ED}/var/lib/canna/dic/canna/dics.dir" 00canna.dics.dir
rm -r "${ED}/var/lib/canna/dic/canna/dics.dir" || die
keepdir /var/lib/canna/dic/{user,group}
fowners canna:canna /var/lib/canna
fperms 0775 /var/lib/canna/dic/{user,group}
keepdir /var/log/canna
fowners canna:canna /var/log/canna
newconfd "${FILESDIR}/canna.confd" canna
newinitd "${FILESDIR}/canna.initd" canna
systemd_dounit "${FILESDIR}/canna.service"
newtmpfiles "${FILESDIR}/canna-tmpfiles.conf" "canna.conf"
find "${ED}" -type f -name "*.a" -delete || die
}
pkg_postinst() {
tmpfiles_process canna.conf
update-cannadic-dir
if ! locale -a | grep -iq "ja_JP.eucjp"; then
elog "Some dictionary tools in this package require ja_JP.EUC-JP locale."
elog
elog "# echo 'ja_JP.EUC-JP EUC-JP' >> ${EROOT}/etc/locale.gen"
elog "# locale-gen"
elog
fi
}

View File

@@ -0,0 +1,11 @@
--- a/lib/canna/alphamap.h
+++ b/lib/canna/alphamap.h
@@ -65,7 +65,7 @@
/* C-l */ CANNA_FN_SelfInsert,
/* C-m */ CANNA_FN_SelfInsert,
/* C-n */ CANNA_FN_SelfInsert,
-/* C-o */ CANNA_FN_JapaneseMode,
+/* C-o */ CANNA_FN_SelfInsert,
/* C-p */ CANNA_FN_SelfInsert,
/* C-q */ CANNA_FN_SelfInsert,
/* C-r */ CANNA_FN_SelfInsert,

View File

@@ -0,0 +1,10 @@
--- a/lib/canna/kctrl.c
+++ b/lib/canna/kctrl.c
@@ -27,6 +27,7 @@
#include "canna.h"
#include <errno.h>
+#include <string.h>
#include <sys/types.h>
#include <canna/mfdef.h>

View File

@@ -0,0 +1,18 @@
--- a/server/wconvert.c
+++ b/server/wconvert.c
@@ -2096,12 +2096,12 @@
char *buf = (char *)0;
if (validcontext(cxnum, client, wThrough)) {
- buf = malloc((int)Request.type20.bufsize);
+ content_size = Request.type20.datalen - (SIZEOFINT * 2 + SIZEOFSHORT);
+ buf = malloc(content_size);
if (buf) {
- content_size = Request.type20.datalen - (SIZEOFINT * 2 + SIZEOFSHORT);
bcopy(Request.type20.buf, buf, content_size);
stat = size = RkThrough(cxnum, Request.type20.command,
- buf, content_size, (int)Request.type20.bufsize);
+ buf, content_size, content_size);
}
}
retval = SendType6Reply(client, wThrough, EXTPROTO, stat, buf, size);

View File

@@ -0,0 +1,93 @@
--- a/lib/canna/romaji.c
+++ b/lib/canna/romaji.c
@@ -21,7 +21,7 @@
*/
#if !defined(lint) && !defined(__CODECENTER__)
-static char rcs_id[] = "@(#) 102.1 $Id: romaji.c,v 1.10 2003/09/17 08:50:53 aida_s Exp $";
+static char rcs_id[] = "@(#) 102.1 $Id: romaji.c,v 1.11 2004/03/15 04:33:23 aida_s Exp $";
#endif /* lint */
#include "canna.h"
@@ -2626,6 +2626,7 @@
yc->englishtype = CANNA_ENG_KANA;
yc->cStartp = yc->cRStartp = 0;
yc->jishu_kEndp = 0;
+ yc->n_susp_chars = 0;
}
static int
@@ -2782,8 +2783,13 @@
}
yc->last_rule = 0;
howManyDelete = howFarToGoBackward(yc);
- if (howManyDelete > 0 && (yc->generalFlags & CANNA_YOMI_BREAK_ROMAN)) {
- yc->generalFlags &= ~CANNA_YOMI_BREAK_ROMAN;
+ if (howManyDelete > 0 && (yc->generalFlags & CANNA_YOMI_BREAK_ROMAN)
+ && (yc->kAttr[yc->kCurs] & SENTOU)) {
+ /*
+ * ローマ字1文字に対応する仮名を消した時はローマ字、仮名とも
+ * SENTOUフラグが1個減る。
+ * そうでないときはSENTOUフラグの個数は変わらない
+ */
yc->rStartp = yc->rCurs - 1;
while ( yc->rStartp > 0 && !(yc->rAttr[yc->rStartp] & SENTOU) ) {
yc->rStartp--;
@@ -2792,16 +2798,23 @@
yc->kRStartp = yc->kCurs - 1;
while ( yc->kRStartp > 0 && !(yc->kAttr[yc->kRStartp] & SENTOU) )
yc->kRStartp--;
+ /* これ必ず真では? */
prevflag = (yc->kAttr[yc->kRStartp] & SENTOU);
kanaReplace(yc->kRStartp - yc->kCurs,
yc->romaji_buffer + yc->rStartp,
yc->rCurs - yc->rStartp,
0);
+ /* ローマ字1文字に対応する仮名を消したときは最初からSENTOUである */
yc->kAttr[yc->kRStartp] |= prevflag;
yc->n_susp_chars = 0; /* とりあえずクリアしておく */
makePhonoOnBuffer(d, yc, (unsigned char)0, 0, 0);
+ /* 以前は常にフラグを下げていたが、未変換ローマ字が残っているときは
+ * フラグを下げないことにする */
+ if (yc->kRStartp == yc->kCurs)
+ yc->generalFlags &= ~CANNA_YOMI_BREAK_ROMAN;
}
else {
+ yc->generalFlags &= ~CANNA_YOMI_BREAK_ROMAN;
if ( yc->kAttr[yc->kCurs - howManyDelete] & HENKANSUMI ) {
if (yc->kAttr[yc->kCurs - howManyDelete] & SENTOU) {
/* ローマ字かな変換の先頭だったら */
@@ -2821,6 +2834,12 @@
yc->rEndp -= n;
}
else {
+ /* 仮名のカーソル位置は先頭になるのでローマ字のカーソルも動かす*/
+ while ( yc->rCurs > 0 && !(yc->rAttr[--yc->rCurs] & SENTOU) )
+ ;
+ if (yc->rCurs < yc->rStartp) {
+ yc->rStartp = yc->rCurs;
+ }
yc->kAttr[yc->kCurs] |= SENTOU;
}
}
@@ -2829,6 +2848,12 @@
romajiReplace(-howManyDelete, (wchar_t *)NULL, 0, 0);
}
kanaReplace(-howManyDelete, (wchar_t *)NULL, 0, 0);
+ if ((yc->rAttr[yc->rCurs] & SENTOU) && yc->kRStartp == yc->kCurs) {
+ /* 未変換のローマ字を消してしまったので、次に入力したローマ字は
+ * SENTOUになる方が自然だろう
+ */
+ yc->rStartp = yc->rCurs;
+ }
}
debug_yomi(yc);
return(0);
@@ -2944,6 +2969,7 @@
currentModeInfo(d);
}
makeYomiReturnStruct(d);
+ debug_yomi(yc);
return 0;
}

View File

@@ -0,0 +1,12 @@
バイナリー・ファイルCanna37p1.orig/lib/RKC/.wconvert.c.swpとCanna37p1/lib/RKC/.wconvert.c.swpは違います
--- a/lib/RKC/conf.c
+++ b/lib/RKC/conf.c
@@ -1496,7 +1496,7 @@
};
const NumberDefaultRec host_num_defaults[] = {
- { CONF_SERVER_TIMEOUT, 1500u },
+ { CONF_SERVER_TIMEOUT, 0u },
};
const char *

View File

@@ -0,0 +1,136 @@
--- a/cmd/crxgram/crxgram.c
+++ b/cmd/crxgram/crxgram.c
@@ -485,7 +485,7 @@
int j;
nextS = scanToken(nextS, namevec, sizeof(namevec));
- name = strtok(namevec, SEP);
+ name = strtok((char *)namevec, SEP);
for (j = 0; name && j < 255;) {
if (r = probeIdent(Row, name))
rdata[i][j++] = r->rownum;
--- a/cmd/cshost/cshost.c
+++ b/cmd/cshost/cshost.c
@@ -152,12 +152,12 @@
goto protoerr;
assert(wp + 2 <= endp);
printf("HOST NAME:%s\n", wp ) ;
- wp += strlen( wp ) + 1 ;
+ wp += strlen((char *) wp ) + 1 ;
if( *wp ) {
printf("USER NAME:" ) ;
while( *wp ) {
printf("%s ", wp ) ;
- wp += strlen( wp ) + 1 ;
+ wp += strlen((char *) wp ) + 1 ;
}
} else
printf("ALL USER" ) ;
--- a/cmd/wtoc/wtoc.c
+++ b/cmd/wtoc/wtoc.c
@@ -144,8 +144,8 @@
int hindo;
{
if( !strcmp((char *)hinshi,"#kxuru") || !strcmp((char *)hinshi,"#sxuru")){
- strcat(yomi,"る");
- strcat(kouho,"る");
+ strcat((char *)yomi,"る");
+ strcat((char *)kouho,"る");
}
if( hindo == 0 )
fprintf( fp, "%s %s %s \n", yomi, hinshi, kouho );
--- a/lib/canna/ebind.c
+++ b/lib/canna/ebind.c
@@ -364,7 +364,7 @@
/* list_cbはKC_setListCallbackでd->elistcbに引っ越す */
list_cb.client_data = (char *)arg;
list_cb.callback_func = &EUCListCallback;
- ret = XwcKanjiControl2(display, window, request, (char *)&list_cb);
+ ret = XwcKanjiControl2(display, window, request, (BYTE *)&list_cb);
goto return_ret;
/* FALLTHROUGH */
default: /* ワイドでもEUCでも変わらないもの */
--- a/lib/canna/obind.c
+++ b/lib/canna/obind.c
@@ -500,7 +500,7 @@
/* list_cbはKC_setListCallbackでd->elistcbに引っ越す */
list_cb.client_data = (char *)arg;
list_cb.callback_func = &owcListCallback;
- ret = XwcKanjiControl2(display, window, request, (char *)&list_cb);
+ ret = XwcKanjiControl2(display, window, request, (BYTE *)&list_cb);
goto return_ret;
default: /* 新ワイドと変わらないもの */
ret = XwcKanjiControl2(display, window, request, arg);
--- a/server/convert.c
+++ b/server/convert.c
@@ -1506,7 +1506,7 @@
const char *username;
const char *hostname;
{
- int (*ReqCallFunc) pro((char *, int)) ;
+ int (*ReqCallFunc) pro((BYTE *, int)) ;
register Req0 *req0 = &Request.Request0 ;
const char *username0 = username ? username : "";
const char *hostname0 = hostname ? hostname : "";
--- a/server/wconvert.c
+++ b/server/wconvert.c
@@ -189,7 +189,7 @@
size_t size;
{
ir_debug( Dmsg(10, "WriteClient:") );
- ir_debug( DebugDump( 10, buf, size ) );
+ ir_debug( DebugDump( 10, (const char *)buf, size ) );
return ClientBuf_store_reply(client->client_buf, buf, size);
}
#else
@@ -1372,8 +1372,8 @@
/* 以下、パーミッションのチェック */
stat = ACCES;
if (checkPermissionToRead(client, dirname, (char *)0) >= 0) {
- stat = RkwListDic(cxnum, (unsigned char *)dirname,
- (unsigned char *)dicnames, requestsize);
+ stat = RkwListDic(cxnum, (char *)dirname,
+ (char *)dicnames, requestsize);
}
listdicdone:
@@ -1403,7 +1403,7 @@
ir_debug( Dmsg(5, "dicname = %s\n",
(req->dicname)?req->dicname:null) );
- stat = (char)RkwCreateDic(cxnum, (unsigned char *)req->dicname,
+ stat = (char)RkwCreateDic(cxnum, (char *)req->dicname,
req->mode);
}
@@ -1438,7 +1438,7 @@
ir_debug( Dmsg(5, "dicname = %s\n",
(req->dicname)?req->dicname:null) );
- stat = (char)RkwRemoveDic(cxnum, (unsigned char *)req->dicname,
+ stat = (char)RkwRemoveDic(cxnum, (char *)req->dicname,
req->mode);
}
@@ -1456,8 +1456,8 @@
if (validcontext(cxnum, client, wRenameDictionary)) {
diclen = strlen(req->dicname) + 1 ;
- stat = RkwRenameDic(cxnum, (unsigned char *)req->dicname,
- (unsigned char *)&(req->dicname)[diclen],
+ stat = RkwRenameDic(cxnum, (char *)req->dicname,
+ (char *)&(req->dicname)[diclen],
req->mode);
}
return SendType2Reply(client, wRenameDictionary, EXTPROTO, stat);
@@ -1950,8 +1950,8 @@
ir_debug( Dmsg(5, "dicname = %s\n", Request.type15.dicname) );
ir_debug( Dmsg(5, "username = %s\n", username) );
- stat = (RkwQueryDic(cxnum, (unsigned char *)username,
- (unsigned char *)Request.type15.dicname,
+ stat = (RkwQueryDic(cxnum, (char *)username,
+ (char *)Request.type15.dicname,
dicinfo) < 0) ? -1 : 0;
if (stat < 0) {

View File

@@ -0,0 +1,11 @@
--- a/lib/canna/lisp.c
+++ b/lib/canna/lisp.c
@@ -1355,8 +1355,6 @@
static int
tyi()
{
- char *gets(), *fgets();
-
if (untyibuf) {
int ret = untyibuf[--untyip];
if (untyip == 0) {

View File

@@ -0,0 +1,11 @@
--- a/lib/RK/RkGetDic.man
+++ b/lib/RK/RkGetDic.man
@@ -41,7 +41,7 @@
Dictionary names are got in the area \f2dics\f1 in the following format:
.P
.RS 0.2c
-dictionary-name-1 ¡ï0 dictionary-name-2 ¡ï0 ... dictionary-name-n ¡ï0 ¡ï0
+dictionary-name-1 \\0 dictionary-name-2 \\0 ... dictionary-name-n \\0 \\0
.RE
.P
The size of the area \f2dics\f1 is given in bytes by \f2maxdics\f1. The dictionary list is truncated in character strings when it exceeds this size.

View File

@@ -0,0 +1,29 @@
--- a/lib/RKC/wconvert.c
+++ b/lib/RKC/wconvert.c
@@ -150,8 +150,25 @@
if ((ServerFD = socket((int) addr->sa_family, SOCK_STREAM, 0)) >= 0){
if( try_connect( ServerFD, addr, sizeof unaddr ) < 0 ) {
close( ServerFD ) ;
- return( -1 ) ;
+ ServerFD = -1;
+ }
+ }
+ if (ServerFD < 0) {
+ /* for the backward compatibility */
+#define OLD_IR_UNIX_PATH "/tmp/.iroha_unix/IROHA"
+
+ if (number)
+ sprintf (unaddr.sun_path, "%s:%d", OLD_IR_UNIX_PATH, number);
+ else
+ strcpy (unaddr.sun_path, OLD_IR_UNIX_PATH);
+
+ if ((ServerFD = socket ((int) addr->sa_family, SOCK_STREAM, 0)) >= 0) {
+ if (try_connect (ServerFD, addr, sizeof (unaddr)) < 0) {
+ close (ServerFD);
+ return -1;
+ }
}
+#undef OLD_IR_UNIX_PATH
}
return( ServerFD ) ;
}

View File

@@ -0,0 +1,63 @@
## 06_fix_spelling_error by HIGUCHI Daisuke (VDR dai) <dai@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: eliminate lintian warning: spelling-error-in-{binary,manpages}
--- a/cmd/wtoc/wtoc.c
+++ b/cmd/wtoc/wtoc.c
@@ -195,7 +195,7 @@ main(argc,argv)
#endif
}
else { /* 引数が不正 */
- fprintf(stderr,gettxt("cannacmd:50", "Usage: wtoc [-f part-of-speach table] [wnndic] [cannadic]\n"));
+ fprintf(stderr,gettxt("cannacmd:50", "Usage: wtoc [-f part-of-speech table] [wnndic] [cannadic]\n"));
exit(2);
}
if( argc >= (2 + option*2) ) { /* Wnn辞書をオープン */
--- a/cmd/ctow/ctow.c
+++ b/cmd/ctow/ctow.c
@@ -256,9 +256,9 @@ char *argv[];
hinshis = chghinshi(h, hinshiSize, taiou, fsize);
if (!strcmp(hinshis,"")) {
fprintf(stderr,gettxt("cannacmd:13",
- "reading:%s nomination:%s a part of speach:%s\n"),y,k,h);
+ "reading:%s nomination:%s a part of speech:%s\n"),y,k,h);
fprintf(stderr,gettxt("cannacmd:14",
- "This part of speach is undefined. Cannot convert.\n"));
+ "This part of speech is undefined. Cannot convert.\n"));
}
else {
for ( ; *hinshis; hinshis++, p++) {
--- a/lib/canna/lisp.c
+++ b/lib/canna/lisp.c
@@ -3610,7 +3610,7 @@
numtostr(xnum(e2), ee);
num = howManyCharsAre(ss, ee, &sku, &sten, &cs);
if (num <= 0) {
- error("Inconsistent range of charcter code ", buf);
+ error("Inconsistent range of character code ", buf);
/* NOTREACHED */
}
kigolen = kigolen + (cswidth[cs] + 1) * num;
--- a/lib/canna/uilib.man
+++ b/lib/canna/uilib.man
@@ -809,7 +809,7 @@ data input:
int length; /* length of echo string */
int revPos; /* reverse position */
int revLen; /* reverse length */
- unsigned long info; /* other informations */
+ unsigned long info; /* other information */
unsigned char *mode; /* mode information */
struct {
unsigned char *line; /* a grance of Kanji characters */
--- a/lib/canna/uilib.jmn
+++ b/lib/canna/uilib.jmn
@@ -749,7 +749,7 @@ XCompose構造体へのポインタを指定します。
int revPos; /* reverse position */
int revLen; /* reverse length */
.mc \(br
- unsigned long info; /* other informations */
+ unsigned long info; /* other information */
unsigned char *mode; /* mode information */
struct {
unsigned char *line; /* a grance of Kanji characters */

View File

@@ -0,0 +1,37 @@
## 07_fix_manpage_error by HIGUCHI Daisuke (VDR dai) <dai@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: eliminate lintian warning: manpage-has-errors-from-man
--- a/cmd/dpromdic/dpromdic.man
+++ b/cmd/dpromdic/dpromdic.man
@@ -1,7 +1,7 @@
.TH DPROMDIC 1
-.S HNAME
+.SH NAME
dpromdic \- Convert the binary-form Romaji-to-Kana conversion table into the text-form table
-.SHSYNOPSYS
+.SH SYNOPSYS
.B dpromdic
[
.I file
--- a/cmd/dicar/dicar.man
+++ b/cmd/dicar/dicar.man
@@ -28,7 +28,7 @@ dicar \- Archive Binary Dictionary
archives binary dictionary
.I bindic1.
The hyphen of each option may be omitted.
-.OPTIONS
+.SH OPTIONS
.TP
.B \-t
Displays the dictionaries contained in binary dictionary file
--- a/cmd/cshost/cshost.man
+++ b/cmd/cshost/cshost.man
@@ -1,5 +1,5 @@
.TH CSHOST 1
-.SH "NAMES"
+.SH "NAME"
cshost \- Server access control program for canna
.SH "SYNOPSIS"
.B "cshost [{\-cs|\-cannaserver} \fIcannaserver\fP]"

View File

@@ -0,0 +1,16 @@
## 08_fix_ftbfs_on_hurd-i386 by HIGUCHI Daisuke (VDR dai) <dai@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: fix FTBFS on hurd-i386. use O_RDONLY instead of bare 0.
--- a/cmd/crxdic/crxdic.c
+++ b/cmd/crxdic/crxdic.c
@@ -1228,7 +1228,7 @@ main (argc, argv)
if (!(dic->gramdata = RkiReadWholeFile(fp, &dic->gramsz)))
goto gram_err;
fclose(fp);
- if ((fd = open(gfile, 0)) < 0 || !(gram = RkReadGram(fd, dic->gramsz)))
+ if ((fd = open(gfile, O_RDONLY)) < 0 || !(gram = RkReadGram(fd, dic->gramsz)))
goto gram_err;
close(fd);
goto gram_ok;

View File

@@ -0,0 +1,19 @@
Description: fix FTBFS caused after the DH level has bumped.
Author: Francisco Vilmar Cardoso Ruviaro <francisco.ruviaro@riseup.net>
Last-Update: 2020-06-20
--- a/configure.ac
+++ b/configure.ac
@@ -3,9 +3,9 @@ AC_INIT([canna], [3.7p3], [canna-dev@lis
AC_CONFIG_SRCDIR([WHATIS.jp])
AC_CONFIG_HEADER([accanna.h])
-if test "x$IN_MAKE" != xyes; then
- AC_MSG_ERROR([You cannot invloke configure directly.])
-fi
+#if test "x$IN_MAKE" != xyes; then
+# AC_MSG_ERROR([You cannot invloke configure directly.])
+#fi
# Checks for programs.
AC_PROG_CC

View File

@@ -0,0 +1,91 @@
Description: Fix spelling error in binaries.
Author: Francisco Vilmar Cardoso Ruviaro <francisco.ruviaro@riseup.net>
Last-Update: 2020-07-16
--- a/cmd/catdic/can.c
+++ b/cmd/catdic/can.c
@@ -281,7 +281,7 @@ int sig;
*/
(void) RkFinalize();
fprintf(stderr,"\n");
- Message(gettxt("cannacmd:232", "Process was intrrupted."));
+ Message(gettxt("cannacmd:232", "Process was interrupted."));
exit(ERR_VALUE);
}
@@ -323,7 +323,7 @@ int sig;
(void) RkFinalize();
}
- Message(gettxt("cannacmd:232", "Process was intrrupted."));
+ Message(gettxt("cannacmd:232", "Process was interrupted."));
exit(ERR_VALUE);
}
@@ -1475,7 +1475,7 @@ int force;
}
else {
fprintf(stderr, gettxt("cannacmd:174",
- "Specified dictionary \"%s\" does not overwite.\n"),dicname2);
+ "Specified dictionary \"%s\" does not overwrite.\n"),dicname2);
ret = 1;
}
break;
--- a/cmd/crfreq/crfreq.c
+++ b/cmd/crfreq/crfreq.c
@@ -199,7 +199,7 @@ main(argc, argv)
if ((fr = create(freqfile, 0666)) == -1) {
(void)close(fd);
- (void)fprintf(stderr, "%s: cannot create freqency file %s\n", program, freqfile);
+ (void)fprintf(stderr, "%s: cannot create frequency file %s\n", program, freqfile);
exit(1);
}
#ifdef __CYGWIN32__
--- a/server/convert.c
+++ b/server/convert.c
@@ -887,7 +887,7 @@ ClientPtr *clientp ;
if ((ret = RkwStoreYomi( cxnum, (Ushort *)cbuf, ret )) >= 0) {
size = getFirstKouho(cxnum, bunsetu, ret, &stat, &lbufp);
} else {
- PrintMsg("%s RkwStoreYomi faild\n", irerrhdr(client));
+ PrintMsg("%s RkwStoreYomi failed\n", irerrhdr(client));
}
} else {
print_context_error(client);
--- a/server/misc.c
+++ b/server/misc.c
@@ -316,7 +316,7 @@ BecomeDaemon ()
#ifndef __EMX__
if ((parent = fork()) == -1) {
- PrintMsg( "Fork faild\n" );
+ PrintMsg( "Fork failed\n" );
exit( 1 ) ;
}
if ( parent ) {
@@ -989,11 +989,11 @@ DetachTTY()
sprintf(errfile,"%s/%s%d%s", ERRDIR, ERRFILE, PortNumberPlus, ERRFILE2);
if((errfd = open(errfile, O_CREAT | O_RDWR | O_TRUNC, 0644)) < 0) {
- (void)fprintf(stderr, "Warning: %s: %s open faild\n", Name, errfile);
+ (void)fprintf(stderr, "Warning: %s: %s open failed\n", Name, errfile);
(void)perror("");
} else {
if(dup2( errfd, fileno(stderr)) < 0) {
- (void)fprintf(stderr, "Warning: %s: %s dup2 faild\n", Name, errfile);
+ (void)fprintf(stderr, "Warning: %s: %s dup2 failed\n", Name, errfile);
(void)perror("");
close(fileno(stderr));
}
--- a/server/wconvert.c
+++ b/server/wconvert.c
@@ -1153,7 +1153,7 @@ ClientPtr *clientp ;
sizeof(local_buffer) / sizeof(Ushort), &bufp);
RkwGoTo(cxnum, bunsetu);
} else {
- PrintMsg("%s RkwStoreYomi faild\n",
+ PrintMsg("%s RkwStoreYomi failed\n",
irwerrhdr(client, wStoreYomi));
stat = -1 ;
}

View File

@@ -0,0 +1,61 @@
Description: make the output of mkbindic reproducible.
Author: Chris Lamb <lamby@debian.org>
Bug-Debian: https://bugs.debian.org/861955
Forwarded: no
Reviewed-By: Francisco Vilmar Cardoso Ruviaro <francisco.ruviaro@riseup.net>
Last-Update: 2020-08-17
--- a/cmd/crxdic/crxdic.c
+++ b/cmd/crxdic/crxdic.c
@@ -31,6 +31,7 @@ static char rcsid[]="@(#) 102.1 $Id: crx
#include <time.h>
#include <ctype.h>
#include <fcntl.h>
+#include <limits.h>
#include <assert.h>
#include "ccompat.h"
#include "RKindep/file.h"
@@ -932,6 +933,9 @@ makeHeader(dic)
unsigned i;
RkiCksumCalc calc;
unsigned off;
+ char *source_date_epoch;
+ unsigned long long epoch;
+ char *endptr;
if (RkiCksumCRCInit(&calc)
|| RkiCksumAdd(&calc, dic->Dir->buf, dic->Dir->dirsiz)) {
@@ -963,7 +967,32 @@ makeHeader(dic)
hd.data[HD_CMPV].var = 0x300702L;
hd.flag[HD_CMPV] = -1;
}
- hd.data[HD_TIME].var = tloc = time(0);
+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
+ if (source_date_epoch) {
+ errno = 0;
+ epoch = strtoull(source_date_epoch, &endptr, 10);
+ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0))
+ || (errno != 0 && epoch == 0)) {
+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ if (endptr == source_date_epoch) {
+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", endptr);
+ exit(EXIT_FAILURE);
+ }
+ if (*endptr != '\0') {
+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", endptr);
+ exit(EXIT_FAILURE);
+ }
+ if (epoch > ULONG_MAX) {
+ fprintf(stderr, "Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu \n", ULONG_MAX, epoch);
+ exit(EXIT_FAILURE);
+ }
+ tloc = epoch;
+ } else {
+ tloc = time(0);
+ }
+ hd.data[HD_TIME].var = tloc;
hd.flag[HD_TIME] = -1;
hd.data[HD_DMNM].ptr = (unsigned char *)STrdup(dic->name);
hd.flag[HD_DMNM] = strlen(dic->name);

View File

@@ -0,0 +1,199 @@
--- a/cmd/catdic/can.c
+++ b/cmd/catdic/can.c
@@ -1236,7 +1236,7 @@
break;
default:
if (init[0] == '/') {
- (void)fprintf(stderr,msg_abnl);
+ (void)fprintf(stderr,"%s",msg_abnl);
} else {
(void)fprintf(stderr,msg_abnls,init);
}
@@ -1297,11 +1297,11 @@
if ( opt_fq ) {
if ( opt_s ) {
- (void) fprintf(stderr,msg_sfq);
+ (void) fprintf(stderr,"%s",msg_sfq);
exit(ERR_VALUE) ;
}
if ( opt_l || opt_std ) {
- (void) fprintf(stderr,msg_l);
+ (void) fprintf(stderr,"%s",msg_l);
exit(ERR_VALUE) ;
}
mode = mode | PL_DIC ;
@@ -1491,7 +1491,7 @@
break;
default:
if(init[0] == '/') {
- fprintf(stderr,msg_abnl );
+ fprintf(stderr,"%s",msg_abnl );
}
else {
fprintf(stderr,msg_abnls,init);
--- a/cmd/catdic/rutil.c
+++ b/cmd/catdic/rutil.c
@@ -271,7 +271,7 @@
"Dictionary \"%s\" does not exist.\n"), dicname);
break;
case NOTALC :
- (void)fprintf(stderr, msg_mem);
+ (void)fprintf(stderr, "%s", msg_mem);
break;
case BADF :
(void)fprintf(stderr, gettxt("cannacmd:196",
@@ -297,7 +297,7 @@
(void)fprintf(stderr,msg_abnls,init);
}
else {
- (void)fprintf(stderr,msg_abnl);
+ (void)fprintf(stderr,"%s",msg_abnl);
}
break;
}
@@ -321,7 +321,7 @@
(void)fprintf(stderr, msg_abnls, init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
ret = -1;
return ret;
@@ -332,13 +332,13 @@
(void)fprintf(stderr, msg_mnts, init);
}
else {
- (void)fprintf(stderr, msg_mnt);
+ (void)fprintf(stderr, "%s", msg_mnt);
}
ret = -1;
return ret;
}
if ((mode & PL_DIC) == PL_DIC ) {
- (void)fprintf(stderr,msg_fq);
+ (void)fprintf(stderr,"%s",msg_fq);
ret = -1 ;
return ret ;
}
@@ -359,7 +359,7 @@
ret = 0;
break;
case NOTALC :
- (void)fprintf(stderr, msg_mem);
+ (void)fprintf(stderr, "%s", msg_mem);
ret = -1;
break;
case BADF :
@@ -421,7 +421,7 @@
ret = -1;
break;
case BADCONT :
- (void)fprintf(stderr,msg_cnt);
+ (void)fprintf(stderr,"%s",msg_cnt);
ret = -1;
break;
default:
@@ -429,7 +429,7 @@
(void)fprintf(stderr, msg_abnls, init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
exit(ERR_VALUE);
break;
@@ -448,7 +448,7 @@
ret = 0;
break;
case NOTALC :
- (void)fprintf(stderr, msg_mem);
+ (void)fprintf(stderr, "%s", msg_mem);
ret = -1;
break;
case BADF :
@@ -509,11 +509,11 @@
ret = -1;
break;
case BADARG :
- (void)fprintf(stderr,msg_fq);
+ (void)fprintf(stderr,"%s",msg_fq);
ret = -1;
break;
case BADCONT :
- (void)fprintf(stderr,msg_cnt);
+ (void)fprintf(stderr,"%s",msg_cnt);
ret = -1;
break;
case NOENT : /* 91.12.03 */
@@ -526,7 +526,7 @@
(void)fprintf(stderr, msg_abnls, init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
exit(ERR_VALUE);
break;
@@ -556,7 +556,7 @@
(void)fprintf(stderr, msg_abnls,init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
ret = -1;
return ret;
@@ -567,13 +567,13 @@
(void)fprintf(stderr, msg_mnts, init);
}
else {
- (void)fprintf(stderr, msg_mnt);
+ (void)fprintf(stderr, "%s", msg_mnt);
}
ret = -1;
return ret;
}
if ((mode & PL_DIC) == PL_DIC ) {
- (void)fprintf(stderr, msg_fq);
+ (void)fprintf(stderr, "%s", msg_fq);
ret = -1 ;
return ret ;
}
@@ -608,7 +608,7 @@
ret = -2; /* 93.03.03 */
break;
case BADCONT :
- (void)fprintf(stderr, msg_cnt);
+ (void)fprintf(stderr, "%s", msg_cnt);
ret = -1;
break;
default:
@@ -616,7 +616,7 @@
(void)fprintf(stderr, msg_abnls, init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
ret = -1;
break;
@@ -651,7 +651,7 @@
ret = -2; /* 93.03.03 */
break;
case BADCONT :
- (void)fprintf(stderr, msg_cnt);
+ (void)fprintf(stderr, "%s", msg_cnt);
ret = -1;
break;
default:
@@ -659,7 +659,7 @@
(void)fprintf(stderr, msg_abnls, init);
}
else {
- (void)fprintf(stderr, msg_abnl);
+ (void)fprintf(stderr, "%s", msg_abnl);
}
ret = -1;
break;

View File

@@ -0,0 +1,11 @@
--- a/doc/man/guide/tex/cannaindex.c
+++ b/doc/man/guide/tex/cannaindex.c
@@ -198,7 +198,7 @@
}
inf = fopen(argv[1], "r");
if (!inf) {
- fprintf(stderr, "%s: Can not open file \"%s\".\n", argv[1]);
+ fprintf(stderr, "%s: Can not open file \"%s\".\n", program, argv[1]);
exit(1);
}
pages = readindex(inf, entries);

View File

@@ -0,0 +1,34 @@
--- a/canuum/configure.in
+++ b/canuum/configure.in
@@ -401,7 +401,7 @@
dnl
olibs="$LIBS"
AC_MSG_CHECKING(--with-term-libs argument)
-AC_ARG_WITH(tlib,
+AC_ARG_WITH(term-libs,
[ --with-term-libs=-lLIB terminal library to be used ],)
if test -n "$with_term_libs"; then
AC_MSG_RESULT($with_term_libs)
--- a/canuum/wnn_config.h
+++ b/canuum/wnn_config.h
@@ -149,8 +149,8 @@
#define TTY_KCODE J_EUJIS
#define PTY_KCODE J_EUJIS
# else /* !DGUX */
-#define TTY_KCODE J_JIS
-#define PTY_KCODE J_JIS
+#define TTY_KCODE J_EUJIS
+#define PTY_KCODE J_EUJIS
# endif
#endif
--- a/canuum/wnn_os.h
+++ b/canuum/wnn_os.h
@@ -41,6 +41,7 @@
#include <signal.h>
#if STDC_HEADERS
# include <stdlib.h>
+# include <string.h>
# include <limits.h>
#endif /* STDC_HEADERS */

View File

@@ -0,0 +1,146 @@
--- a/Canna.conf
+++ b/Canna.conf
@@ -109,12 +109,12 @@
# define DefErrDir $(cannaPrefix)/log
# define DefLibCannaDir $(cannaExecPrefix)/lib
#else
-# define DefCannaPrefix /usr/local/canna
+# define DefCannaPrefix $(EPREFIX)/usr
# ifdef ObsoleteInstallDir
# define DefErrDir /usr/spool/canna
# define DefLibCannaDir /usr/lib
# else
-# define DefErrDir /var/log
+# define DefErrDir $(EPREFIX)/var/log/$(PN)
# define DefLibCannaDir $(cannaExecPrefix)/lib
# endif
#endif
@@ -123,7 +123,7 @@
# define DefCannaLibDir $(cannaPrefix)/lib
#else
# define DefCannaSrvDir $(cannaExecPrefix)/sbin
-# define DefCannaLibDir $(cannaPrefix)/share/canna
+# define DefCannaLibDir /etc/canna
#endif
#if defined(LinuxArchitecture) || defined(FreeBSDArchitecture) \
@@ -147,9 +147,11 @@
XCOMM cannaLibDir = /var/lib/canna
XCOMM cannaLibDir = /var/db/canna
cannaLibDir = DefCannaLibDir
-XCOMM cannaManDir = $(cannaPrefix)/share/man
-cannaManDir = $(cannaPrefix)/man
-cannaIncDir = $(cannaPrefix)/include/canna
+cannaManDir = $(cannaPrefix)/share/man
+XCOMM cannaManDir = $(cannaPrefix)/man
+cannaIncDir = $(cannaPrefix)/include/$(PN)
+cannaShareDir = $(cannaPrefix)/share/$(PN)
+cannaDocDir = $(cannaPrefix)/share/doc/$(PF)
libCannaDir = DefLibCannaDir
ErrDir = DefErrDir
@@ -237,7 +239,7 @@
/* #define UseInstalledLibCanna YES */
#define UseInstalledLibCanna NO
-DicDir = $(cannaLibDir)/dic
+DicDir = $(EPREFIX)/var/lib/$(PN)/dic
/* ここから下は変更不要です */
--- a/Imakefile
+++ b/Imakefile
@@ -87,6 +87,7 @@
echo "#define CANNAHOSTFILE \"$(cannaLibDir)/cannahost\"";\
echo "/* for lib/canna */";\
echo "#define CANNALIBDIR \"$(cannaLibDir)\""; \
+ echo "#define CANNASHAREDIR \"$(cannaShareDir)\""; \
echo "#define SUPPORT_OLD_WCHAR $(supportOldWchar)"; \
echo "/* for scripts */";\
echo "#define CANNABINDIR $(cannaBinDir)"; \
--- a/dic/phono/Imakefile
+++ b/dic/phono/Imakefile
@@ -27,9 +27,10 @@
ROMAJI_DIC_DEF = -DSHIFT
- DICDIR = $(cannaLibDir)/dic
- SAMPLEDIR = $(cannaLibDir)/sample
- SAMPLESRCDIR = $(cannaLibDir)/sample/src
+ DICDIR = $(DicDir)
+ CANNASHAREDIR = $(cannaShareDir)
+ SAMPLEDIR = $(cannaDocDir)/sample
+ SAMPLESRCDIR = $(cannaDocDir)/sample/src
KPDEF = default.kpdef jdaemon.kpdef just.kpdef kaisoku.kpdef kana.kpdef \
lan5.kpdef matsu.kpdef newjis.kpdef romaji.kpdef sokuon.kpdef \
@@ -69,7 +70,7 @@
MakeDirectories(install,$(DICDIR))
MakeDirectories(install,$(SAMPLESRCDIR))
-InstallMultiple($(ROMKANA_TABLES),$(DICDIR))
+InstallMultiple($(ROMKANA_TABLES),$(CANNASHAREDIR))
#ifdef USE_OBSOLETE_STYLE_FILENAME
InstallNonExec(default.kpdef,$(SAMPLESRCDIR))
--- a/lib/canna/romaji.c
+++ b/lib/canna/romaji.c
@@ -427,7 +427,6 @@
}
}
-#if 0 /* currently CANNASHAREDDIR is not defined */
if (retval == (struct RkRxDic *)NULL) { /* added for Debian by ISHIKAWA Mutsumi <ishikawa@linux.or.jp> */
extern jrUserInfoStruct *uinfo;
@@ -450,7 +449,6 @@
}
}
}
-#endif
if (retval == (struct RkRxDic *)NULL) { /* 全部オープンできない */
sprintf(rdic,
--- a/misc/Imakefile
+++ b/misc/Imakefile
@@ -48,7 +48,7 @@
MakeLintLibSubdirs($(SUBDIRS))
MakeLintSubdirs($(SUBDIRS),install.ln,install.ln)
-MakeDirectories(install,$(cannaLibDir)/sample/src)
+MakeDirectories(install,$(cannaDocDir)/sample/src)
#ifdef USE_OBSOLETE_STYLE_FILENAME
default.canna: default.ca
@@ -58,8 +58,8 @@
$(CP) default.ca default.canna
#endif
InstallNonExec(default.canna,$(cannaLibDir))
-InstallNonExec(is.c,$(cannaLibDir)/sample/src)
+InstallNonExec(is.c,$(cannaDocDir)/sample/src)
clean::
$(RM) $(PROGRAMS)
--- a/misc/initfiles/Imakefile
+++ b/misc/initfiles/Imakefile
@@ -6,7 +6,7 @@
#endif
CANNAROOT = ../..
- SAMPLEDIR = $(cannaLibDir)/sample
+ SAMPLEDIR = $(cannaDocDir)/sample
all::
--- a/server/Imakefile
+++ b/server/Imakefile
@@ -6,7 +6,7 @@
#ifdef __EMX__
INSTFLAGS = $(INSTUGIDFLAGS)
#else
- INSTFLAGS = -s $(INSTUGIDFLAGS)
+ INSTFLAGS = $(INSTUGIDFLAGS)
#endif
DEFINES = $(CANNASERVER_DEFINES) $(SIGNAL_DEFINES) ConnectionFlags
INCLUDES = -I$(CANNAROOT)/include

View File

@@ -0,0 +1,18 @@
--- a/dic/phono/default.kpdef
+++ b/dic/phono/default.kpdef
@@ -350,3 +350,15 @@
_ _
/
\\ ¥
+
+# some useful romkan symbols
+z, ‥
+z-
+z. …
+z/ ・
+z[ 『
+z] 』
+zh ←
+zj ↓
+zk ↑
+zl →

View File

@@ -0,0 +1,20 @@
--- a/cmd/catdic/rutil.c
+++ b/cmd/catdic/rutil.c
@@ -384,7 +384,7 @@
(void)fprintf(stderr,gettxt("cannacmd:205",
"Specified dictionary \"%s\" already exists. Do you overwrite it ? (y/n)"),
dicname);
- fgets(ans,80,stdin);
+ fgets(ans,sizeof(ans),stdin);
} else {
(void)fprintf(stderr,gettxt("cannacmd:206",
"Specified dictionary \"%s\" already exists."),dicname);
@@ -474,7 +474,7 @@
if (isatty(fileno(stdin)) != 0) {
(void)fprintf(stderr,gettxt("cannacmd:216",
"Personal learning file of dictionary \"%s\" exists. Do you overwrite it ? (y/n)"),dicname);
- fgets(ans,80,stdin);
+ fgets(ans,sizeof(ans),stdin);
} else {
(void)fprintf(stderr,gettxt("cannacmd:217",
"Personal learning file of system dictionary \"%s\" already exists."),

View File

@@ -0,0 +1,11 @@
--- a/cmd/mkbindic/mkbindic.cpp
+++ b/cmd/mkbindic/mkbindic.cpp
@@ -40,7 +40,7 @@
bck_text=;
flag=;
compat_flag=;
-sortcmd="sort -d -s +0 -1"
+sortcmd="sort -d -s -k 1,1"
usage="usage: mkbindic [-m|-s] [-name dicname] [-c version] textfile [cpp-args ...]";
: ${TMPDIR:=/tmp}

View File

@@ -0,0 +1,29 @@
--- /var/tmp/portage/app-i18n/canna-3.7_p3-r4/work/Canna37p3/canuum/Imakefile
+++ Canna37p3/canuum/Imakefile
@@ -51,6 +51,8 @@
$(CONFIGURE_CMD)
XCOMM Invoked from confwrapper
cwenv.sh:
- $(CANNAROOT)/confwrapper mkenv CPPFLAGS $(ALLDEFINES) > $@
- $(CANNAROOT)/confwrapper mkenv CC env $(CC) >> $@
+ $(CANNAROOT)/confwrapper mkenv CPPFLAGS $(ALLDEFINES) $(CPPFLAGS) > $@
+ $(CANNAROOT)/confwrapper mkenv CC $(CC) >> $@
+ $(CANNAROOT)/confwrapper mkenv AR $(AR) >> $@
$(CANNAROOT)/confwrapper mkenv CFLAGS $(PURE_CFLAGS) >> $@
+ $(CANNAROOT)/confwrapper mkenv LDFLAGS $(LDFLAGS) >> $@
--- /var/tmp/portage/app-i18n/canna-3.7_p3-r4/work/Canna37p3/Imakefile
+++ Canna37p3/Imakefile
@@ -117,9 +117,11 @@
$(CONFIGURE_CMD)
XCOMM Invoked from confwrapper
cwenv.sh:
- $(CANNAROOT)/confwrapper mkenv CPPFLAGS $(ALLDEFINES) > $@
- $(CANNAROOT)/confwrapper mkenv CC env $(CC) >> $@
+ $(CANNAROOT)/confwrapper mkenv CPPFLAGS $(ALLDEFINES) $(CPPFLAGS) > $@
+ $(CANNAROOT)/confwrapper mkenv CC $(CC) >> $@
+ $(CANNAROOT)/confwrapper mkenv AR $(AR) >> $@
$(CANNAROOT)/confwrapper mkenv CFLAGS $(PURE_CFLAGS) >> $@
+ $(CANNAROOT)/confwrapper mkenv LDFLAGS $(LDFLAGS) >> $@
CANNAROOT = .
SERVERDIR = server dic/phono dic/ideo

View File

@@ -0,0 +1,15 @@
--- a/Canna.conf
+++ b/Canna.conf
@@ -341,10 +341,10 @@
#endif
#ifdef InstallAsUser
-UnixSockDir = $(cannaPrefix)/tmp/.iroha_unix
+UnixSockDir = $(cannaPrefix)/run/.iroha_unix
AccessFile = $(cannaPrefix)/etc/hosts.canna
#else
-UnixSockDir = /tmp/.iroha_unix
+UnixSockDir = /run/.iroha_unix
AccessFile = /etc/hosts.canna
#endif
UnixSockName = IROHA

View File

@@ -0,0 +1,2 @@
d /run/.iroha_unix 0755 canna canna -

View File

@@ -0,0 +1,7 @@
CANNASERVER_ENABLE_SYSLOG="yes"
# Specify user to run as
CANNASERVER_OWNER="bin"
# Options for cannaserver
CANNASERVER_OPTS=""

View File

@@ -0,0 +1 @@
unix

View File

@@ -0,0 +1,31 @@
#!/sbin/openrc-run
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
command="/usr/sbin/${RC_SVCNAME}server"
command_args="${CANNASERVER_OPTS}"
# CANNASERVER_OPTS and CANNASERVER_OWNER is defined in /etc/conf.d/canna
CANNASERVER_LOGFILE="/var/log/${RC_SVCNAME}/CANNA0msgs"
depend() {
use logger
need net
}
start_pre() {
if [ "${CANNASERVER_ENABLE_SYSLOG}" = "yes" ]; then
command_args="${command_args} -syslog"
elif [ -z "${CANNASERVER_OWNER}" ]; then
checkpath "${CANNASERVER_LOGFILE}"
else
checkpath -o "${CANNASERVER_OWNER}" "${CANNASERVER_LOGFILE}"
command_args="${command_args} -u ${CANNASERVER_OWNER}"
fi
}
stop() {
ebegin "Stopping ${name:-${RC_SVCNAME}}"
/usr/sbin/${RC_SVCNAME}kill
eend ${?}
}

View File

@@ -0,0 +1,12 @@
[Unit]
Description=Canna Japanese Conversion Engine
After=syslog.target
[Service]
User=canna
Type=forking
ExecStart=/usr/sbin/cannaserver -syslog
ExecStop=/usr/sbin/cannakill
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,46 @@
/*
* cannaping - the minimal cannaserver check program
*
* Copyright (C) 2003 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* Bugs & suggestions about this program are welcome:
* http://bugzilla.redhat.com/
*
* 2003/02/04
* Yukihiro Nakai <ynakai@redhat.com>
*/
#include <stdio.h>
#include <stdlib.h>
#include <canna/jrkanji.h>
int main() {
char** warning = NULL;
int res = jrKanjiControl(0, KC_INITIALIZE, (char*)&warning);
if( res != 0 ) {
exit(-1);
} else if( warning ) {
exit(-1);
}
jrKanjiControl(0, KC_FINALIZE, 0);
return 0;
}

View File

@@ -0,0 +1,195 @@
;; Copyright 1992 NEC Corporation, Tokyo, Japan.
;;
;; Permission to use, copy, modify, distribute and sell this software
;; and its documentation for any purpose is hereby granted without
;; fee, provided that the above copyright notice appear in all copies
;; and that both that copyright notice and this permission notice
;; appear in supporting documentation, and that the name of NEC
;; Corporation not be used in advertising or publicity pertaining to
;; distribution of the software without specific, written prior
;; permission. NEC Corporation makes no representations about the
;; suitability of this software for any purpose. It is provided "as
;; is" without express or implied warranty.
;;
;; NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
;; INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
;; NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
;; USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
;; OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
;; PERFORMANCE OF THIS SOFTWARE.
;; $Id: dot-canna,v 1.1 2005/09/26 09:29:14 tagoh Exp $
;; 記号置き換え変換を利用するか。
(setq use-symbolic-definition t)
;;; ローマ字かな変換の設定
;
; ローマ字かな変換テーブルを指定します。ローマ字かな変換テーブルは
; (1) カレントディレクトリ
; (2) ホームディレクトリ
; (3) /usr/lib/canna/dic
; の順にサーチされます。
;
;(setq romkana-table "unix.cbp")
(setq romkana-table "default.cbp")
;; 外来語変換
;(setq english-table "canna/english.cbp")
;;; 利用する辞書
;
; ただ単に書き並べているのは単語登録を行わない辞書でシステム辞書などが
; これに当たります。
;
; 部首辞書に関しては :bushu を先行させて記述します。
;
; 単語登録をしたい辞書に関しては :user を先行させて記述します。単語登
; 録をする辞書はテキスト形式辞書でなければなりません。単語登録させたい
; 辞書は mkdic user の様なコマンドを打つことでで簡単に作成することがで
; きます。
;
(use-dictionary
"gcanna"
"gcannaf"
"chimei"
; "iroha"
"fuzokugo"
"hojomwd"
"hojoswd"
"software"
"keishiki"
"zipcode"
"geo"
; "zip99"
"basho"
"keisan"
"pub"
"scien"
"sup"
"bonobo"
:bushu "bushu"
:user "user"
)
;;; さまざまなパラメタの設定
;
; 真理値を設定するものについては真については t 、偽については nil を設
; 定します。
; 一番右で右に行こうとすると左端にいくようにするか
(setq cursor-wrap t) ; default t
; 一覧表示で数字を打ったときにカーソル移動に留める(nil)か選択までして
; しまうか(t)
(setq select-direct t) ; default t
; 一覧表示で数字で選択するか(t)。nilの時は数字が表示されません
(setq numerical-key-select t) ; default t
; 候補表示時に文節の区切りに空白をいれるか
(setq bunsetsu-kugiri nil) ; default nil
; 文字ベースの移動をするか(t)。 nilの時はローマ字かな変換の単位でカー
; ソル移動が行われます。
(setq character-based-move t) ; default t
; 入力中の読み全体をリバースするか
(setq reverse-widely nil) ; default nil
; 頻度学習をするか
(setq gakushu t) ; default t
; 一覧の最後までいったら一旦一覧表示をやめるか
(setq quit-if-end-of-ichiran nil); default nil
; 文節の右端で右移動をすると全体が確定してしまうか
(setq kakutei-if-end-of-bunsetsu nil) ; default nil
; 一覧選択後同じ文節にとどまるか(t)。nilの時は一覧選択を行うとひとつ先
; の文節に移動します。
(setq stay-after-validate t) ; default t
; 読みを入力中にバックスペースを打つとローマ字までバラバラにするか
(setq break-into-roman t) ; default nil
; 何回の変換キーで一覧表示を行うか。0を入れると変換キーだけでは
; 一覧表示には移りません。その場合には C-w を入力して一覧表示して
; 下さい。
(setq n-henkan-for-ichiran 2) ; default 2
; 単語登録時に文法関連の質問をするか(t)。nilの時は適当な品詞を付けてし
; まいます。
(setq gramatical-question t) ; default t
; 候補が全体の何番目かを表示するか
(setq kouho-count t) ; default t
; 逐次変換をするか
(setq auto nil) ; default nil
; 逐次変換をする時に何個の文節までを未確定で保持するか
(setq n-kouho-bunsetsu 16) ; default 16
; ローマ字かな変換でイリーガルなローマ字を捨てるか
(setq abandon-illegal-phonogram nil) ; default nil
; 一覧の時も次の入力を認めるか
(setq allow-next-input t) ; default t
; 一文字レベルのローマ字かな変換の補助テーブル
(if use-symbolic-definition
(progn
(defsymbol ?- "ー" "-" "" "")
(defsymbol ?/ "/" "" "・")
(defsymbol ?\\ "\\" "" "¥")
(defsymbol
?( "(" "" "【"
?) ")" "" "】" )
(defsymbol
?[ "「" "『" "" "" "["
?] "」" "』" "" "" "]")
(defsymbol
?. "。" "" "."
?, "、" "" "," )
(defsymbol
?0 "0" "" "" "零"
?1 "1" "" "一" "壱"
?2 "2" "" "二" "弐"
?3 "3" "" "三" "参"
?4 "4" "" "四" "四"
?5 "5" "" "五" "伍"
?6 "6" "" "六" "六"
?7 "7" "" "七" "七"
?8 "8" "" "八" "八"
?9 "9" "" "九" "九" )
(defsymbol
?? "?" ""
?! "!" "")
(defsymbol ?# "#" "")
(defsymbol ?$ "$" "")
(defsymbol ?% "%" "")
(defsymbol ?& "&" "")
(defsymbol ?+ "+" "")
(defsymbol ?* "*" "" "×")
(defsymbol ?_ "_" "_")
(defsymbol ?' "'" "")
(defsymbol ?` "`" "")
(defsymbol ?\" "\"" "”")
))
;; delete キーもバックスペースと同じ処理をさせる
(global-set-key "\Delete" 'delete-previous) ; necessary in using Emacs
;; Help がない人もいるので F1 でも同じ動作をさせる。
(global-set-key "\F1" 'extend-mode)
;; Escape key should escape from the mode.
(global-set-key "\Escape" 'quit)
;; Ctrl-o の抑制
(global-unbind-key-function 'japanese-mode)

View File

@@ -0,0 +1,36 @@
#!/bin/sh
# update-canna-dics_dir
# compiles dics.dir files for Canna Server
# Copyright 2001 ISHIKAWA Mutsumi
# Licensed under the GNU General Public License, version 2. See the file
# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
SRC=/etc/canna/dics.dir.d
DEST=/var/lib/canna/dic/canna
for DIR in $SRC $DEST; do
VALID=yes
if [ ! -d $DIR ]; then
echo "$0: $DIR does not exist or is not a directory." >&2
VALID=
fi
done
if [ -n "$VALID" ]; then
# write new dics.dir file in case we are interrupted
echo '# dics.dir -- automatically generated file. DO NOT EDIT.' > $DEST/dics.dir.update-new
# echo '# To modify, see update-canna-dics_dir(8). >> $DEST/dics.dir.update-new
# are there any files to process?
if [ "$(echo $SRC/*.dics.dir)" != "$SRC/*.dics.dir" ]; then
for file in $SRC/*.dics.dir; do
echo "# $file" >> $DEST/dics.dir.update-new
cat $file >> $DEST/dics.dir.update-new
done
mv $DEST/dics.dir.update-new $DEST/dics.dir
else
# no files to process, remove the one
rm -f $DEST/dics.dir
fi
fi
exit

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<description>co-maintainers welcome</description>
<name>Alessandro Barbieri</name>
<email>lssndrbarbieri@gmail.com</email>
</maintainer>
<use>
<flag name="canuum">Build canuum</flag>
</use>
</pkgmetadata>