a very light Emacs-clone with japanese support.

PR:		ports/8222
Submitted by:	Kawaguti Ginga <ginga@amalthea.phys.s.u-tokyo.ac.jp>
This commit is contained in:
Jun Kuriyama 1998-11-21 03:27:53 +00:00
parent 8fdc555599
commit 6ab10bb92c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=14733
12 changed files with 718 additions and 0 deletions

View file

@ -0,0 +1,33 @@
# New ports collection makefile for: Ng
# Version required: 1.3L
# Date created: 18 November 1998
# Whom: Kawaguti Ginga <ginga@athena.club.or.jp>
#
# $Id$
#
DISTNAME= ng-1.3L
PKGNAME= ja-ng-1.3l
CATEGORIES= japanese editors
MASTER_SITES= ftp://ftp.iis.u-tokyo.ac.jp/unix/Editor/
MAINTAINER= ginga@athena.club.or.jp
WRKSRC= ${WRKDIR}/Ng-1.3L
ALL_TARGET= ng
post-patch:
@(cd ${WRKSRC}; ${LN} -s sys/bsd/Makefile . )
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/ng ${PREFIX}/bin/
post-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${PREFIX}/share/doc/ja/ng
${INSTALL_DATA} ${WRKSRC}/Ng.doc ${PREFIX}/share/doc/ja/ng/Ng.doc.euc-jp
${INSTALL_DATA} ${WRKSRC}/Ng.ref ${PREFIX}/share/doc/ja/ng/Ng.ref.euc-jp
${INSTALL_DATA} ${WRKSRC}/Ng.tut ${PREFIX}/share/doc/ja/ng/Ng.tut.euc-jp
.endif
.include <bsd.port.mk>

View file

@ -0,0 +1 @@
MD5 (ng-1.3L.tar.gz) = d4fe1690a768f7d7b1133c1093dbcada

View file

