namazu-ml(ring)


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

Re: namazu-1.3.0.7-pre-3 (Re:namazu-1.3.0.7-pre-2)



広瀬です。

<199905130354.MAA12420@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。
>> >あと tknamazu がらみでもう1点あるのでもう少し待っていただけますか?
>> 了解です。

以下の patch を充てて頂けるようお願いします。

えーと、最近 tknamazu の手直しをやっているのですが、今まで(1年分 ^^;)に
思いついた機能もいくつか追加してまして、その中に 0〜9 までの key に shortcut を
割り当てると言うのと、tknamazu を help desk 風に使えるようにしたと言うのが
あります。

0〜9 までの key に shortcut と言うのは namazu の検索結果の画面で
1 なら 検索結果 1. に跳ぶ。
2 なら 検索結果 2. に跳ぶ。
9 なら 検索結果 9. に跳ぶ。
で、0 は back to result と言う感じです。
#私は結構気に入っています ^^;

また help desk 風に使うというのは site luncher で namazu.cgi の URL を
指定しておくとその site の検索を行えると言う物です。

で、この時問題になるのがcgi の結果の画面で、1つの項目に2つリンクがあると
具合が悪いのと、 NMZ.head.?? に link があるとずれてしまうと言うのがありまして
それを何とかする為に mode=tknamazu と言うのを追加させて頂きました。

また Page: [1] [2] も lynx の画面だと References の項番と区別がつかないので、
Page: 1 Page: 2 と表示するようにさせて頂きました。

一応 site luncher が動く tknamazu の alpha を
<URL:http://www.tama.or.jp/%7Ekenzo-/Namazu/tknamazu/tknamazu-1.12-alpha-13.tar.gz>
に置いておきました。
但し、上記は*ほんとーーに*作りかけなので御了承下さい。
#ドキュメント等は全然書いていません _o_

以上、宜しくお願い致します。

diff -rcN namazu-1.3.0.7-pre-3.orig/src/cgi.c namazu-1.3.0.7-pre-3/src/cgi.c
*** namazu-1.3.0.7-pre-3.orig/src/cgi.c	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/cgi.c	Tue May 11 23:29:00 1999
***************
*** 217,222 ****
--- 217,225 ----
  	} else if (!strncmp(qs, "reference=off", 13)) {
              NoReference = 1;
              qs += 13;
+ 	} else if (!strncmp(qs, "mode=tknamazu", 13)) {
+             ModeTknamazu = 1;
+             qs += 13;
  	} else if (!strncmp(qs, "dbname=", 7)) {
              uchar *pp;
  
diff -rcN namazu-1.3.0.7-pre-3.orig/src/hlist.c namazu-1.3.0.7-pre-3/src/hlist.c
*** namazu-1.3.0.7-pre-3.orig/src/hlist.c	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/hlist.c	Sat May 15 02:32:05 1999
***************
*** 428,433 ****
--- 428,452 ----
      free_hlist(work);
  }
  
+ void erase_url(uchar *s)
+ {
+     int i, j;
+     uchar tmp[BUFSIZE];
+                    
+     strcpy(tmp, s);
+             
+     if (!strncmp("<DD><A HREF=\"", &tmp[0], 13)) {
+        for (i = 13; tmp[i] != '>'; i++)
+        ;
+        strcpy(tmp, "<DD>");
+        for (i++, j = 4; tmp[i]; i++, j++) {
+            if (!strncmp("</A>", &tmp[i], 4))
+                i += 4;
+            s[j] = tmp[i];
+        }
+        s[j] = '\0';
+     }
+ }
  
  /* replace a URL */
  void replace_url(uchar * s, int opt)
***************
*** 552,557 ****
--- 571,579 ----
              if (!HtmlOutput && DecodeURL && 
                  !strncmp("<DD><A HREF=\"", buf, 13)) {
                      decode_url_string(&buf[13]);
+             }
+             if (ModeTknamazu) {
+                 erase_url(buf);
              }
              
  	    if (HtmlOutput) {
diff -rcN namazu-1.3.0.7-pre-3.orig/src/namazu.c namazu-1.3.0.7-pre-3/src/namazu.c
*** namazu-1.3.0.7-pre-3.orig/src/namazu.c	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/namazu.c	Tue May 11 23:29:00 1999
***************
*** 272,283 ****
  
      if (HtmlOutput && IsCGI)
  	fputs(MSG_MIME_HEADER, stdout);
!     if (HtmlOutput)
  	cat_head_or_foot(HEADERFILE, query, subquery);
  
      search_main(query_with_subquery);
  
!     if (HtmlOutput)
  	cat_head_or_foot(FOOTERFILE, query, subquery);
      free_dbnames();
  }
--- 272,283 ----
  
      if (HtmlOutput && IsCGI)
  	fputs(MSG_MIME_HEADER, stdout);
!     if (HtmlOutput && !ModeTknamazu)
  	cat_head_or_foot(HEADERFILE, query, subquery);
  
      search_main(query_with_subquery);
  
!     if (HtmlOutput && !ModeTknamazu)
  	cat_head_or_foot(FOOTERFILE, query, subquery);
      free_dbnames();
  }
diff -rcN namazu-1.3.0.7-pre-3.orig/src/namazu.h namazu-1.3.0.7-pre-3/src/namazu.h
*** namazu-1.3.0.7-pre-3.orig/src/namazu.h	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/namazu.h	Tue May 11 23:29:00 1999
***************
*** 95,100 ****
--- 95,101 ----
  extern int AllDocumentN;
  extern int TfIdf;
  extern int NoReference;
+ extern int ModeTknamazu;
  
  extern uchar KeyTable[];
  extern uchar DbName[];
diff -rcN namazu-1.3.0.7-pre-3.orig/src/output.c namazu-1.3.0.7-pre-3/src/output.c
*** namazu-1.3.0.7-pre-3.orig/src/output.c	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/output.c	Tue May 11 23:29:00 1999
***************
*** 24,30 ****
  {
      int i;
  
!     if (HtmlOutput)
  	printf("<STRONG>Page:</STRONG> ");
      else
  	printf("Page: ");
--- 24,32 ----
  {
      int i;
  
!     if (HtmlOutput && ModeTknamazu)
! 	;
!     else if (HtmlOutput)
  	printf("<STRONG>Page:</STRONG> ");
      else
  	printf("Page: ");
***************
*** 42,47 ****
--- 44,52 ----
  		printf("<STRONG>");
  	    }
  	}
+     if (ModeTknamazu)
+ 	printf("Page: %d", i + 1);
+ 	else
  	printf("[%d]", i + 1);
  	if (HtmlOutput) {
  	    if (i * HListMax != HListWhence) {
diff -rcN namazu-1.3.0.7-pre-3.orig/src/values.c namazu-1.3.0.7-pre-3/src/values.c
*** namazu-1.3.0.7-pre-3.orig/src/values.c	Sun May  2 13:27:47 1999
--- namazu-1.3.0.7-pre-3/src/values.c	Tue May 11 23:29:00 1999
***************
*** 93,98 ****
--- 93,99 ----
  int DbNumber = 0;               /* number of databases */
  int OppositeEndian = 0;         /* if opposite byte order: 1 */
  int NoReference = 0;		/* if no display reference: 1  */
+ int ModeTknamazu = 0;		/* if tknamazu mode: 1  */
  
  #ifdef SCORING
  #define TFIDF  1

  Best regards,
--
Ken-ichi Hirose (^^)k!
e-mail: kenzo-@xxxxxxxxxx (or) EHC25612@xxxxxxxxxxx