Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

namazu2 package has updated to 2.0.7



遅ればせながら、NetBSDのnamazu2パッケージを2.0.7に更新しました。
以下のメーリングリストの記事から、2.0.7リリース後の修正を加えています。

http://www.namazu.org/ml/namazu-users-ja/msg02073.html	pl/util.pl
http://www.namazu.org/ml/namazu-devel-ja/msg02024.html	pl/htmlsplit.pl
http://www.namazu.org/ml/namazu-devel-ja/msg02030.html	scripts/mknmz.in

また、コンパイル時のウォーニングを抑制するために、添付の修正も加えてみ
ました。移植性の面に対して万全とは思っていませんが、参考の意味で報告し
ます。これで、regex.cは配列のindexにcharを使用したウォーニング以外は出
ない様にできました。

patch-af: lib/getopt.c

  o strcmp(3)だったかを使っているために、VMSに限らず<string.h>があれば
    インクルードする様にしました。
  o ネストしたifの曖昧さをなくすために、{}を追加しました。

patch-ag: nmz/regex.c
  o memmove(3)のプロトタイプ宣言を得るために、<string.h>または
    <strings.h>をNO_ALLOCAか定義されていない場合でもインクルードする様
    にしました。
  o 定義しているが、どこからも使用していないstaticな関数を取り敢えず
    "#if 0 ... #endif"で囲みました。
  o nmz_scan_oct()とnmz_scan_hex()のプロトタイプ宣言を得るために、
    "util.h"をRUBYが定義されているかどうかにかかわらずインクルードする
    様にしました。
  o enum regexpcode の定義で、最後の列挙値の後のカンマを削除しました。
    (ANSI C的には、ここにカンマを置けません。)
  o nmz_re_set_syntax()に無条件に0を返す様にしました。値を持つ関数であ
    る以上、何らかの値を変えすべきであるためですが、返す値が0が良いの
    かどうかは各員していません。
  o printf(3)の %c に対する引数は int なので、必要に応じたcastを追加し
    ました。
  o 未使用なgotoラベルを削除しました。
  o 演算子 | の両辺を、必要に応じて()で囲みました。
  o その他

patch-ah: nmz/util.c
patch-ai: nmz/util.h

  o nmz_scan_oct()とnmz_scan_hex()の第1引数にconst修飾子を追加した。

--
神戸 隆博(かんべ たかひろ) at home
$NetBSD: patch-af,v 1.1 2001/09/24 03:56:02 taca Exp $

--- lib/getopt.c.orig	Mon Oct 11 13:25:11 1999
+++ lib/getopt.c
@@ -71,10 +71,11 @@
 
 #ifdef VMS
 #include <unixlib.h>
+#endif
+
 #if HAVE_STRING_H - 0
 #include <string.h>
 #endif
-#endif
 
 #if defined (WIN32) && !defined (__CYGWIN32__)
 /* It's not Unix, really.  See?  Capital letters.  */
