[87366] trunk/dports/textproc

hum at macports.org hum at macports.org
Fri Nov 18 15:08:39 PST 2011


Revision: 87366
          http://trac.macports.org/changeset/87366
Author:   hum at macports.org
Date:     2011-11-18 15:08:38 -0800 (Fri, 18 Nov 2011)
Log Message:
-----------
chasen, chasen-base: downgrade to 2.3.3 due to vulnerability; see http://jvndb.jvn.jp/en/contents/2011/JVNDB-2011-000099.html; add patches for 2.3.3 with clang compiler; fix livecheck.

Modified Paths:
--------------
    trunk/dports/textproc/chasen/Portfile
    trunk/dports/textproc/chasen-base/Portfile
    trunk/dports/textproc/chasen-base/files/patch-configure.diff

Added Paths:
-----------
    trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030821.patch
    trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030822.patch
    trunk/dports/textproc/chasen-base/files/patch-lib.diff
    trunk/dports/textproc/chasen-base/files/patch-mkchadic.diff

Modified: trunk/dports/textproc/chasen/Portfile
===================================================================
--- trunk/dports/textproc/chasen/Portfile	2011-11-18 13:34:05 UTC (rev 87365)
+++ trunk/dports/textproc/chasen/Portfile	2011-11-18 23:08:38 UTC (rev 87366)
@@ -4,8 +4,8 @@
 PortSystem          1.0
 
 name                chasen
-version             2.4.4
-revision            1
+version             2.3.3
+epoch               1
 categories          textproc japanese
 platforms           darwin
 maintainers         takanori hum openmaintainer

Modified: trunk/dports/textproc/chasen-base/Portfile
===================================================================
--- trunk/dports/textproc/chasen-base/Portfile	2011-11-18 13:34:05 UTC (rev 87365)
+++ trunk/dports/textproc/chasen-base/Portfile	2011-11-18 23:08:38 UTC (rev 87366)
@@ -4,7 +4,8 @@
 PortSystem          1.0
 
 name                chasen-base
-version             2.4.4
+version             2.3.3
+epoch               1
 categories          textproc japanese
 platforms           darwin
 maintainers         takanori hum openmaintainer
@@ -17,13 +18,18 @@
 dist_subdir         chasen
 distname            chasen-${version}
 
-master_sites        sourceforge_jp:chasen-legacy/32224
+master_sites        sourceforge_jp:chasen-legacy/24339
+checksums           rmd160  2f2416f82fb0341023314a4672e442fed86207a9 \
+                    sha256  a91b422398f30c9c6c2d27fdbcc1aeb8e026ded44d6e729fc060d5d18bfaefdb
 
-checksums           rmd160  ceb4a7c064ba5bf0d356d6db0e64b644b88dbc54 \
-                    sha256  09e41f681097f87ba6c953d3724c34c1826c3cfa590898a2166fb310a006f932
+# chasen-2.3.3-2003082[12].patch are official patches taken from http://chasen.aist-nara.ac.jp/stable/chasen/
+# see http://chasen.naist.jp/hiki/ChaSen/?%A5%D0%A5%B0%BE%F0%CA%F3
+patchfiles          chasen-2.3.3.20030821.patch \
+                    chasen-2.3.3.20030822.patch \
+                    patch-configure.diff \
+                    patch-lib.diff \
+                    patch-mkchadic.diff
 
-patchfiles          patch-configure.diff
-
 depends_build       port:darts
 depends_lib         port:libiconv
 
@@ -75,5 +81,5 @@
 }
 
 livecheck.type      regex
-livecheck.url       http://sourceforge.jp/projects/chasen-legacy/releases
-livecheck.regex     chasen-(\[0-9.a-z\-\]+)\\.tar
+livecheck.url       ${homepage}
+livecheck.regex     >chasen-(\[0-9.a-z\-\]+)<

