[w3m-dev 00706] Re: ":"->anchor->[RET]->"B"->no anchor

From: Hironori Sakamoto (h-saka@lsi.nec.co.jp)
Date: Thu May 25 2000 - 03:35:03 CDT


$B:dK\$G$9!#(B

>> >> $B:d:,$G$9!#(B
>> >> $B$J%U%!%$%k$rI=<(8e!"(B":"$B$G%"%s%+!<$K$7(BRET$B$G%j%s%/@h$K0lC6Ht$S(B
>> >> $B$^$9!#$=$N8e!"(B"B"$B$G(Bhoge.txt $B$KLa$C$?;~!":G=i$K(B":"$B$G%"%s%+!<(B
>> >> $B$KJQ$($?$H$3$m$,%"%s%+!<$GL5$/$J$C$F$$$^$9!#(B
>> CLEAR_BUF $B$K$h$j0lEY%"%s%+!<$,%/%j%"$5$l$k$?$a$G$9!#(B
>> ":" $B$,2!$5$l$?$3$H$r3P$($F$*$$$F(B reload $B8e$K(B chkURL() $B$r8F$VMM$K(B
>> $B$7$?J}$,NI$5$=$&$G$9$M!#(B

$B$=$NMM$K$7$F$_$^$7$?!#(B
-----------------------------------
$B:dK\(B $B9@B'(B <hsaka@mth.biglobe.ne.jp>
 http://www2u.biglobe.ne.jp/~hsaka/

--- fm.h.orig Wed May 24 13:07:26 2000
+++ fm.h Thu May 25 17:14:49 2000
@@ -166,6 +166,10 @@
 extern int REV_LB[];
 #endif /* not MAINPROGRAM */
 
+/* mark URL, Message-ID */
+#define CHK_URL 1
+#define CHK_NMID 2
+
 /* Flags for calcPosition() */
 #define CP_AUTO 0
 #define CP_FORCE 1
@@ -296,6 +300,7 @@
     struct frameset_queue *frameQ;
     int *clone;
     int trbyte;
+ char check_url;
 #ifdef JP_CHARSET
     char document_code;
 #endif /* JP_CHARSET */
--- main.c.orig Thu May 25 12:13:56 2000
+++ main.c Thu May 25 17:15:58 2000
@@ -3164,6 +3164,7 @@
     for (i = 0; url_like_pat[i]; i++) {
         reAnchor(Currentbuf, url_like_pat[i]);
     }
+ Currentbuf->check_url |= CHK_URL;
 
     displayBuffer(Currentbuf, B_FORCE_REDRAW);
 }
@@ -3182,6 +3183,7 @@
     for (i = 0; url_like_pat[i]; i++) {
         reAnchorNews(Currentbuf, url_like_pat[i]);
     }
+ Currentbuf->check_url |= CHK_NMID;
 
     displayBuffer(Currentbuf, B_FORCE_REDRAW);
 }
--- display.c.orig Wed May 24 10:48:14 2000
+++ display.c Thu May 25 17:21:51 2000
@@ -175,6 +175,8 @@
 #ifdef BUFINFO
 static Buffer *save_current_buf = NULL;
 #endif
+
+static in_check_url = FALSE;
   
 void
 displayBuffer(Buffer * buf, int mode)
@@ -183,10 +185,22 @@
     Anchor *aa;
 #ifdef CLEAR_BUF
     AnchorList *formitem;
+#endif
 
+ if (in_check_url)
+ return;
+#ifdef CLEAR_BUF
     if (buf->sourcefile != NULL && buf->topLine == NULL) {
        formitem = buf->formitem;
         reloadBuffer(buf);
+ in_check_url = TRUE;
+ if (buf->check_url & CHK_URL)
+ chkURL();
+#ifdef USE_NNTP
+ if (buf->check_url & CHK_NMID)
+ chkNMID();
+#endif
+ in_check_url = FALSE;
         gotoLine(buf,buf->currentLineNum);
         arrangeCursor(buf);
        formResetBuffer(buf, formitem);
@@ -198,8 +212,11 @@
         buf->width = COLS;
     if (buf->height == 0)
         buf->height = LASTLINE + 1;
- if (buf->width != INIT_BUFFER_WIDTH && buf->type && !strcmp(buf->type, "text/html"))
+ if (buf->width != INIT_BUFFER_WIDTH && buf->type && !strcmp(buf->type, "text/html")) {
+ in_check_url = TRUE;
         reshapeBuffer(buf);
+ in_check_url = FALSE;
+ }
     if (mode == B_FORCE_REDRAW ||
         mode == B_SCROLL ||
         cline != buf->topLine ||
--- buffer.c.orig Wed May 24 10:47:58 2000
+++ buffer.c Thu May 25 17:22:40 2000
@@ -507,6 +507,12 @@
     buf->lastLine = buf->currentLine;
     buf->currentLine = buf->firstLine;
     buf->height = LASTLINE + 1;
+ if (buf->check_url & CHK_URL)
+ chkURL();
+#ifdef USE_NNTP
+ if (buf->check_url & CHK_NMID)
+ chkNMID();
+#endif
     gotoLine(buf, linenum);
     arrangeCursor(buf);
     formResetBuffer(buf, formitem);



This archive was generated by hypermail 2b29 : Wed Jul 19 2000 - 10:30:56 CDT