From 715e1bc1759a70d97106640402899f41f6f1111c Mon Sep 17 00:00:00 2001 From: Ito Hiroyuki Date: Mon, 19 Jul 2010 23:33:59 +0000 Subject: * [w3m-dev 04321] Re: w3m's bugs from bugs.debian.org * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329862#20 * table.c (feed_table_tag): check displayLinkNumber. * proto.h: add getLinkNumberStr(). * main.c (do_dump): check displayLinkNumber. * fm.h: add global variable displayLinkNumber. * file.c (getLinkNumberStr): added. (process_input, process_select, HTMLtagproc1): check displayLinkNumber. --- ChangeLog | 13 ++++++++++++- file.c | 23 ++++++++++++++++++++--- fm.h | 3 ++- main.c | 21 +++++++++++++++++++-- proto.h | 4 +++- rc.c | 5 ++++- table.c | 8 +++++++- 7 files changed, 67 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index ddccc81..3f26f67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2010-07-19 d+w3m@vdr.jp + + * [w3m-dev 04321] Re: w3m's bugs from bugs.debian.org + * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329862#20 + * table.c (feed_table_tag): check displayLinkNumber. + * proto.h: add getLinkNumberStr(). + * main.c (do_dump): check displayLinkNumber. + * fm.h: add global variable displayLinkNumber. + * file.c (getLinkNumberStr): added. + (process_input, process_select, HTMLtagproc1): check displayLinkNumber. + 2010-07-19 d+w3m@vdr.jp * [w3m-dev 04321] Re: w3m's bugs from bugs.debian.org @@ -9019,4 +9030,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.1014 2010/07/19 12:53:39 htrb Exp $ +$Id: ChangeLog,v 1.1015 2010/07/19 23:33:59 htrb Exp $ diff --git a/file.c b/file.c index 61fb050..a9e1bf2 100644 --- a/file.c +++ b/file.c @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.258 2010/07/19 12:53:39 htrb Exp $ */ +/* $Id: file.c,v 1.259 2010/07/19 23:34:00 htrb Exp $ */ #include "fm.h" #include #include "myctype.h" @@ -1686,6 +1686,12 @@ checkRedirection(ParsedURL *pu) return TRUE; } +Str +getLinkNumberStr(int correction) +{ + return Sprintf("[%d]", cur_hseq + correction); +} + /* * loadGeneralFile: load file to buffer */ @@ -3610,9 +3616,13 @@ process_input(struct parsed_tag *tag) case FORM_INPUT_TEXT: case FORM_INPUT_FILE: case FORM_INPUT_CHECKBOX: + if (displayLinkNumber) + Strcat(tmp, getLinkNumberStr(0)); Strcat_char(tmp, '['); break; case FORM_INPUT_RADIO: + if (displayLinkNumber) + Strcat(tmp, getLinkNumberStr(0)); Strcat_char(tmp, '('); } Strcat(tmp, Sprintf("["); + if (displayLinkNumber) + Strcat(select_str, getLinkNumberStr(0)); + Strcat(select_str, Sprintf("["); if (n_select == max_select) { max_select *= 2; @@ -4789,6 +4804,8 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env) obuf->anchor.hseq = cur_hseq; tmp = process_anchor(tag, h_env->tagbuf->ptr); push_tag(obuf, tmp->ptr, HTML_A); + if (displayLinkNumber) + HTMLlineproc1(getLinkNumberStr(-1)->ptr, h_env); return 1; } return 0; diff --git a/fm.h b/fm.h index 9f54d15..3536c15 100644 --- a/fm.h +++ b/fm.h @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.142 2010/07/19 12:53:39 htrb Exp $ */ +/* $Id: fm.h,v 1.143 2010/07/19 23:34:01 htrb Exp $ */ /* * w3m: WWW wo Miru utility * @@ -932,6 +932,7 @@ global int label_topline init(FALSE); global int nextpage_topline init(FALSE); global char *displayTitleTerm init(NULL); global int displayLink init(FALSE); +global int displayLinkNumber init(FALSE); global int displayLineInfo init(FALSE); global int DecodeURL init(FALSE); global int retryAsHttp init(TRUE); diff --git a/main.c b/main.c index 4eba103..fb2142e 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.262 2010/07/19 12:08:41 htrb Exp $ */ +/* $Id: main.c,v 1.263 2010/07/19 23:34:01 htrb Exp $ */ #define MAINPROGRAM #include "fm.h" #include @@ -1282,8 +1282,25 @@ do_dump(Buffer *buf) dump_head(buf); if (w3m_dump & DUMP_SOURCE) dump_source(buf); - if (w3m_dump == DUMP_BUFFER) + if (w3m_dump == DUMP_BUFFER) { + int i; saveBuffer(buf, stdout, FALSE); + if (displayLinkNumber && buf->href) { + printf("\nReferences:\n\n"); + for (i = 0; i < buf->href->nanchor; i++) { + ParsedURL pu; + static Str s = NULL; + if (buf->href->anchors[i].slave) + continue; + parseURL2(buf->href->anchors[i].url, &pu, baseURL(buf)); + s = parsedURL2Str(&pu); + if (DecodeURL) + s = Strnew_charp(url_unquote_conv + (s->ptr, Currentbuf->document_charset)); + printf("[%d] %s\n", buf->href->anchors[i].hseq + 1, s->ptr); + } + } + } mySignal(SIGINT, prevtrap); } diff --git a/proto.h b/proto.h index ce7e85c..657dde7 100644 --- a/proto.h +++ b/proto.h @@ -1,4 +1,4 @@ -/* $Id: proto.h,v 1.102 2010/07/18 14:10:09 htrb Exp $ */ +/* $Id: proto.h,v 1.103 2010/07/19 23:34:01 htrb Exp $ */ /* * This file was automatically generated by version 1.7 of cextract. * Manual editing not recommended. @@ -775,6 +775,8 @@ extern void wrapToggle(void); extern void saveBufferInfo(void); #endif +extern Str getLinkNumberStr(int correction); + extern void dispVer(void); #ifdef USE_INCLUDED_SRAND48 diff --git a/rc.c b/rc.c index 21a34bc..0f54c7b 100644 --- a/rc.c +++ b/rc.c @@ -1,4 +1,4 @@ -/* $Id: rc.c,v 1.111 2010/07/19 12:53:39 htrb Exp $ */ +/* $Id: rc.c,v 1.112 2010/07/19 23:34:01 htrb Exp $ */ /* * Initialization file etc. */ @@ -72,6 +72,7 @@ static int OptionEncode = FALSE; #define CMT_OPEN_TAB_BLANK N_("Open link on new tab if target is _blank or _new") #define CMT_OPEN_TAB_DL_LIST N_("Open download list panel on new tab") #define CMT_DISPLINK N_("Display link URL automatically") +#define CMT_DISPLINKNUMBER N_("Display link numbers") #define CMT_DECODE_URL N_("Display decoded URL") #define CMT_DISPLINEINFO N_("Display current line number") #define CMT_DISP_IMAGE N_("Display inline images") @@ -357,6 +358,8 @@ struct param_ptr params1[] = { CMT_OPEN_TAB_DL_LIST, NULL}, {"display_link", P_INT, PI_ONOFF, (void *)&displayLink, CMT_DISPLINK, NULL}, + {"display_link_number", P_INT, PI_ONOFF, (void *)&displayLinkNumber, + CMT_DISPLINKNUMBER, NULL}, {"decode_url", P_INT, PI_ONOFF, (void *)&DecodeURL, CMT_DECODE_URL, NULL}, {"display_lineinfo", P_INT, PI_ONOFF, (void *)&displayLineInfo, CMT_DISPLINEINFO, NULL}, diff --git a/table.c b/table.c index 78422d4..8ac3ee0 100644 --- a/table.c +++ b/table.c @@ -1,4 +1,4 @@ -/* $Id: table.c,v 1.55 2007/05/23 13:07:44 inu Exp $ */ +/* $Id: table.c,v 1.56 2010/07/19 23:34:01 htrb Exp $ */ /* * HTML table */ @@ -2912,6 +2912,12 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode, check_rowcol(tbl, mode); if (i == 0) { Str tmp = process_anchor(tag, line); + if (displayLinkNumber) + { + Str t = getLinkNumberStr(-1); + feed_table_inline_tag(tbl, NULL, mode, t->length); + Strcat(tmp, t); + } pushdata(tbl, tbl->row, tbl->col, tmp->ptr); } else -- cgit v1.2.3