@@ -695,7 +696,7 @@
 		optarg = nameend + 1;
 	      else
 		{
-		  if (opterr)
+		  if (opterr) {
 		   if (argv[optind - 1][1] == '-')
 		    /* --option */
 		    fprintf (stderr,
@@ -706,6 +707,7 @@
 		    fprintf (stderr,
 		     _("%s: option `%c%s' doesn't allow an argument\n"),
 		     argv[0], argv[optind - 1][0], pfound->name);
+		  }
 
 		  nextchar += strlen (nextchar);
 
$NetBSD: patch-ag,v 1.1 2001/09/24 03:56:02 taca Exp $

--- nmz/regex.c.orig	Sat Sep  1 18:40:52 2001
+++ nmz/regex.c
@@ -71,6 +71,12 @@
 void free _((void*));
 #endif
 
+#ifdef HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+
 /* #define	NO_ALLOCA */	/* try it out for now */
 #ifndef NO_ALLOCA
 /* Make alloca work the best possible way.  */
@@ -99,12 +105,6 @@
 # endif
 #endif /* __GNUC__ */
 
-#ifdef HAVE_STRING_H
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-
 #define RE_ALLOCATE alloca
 #ifdef C_ALLOCA
 #define FREE_VARIABLES() alloca(0)
@@ -153,7 +153,9 @@
 static void insert_jump _((int, char*, char*, char*));
 static void store_jump_n _((char*, int, char*, unsigned));
 static void insert_jump_n _((int, char*, char*, char*, unsigned));
+#if 0
 static void insert_op _((int, char*, char*));
+#endif
 static void insert_op_2 _((int, char*, char*, int, int));
 static int memcmp_translate _((unsigned char*, unsigned char*, int));
 
@@ -175,9 +177,7 @@
 
 #undef P
 
-#ifdef RUBY
 #include "util.h"
-#endif
 
 static void
 init_syntax_once()
@@ -358,7 +358,7 @@
     wordbeg,	 /* Succeeds if at word beginning.  */
     wordend,	 /* Succeeds if at word end.  */
     wordbound,   /* Succeeds if at a word boundary.  */
-    notwordbound,/* Succeeds if not at a word boundary.  */
+    notwordbound /* Succeeds if not at a word boundary.  */
   };
 
 
@@ -409,6 +409,7 @@
   long syntax;
 {
     /* obsolete */
+    return 0;
 }
 
 
@@ -442,7 +443,7 @@
       int n = mbclen(c) - 1;						\
       c &= (1<<(BYTEWIDTH-2-n)) - 1;					\
       while (n--) {							\
-	c = c << 6 | *p++ & ((1<<6)-1);					\
+	c = (c << 6) | (*p++ & ((1<<6)-1));				\
       }									\
     }									\
     else {								\
@@ -483,23 +484,28 @@
 {
   if (current_mbctype == MBCTYPE_UTF8) {
     if (c < 0x80)
-      printf("%c", c);
+      printf("%c", (int)c);
     else if (c <= 0x7ff)
-      printf("%c%c", utf8_firstbyte(c), c&0x3f);
+      printf("%c%c", (int)utf8_firstbyte(c), (int)(c & 0x3f));
     else if (c <= 0xffff)
-      printf("%c%c%c", utf8_firstbyte(c), (c>>6)&0x3f, c&0x3f);
+      printf("%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 6) & 0x3f),
+	     (int)(c & 0x3f));
     else if (c <= 0x1fffff) 
-      printf("%c%c%c%c", utf8_firstbyte(c), (c>>12)&0x3f, (c>>6)&0x3f, c&0x3f);
+      printf("%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 12) & 0x3f),
+	     (int)((c >> 6) & 0x3f), (int)(c & 0x3f));
     else if (c <= 0x3ffffff)
-      printf("%c%c%c%c%c", utf8_firstbyte(c), (c>>18)&0x3f, (c>>12)&0x3f, (c>>6)&0x3f, c&0x3f);
+      printf("%c%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 18) & 0x3f),
+	     (int)((c >> 12) & 0x3f), (int)((c >> 6) & 0x3f), (int)(c & 0x3f));
     else if (c <= 0x7fffffff)
-      printf("%c%c%c%c%c%c", utf8_firstbyte(c), (c>>24)&0x3f, (c>>18)&0x3f, (c>>12)&0x3f, (c>>6)&0x3f, c&0x3f);
+      printf("%c%c%c%c%c%c", (int)utf8_firstbyte(c), (int)((c >> 24) & 0x3f),
+	     (int)((c >> 18) & 0x3f), (int)((c >> 12) & 0x3f),
+	     (int)((c >> 6) & 0x3f), (int)(c & 0x3f));
   }
   else if (c < 0xff) {
-    printf("\\%o", c);
+    printf("\\%o", (int)c);
   }
   else {
-    printf("%c%c", c>>BYTEWIDTH, c&0xff);
+    printf("%c%c", (int)(c >> BYTEWIDTH), (int)(c &0xff));
   }
 }
 
@@ -700,6 +706,7 @@
   return 0;
 }
 
+#if 0
 static void
 print_partial_compiled_pattern(start, end)
     unsigned char *start;
