Namazu-devel-ja(旧)


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

Re: Release schedule



古川です。

From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
Subject: [namazu-devel-ja] Release schedule
Date: Fri, 6 Jul 2001 16:37:13 JST
knok>   emphasize に関しては、私としては強い主張もないので commit していただ
knok> けませんでしょうか? > 古川さん

遅くなってすみませんでした。こんな感じでやってみました。

------------------------- ここから --------------------------
Index: src/result.c
===================================================================
RCS file: /storage/cvsroot/namazu/src/result.c,v
retrieving revision 1.59.8.2
diff -u -r1.59.8.2 result.c
--- src/result.c	2001/07/03 12:26:21	1.59.8.2
+++ src/result.c	2001/07/06 13:15:08
@@ -25,6 +25,7 @@
  */
 #include <string.h>
 #include <stdlib.h>
+#include <ctype.h>
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
@@ -59,6 +60,7 @@
 static void replace_field ( struct nmz_data d, int counter, const char *field, char *result );
 static void encode_entity ( char *str );
 static void emphasize ( char *str );
+static int is_wordboundary ( char *str );
 static int is_urireplace ( void );
 static int is_uridecode ( void );
 
@@ -218,14 +220,26 @@
 	do {
 	    ptr = my_strcasestr(ptr, key);
 	    if (ptr != NULL) {
-		memmove(ptr + 2, ptr, strlen(ptr) + 1);
-		memmove(ptr + 1, ptr + 2, keylen);
-		*ptr = EM_START_MARK;
-		*(ptr + keylen + 1) = EM_END_MARK;
-		ptr += 2;
+              if ((ptr == str || is_wordboundary(ptr - 1))
+                  && keylen && is_wordboundary(ptr + keylen - 1)){
+                memmove(ptr + 2, ptr, strlen(ptr) + 1);
+                memmove(ptr + 1, ptr + 2, keylen);
+                *ptr = EM_START_MARK;
+                *(ptr + keylen + 1) = EM_END_MARK;
+                ptr += 2;
+              }
+              ptr += keylen;
 	    }
 	} while (ptr != NULL);
     }
+}
+
+static int
+is_wordboundary(char *p)
+{
+  if (isalpha(*p) && isalpha(*(p + 1))) return 0;
+  if (isdigit(*p) && isdigit(*(p + 1))) return 0;
+  return 1;
 }
 
 static int 
-------------------------- ここまで -------------------------

-- 
Rei FURUKAWA 
furukawa@xxxxxxxxxxxx