@ -0,0 +1,308 @@
diff -cr ../complt.c ./complt.c
*** ../complt.c Mon Jun 14 09:31:36 1993
--- ./complt.c Wed Apr 17 04:12:07 1996
***************
*** 10,19 ****
--- 10,26 ----
#include "complt.h"
#define LIST_COL 35
+ #ifndef __FreeBSD__
BUFFER *bp = NULL;
BUFFER *prev_bp = NULL;
WINDOW *prev_wp = NULL;
WINDOW prev_window;
+ #else
+ static BUFFER *bp = NULL;
+ static BUFFER *prev_bp = NULL;
+ static WINDOW *prev_wp = NULL;
+ static WINDOW prev_window;
+ #endif /* __FreeBSD__ */
/*
* do some completion.
***************
*** 24,32 ****
--- 31,45 ----
int flags;
{
int res;
+ #ifndef __FreeBSD__
int complete_funcname ();
int complete_buffername ();
int complete_filename ();
+ #else
+ static int complete_funcname ();
+ static int complete_buffername ();
+ static int complete_filename ();
+ #endif /* __FreeBSD__ */
switch (flags & (EFFUNC | EFBUF | EFFILE))
{
***************
*** 256,264 ****
--- 269,283 ----
int cur_row;
int cur_col;
WINDOW *wp;
+ #ifndef __FreeBSD__
int complete_list_funcnames ();
int complete_list_buffernames ();
int complete_list_filenames ();
+ #else
+ static int complete_list_funcnames ();
+ static int complete_list_buffernames ();
+ static int complete_list_filenames ();
+ #endif /* __FreeBSD__ */
if ((bp = bfind ("*Completions*", TRUE)) == NULL)
return (FALSE);
diff -cr ../echo.c ./echo.c
*** ../echo.c Mon Jun 14 09:31:38 1993
--- ./echo.c Wed Apr 17 04:14:53 1996
***************
*** 192,199 ****
{
int cpos;
int c;
! int veread_del_char ();
! int veread_complete ();
#ifdef ADDFUNC /* 91.01.16 by S.Yoshida */
/* If an extra argument exists, use it. */
--- 192,204 ----
{
int cpos;
int c;
! #ifndef __FreeBSD__
! int veread_del_char ();
! int veread_complete ();
! #else
! static int veread_del_char(char *, int);
! static int veread_complete(char *, int, int, int);
! #endif /* __FreeBSD__ */
#ifdef ADDFUNC /* 91.01.16 by S.Yoshida */
/* If an extra argument exists, use it. */
diff -cr ../extend.c ./extend.c
*** ../extend.c Mon Jun 14 09:31:39 1993
--- ./extend.c Wed Apr 17 04:07:48 1996
***************
*** 96,102 ****
--- 96,106 ----
KEYMAP *mp;
PF *pfp;
MAP_ELEMENT *mep;
+ #ifndef __FreeBSD__
KEYMAP *realocmap(); /* 90.03.23 delete "static" by A.Shirahashi */
+ #else
+ static KEYMAP *realocmap(KEYMAP *);
+ #endif /* __FreeBSD__ */
if(ele >= &curmap->map_element[curmap->map_num] || c < ele->k_base) {
if(ele > &curmap->map_element[0] && (funct!=prefix ||
***************
*** 247,253 ****
--- 251,261 ----
{
register KEYMAP *mp;
register int i;
+ #ifndef __FreeBSD__
VOID fixmap(); /* 90.03.23 delete "static" by A.Shirahashi */
+ #else
+ static VOID fixmap(KEYMAP *,KEYMAP *,KEYMAP *);
+ #endif /* __FreeBSD__ */
extern int nmaps;
if((mp = (KEYMAP *)malloc((unsigned)(sizeof(KEYMAP)+
***************
*** 607,614 ****
--- 615,627 ----
#endif
PF name_function();
LINE *lalloc();
+ #ifndef __FreeBSD__
char *skipwhite(), *parsetoken(); /* 90.03.23 delete "static" */
/* by A.Shirahashi */
+ #else
+ static char *skipwhite(char *);
+ static char *parsetoken(char *);
+ #endif /* __FreeBSD__ */
if(macrodef || inmacro) {
ewprintf("Not now!");
diff -cr ../sys/bsd/fileio.c ./sys/bsd/fileio.c
*** ../sys/bsd/fileio.c Wed Feb 13 13:05:02 1991
--- ./sys/bsd/fileio.c Wed Apr 17 04:26:24 1996
***************
*** 6,11 ****
--- 6,15 ----
#include "config.h" /* 90.12.20 by S.Yoshida */
#include "def.h"
+ #ifdef __FreeBSD__
+ #include <string.h>
+ #endif /* __FreeBSD__ */
+
static FILE *ffp;
extern char *getenv(), *strncpy();
char *adjustname();
***************
*** 384,390 ****
--- 388,398 ----
{
int pid;
char *eargv[3];
+ #ifndef __FreeBSD__
union wait status;
+ #else
+ int status;
+ #endif /* __FreeBSD__ */
#ifdef BUGFIX /* 91.01.11 by Y.Kaneko */
if((pid = vfork()) == 0) {
***************
*** 403,409 ****
--- 411,421 ----
if(pid == -1) return -1;
#endif /* BUGFIX */
while(wait(&status) != pid) {}
+ #ifndef __FreeBSD__
return status.w_status == 0;
+ #else
+ return status == 0;
+ #endif /* __FreeBSD__ */
}
BUFFER *dired_(dirname)
***************
*** 461,472 ****
--- 473,506 ----
register char *fn;
{
register char *cp;
+ #ifndef __FreeBSD__
if(llength(lp) <= 47) return ABORT;
(VOID) strcpy(fn, curbp->b_fname);
cp = fn + strlen(fn);
bcopy(&lp->l_text[47], cp, llength(lp) - 47);
cp[llength(lp) - 47] = '\0';
+ #else
+ register int sepidx, duplen;
+
+ if(llength(lp) < 47) return ABORT;
+ cp = strrchr(lp->l_text, ' ');
+ sepidx = (cp - lp->l_text) + 1;
+
+ if ( lgetc(lp, 2) == 'l' && strncmp(cp - 3, " -> " ,4) == 0 ) {
+ duplen = sepidx-4;
+ strncpy(fn, lp->l_text, duplen);
+ fn[duplen] = '\0';
+ sepidx = (strrchr(fn, ' ') - fn) + 1;
+ duplen = duplen - sepidx;
+ }
+ else duplen = llength(lp) - sepidx;
+
+ (VOID) strcpy(fn, curbp->b_fname);
+ cp = fn + strlen(fn);
+ bcopy(&lp->l_text[sepidx], cp, duplen);
+ cp[duplen] = '\0';
+ #endif
return lgetc(lp, 2) == 'd';
}
#endif
diff -cr ../sys/bsd/spawn.c ./sys/bsd/spawn.c
*** ../sys/bsd/spawn.c Wed Feb 13 13:01:41 1991
--- ./sys/bsd/spawn.c Mon Apr 15 21:59:50 1996
***************
*** 39,51 ****
--- 39,65 ----
*/
/*ARGSUSED*/
spawncli(f, n) {
+ #ifndef __FreeBSD__
register int pid, wpid, (*oqsig)(), (*oisig)(), omask;
+ #else
+ register int omask;
+ register pid_t pid, wpid;
+ register sig_t oqsig, oisig;
+ #endif /* __FreeBSD__ */
#ifdef ADDFUNC /* 90.02.14 by S.Yoshida */
#ifdef SIGWINCH /* 90.02.14 by S.Yoshida */
+ #ifndef __FreeBSD__
register int (*owsig)();
+ #else
+ register sig_t owsig;
+ #endif /* __FreeBSD__ */
#endif /* SIGWINCH */
#endif /* ADDFUNC */
+ #ifndef __FreeBSD__
union wait status;
+ #else
+ int status;
+ #endif /* __FreeBSD__ */
if (shellp == NULL) {
shellp = getenv("SHELL");
***************
*** 141,148 ****
--- 155,169 ----
char *tmp;
int ostdin, ostdout, ostderr, in, out, s;
extern char *mktemp();
+ #ifdef __FreeBSD__
+ static char tmpfile[] = "/tmp/ngXXXXXX";
+ #endif /* __FreeBSD__ */
+ #ifndef __FreeBSD__
if ((tmp = mktemp("/tmp/ngXXXXXX")) == NULL)
+ #else
+ if ((tmp = mktemp(tmpfile)) == NULL)
+ #endif /* __FreeBSD__ */
return NULL;
if ((in = open(input ? input : "/dev/null", 0)) < 0)
return NULL;
diff -cr ../sys/bsd/ttyio.c ./sys/bsd/ttyio.c
*** ../sys/bsd/ttyio.c Wed Feb 13 13:02:01 1991
--- ./sys/bsd/ttyio.c Mon Apr 15 21:59:50 1996
***************
*** 32,38 ****
--- 32,42 ----
int ncol; /* Terminal size, columns. */
#ifdef ADDFUNC /* 90.02.14 by S.Yoshida */
#ifdef SIGWINCH /* 90.02.13 by S.Yoshida */
+ #ifndef __FreeBSD__
int ttwinch();
+ #else
+ void ttwinch();
+ #endif /* __FreeBSD__ */
#endif /* SIGWINCH */
#endif /* ADDFUNC */
***************
*** 46,52 ****
--- 50,58 ----
ttopen() {
register char *tv_stype;
char *getenv(), *tgetstr(), tcbuf[1024], err_str[72];
+ #ifndef __FreeBSD__
char *sprintf();
+ #endif /* __FreeBSD__ */
/* do this the REAL way */
if ((tv_stype = getenv("TERM")) == NULL)
***************
*** 256,262 ****
--- 262,272 ----
/*
* Signal handler when window size has changed.
*/
+ #ifndef __FreeBSD__
ttwinch()
+ #else
+ void ttwinch()
+ #endif /* __FreeBSD__ */
{
refresh(FFRAND, 0); /* Very easy way... */
}

View file

@ -0,0 +1 @@
a very light Emacs-clone with japanese support.

View file

@ -0,0 +1,11 @@
Ng is a very light weight Emacs clone editor, written in C.
It doesn't have Lisp(that means very limited customization
is available). Since you can invoke it very quickly
(compared with real GNU Emacs), it is useful in dealing with
changing small file a bit.
Ng(Nihongo Micro Gnu Emacs) is a Mg(Micro Gnu Emacs)'s
japanese port. Ng supports EUC, JIS and SJIS code.
Ng also have (rather simple) C-mode.
It is also very useful even if you don't need Japanese support.

View file

@ -0,0 +1,5 @@
bin/ng
share/doc/ja/ng/Ng.doc.euc-jp
share/doc/ja/ng/Ng.ref.euc-jp
share/doc/ja/ng/Ng.tut.euc-jp
@dirrm share/doc/ja/ng

33
japanese/ng/Makefile Normal file
View file

@ -0,0 +1,33 @@
# New ports collection makefile for: Ng
# Version required: 1.3L
# Date created: 18 November 1998
# Whom: Kawaguti Ginga <ginga@athena.club.or.jp>
#
# $Id$
#
DISTNAME= ng-1.3L
PKGNAME= ja-ng-1.3l
CATEGORIES= japanese editors
MASTER_SITES= ftp://ftp.iis.u-tokyo.ac.jp/unix/Editor/
MAINTAINER= ginga@athena.club.or.jp
WRKSRC= ${WRKDIR}/Ng-1.3L
ALL_TARGET= ng
post-patch:
@(cd ${WRKSRC}; ${LN} -s sys/bsd/Makefile . )
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/ng ${PREFIX}/bin/
post-install:
.if !defined(NOPORTDOCS)
${MKDIR} ${PREFIX}/share/doc/ja/ng
${INSTALL_DATA} ${WRKSRC}/Ng.doc ${PREFIX}/share/doc/ja/ng/Ng.doc.euc-jp
${INSTALL_DATA} ${WRKSRC}/Ng.ref ${PREFIX}/share/doc/ja/ng/Ng.ref.euc-jp
${INSTALL_DATA} ${WRKSRC}/Ng.tut ${PREFIX}/share/doc/ja/ng/Ng.tut.euc-jp
.endif
.include <bsd.port.mk>

1
japanese/ng/distinfo Normal file
View file

@ -0,0 +1 @@
MD5 (ng-1.3L.tar.gz) = d4fe1690a768f7d7b1133c1093dbcada

308
japanese/ng/files/patch-aa Normal file
View file

@ -0,0 +1,308 @@
diff -cr ../complt.c ./complt.c
*** ../complt.c Mon Jun 14 09:31:36 1993
--- ./complt.c Wed Apr 17 04:12:07 1996
***************
*** 10,19 ****
--- 10,26 ----
#include "complt.h"
#define LIST_COL 35
+ #ifndef __FreeBSD__
BUFFER *bp = NULL;
BUFFER *prev_bp = NULL;
WINDOW *prev_wp = NULL;
WINDOW prev_window;
+ #else
+ static BUFFER *bp = NULL;
+ static BUFFER *prev_bp = NULL;
+ static WINDOW *prev_wp = NULL;
+ static WINDOW prev_window;
+ #endif /* __FreeBSD__ */
/*
* do some completion.
***************
*** 24,32 ****
--- 31,45 ----
int flags;
{
int res;
+ #ifndef __FreeBSD__
int complete_funcname ();
int complete_buffername ();
int complete_filename ();
+ #else
+ static int complete_funcname ();
+ static int complete_buffername ();
+ static int complete_filename ();
+ #endif /* __FreeBSD__ */
switch (flags & (EFFUNC | EFBUF | EFFILE))
{
***************
*** 256,264 ****
--- 269,283 ----
int cur_row;
int cur_col;
WINDOW *wp;
+ #ifndef __FreeBSD__
int complete_list_funcnames ();
int complete_list_buffernames ();
int complete_list_filenames ();
+ #else
+ static int complete_list_funcnames ();
+ static int complete_list_buffernames ();
+ static int complete_list_filenames ();
+ #endif /* __FreeBSD__ */
if ((bp = bfind ("*Completions*", TRUE)) == NULL)
return (FALSE);
diff -cr ../echo.c ./echo.c
*** ../echo.c Mon Jun 14 09:31:38 1993
--- ./echo.c Wed Apr 17 04:14:53 1996
***************
*** 192,199 ****
{
int cpos;
int c;
! int veread_del_char ();
! int veread_complete ();
#ifdef ADDFUNC /* 91.01.16 by S.Yoshida */
/* If an extra argument exists, use it. */
--- 192,204 ----
{
int cpos;
int c;
! #ifndef __FreeBSD__
! int veread_del_char ();
! int veread_complete ();
! #else
! static int veread_del_char(char *, int);
! static int veread_complete(char *, int, int, int);
! #endif /* __FreeBSD__ */
#ifdef ADDFUNC /* 91.01.16 by S.Yoshida */
/* If an extra argument exists, use it. */
diff -cr ../extend.c ./extend.c
*** ../extend.c Mon Jun 14 09:31:39 1993
--- ./extend.c Wed Apr 17 04:07:48 1996
***************
*** 96,102 ****
--- 96,106 ----
KEYMAP *mp;
PF *pfp;
MAP_ELEMENT *mep;
+ #ifndef __FreeBSD__
KEYMAP *realocmap(); /* 90.03.23 delete "static" by A.Shirahashi */
+ #else
+ static KEYMAP *realocmap(KEYMAP *);
+ #endif /* __FreeBSD__ */
if(ele >= &curmap->map_element[curmap->map_num] || c < ele->k_base) {
if(ele > &curmap->map_element[0] && (funct!=prefix ||
***************
*** 247,253 ****
--- 251,261 ----
{
register KEYMAP *mp;
register int i;
+ #ifndef __FreeBSD__
VOID fixmap(); /* 90.03.23 delete "static" by A.Shirahashi */
+ #else
+ static VOID fixmap(KEYMAP *,KEYMAP *,KEYMAP *);
+ #endif /* __FreeBSD__ */
extern int nmaps;
if((mp = (KEYMAP *)malloc((unsigned)(sizeof(KEYMAP)+
***************
*** 607,614 ****
--- 615,627 ----
#endif
PF name_function();
LINE *lalloc();
+ #ifndef __FreeBSD__
char *skipwhite(), *parsetoken(); /* 90.03.23 delete "static" */
/* by A.Shirahashi */
+ #else
+ static char *skipwhite(char *);
+ static char *parsetoken(char *);
+ #endif /* __FreeBSD__ */
if(macrodef || inmacro) {
ewprintf("Not now!");
diff -cr ../sys/bsd/fileio.c ./sys/bsd/fileio.c
*** ../sys/bsd/fileio.c Wed Feb 13 13:05:02 1991
--- ./sys/bsd/fileio.c Wed Apr 17 04:26:24 1996
***************
*** 6,11 ****
--- 6,15 ----
#include "config.h" /* 90.12.20 by S.Yoshida */
#include "def.h"
+ #ifdef __FreeBSD__
+ #include <string.h>
+ #endif /* __FreeBSD__ */
+
static FILE *ffp;
extern char *getenv(), *strncpy();
char *adjustname();
***************
*** 384,390 ****
--- 388,398 ----
{
int pid;
char *eargv[3];
+ #ifndef __FreeBSD__
union wait status;
+ #else
+ int status;
+ #endif /* __FreeBSD__ */
#ifdef BUGFIX /* 91.01.11 by Y.Kaneko */
if((pid = vfork()) == 0) {
***************
*** 403,409 ****
--- 411,421 ----
if(pid == -1) return -1;
#endif /* BUGFIX */
while(wait(&status) != pid) {}
+ #ifndef __FreeBSD__
return status.w_status == 0;
+ #else
+ return status == 0;
+ #endif /* __FreeBSD__ */
}
BUFFER *dired_(dirname)
***************
*** 461,472 ****
--- 473,506 ----
register char *fn;
{
register char *cp;
+ #ifndef __FreeBSD__
if(llength(lp) <= 47) return ABORT;
(VOID) strcpy(fn, curbp->b_fname);
cp = fn + strlen(fn);
bcopy(&lp->l_text[47], cp, llength(lp) - 47);
cp[llength(lp) - 47] = '\0';
+ #else
+ register int sepidx, duplen;
+
+ if(llength(lp) < 47) return ABORT;
+ cp = strrchr(lp->l_text, ' ');
+ sepidx = (cp - lp->l_text) + 1;
+
+ if ( lgetc(lp, 2) == 'l' && strncmp(cp - 3, " -> " ,4) == 0 ) {
+ duplen = sepidx-4;
+ strncpy(fn, lp->l_text, duplen);
+ fn[duplen] = '\0';
+ sepidx = (strrchr(fn, ' ') - fn) + 1;
+ duplen = duplen - sepidx;
+ }
+ else duplen = llength(lp) - sepidx;
+
+ (VOID) strcpy(fn, curbp->b_fname);
+ cp = fn + strlen(fn);
+ bcopy(&lp->l_text[sepidx], cp, duplen);
+ cp[duplen] = '\0';
+ #endif
return lgetc(lp, 2) == 'd';
}
#endif
diff -cr ../sys/bsd/spawn.c ./sys/bsd/spawn.c
*** ../sys/bsd/spawn.c Wed Feb 13 13:01:41 1991
--- ./sys/bsd/spawn.c Mon Apr 15 21:59:50 1996
***************
*** 39,51 ****
--- 39,65 ----
*/
/*ARGSUSED*/
spawncli(f, n) {
+ #ifndef __FreeBSD__
register int pid, wpid, (*oqsig)(), (*oisig)(), omask;
+ #else
+ register int omask;
+ register pid_t pid, wpid;
+ register sig_t oqsig, oisig;
+ #endif /* __FreeBSD__ */
#ifdef ADDFUNC /* 90.02.14 by S.Yoshida */
#ifdef SIGWINCH /* 90.02.14 by S.Yoshida */
+ #ifndef __FreeBSD__
register int (*owsig)();
+ #else
+ register sig_t owsig;
+ #endif /* __FreeBSD__ */
#endif /* SIGWINCH */
#endif /* ADDFUNC */
+ #ifndef __FreeBSD__
union wait status;
+ #else
+ int status;
+ #endif /* __FreeBSD__ */
if (shellp == NULL) {
shellp = getenv("SHELL");
***************
*** 141,148 ****
--- 155,169 ----
char *tmp;
int ostdin, ostdout, ostderr, in, out, s;
extern char *mktemp();
+ #ifdef __FreeBSD__
+ static char tmpfile[] = "/tmp/ngXXXXXX";
+ #endif /* __FreeBSD__ */
+ #ifndef __FreeBSD__
if ((tmp = mktemp("/tmp/ngXXXXXX")) == NULL)
+ #else
+ if ((tmp = mktemp(tmpfile)) == NULL)
+ #endif /* __FreeBSD__ */
return NULL;
if ((in = open(input ? input : "/dev/null", 0)) < 0)
return NULL;
diff -cr ../sys/bsd/ttyio.c ./sys/bsd/ttyio.c
*** ../sys/bsd/ttyio.c Wed Feb 13 13:02:01 1991
--- ./sys/bsd/ttyio.c Mon Apr 15 21:59:50 1996
***************
*** 32,38 ****
--- 32,42 ----
int ncol; /* Terminal size, columns. */
#ifdef ADDFUNC /* 90.02.14 by S.Yoshida */
#ifdef SIGWINCH /* 90.02.13 by S.Yoshida */
+ #ifndef __FreeBSD__
int ttwinch();
+ #else
+ void ttwinch();
+ #endif /* __FreeBSD__ */
#endif /* SIGWINCH */
#endif /* ADDFUNC */
***************
*** 46,52 ****
--- 50,58 ----
ttopen() {
register char *tv_stype;
char *getenv(), *tgetstr(), tcbuf[1024], err_str[72];
+ #ifndef __FreeBSD__
char *sprintf();
+ #endif /* __FreeBSD__ */
/* do this the REAL way */
if ((tv_stype = getenv("TERM")) == NULL)
***************
*** 256,262 ****
--- 262,272 ----
/*
* Signal handler when window size has changed.
*/
+ #ifndef __FreeBSD__
ttwinch()
+ #else
+ void ttwinch()
+ #endif /* __FreeBSD__ */
{
refresh(FFRAND, 0); /* Very easy way... */
}

1
japanese/ng/pkg-comment Normal file
View file

@ -0,0 +1 @@
a very light Emacs-clone with japanese support.

11
japanese/ng/pkg-descr Normal file
View file

@ -0,0 +1,11 @@
Ng is a very light weight Emacs clone editor, written in C.
It doesn't have Lisp(that means very limited customization
is available). Since you can invoke it very quickly
(compared with real GNU Emacs), it is useful in dealing with
changing small file a bit.
Ng(Nihongo Micro Gnu Emacs) is a Mg(Micro Gnu Emacs)'s
japanese port. Ng supports EUC, JIS and SJIS code.
Ng also have (rather simple) C-mode.
It is also very useful even if you don't need Japanese support.

5
japanese/ng/pkg-plist Normal file
View file

@ -0,0 +1,5 @@
bin/ng
share/doc/ja/ng/Ng.doc.euc-jp
share/doc/ja/ng/Ng.ref.euc-jp
share/doc/ja/ng/Ng.tut.euc-jp
@dirrm share/doc/ja/ng