@@ -949,6 +956,7 @@
 
   print_partial_compiled_pattern (buffer, buffer + bufp->used);
 }
+#endif
 
 static char*
 calculate_must_string(start, end)
@@ -1118,7 +1126,7 @@
   register const char *p = pattern;
   const char *nextp;
   const char *pend = pattern + size;
-  register unsigned int c, c1;
+  register unsigned int c, c1 = 0;
   const char *p0;
   int numlen;
 
@@ -1412,8 +1420,8 @@
 	  case 'W':
 	    for (c = 0; c < (1 << BYTEWIDTH); c++) {
 	      if (SYNTAX(c) != Sword &&
-		  (current_mbctype && !re_mbctab[c] ||
-		  !current_mbctype && SYNTAX(c) != Sword2))
+		  ((current_mbctype && !re_mbctab[c]) ||
+		   (!current_mbctype && SYNTAX(c) != Sword2)))
 		SET_LIST_BIT(c);
 	    }
 	    last = -1;
@@ -2241,6 +2249,8 @@
 	case dummy_failure_jump:
 	  bufp->options |= RE_OPTIMIZE_ANCHOR;
 	  break;
+	default:
+	  break;
 	}
       }
       else if (*laststart == charset || *laststart == charset_not) {
@@ -2409,6 +2419,7 @@
 }
 
 
+#if 0
 /* Open up space at location THERE, and insert operation OP.
    CURRENT_END gives the end of the storage in use, so
    we know how much data to copy up.
@@ -2428,7 +2439,7 @@
 
   there[0] = (char)op;
 }
-
+#endif
 
 /* Open up space at location THERE, and insert operation OP followed by
    NUM_1 and NUM_2.  CURRENT_END gives the end of the storage in use, so
@@ -4095,7 +4106,6 @@
 	p1 = p;
 	/* If failed to a backwards jump that's part of a repetition
 	   loop, need to pop this failure point and use the next one.  */
-      pop_loop:
 	switch ((enum regexpcode)*p1) {
 	case jump_n:
 	case finalize_push_n:
$NetBSD: patch-ah,v 1.1 2001/09/24 03:56:02 taca Exp $

--- nmz/util.c.orig	Sun Sep  2 16:13:37 2001
+++ nmz/util.c
@@ -102,9 +102,9 @@
  */
 
 unsigned long
-nmz_scan_oct(char *start, int len, int *retlen)
+nmz_scan_oct(const char *start, int len, int *retlen)
 {
-    register char *s = start;
+    register const char *s = start;
     register unsigned long retval = 0;
 
     while (len-- && *s >= '0' && *s <= '7') {
@@ -117,10 +117,10 @@
 }
 
 unsigned long
-nmz_scan_hex(char *start, int len, int *retlen)
+nmz_scan_hex(const char *start, int len, int *retlen)
 {
     static char hexdigit[] = "0123456789abcdef0123456789ABCDEFx";
-    register char *s = start;
+    register const char *s = start;
     register unsigned long retval = 0;
     char *tmp;
 
$NetBSD: patch-ai,v 1.1 2001/09/24 03:56:02 taca Exp $

--- nmz/util.h.orig	Mon Jul  9 16:30:37 2001
+++ nmz/util.h
@@ -14,8 +14,8 @@
 #define nmz_iseuc_kana1st(c) ((uchar)(c) == 0x8e)
 #define nmz_iseuc_hojo1st(c) ((uchar)(c) == 0x8f)
 
-extern unsigned long nmz_scan_oct ( char *start, int len, int *retlen );
-extern unsigned long nmz_scan_hex ( char *start, int len, int *retlen );
+extern unsigned long nmz_scan_oct (const char *start, int len, int *retlen );
+extern unsigned long nmz_scan_hex (const char *start, int len, int *retlen );
 extern void * nmz_xmalloc ( unsigned long size );
 extern void * nmz_xrealloc ( void *ptr, unsigned long size );
 extern void nmz_tr ( char *str, const char *lstr, const char *rstr );