Added: trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030821.patch
===================================================================
--- trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030821.patch	                        (rev 0)
+++ trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030821.patch	2011-11-18 23:08:38 UTC (rev 87366)
@@ -0,0 +1,108 @@
+Index: ChangeLog
+===================================================================
+RCS file: /cvsroot/chasen/ChangeLog,v
+retrieving revision 1.146
+retrieving revision 1.147
+diff -u -r1.146 -r1.147
+--- ChangeLog	13 Aug 2003 13:55:19 -0000	1.146
++++ ChangeLog	21 Aug 2003 01:14:44 -0000	1.147
+@@ -1,3 +1,7 @@
++2003-08-21  TAKAOKA Kazuma  <kazuma-t at is.aist-nara.ac.jp>
++
++	* lib/tokenizer.c (cha_tok_parse): Fix for SPACE_POS.
++
+ 2003-08-13  TAKAOKA Kazuma  <kazuma-t at is.aist-nara.ac.jp>
+ 
+ 	* lib/iotool.c (cha_read_registry): Read the registry for the
+Index: lib/parse.c
+===================================================================
+RCS file: /cvsroot/chasen/lib/parse.c,v
+retrieving revision 1.57
+retrieving revision 1.58
+diff -u -r1.57 -r1.58
+--- lib/parse.c	30 Jul 2003 16:06:57 -0000	1.57
++++ lib/parse.c	21 Aug 2003 01:14:44 -0000	1.58
+@@ -27,7 +27,7 @@
+  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+- * $Id: parse.c,v 1.57 2003/07/30 16:06:57 kazuma-t Exp $
++ * $Id: parse.c,v 1.58 2003/08/21 01:14:44 kazuma-t Exp $
+  */
+ 
+ #include "chalib.h"
+@@ -434,7 +434,7 @@
+ 	int mrph_idx, i;
+ 
+         /* skip annotations and white space */
+-	while (cha_tok_anno_type(Cha_tokenizer, cursor) != 0 )
++	while (cha_tok_anno_type(Cha_tokenizer, cursor) >= 0)
+ 	  cursor += cha_tok_char_type_len(Cha_tokenizer, cursor);
+ 	if (cursor >= len)
+ 	  break;
+Index: lib/tokenizer.c
+===================================================================
+RCS file: /cvsroot/chasen/lib/tokenizer.c,v
+retrieving revision 1.14
+retrieving revision 1.16
+diff -u -r1.14 -r1.16
+--- lib/tokenizer.c	8 Jul 2003 17:08:49 -0000	1.14
++++ lib/tokenizer.c	21 Aug 2003 01:35:07 -0000	1.16
+@@ -27,7 +27,7 @@
+  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  *
+- * $Id: tokenizer.c,v 1.14 2003/07/08 17:08:49 kazuma-t Exp $
++ * $Id: tokenizer.c,v 1.16 2003/08/21 01:35:07 kazuma-t Exp $
+  */
+ 
+ #include <string.h>
+@@ -154,6 +154,7 @@
+     int cursor, head;
+     int state, state0;
+     anno_info *anno = NULL;
++    int i;
+ 
+     tok->string = str;
+     tok->string_len = len;
+@@ -165,7 +166,8 @@
+     }
+ 
+     memset(tok->_char_type, 0, sizeof(int) * len);
+-    memset(tok->_anno_type, 0, sizeof(int) * len);
++    for (i = 0; i < len; i++)
++        tok->_anno_type[i] = -1;
+ 
+     state0 = state = 0; /* NOSTATE */
+     for (cursor = head = 0; cursor < len;
+@@ -248,10 +250,9 @@
+  * This function returns the type of annotation, if there is 
+  * the begining of annotation on cursor.  The type is more than 0.
+  *
+- * And it returns less than 0 value, if the character on cursor is
+- * white space.
++ * And it returns 0, if the character on cursor is white space.
+  *
+- * Otherwise it returns 0.
++ * Otherwise it returns less than 0.
+  */
+ int
+ cha_tok_anno_type(chasen_tok_t *tok, int cursor)
+@@ -329,7 +330,7 @@
+ ja_char_type_parse(chasen_tok_t *tok, int state, int *state0, int cursor)
+ {
+     if (state == JA_SPACE) {
+-	tok->_anno_type[cursor] = -1;
++	tok->_anno_type[cursor] = 0;
+     } else if ((state == HALF_LATIN) ||
+ 	       (state == FULL_LATIN)) {
+ 	; /* do nothing */
+@@ -350,7 +351,7 @@
+ en_char_type_parse(chasen_tok_t *tok, int state, int *state0, int cursor)
+ {
+     if (state == EN_SPACE) {
+-	tok->_anno_type[cursor] = -1;
++	tok->_anno_type[cursor] = 0;
+     } else if (state == EN_OTHER) {
+ 	*state0 = EN_NOSTATE;
+     }

Added: trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030822.patch
===================================================================
--- trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030822.patch	                        (rev 0)
+++ trunk/dports/textproc/chasen-base/files/chasen-2.3.3.20030822.patch	2011-11-18 23:08:38 UTC (rev 87366)
@@ -0,0 +1,85 @@
+Index: ChangeLog
+===================================================================
+RCS file: /cvsroot/chasen/ChangeLog,v
+retrieving revision 1.147
+diff -u -r1.147 ChangeLog
+--- ChangeLog	21 Aug 2003 01:14:44 -0000	1.147
++++ ChangeLog	22 Aug 2003 05:32:58 -0000
+@@ -1,3 +1,7 @@
++2003-08-22  TAKAOKA Kazuma  <kazuma-t at is.aist-nara.ac.jp>
++
++	* lib/print.c (extract_yomi1): Fix bug.
++
+ 2003-08-21  TAKAOKA Kazuma  <kazuma-t at is.aist-nara.ac.jp>
+ 
+ 	* lib/tokenizer.c (cha_tok_parse): Fix for SPACE_POS.
+Index: lib/print.c
+===================================================================
+RCS file: /cvsroot/chasen/lib/print.c,v
+retrieving revision 1.53
+diff -u -r1.53 print.c
+--- lib/print.c	11 Aug 2003 05:53:36 -0000	1.53
++++ lib/print.c	22 Aug 2003 05:32:58 -0000
+@@ -579,40 +579,35 @@
+     path->start = start;
+ }
+ 
+-#define copy_mbstr(d,s) \
+-do { int len = cha_tok_mblen(Cha_tokenizer, (s), 4 /* XXX */); \
+-    while (len-- && *(s)) { *(d)++ = *(s)++; } \
+-    s--; /* XXX */\
+-} while (0)
+-
+ static void
+ extract_yomi1(char *dst, char *src)
+ {
+-    int in_brace = 0, is1st = 0;
+-    char *s, *d;
++    char *d = dst;
++    char *s = src;
++    int state = 0;
+ 
+-    if (strchr(src, '{') == NULL) {
+-	if (dst != src)
+-	    strcpy(dst, src);
+-	return;
+-    }
++    while (*s) {
++	int i;
++	int len = cha_tok_mblen(Cha_tokenizer, (s), 4 /* XXX */);
+ 
+-    for (s = src, d = dst; *s; s++) {
+-	if (!in_brace) {
+-	    if (*s == '{')
+-		in_brace = is1st = 1;
+-	    else
+-		copy_mbstr(d, s);
+-	} else if (*s == '}')
+-	    in_brace = 0;
+-	else if (is1st) {
+-	    if (*s == '/')
+-		is1st = 0;
+-	    else
+-		copy_mbstr(d, s);
++	if (state == 0 && len == 1 && *s == '{') {
++	    state = 1;
++	    s += len;
++	    continue;
++	} else if (state == 1 && len == 1 && *s == '/') {
++	    state = 2;
++	    s += len;
++	    continue;
++	} else if (state == 2) {
++	    if (len == 1 && *s == '}')
++		state = 0;
++	    s += len;
++	    continue;
+ 	}
+-    }
+ 
++	for (i = 0; i < len; i++)
++	    *d++ = *s++;
++    }
+     *d = '\0';
+ }
+ 

Modified: trunk/dports/textproc/chasen-base/files/patch-configure.diff
===================================================================
--- trunk/dports/textproc/chasen-base/files/patch-configure.diff	2011-11-18 13:34:05 UTC (rev 87365)
+++ trunk/dports/textproc/chasen-base/files/patch-configure.diff	2011-11-18 23:08:38 UTC (rev 87366)
@@ -1,27 +1,31 @@
---- configure.orig	2008-07-23 13:15:55.000000000 +0900
-+++ configure	2011-10-02 20:57:04.000000000 +0900
-@@ -22780,8 +22780,8 @@
+--- configure.orig	2003-08-15 13:00:58.000000000 +0900
++++ configure	2011-11-18 02:23:20.000000000 +0900
+@@ -8497,8 +8497,8 @@
+ fi;
  
  
- 
--{ echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
--echo $ECHO_N "checking for iconv in -liconv... $ECHO_C" >&6; }
-+{ echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
-+echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6; }
+-echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
+-echo $ECHO_N "checking for iconv in -liconv... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
++echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6
  if test "${ac_cv_lib_iconv_iconv+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
-@@ -22800,11 +22800,11 @@
- #ifdef __cplusplus
- extern "C"
+@@ -8514,7 +8514,7 @@
  #endif
+ /* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
 -char iconv ();
 +char libiconv ();
+ #ifdef F77_DUMMY_MAIN
+ #  ifdef __cplusplus
+      extern "C"
+@@ -8524,7 +8524,7 @@
  int
  main ()
  {
--return iconv ();
-+return libiconv ();
+-iconv ();
++libiconv ();
    ;
    return 0;
  }

Added: trunk/dports/textproc/chasen-base/files/patch-lib.diff
===================================================================
--- trunk/dports/textproc/chasen-base/files/patch-lib.diff	                        (rev 0)
+++ trunk/dports/textproc/chasen-base/files/patch-lib.diff	2011-11-18 23:08:38 UTC (rev 87366)
@@ -0,0 +1,201 @@
+--- lib/chalib.c.orig	2003-08-15 12:58:57.000000000 +0900
++++ lib/chalib.c	2011-11-18 22:36:39.000000000 +0900
+@@ -364,7 +364,7 @@
+     char *euc_str;
+ 
+     euc_str = cha_malloc(strlen(str_in) + 1);
+-    cha_jistoeuc(str_in, euc_str);
++    cha_jistoeuc((unsigned char*)str_in, (unsigned char*)euc_str);
+     rc = chasen_sparse_main(euc_str, fp_out);
+     free(euc_str);
+ 
+@@ -405,7 +405,7 @@
+     char *euc_str;
+ 
+     euc_str = cha_malloc(strlen(str_in) + 1);
+-    cha_jistoeuc(str_in, euc_str);
++    cha_jistoeuc((unsigned char*)str_in, (unsigned char*)euc_str);
+ 
+     if (chasen_sparse_main(euc_str, NULL))
+ 	return NULL;
+--- lib/dartsdic.cpp.orig	2003-07-31 01:06:57.000000000 +0900
++++ lib/dartsdic.cpp	2011-11-18 22:43:18.000000000 +0900
+@@ -68,7 +68,7 @@
+ 
+     da = (darts_t*)cha_malloc(sizeof(darts_t));
+     da->da_mmap = cha_mmap_file(daname);
+-    darts->setArray(cha_mmap_map(da->da_mmap));
++    darts->set_array(cha_mmap_map(da->da_mmap));
+     da->da = darts;
+     da->lex_mmap = cha_mmap_file(lexname);
+     da->dat_mmap = cha_mmap_file(datname);
+@@ -177,18 +177,18 @@
+ 	    lex_indices.push_back(i->second);
+ 	}
+ 	lens[size] = key.size();
+-	(const char*)keys[size] = key.data();
++	keys[size] = (char*)key.data();
+ 	vals[size] = redump_lex(lens[size], lex_indices, tmpfile, lexfile);
+ 	if (vals[size] < 0) {
+ 	    std::cerr << "Unexpected error at " << key << std::endl;
+-	    cha_exit_perror("build darts file");
++	    cha_exit_perror((char*)"build darts file");
+ 	}
+ 	size++;
+     }
+     std::cerr << size << " keys" << std::endl;
+ 
+     DoubleArrayL da;
+-    da.build(size, keys, lens, vals);
++    da.build(size, (const char**)keys, lens, vals);
+     da.save(builder->path->c_str(), "wb");
+ 
+     return builder->entries->size();
+--- lib/parse.c.orig	2003-07-31 01:06:57.000000000 +0900
++++ lib/parse.c	2011-11-18 22:49:29.000000000 +0900
+@@ -412,7 +412,7 @@
+     int head_path;
+     static int path0 = -1;
+ 
+-    cha_tok_parse(Cha_tokenizer, sentence, len + 1);
++    cha_tok_parse(Cha_tokenizer, (unsigned char*)sentence, len + 1);
+     cha_block_clear(Cha_mrph_block);
+ 
+     free_chars();
+--- lib/jfgets.c.orig	2003-07-09 02:08:49.000000000 +0900
++++ lib/jfgets.c	2011-11-19 07:51:01.000000000 +0900
+@@ -166,13 +166,13 @@
+     static unsigned char tmp_buf[INNER_BUFSIZE];
+     int last;
+ 
+-    if (fgets(tmp_buf, bufsize, stream) == NULL)
++    if (fgets((char*)tmp_buf, bufsize, stream) == NULL)
+ 	return NULL;
+ 
+     /*
+      * remove the last extra character 
+      */
+-    last = strlen(tmp_buf) - 1;
++    last = strlen((char*)tmp_buf) - 1;
+     if (iskanji1(tmp_buf, last)) {
+ 	ungetc(tmp_buf[last], stream);
+ 	tmp_buf[last] = 0;
+@@ -185,7 +185,7 @@
+      *       you must care about string length.
+      */
+ 
+-    cha_jistoeuc(tmp_buf, buffer);
++    cha_jistoeuc(tmp_buf, (unsigned char*)buffer);
+ 
+     return buffer;
+ }
+@@ -205,7 +205,7 @@
+     int kflag;	/* kanji flag(0=not found, 1=found) */
+ 
+     if (pos == NULL &&
+-	(pos = cha_fget_line(ibuf, sizeof(ibuf), stream)) == NULL)
++	(pos = (unsigned char*)cha_fget_line((char*)ibuf, sizeof(ibuf), stream)) == NULL)
+ 	return NULL;
+ 
+     kflag = 0;
+@@ -217,7 +217,7 @@
+ 	 * line is end without '\n', long string read more 
+ 	 */
+ 	if (*pos == '\0')
+-	    if ((pos = cha_fget_line(ibuf, sizeof(ibuf), stream)) == NULL)
++	    if ((pos = (unsigned char*)cha_fget_line((char*)ibuf, sizeof(ibuf), stream)) == NULL)
+ 		break;
+ 
+ 	/*
+@@ -234,7 +234,7 @@
+ 	    /*
+ 	     * hit delimiter 
+ 	     */
+-	    if (isterminator(pos - 2, jfgets_delimiter)) {
++	    if (isterminator(pos - 2, (unsigned char*)jfgets_delimiter)) {
+ 		if (*pos == '\n')
+ 		    pos++;
+ 		break;
+@@ -256,7 +256,7 @@
+ 		    q--;
+ 
+ 		if ((pos =
+-		     cha_fget_line(ibuf, sizeof(ibuf), stream)) == NULL)
++		     (unsigned char*)cha_fget_line((char*)ibuf, sizeof(ibuf), stream)) == NULL)
+ 		    break;
+ 
+ 		while (*pos == ' ' || *pos == '\t')
+@@ -290,7 +290,7 @@
+ 		/*
+ 		 * hit delimiter 
+ 		 */
+-		if (isterminator(pos - 1, jfgets_delimiter)) {
++		if (isterminator(pos - 1, (unsigned char*)jfgets_delimiter)) {
+ 		    if (*pos == '\n')
+ 			pos++;
+ 		    break;
+--- lib/print.c.orig	2011-11-18 23:18:31.000000000 +0900
++++ lib/print.c	2011-11-19 07:52:38.000000000 +0900
+@@ -303,7 +303,7 @@
+     int len, i;
+ 
+     while (*s1) {
+-	len = cha_tok_mblen(Cha_tokenizer, s1, 4 /* XXX */);
++	len = cha_tok_mblen(Cha_tokenizer, (unsigned char*)s1, 4 /* XXX */);
+ 	for (i = 0; i < len; i++)
+ 	    if (s1[i] != s2[i])
+ 		return s1 - s0;
+@@ -327,7 +327,7 @@
+     int plen, maxplen = 0;
+ 
+     for (;;) {
+-	for (; *y; y += cha_tok_mblen(Cha_tokenizer, y, 4 /* XXX */)) {
++	for (; *y; y += cha_tok_mblen(Cha_tokenizer, (unsigned char*)y, 4 /* XXX */)) {
+ 	    if (stat == 0) {
+ 		stat = 1;
+ 		if ((plen = comm_prefix_len(m, y)) > 0) {
+@@ -340,7 +340,7 @@
+ 		y0 = y;
+ 		if (!*m || !*y)
+ 		    goto end_ruby;
+-		m += cha_tok_mblen(Cha_tokenizer, m, 4 /* XXX */);
++		m += cha_tok_mblen(Cha_tokenizer, (unsigned char*)m, 4 /* XXX */);
+ 		plen = maxplen = 0;
+ 		continue;
+ 	    }
+@@ -351,7 +351,7 @@
+ 	}
+ 	if (maxplen == 0) {
+ 	    if (*m)
+-		m += cha_tok_mblen(Cha_tokenizer, m, 4 /* XXX */);
++		m += cha_tok_mblen(Cha_tokenizer, (unsigned char*)m, 4 /* XXX */);
+ 	    if (!*m)
+ 		ymax = y;
+ 	}
+@@ -548,7 +548,7 @@
+ 	if (anno_no >= 0 &&
+ 	    (Cha_anno_info[anno_no].hinsi
+ 	     || Cha_anno_info[anno_no].format)) {
+-	    mrph.headword = Cha_tokenizer->string + pos_end;
++	    mrph.headword = (char*)(Cha_tokenizer->string + pos_end);
+ 	    mrph.headword_len = mrph.stem_len =
+ 		cha_tok_char_type_len(Cha_tokenizer, pos_end);
+ 	    mrph.reading_len = -1;
+@@ -588,7 +588,7 @@
+ 
+     while (*s) {
+ 	int i;
+-	int len = cha_tok_mblen(Cha_tokenizer, (s), 4 /* XXX */);
++	int len = cha_tok_mblen(Cha_tokenizer, (unsigned char*)s, 4 /* XXX */);
+ 
+ 	if (state == 0 && len == 1 && *s == '{') {
+ 	    state = 1;
+@@ -874,7 +874,7 @@
+ 	    value *= mrph->weight * Cha_mrph_cost_weight;
+ 	    break;
+ 	case 'S':		/* entire sentence */
+-	    word = Cha_tokenizer->string;
++	    word = (char*)Cha_tokenizer->string;
+ 	    break;
+ 	case 'p':		/* the information about path */
+ 	    if (s[1] == '\0') {

Added: trunk/dports/textproc/chasen-base/files/patch-mkchadic.diff
===================================================================
--- trunk/dports/textproc/chasen-base/files/patch-mkchadic.diff	                        (rev 0)
+++ trunk/dports/textproc/chasen-base/files/patch-mkchadic.diff	2011-11-18 23:08:38 UTC (rev 87366)
@@ -0,0 +1,18 @@
+--- mkchadic/makemat.c.orig	2003-06-04 23:19:35.000000000 +0900
++++ mkchadic/makemat.c	2011-11-18 23:04:27.000000000 +0900
+@@ -539,8 +539,13 @@
+      * û\xA4\xA4\xB5\xAC§\xA4ν\xE7\xA4˽\xE8\xCD\xFD 
+      */
+     for (rlen = 2; rlen <= rule_len_max; rlen++) {
+-	fprintf(stderr, rlen == 2 ? "bi%s" : rlen == 3 ? "tri%s" : "%d%s",
+-		"-gram: ", rlen);
++        if (rlen == 2) {
++            fprintf(stderr, "bi-gram");
++        } else if (rlen == 3) {
++            fprintf(stderr, "tri-gram");
++        } else {
++            fprintf(stderr, "%d-gram", rlen);
++        }
+ 	for (ln = 0; ln < linenum; ln++) {
+ 	    if (rule_len[ln] != rlen)
+ 		continue;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20111118/72bf302a/attachment.html>


More information about the macports-changes mailing list