merge m17n patch
add libwc
This commit is contained in:
		
							
								
								
									
										58
									
								
								anchor.c
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								anchor.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: anchor.c,v 1.27 2003/03/19 16:20:11 ukai Exp $ */
 | 
			
		||||
/* $Id: anchor.c,v 1.28 2003/09/22 21:02:16 ukai Exp $ */
 | 
			
		||||
#include "fm.h"
 | 
			
		||||
#include "myctype.h"
 | 
			
		||||
#include "regex.h"
 | 
			
		||||
@@ -198,7 +198,8 @@ _put_anchor_news(Buffer *buf, char *p1, char *p2, int line, int pos)
 | 
			
		||||
	if (*(p2 - 1) == '>')
 | 
			
		||||
	    p2--;
 | 
			
		||||
    }
 | 
			
		||||
    tmp = conv_str(Strnew_charp_n(p1, p2 - p1), InnerCode, buf->document_code);
 | 
			
		||||
    tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset,
 | 
			
		||||
			     buf->document_charset);
 | 
			
		||||
    tmp = Sprintf("news:%s", file_quote(tmp->ptr));
 | 
			
		||||
    return registerHref(buf, tmp->ptr, NULL, NO_REFERER, NULL, '\0', line,
 | 
			
		||||
			pos);
 | 
			
		||||
@@ -210,7 +211,8 @@ _put_anchor_all(Buffer *buf, char *p1, char *p2, int line, int pos)
 | 
			
		||||
{
 | 
			
		||||
    Str tmp;
 | 
			
		||||
 | 
			
		||||
    tmp = conv_str(Strnew_charp_n(p1, p2 - p1), InnerCode, buf->document_code);
 | 
			
		||||
    tmp = wc_Str_conv_strict(Strnew_charp_n(p1, p2 - p1), InnerCharset,
 | 
			
		||||
			     buf->document_charset);
 | 
			
		||||
    return registerHref(buf, url_quote(tmp->ptr), NULL, NO_REFERER, NULL,
 | 
			
		||||
			'\0', line, pos);
 | 
			
		||||
}
 | 
			
		||||
@@ -514,6 +516,44 @@ closest_prev_anchor(AnchorList *a, Anchor *an, int x, int y)
 | 
			
		||||
    return an;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
shiftAnchorPosition(AnchorList *al, HmarkerList *hl, int line, int pos,
 | 
			
		||||
		    int shift)
 | 
			
		||||
{
 | 
			
		||||
    Anchor *a;
 | 
			
		||||
    size_t b, e, s = 0;
 | 
			
		||||
    int cmp;
 | 
			
		||||
 | 
			
		||||
    if (al == NULL || al->nanchor == 0)
 | 
			
		||||
	return;
 | 
			
		||||
 | 
			
		||||
    s = al->nanchor / 2;
 | 
			
		||||
    for (b = 0, e = al->nanchor - 1; b <= e; s = (b + e + 1) / 2) {
 | 
			
		||||
	a = &al->anchors[s];
 | 
			
		||||
	cmp = onAnchor(a, line, pos);
 | 
			
		||||
	if (cmp == 0)
 | 
			
		||||
	    break;
 | 
			
		||||
	else if (cmp > 0)
 | 
			
		||||
	    b = s + 1;
 | 
			
		||||
	else if (s == 0)
 | 
			
		||||
	    break;
 | 
			
		||||
	else
 | 
			
		||||
	    e = s - 1;
 | 
			
		||||
    }
 | 
			
		||||
    for (; s < al->nanchor; s++) {
 | 
			
		||||
	a = &al->anchors[s];
 | 
			
		||||
	if (a->start.line > line)
 | 
			
		||||
	    break;
 | 
			
		||||
	if (a->start.pos > pos) {
 | 
			
		||||
	    a->start.pos += shift;
 | 
			
		||||
	    if (hl->marks[a->hseq].line == line)
 | 
			
		||||
		hl->marks[a->hseq].pos = a->start.pos;
 | 
			
		||||
	}
 | 
			
		||||
	if (a->end.pos >= pos)
 | 
			
		||||
	    a->end.pos += shift;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef USE_IMAGE
 | 
			
		||||
void
 | 
			
		||||
addMultirowsImg(Buffer *buf, AnchorList *al)
 | 
			
		||||
@@ -712,7 +752,7 @@ link_list_panel(Buffer *buf)
 | 
			
		||||
		p = parsedURL2Str(&pu)->ptr;
 | 
			
		||||
		u = html_quote(p);
 | 
			
		||||
		if (DecodeURL)
 | 
			
		||||
		    p = html_quote(url_unquote_conv(p, buf->document_code));
 | 
			
		||||
		    p = html_quote(url_unquote_conv(p, buf->document_charset));
 | 
			
		||||
		else
 | 
			
		||||
		    p = u;
 | 
			
		||||
	    }
 | 
			
		||||
@@ -743,7 +783,7 @@ link_list_panel(Buffer *buf)
 | 
			
		||||
	    p = parsedURL2Str(&pu)->ptr;
 | 
			
		||||
	    u = html_quote(p);
 | 
			
		||||
	    if (DecodeURL)
 | 
			
		||||
		p = html_quote(url_unquote_conv(p, buf->document_code));
 | 
			
		||||
		p = html_quote(url_unquote_conv(p, buf->document_charset));
 | 
			
		||||
	    else
 | 
			
		||||
		p = u;
 | 
			
		||||
	    t = getAnchorText(buf, al, a);
 | 
			
		||||
@@ -765,13 +805,13 @@ link_list_panel(Buffer *buf)
 | 
			
		||||
	    p = parsedURL2Str(&pu)->ptr;
 | 
			
		||||
	    u = html_quote(p);
 | 
			
		||||
	    if (DecodeURL)
 | 
			
		||||
		p = html_quote(url_unquote_conv(p, buf->document_code));
 | 
			
		||||
		p = html_quote(url_unquote_conv(p, buf->document_charset));
 | 
			
		||||
	    else
 | 
			
		||||
		p = u;
 | 
			
		||||
	    if (a->title && *a->title)
 | 
			
		||||
		t = html_quote(a->title);
 | 
			
		||||
	    else if (DecodeURL)
 | 
			
		||||
		t = html_quote(url_unquote_conv(a->url, buf->document_code));
 | 
			
		||||
		t = html_quote(url_unquote_conv(a->url, buf->document_charset));
 | 
			
		||||
	    else
 | 
			
		||||
		t = html_quote(a->url);
 | 
			
		||||
	    Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t, "</a><br>", p,
 | 
			
		||||
@@ -798,14 +838,14 @@ link_list_panel(Buffer *buf)
 | 
			
		||||
		    u = html_quote(p);
 | 
			
		||||
		    if (DecodeURL)
 | 
			
		||||
			p = html_quote(url_unquote_conv(p,
 | 
			
		||||
							buf->document_code));
 | 
			
		||||
							buf->document_charset));
 | 
			
		||||
		    else
 | 
			
		||||
			p = u;
 | 
			
		||||
		    if (m->alt && *m->alt)
 | 
			
		||||
			t = html_quote(m->alt);
 | 
			
		||||
		    else if (DecodeURL)
 | 
			
		||||
			t = html_quote(url_unquote_conv(m->url,
 | 
			
		||||
							buf->document_code));
 | 
			
		||||
							buf->document_charset));
 | 
			
		||||
		    else
 | 
			
		||||
			t = html_quote(m->url);
 | 
			
		||||
		    Strcat_m_charp(tmp, "<li><a href=\"", u, "\">", t,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user