1071d4279SBram MoolenaarBEGIN { 2071d4279SBram Moolenaar # some initialization variables 3071d4279SBram Moolenaar asciiart="no"; 4071d4279SBram Moolenaar wasset="no"; 5071d4279SBram Moolenaar lineset=0; 6071d4279SBram Moolenaar sample="no"; 7071d4279SBram Moolenaar while ( getline ti <"tags.ref" > 0 ) { 8071d4279SBram Moolenaar nf=split(ti,tag," "); 9071d4279SBram Moolenaar tagkey[tag[1]]="yes";tagref[tag[1]]=tag[2]; 10071d4279SBram Moolenaar } 11071d4279SBram Moolenaar skip_word["and"]="yes"; 12071d4279SBram Moolenaar skip_word["backspace"]="yes"; 13071d4279SBram Moolenaar skip_word["beep"]="yes"; 14071d4279SBram Moolenaar skip_word["bugs"]="yes"; 15071d4279SBram Moolenaar skip_word["da"]="yes"; 16071d4279SBram Moolenaar skip_word["end"]="yes"; 17071d4279SBram Moolenaar skip_word["ftp"]="yes"; 18071d4279SBram Moolenaar skip_word["go"]="yes"; 19071d4279SBram Moolenaar skip_word["help"]="yes"; 20071d4279SBram Moolenaar skip_word["home"]="yes"; 21071d4279SBram Moolenaar skip_word["news"]="yes"; 22071d4279SBram Moolenaar skip_word["index"]="yes"; 23071d4279SBram Moolenaar skip_word["insert"]="yes"; 24071d4279SBram Moolenaar skip_word["into"]="yes"; 25071d4279SBram Moolenaar skip_word["put"]="yes"; 26071d4279SBram Moolenaar skip_word["reference"]="yes"; 27071d4279SBram Moolenaar skip_word["section"]="yes"; 28071d4279SBram Moolenaar skip_word["space"]="yes"; 29071d4279SBram Moolenaar skip_word["starting"]="yes"; 30071d4279SBram Moolenaar skip_word["toggle"]="yes"; 31071d4279SBram Moolenaar skip_word["various"]="yes"; 32071d4279SBram Moolenaar skip_word["version"]="yes"; 33071d4279SBram Moolenaar skip_word["is"]="yes"; 34071d4279SBram Moolenaar} 35071d4279SBram Moolenaar# 36071d4279SBram Moolenaar# protect special chars 37071d4279SBram Moolenaar# 38071d4279SBram Moolenaar/[><&�]/ {gsub(/&/,"\\&");gsub(/>/,"\\>");gsub(/</,"\\<");gsub("�","\\á");} 39071d4279SBram Moolenaar# 40071d4279SBram Moolenaar# end of sample lines by non-blank in first column 41071d4279SBram Moolenaar# 42071d4279SBram Moolenaarsample == "yes" && substr($0,1,4) == "<" { sample = "no"; gsub(/^</, " "); } 43071d4279SBram Moolenaarsample == "yes" && substr($0,1,1) != " " && substr($0,1,1) != " " && length($0) > 0 { sample = "no" } 44071d4279SBram Moolenaar# 45071d4279SBram Moolenaar# sample lines printed bold unless empty... 46071d4279SBram Moolenaar# 47071d4279SBram Moolenaarsample == "yes" && $0 =="" { print ""; next; } 48071d4279SBram Moolenaarsample == "yes" && $0 !="" { print "<B>" $0 "</B>"; next; } 49071d4279SBram Moolenaar# 50071d4279SBram Moolenaar# start of sample lines in next line 51071d4279SBram Moolenaar# 52071d4279SBram Moolenaar$0 == ">" { sample = "yes"; print ""; next; } 53071d4279SBram Moolenaarsubstr($0,length($0)-4,5) == " >" { sample = "yes"; gsub(/ >$/, ""); } 54071d4279SBram Moolenaar# 55071d4279SBram Moolenaar# header lines printed bold, colored 56071d4279SBram Moolenaar# 57071d4279SBram Moolenaarsubstr($0,length($0),1) == "~" { print "<B><FONT COLOR=\"PURPLE\">" substr($0,1,length($0)-1) "</FONT></B>"; next; } 58071d4279SBram Moolenaar# 59071d4279SBram Moolenaar#ad hoc code 60071d4279SBram Moolenaar# 61*388a5d4fSBram Moolenaar/^"\|& / {gsub(/\|/,"\\|"); } 62071d4279SBram Moolenaar/ = b / {gsub(/ b /," \\b "); } 63071d4279SBram Moolenaar# 64071d4279SBram Moolenaar# one letter tag 65071d4279SBram Moolenaar# 66071d4279SBram Moolenaar/[ ]\*.\*[ ]/ {gsub(/\*/,"ZWWZ"); } 67071d4279SBram Moolenaar# 68071d4279SBram Moolenaar# isolated "*" 69071d4279SBram Moolenaar# 70071d4279SBram Moolenaar/[ ]\*[ ]/ {gsub(/ \* /," \\* "); 71071d4279SBram Moolenaar gsub(/ \* /," \\* "); 72071d4279SBram Moolenaar gsub(/ \* /," \\* "); 73071d4279SBram Moolenaar gsub(/ \* /," \\* "); } 74071d4279SBram Moolenaar# 75071d4279SBram Moolenaar# tag start 76071d4279SBram Moolenaar# 77071d4279SBram Moolenaar/[ ]\*[^ ]/ {gsub(/ \*/," ZWWZ");gsub(/ \*/," ZWWZ");} 78071d4279SBram Moolenaar/^\*[^ ]/ {gsub(/^\*/,"ZWWZ");} 79071d4279SBram Moolenaar# 80071d4279SBram Moolenaar# tag end 81071d4279SBram Moolenaar# 82071d4279SBram Moolenaar/[^ ]\*$/ {gsub(/\*$/,"ZWWZ");} 83071d4279SBram Moolenaar/[^ \/ ]\*[ ]/ {gsub(/\*/,"ZWWZ");} 84071d4279SBram Moolenaar# 85071d4279SBram Moolenaar# isolated "|" 86071d4279SBram Moolenaar# 87071d4279SBram Moolenaar/[ ]\|[ ]/ {gsub(/ \| /," \\| "); 88071d4279SBram Moolenaar gsub(/ \| /," \\| "); 89071d4279SBram Moolenaar gsub(/ \| /," \\| "); 90071d4279SBram Moolenaar gsub(/ \| /," \\| "); } 91071d4279SBram Moolenaar/'\|'/ { gsub(/'\|'/,"'\\|'"); } 92071d4279SBram Moolenaar/\^V\|/ {gsub(/\^V\|/,"^V\\|");} 93071d4279SBram Moolenaar/ \\\| / {gsub(/\|/,"\\|");} 94071d4279SBram Moolenaar# 95071d4279SBram Moolenaar# one letter pipes and "||" false pipe (digraphs) 96071d4279SBram Moolenaar# 97071d4279SBram Moolenaar/[ ]\|.\|[ ]/ && asciiart == "no" {gsub(/\|/,"YXXY"); } 98071d4279SBram Moolenaar/^\|.\|[ ]/ {gsub(/\|/,"YXXY"); } 99071d4279SBram Moolenaar/\|\|/ {gsub(/\|\|/,"\\|\\|"); } 100071d4279SBram Moolenaar/^shellpipe/ {gsub(/\|/,"\\|"); } 101071d4279SBram Moolenaar# 102071d4279SBram Moolenaar# pipe start 103071d4279SBram Moolenaar# 104071d4279SBram Moolenaar/[ ]\|[^ ]/ && asciiart == "no" {gsub(/ \|/," YXXY"); 105071d4279SBram Moolenaar gsub(/ \|/," YXXY");} 106071d4279SBram Moolenaar/^\|[^ ]/ {gsub(/^\|/,"YXXY");} 107071d4279SBram Moolenaar# 108071d4279SBram Moolenaar# pipe end 109071d4279SBram Moolenaar# 110071d4279SBram Moolenaar/[^ ]\|$/ && asciiart == "no" {gsub(/\|$/,"YXXY");} 111071d4279SBram Moolenaar/[^ ]\|[s ,.); ]/ && asciiart == "no" {gsub(/\|/,"YXXY");} 112071d4279SBram Moolenaar/[^ ]\|]/ && asciiart == "no" {gsub(/\|/,"YXXY");} 113071d4279SBram Moolenaar# 114071d4279SBram Moolenaar# various 115071d4279SBram Moolenaar# 116071d4279SBram Moolenaar/'"/ {gsub(/'"/,"\\'\\"'");} 117071d4279SBram Moolenaar/"/ {gsub(/"/,"\\"");} 118071d4279SBram Moolenaar/%/ {gsub(/%/,"\\%");} 119071d4279SBram Moolenaar 120071d4279SBram MoolenaarNR == 1 { nf=split(FILENAME,f,".") 121071d4279SBram Moolenaar print "<HTML>"; 122071d4279SBram Moolenaar 123071d4279SBram Moolenaar print "<HEAD>" 124071d4279SBram Moolenaar if ( FILENAME == "mbyte.txt" ) { 125071d4279SBram Moolenaar # needs utf-8 as uses many languages 126071d4279SBram Moolenaar print "<META HTTP-EQUIV=\"Content-type\" content=\"text/html; charset=UTF-8\">"; 127071d4279SBram Moolenaar } else { 128071d4279SBram Moolenaar # common case - Latin1 129071d4279SBram Moolenaar print "<META HTTP-EQUIV=\"Content-type\" content=\"text/html; charset=ISO-8859-1\">"; 130071d4279SBram Moolenaar } 131071d4279SBram Moolenaar print "<TITLE>Vim documentation: " f[1] "</TITLE>"; 132071d4279SBram Moolenaar print "</HEAD>"; 133071d4279SBram Moolenaar 134071d4279SBram Moolenaar print "<BODY BGCOLOR=\"#ffffff\">"; 135071d4279SBram Moolenaar print "<H1>Vim documentation: " f[1] "</H1>"; 136071d4279SBram Moolenaar print "<A NAME=\"top\"></A>"; 137071d4279SBram Moolenaar if ( FILENAME != "help.txt" ) { 1389b2200acSBram Moolenaar print "<A HREF=\"index.html\">main help file</A>\n"; 139071d4279SBram Moolenaar } 140071d4279SBram Moolenaar print "<HR>"; 141071d4279SBram Moolenaar print "<PRE>"; 142071d4279SBram Moolenaar filename=f[1]".html"; 143071d4279SBram Moolenaar} 144071d4279SBram Moolenaar 145071d4279SBram Moolenaar# set to a low value to test for few lines of text 146071d4279SBram Moolenaar# NR == 99999 { exit; } 147071d4279SBram Moolenaar 148071d4279SBram Moolenaar# ignore underlines and tags 149071d4279SBram Moolenaarsubstr($0,1,5) == " vim:" { next; } 150071d4279SBram Moolenaarsubstr($0,1,4) == "vim:" { next; } 151071d4279SBram Moolenaar# keep just whole lines of "-", "=" 152071d4279SBram Moolenaarsubstr($0,1,3) == "===" && substr($0,75,1) != "=" { next; } 153071d4279SBram Moolenaarsubstr($0,1,3) == "---" && substr($0,75,1) != "-" { next; } 154071d4279SBram Moolenaar 155071d4279SBram Moolenaar{ 156071d4279SBram Moolenaar nstar = split($0,s,"ZWWZ"); 157071d4279SBram Moolenaar for ( i=2 ; i <= nstar ; i=i+2 ) { 158071d4279SBram Moolenaar nbla=split(s[i],blata,"[ ]"); 159071d4279SBram Moolenaar if ( nbla > 1 ) { 160071d4279SBram Moolenaar gsub("ZWWZ","*"); 161071d4279SBram Moolenaar nstar = split($0,s,"ZWWZ"); 162071d4279SBram Moolenaar } 163071d4279SBram Moolenaar } 164071d4279SBram Moolenaar npipe = split($0,p,"YXXY"); 165071d4279SBram Moolenaar for ( i=2 ; i <= npipe ; i=i+2 ) { 166071d4279SBram Moolenaar nbla=split(p[i],blata,"[ ]"); 167071d4279SBram Moolenaar if ( nbla > 1 ) { 168071d4279SBram Moolenaar gsub("YXXY","|"); 169071d4279SBram Moolenaar ntabs = split($0,p,"YXXY"); 170071d4279SBram Moolenaar } 171071d4279SBram Moolenaar } 172071d4279SBram Moolenaar} 173071d4279SBram Moolenaar 174071d4279SBram Moolenaar 175071d4279SBram MoolenaarFILENAME == "gui.txt" && asciiart == "no" \ 176071d4279SBram Moolenaar && $0 ~ /\+----/ && $0 ~ /----\+/ { 177071d4279SBram Moolenaar asciiart= "yes"; 178071d4279SBram Moolenaar asciicnt=0; 179071d4279SBram Moolenaar } 180071d4279SBram Moolenaar 181071d4279SBram MoolenaarFILENAME == "quotes.txt" && asciiart == "no" \ 182071d4279SBram Moolenaar && $0 ~ /In summary:/ { 183071d4279SBram Moolenaar asciiart= "yes"; 184071d4279SBram Moolenaar asciicnt=0; 185071d4279SBram Moolenaar } 186071d4279SBram Moolenaar 187071d4279SBram MoolenaarFILENAME == "usr_20.txt" && asciiart == "no" \ 188071d4279SBram Moolenaar && $0 ~ /an empty line at the end:/ { 189071d4279SBram Moolenaar asciiart= "yes"; 190071d4279SBram Moolenaar asciicnt=0; 191071d4279SBram Moolenaar } 192071d4279SBram Moolenaar 193071d4279SBram Moolenaarasciiart == "yes" && $0=="" { asciicnt++; } 194071d4279SBram Moolenaar 195071d4279SBram Moolenaarasciiart == "yes" && asciicnt == 2 { asciiart = "no"; } 196071d4279SBram Moolenaar 197071d4279SBram Moolenaarasciiart == "yes" { npipe = 1; } 198071d4279SBram Moolenaar# { print NR " <=> " asciiart; } 199071d4279SBram Moolenaar 200071d4279SBram Moolenaar# 201071d4279SBram Moolenaar# line contains "*" 202071d4279SBram Moolenaar# 203071d4279SBram Moolenaarnstar > 2 && npipe < 3 { 204071d4279SBram Moolenaar printf("\n"); 205071d4279SBram Moolenaar for ( i=1; i <= nstar ; i=i+2 ) { 206071d4279SBram Moolenaar this=s[i]; 207071d4279SBram Moolenaar put_this(); 208071d4279SBram Moolenaar ii=i+1; 209071d4279SBram Moolenaar nbla = split(s[ii],blata," "); 210071d4279SBram Moolenaar if ( ii <= nstar ) { 211071d4279SBram Moolenaar if ( nbla == 1 && substr(s[ii],length(s[ii]),1) != " " ) { 212071d4279SBram Moolenaar printf("*<A NAME=\"%s\"></A>",s[ii]); 213071d4279SBram Moolenaar printf("<B>%s</B>*",s[ii]); 214071d4279SBram Moolenaar } else { 215071d4279SBram Moolenaar printf("*%s*",s[ii]); 216071d4279SBram Moolenaar } 217071d4279SBram Moolenaar } 218071d4279SBram Moolenaar } 219071d4279SBram Moolenaar printf("\n"); 220071d4279SBram Moolenaar next; 221071d4279SBram Moolenaar } 222071d4279SBram Moolenaar# 223071d4279SBram Moolenaar# line contains "|" 224071d4279SBram Moolenaar# 225071d4279SBram Moolenaarnpipe > 2 && nstar < 3 { 226071d4279SBram Moolenaar if ( npipe%2 == 0 ) { 227071d4279SBram Moolenaar for ( i=1; i < npipe ; i++ ) { 228071d4279SBram Moolenaar gsub("ZWWZ","*",p[i]); 229071d4279SBram Moolenaar printf("%s|",p[i]); 230071d4279SBram Moolenaar } 231071d4279SBram Moolenaar printf("%s\n",p[npipe]); 232071d4279SBram Moolenaar next; 233071d4279SBram Moolenaar } 234071d4279SBram Moolenaar for ( i=1; i <= npipe ; i++ ) 235071d4279SBram Moolenaar { 236071d4279SBram Moolenaar if ( i % 2 == 1 ) { 237071d4279SBram Moolenaar gsub("ZWWZ","*",p[i]); 238071d4279SBram Moolenaar this=p[i]; 239071d4279SBram Moolenaar put_this(); 240071d4279SBram Moolenaar } 241071d4279SBram Moolenaar else { 242071d4279SBram Moolenaar nfn=split(p[i],f,"."); 243071d4279SBram Moolenaar if ( nfn == 1 || f[2] == "" || f[1] == "" || length(f[2]) < 3 ) { 244071d4279SBram Moolenaar find_tag1(); 245071d4279SBram Moolenaar } 246071d4279SBram Moolenaar else { 2479b2200acSBram Moolenaar if ( f[1] == "index" ) { 2489b2200acSBram Moolenaar printf "|<A HREF=\"vimindex.html\">" p[i] "</A>|"; 2499b2200acSBram Moolenaar } else { 2509b2200acSBram Moolenaar if ( f[1] == "help" ) { 2519b2200acSBram Moolenaar printf "|<A HREF=\"index.html\">" p[i] "</A>|"; 2529b2200acSBram Moolenaar } else { 253071d4279SBram Moolenaar printf "|<A HREF=\"" f[1] ".html\">" p[i] "</A>|"; 254071d4279SBram Moolenaar } 255071d4279SBram Moolenaar } 256071d4279SBram Moolenaar } 2579b2200acSBram Moolenaar } 2589b2200acSBram Moolenaar } 259071d4279SBram Moolenaar printf("\n"); 260071d4279SBram Moolenaar next; 261071d4279SBram Moolenaar } 262071d4279SBram Moolenaar# 263071d4279SBram Moolenaar# line contains both "|" and "*" 264071d4279SBram Moolenaar# 265071d4279SBram Moolenaarnpipe > 2 && nstar > 2 { 266071d4279SBram Moolenaar printf("\n"); 267071d4279SBram Moolenaar for ( j=1; j <= nstar ; j=j+2 ) { 268071d4279SBram Moolenaar npipe = split(s[j],p,"YXXY"); 269071d4279SBram Moolenaar if ( npipe > 1 ) { 270071d4279SBram Moolenaar for ( np=1; np<=npipe; np=np+2 ) { 271071d4279SBram Moolenaar this=p[np]; 272071d4279SBram Moolenaar put_this(); 273071d4279SBram Moolenaar i=np+1;find_tag1(); 274071d4279SBram Moolenaar } 275071d4279SBram Moolenaar } else { 276071d4279SBram Moolenaar this=s[j]; 277071d4279SBram Moolenaar put_this(); 278071d4279SBram Moolenaar } 279071d4279SBram Moolenaar jj=j+1; 280071d4279SBram Moolenaar nbla = split(s[jj],blata," "); 281071d4279SBram Moolenaar if ( jj <= nstar && nbla == 1 && s[jj] != "" ) { 282071d4279SBram Moolenaar printf("*<A NAME=\"%s\"></A>",s[jj]); 283071d4279SBram Moolenaar printf("<B>%s</B>*",s[jj]); 284071d4279SBram Moolenaar } else { 285071d4279SBram Moolenaar if ( s[jj] != "" ) { 286071d4279SBram Moolenaar printf("*%s*",s[jj]); 287071d4279SBram Moolenaar } 288071d4279SBram Moolenaar } 289071d4279SBram Moolenaar } 290071d4279SBram Moolenaar printf("\n"); 291071d4279SBram Moolenaar next; 292071d4279SBram Moolenaar } 293071d4279SBram Moolenaar# 294071d4279SBram Moolenaar# line contains e-mail address [email protected] 295071d4279SBram Moolenaar# 296071d4279SBram Moolenaar$0 ~ /@/ && $0 ~ /[a-zA-Z0-9]@[a-z]/ \ 297071d4279SBram Moolenaar { 298071d4279SBram Moolenaar nemail=split($0,em," "); 299071d4279SBram Moolenaar if ( substr($0,1,1) == " " ) { printf(" "); } 300071d4279SBram Moolenaar for ( i=1; i <= nemail; i++ ) { 301071d4279SBram Moolenaar if ( em[i] ~ /@/ ) { 302071d4279SBram Moolenaar if ( substr(em[i],2,3) == "lt;" && substr(em[i],length(em[i])-2,3) == "gt;" ) { 303071d4279SBram Moolenaar mailaddr=substr(em[i],5,length(em[i])-8); 304071d4279SBram Moolenaar printf("<A HREF=\"mailto:%s\"><%s></A> ",mailaddr,mailaddr); 305071d4279SBram Moolenaar } else { 306071d4279SBram Moolenaar if ( substr(em[i],2,3) == "lt;" && substr(em[i],length(em[i])-3,3) == "gt;" ) { 307071d4279SBram Moolenaar mailaddr=substr(em[i],5,length(em[i])-9); 308071d4279SBram Moolenaar printf("<A HREF=\"mailto:%s\"><%s></A>%s ",mailaddr,mailaddr,substr(em[i],length(em[i]),1)); 309071d4279SBram Moolenaar } else { 310071d4279SBram Moolenaar printf("<A HREF=\"mailto:%s\">%s</A> ",em[i],em[i]); 311071d4279SBram Moolenaar } 312071d4279SBram Moolenaar } 313071d4279SBram Moolenaar } else { 314071d4279SBram Moolenaar printf("%s ",em[i]); 315071d4279SBram Moolenaar } 316071d4279SBram Moolenaar } 317071d4279SBram Moolenaar #print "*** " NR " " FILENAME " - possible mail ref"; 318071d4279SBram Moolenaar printf("\n"); 319071d4279SBram Moolenaar next; 320071d4279SBram Moolenaar } 321071d4279SBram Moolenaar# 322071d4279SBram Moolenaar# line contains http / ftp reference 323071d4279SBram Moolenaar# 324071d4279SBram Moolenaar$0 ~ /http:\/\// || $0 ~ /ftp:\/\// { 325071d4279SBram Moolenaar gsub("URL:",""); 326071d4279SBram Moolenaar gsub("<",""); 327071d4279SBram Moolenaar gsub(">",""); 328071d4279SBram Moolenaar gsub("\\(",""); 329071d4279SBram Moolenaar gsub("\\)",""); 330071d4279SBram Moolenaar nemail=split($0,em," "); 331071d4279SBram Moolenaar for ( i=1; i <= nemail; i++ ) { 332071d4279SBram Moolenaar if ( substr(em[i],1,5) == "http:" || 333071d4279SBram Moolenaar substr(em[i],1,4) == "ftp:" ) { 334071d4279SBram Moolenaar if ( substr(em[i],length(em[i]),1) != "." ) { 335071d4279SBram Moolenaar printf(" <A HREF=\"%s\">%s</A>",em[i],em[i]); 336071d4279SBram Moolenaar } else { 337071d4279SBram Moolenaar em[i]=substr(em[i],1,length(em[i])-1); 338071d4279SBram Moolenaar printf(" <A HREF=\"%s\">%s</A>.",em[i],em[i]); 339071d4279SBram Moolenaar } 340071d4279SBram Moolenaar } else { 341071d4279SBram Moolenaar printf(" %s",em[i]); 342071d4279SBram Moolenaar } 343071d4279SBram Moolenaar } 344071d4279SBram Moolenaar #print "*** " NR " " FILENAME " - possible http ref"; 345071d4279SBram Moolenaar printf("\n"); 346071d4279SBram Moolenaar next; 347071d4279SBram Moolenaar } 348071d4279SBram Moolenaar# 349071d4279SBram Moolenaar# some lines contains just one "almost regular" "*"... 350071d4279SBram Moolenaar# 351071d4279SBram Moolenaarnstar == 2 { 352071d4279SBram Moolenaar this=s[1]; 353071d4279SBram Moolenaar put_this(); 354071d4279SBram Moolenaar printf("*"); 355071d4279SBram Moolenaar this=s[2]; 356071d4279SBram Moolenaar put_this(); 357071d4279SBram Moolenaar printf("\n"); 358071d4279SBram Moolenaar next; 359071d4279SBram Moolenaar } 360071d4279SBram Moolenaar# 361071d4279SBram Moolenaar# regular line 362071d4279SBram Moolenaar# 363071d4279SBram Moolenaar { ntabs = split($0,tb," "); 364071d4279SBram Moolenaar for ( i=1; i < ntabs ; i++) { 365071d4279SBram Moolenaar this=tb[i]; 366071d4279SBram Moolenaar put_this(); 367071d4279SBram Moolenaar printf(" "); 368071d4279SBram Moolenaar } 369071d4279SBram Moolenaar this=tb[ntabs]; 370071d4279SBram Moolenaar put_this(); 371071d4279SBram Moolenaar printf("\n"); 372071d4279SBram Moolenaar } 373071d4279SBram Moolenaar 374071d4279SBram Moolenaar 375071d4279SBram Moolenaarasciiart == "yes" && $0 ~ /\+-\+--/ \ 376071d4279SBram Moolenaar && $0 ~ "scrollbar" { asciiart = "no"; } 377071d4279SBram Moolenaar 378071d4279SBram MoolenaarEND { 379071d4279SBram Moolenaar topback(); 380071d4279SBram Moolenaar print "</PRE>\n</BODY>\n\n\n</HTML>"; } 381071d4279SBram Moolenaar 382071d4279SBram Moolenaar# 383071d4279SBram Moolenaar# as main we keep index.txt (by default) 384071d4279SBram Moolenaar# 385071d4279SBram Moolenaarfunction topback () { 386071d4279SBram Moolenaar if ( FILENAME != "tags" ) { 387071d4279SBram Moolenaar if ( FILENAME != "help.txt" ) { 388071d4279SBram Moolenaar printf("<A HREF=\"#top\">top</A> - "); 3899b2200acSBram Moolenaar printf("<A HREF=\"index.html\">main help file</A>\n"); 390071d4279SBram Moolenaar } else { 391071d4279SBram Moolenaar printf("<A HREF=\"#top\">top</A>\n"); 392071d4279SBram Moolenaar } 393071d4279SBram Moolenaar } 394071d4279SBram Moolenaar} 395071d4279SBram Moolenaar 396071d4279SBram Moolenaarfunction find_tag1() { 397071d4279SBram Moolenaar if ( p[i] == "" ) { return; } 398071d4279SBram Moolenaar if ( tagkey[p[i]] == "yes" ) { 399071d4279SBram Moolenaar which=tagref[p[i]]; 400071d4279SBram Moolenaar put_href(); 401071d4279SBram Moolenaar return; 402071d4279SBram Moolenaar } 403071d4279SBram Moolenaar # if not found, then we have a problem 404071d4279SBram Moolenaar print "============================================" >>"errors.log"; 405071d4279SBram Moolenaar print FILENAME ", line " NR ", pointer: >>" p[i] "<<" >>"errors.log"; 406071d4279SBram Moolenaar print $0 >>"errors.log"; 407071d4279SBram Moolenaar which="intro.html"; 408071d4279SBram Moolenaar put_href(); 409071d4279SBram Moolenaar} 410071d4279SBram Moolenaar 411071d4279SBram Moolenaarfunction see_tag() { 412071d4279SBram Moolenaar# ad-hoc code: 413071d4279SBram Moolenaarif ( atag == "\"--" || atag == "--\"" ) { return; } 414071d4279SBram Moolenaarif_already(); 415071d4279SBram Moolenaarif ( already == "yes" ) { 416071d4279SBram Moolenaar printf("%s",aword); 417071d4279SBram Moolenaar return; 418071d4279SBram Moolenaar } 419071d4279SBram Moolenaarallow_one_char="no"; 420071d4279SBram Moolenaarfind_tag2(); 421071d4279SBram Moolenaarif ( done == "yes" ) { return; } 422071d4279SBram Moolenaarrightchar=substr(atag,length(atag),1); 423071d4279SBram Moolenaarif ( rightchar == "." \ 424071d4279SBram Moolenaar || rightchar == "," \ 425071d4279SBram Moolenaar || rightchar == ":" \ 426071d4279SBram Moolenaar || rightchar == ";" \ 427071d4279SBram Moolenaar || rightchar == "!" \ 428071d4279SBram Moolenaar || rightchar == "?" \ 429071d4279SBram Moolenaar || rightchar == ")" ) { 430071d4279SBram Moolenaar atag=substr(atag,1,length(atag)-1); 431071d4279SBram Moolenaar if_already(); 432071d4279SBram Moolenaar if ( already == "yes" ) { 433071d4279SBram Moolenaar printf("%s",aword); 434071d4279SBram Moolenaar return; 435071d4279SBram Moolenaar } 436071d4279SBram Moolenaar find_tag2(); 437071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",rightchar);return; } 438071d4279SBram Moolenaar leftchar=substr(atag,1,1); 439071d4279SBram Moolenaar lastbut1=substr(atag,length(atag),1); 440071d4279SBram Moolenaar if ( leftchar == "'" && lastbut1 == "'" ) { 441071d4279SBram Moolenaar allow_one_char="yes"; 442071d4279SBram Moolenaar atag=substr(atag,2,length(atag)-2); 443071d4279SBram Moolenaar if_already(); 444071d4279SBram Moolenaar if ( already == "yes" ) { 445071d4279SBram Moolenaar printf("%s",aword); 446071d4279SBram Moolenaar return; 447071d4279SBram Moolenaar } 448071d4279SBram Moolenaar printf("%s",leftchar); 449071d4279SBram Moolenaar aword=substr(atag,1,length(atag))""lastbut1""rightchar; 450071d4279SBram Moolenaar find_tag2(); 451071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s%s",lastbut1,rightchar);return; } 452071d4279SBram Moolenaar } 453071d4279SBram Moolenaar } 454071d4279SBram Moolenaaratag=aword; 455071d4279SBram Moolenaarleftchar=substr(atag,1,1); 456071d4279SBram Moolenaarif ( leftchar == "'" && rightchar == "'" ) { 457071d4279SBram Moolenaar allow_one_char="yes"; 458071d4279SBram Moolenaar atag=substr(atag,2,length(atag)-2); 459071d4279SBram Moolenaar if ( atag == "<" ) { printf(" |%s|%s| ",atag,p[2]); } 460071d4279SBram Moolenaar if_already(); 461071d4279SBram Moolenaar if ( already == "yes" ) { 462071d4279SBram Moolenaar printf("%s",aword); 463071d4279SBram Moolenaar return; 464071d4279SBram Moolenaar } 465071d4279SBram Moolenaar printf("%s",leftchar); 466071d4279SBram Moolenaar find_tag2(); 467071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",rightchar);return; } 468071d4279SBram Moolenaar printf("%s%s",atag,rightchar); 469071d4279SBram Moolenaar return; 470071d4279SBram Moolenaar } 471071d4279SBram Moolenaarlast2=substr(atag,length(atag)-1,2); 472071d4279SBram Moolenaarfirst2=substr(atag,1,2); 473071d4279SBram Moolenaarif ( first2 == "('" && last2 == "')" ) { 474071d4279SBram Moolenaar allow_one_char="yes"; 475071d4279SBram Moolenaar atag=substr(atag,3,length(atag)-4); 476071d4279SBram Moolenaar if_already(); 477071d4279SBram Moolenaar if ( already == "yes" ) { 478071d4279SBram Moolenaar printf("%s",aword); 479071d4279SBram Moolenaar return; 480071d4279SBram Moolenaar } 481071d4279SBram Moolenaar printf("%s",first2); 482071d4279SBram Moolenaar find_tag2(); 483071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",last2);return; } 484071d4279SBram Moolenaar printf("%s%s",atag,last2); 485071d4279SBram Moolenaar return; 486071d4279SBram Moolenaar } 487071d4279SBram Moolenaarif ( last2 == ".)" ) { 488071d4279SBram Moolenaar atag=substr(atag,1,length(atag)-2); 489071d4279SBram Moolenaar if_already(); 490071d4279SBram Moolenaar if ( already == "yes" ) { 491071d4279SBram Moolenaar printf("%s",aword); 492071d4279SBram Moolenaar return; 493071d4279SBram Moolenaar } 494071d4279SBram Moolenaar find_tag2(); 495071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",last2);return; } 496071d4279SBram Moolenaar printf("%s%s",atag,last2); 497071d4279SBram Moolenaar return; 498071d4279SBram Moolenaar } 499071d4279SBram Moolenaarif ( last2 == ")." ) { 500071d4279SBram Moolenaar atag=substr(atag,1,length(atag)-2); 501071d4279SBram Moolenaar find_tag2(); 502071d4279SBram Moolenaar if_already(); 503071d4279SBram Moolenaar if ( already == "yes" ) { 504071d4279SBram Moolenaar printf("%s",aword); 505071d4279SBram Moolenaar return; 506071d4279SBram Moolenaar } 507071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",last2);return; } 508071d4279SBram Moolenaar printf("%s%s",atag,last2); 509071d4279SBram Moolenaar return; 510071d4279SBram Moolenaar } 511071d4279SBram Moolenaarfirst6=substr(atag,1,6); 512071d4279SBram Moolenaarlast6=substr(atag,length(atag)-5,6); 513071d4279SBram Moolenaarif ( last6 == atag ) { 514071d4279SBram Moolenaar printf("%s",aword); 515071d4279SBram Moolenaar return; 516071d4279SBram Moolenaar } 517071d4279SBram Moolenaarlast6of7=substr(atag,length(atag)-6,6); 518071d4279SBram Moolenaarif ( first6 == """ && last6of7 == """ && length(atag) > 12 ) { 519071d4279SBram Moolenaar allow_one_char="yes"; 520071d4279SBram Moolenaar atag=substr(atag,7,length(atag)-13); 521071d4279SBram Moolenaar if_already(); 522071d4279SBram Moolenaar if ( already == "yes" ) { 523071d4279SBram Moolenaar printf("%s",aword); 524071d4279SBram Moolenaar return; 525071d4279SBram Moolenaar } 526071d4279SBram Moolenaar printf("%s",first6); 527071d4279SBram Moolenaar find_tag2(); 528071d4279SBram Moolenaar if ( done == "yes" ) { printf(""%s",rightchar); return; } 529071d4279SBram Moolenaar printf("%s"%s",atag,rightchar); 530071d4279SBram Moolenaar return; 531071d4279SBram Moolenaar } 532071d4279SBram Moolenaarif ( first6 == """ && last6 != """ ) { 533071d4279SBram Moolenaar allow_one_char="yes"; 534071d4279SBram Moolenaar atag=substr(atag,7,length(atag)-6); 535071d4279SBram Moolenaar if ( atag == "[" ) { printf(""%s",atag); return; } 536071d4279SBram Moolenaar if ( atag == "." ) { printf(""%s",atag); return; } 537071d4279SBram Moolenaar if ( atag == ":" ) { printf(""%s",atag); return; } 538071d4279SBram Moolenaar if ( atag == "a" ) { printf(""%s",atag); return; } 539071d4279SBram Moolenaar if ( atag == "A" ) { printf(""%s",atag); return; } 540071d4279SBram Moolenaar if ( atag == "g" ) { printf(""%s",atag); return; } 541071d4279SBram Moolenaar if_already(); 542071d4279SBram Moolenaar if ( already == "yes" ) { 543071d4279SBram Moolenaar printf(""%s",atag); 544071d4279SBram Moolenaar return; 545071d4279SBram Moolenaar } 546071d4279SBram Moolenaar printf("%s",first6); 547071d4279SBram Moolenaar find_tag2(); 548071d4279SBram Moolenaar if ( done == "yes" ) { return; } 549071d4279SBram Moolenaar printf("%s",atag); 550071d4279SBram Moolenaar return; 551071d4279SBram Moolenaar } 552071d4279SBram Moolenaarif ( last6 == """ && first6 == """ ) { 553071d4279SBram Moolenaar allow_one_char="yes"; 554071d4279SBram Moolenaar atag=substr(atag,7,length(atag)-12); 555071d4279SBram Moolenaar if_already(); 556071d4279SBram Moolenaar if ( already == "yes" ) { 557071d4279SBram Moolenaar printf("%s",aword); 558071d4279SBram Moolenaar return; 559071d4279SBram Moolenaar } 560071d4279SBram Moolenaar printf("%s",first6); 561071d4279SBram Moolenaar find_tag2(); 562071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s",last6);return; } 563071d4279SBram Moolenaar printf("%s%s",atag,last6); 564071d4279SBram Moolenaar return; 565071d4279SBram Moolenaar } 566071d4279SBram Moolenaarlast6of7=substr(atag,length(atag)-6,6); 567071d4279SBram Moolenaarif ( last6of7 == """ && first6 == """ ) { 568071d4279SBram Moolenaar allow_one_char="yes"; 569071d4279SBram Moolenaar atag=substr(atag,7,length(atag)-13); 570071d4279SBram Moolenaar #printf("\natag=%s,aword=%s\n",atag,aword); 571071d4279SBram Moolenaar if_already(); 572071d4279SBram Moolenaar if ( already == "yes" ) { 573071d4279SBram Moolenaar printf("%s",aword); 574071d4279SBram Moolenaar return; 575071d4279SBram Moolenaar } 576071d4279SBram Moolenaar printf("%s",first6); 577071d4279SBram Moolenaar find_tag2(); 578071d4279SBram Moolenaar if ( done == "yes" ) { printf("%s%s",last6of7,rightchar);return; } 579071d4279SBram Moolenaar printf("%s%s%s",atag,last6of7,rightchar); 580071d4279SBram Moolenaar return; 581071d4279SBram Moolenaar } 582071d4279SBram Moolenaarprintf("%s",aword); 583071d4279SBram Moolenaar} 584071d4279SBram Moolenaar 585071d4279SBram Moolenaarfunction find_tag2() { 586071d4279SBram Moolenaar done="no"; 587071d4279SBram Moolenaar # no blanks present in a tag... 588071d4279SBram Moolenaar ntags=split(atag,blata,"[ ]"); 589071d4279SBram Moolenaar if ( ntags > 1 ) { return; } 590071d4279SBram Moolenaar if ( ( allow_one_char == "no" ) && \ 5915e3cb7e8SBram Moolenaar ( index("!#$%&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",atag) !=0 ) ) { 592071d4279SBram Moolenaar return; 593071d4279SBram Moolenaar } 594071d4279SBram Moolenaar if ( skip_word[atag] == "yes" ) { return; } 595071d4279SBram Moolenaar if ( wasset == "yes" && lineset == NR ) { 596071d4279SBram Moolenaar wasset="no"; 597071d4279SBram Moolenaar see_opt(); 598071d4279SBram Moolenaar if ( done_opt == "yes" ) {return;} 599071d4279SBram Moolenaar } 600071d4279SBram Moolenaar if ( wasset == "yes" && lineset != NR ) { 601071d4279SBram Moolenaar wasset="no"; 602071d4279SBram Moolenaar } 603071d4279SBram Moolenaar if ( atag == ":set" ) { 604071d4279SBram Moolenaar wasset="yes"; 605071d4279SBram Moolenaar lineset=NR; 606071d4279SBram Moolenaar } 607071d4279SBram Moolenaar if ( tagkey[atag] == "yes" ) { 608071d4279SBram Moolenaar which=tagref[atag]; 609071d4279SBram Moolenaar put_href2(); 610071d4279SBram Moolenaar done="yes"; 611071d4279SBram Moolenaar } 612071d4279SBram Moolenaar} 613071d4279SBram Moolenaar 614071d4279SBram Moolenaarfunction find_tag3() { 615071d4279SBram Moolenaar done="no"; 616071d4279SBram Moolenaar # no blanks present in a tag... 617071d4279SBram Moolenaar ntags=split(btag,blata,"[ ]"); 618071d4279SBram Moolenaar if ( ntags > 1 ) { return; } 619071d4279SBram Moolenaar if ( ( allow_one_char == "no" ) && \ 6205e3cb7e8SBram Moolenaar ( index("!#$%&'()+,-./0:;=?@ACINX\\[\\]^_`at\\{\\}~",btag) !=0 ) ) { 621071d4279SBram Moolenaar return; 622071d4279SBram Moolenaar } 623071d4279SBram Moolenaar if ( skip_word[btag] == "yes" ) { return; } 624071d4279SBram Moolenaar if ( tagkey[btag] == "yes" ) { 625071d4279SBram Moolenaar which=tagref[btag]; 626071d4279SBram Moolenaar put_href3(); 627071d4279SBram Moolenaar done="yes"; 628071d4279SBram Moolenaar } 629071d4279SBram Moolenaar} 630071d4279SBram Moolenaar 631071d4279SBram Moolenaarfunction put_href() { 632071d4279SBram Moolenaar if ( p[i] == "" ) { return; } 633071d4279SBram Moolenaar if ( which == FILENAME ) { 634071d4279SBram Moolenaar printf("|<A HREF=\"#%s\">%s</A>|",p[i],p[i]); 635071d4279SBram Moolenaar } 636071d4279SBram Moolenaar else { 637071d4279SBram Moolenaar nz=split(which,zz,"."); 638071d4279SBram Moolenaar if ( zz[2] == "txt" || zz[1] == "tags" ) { 639071d4279SBram Moolenaar printf("|<A HREF=\"%s.html#%s\">%s</A>|",zz[1],p[i],p[i]); 640071d4279SBram Moolenaar } 641071d4279SBram Moolenaar else { 642071d4279SBram Moolenaar printf("|<A HREF=\"intro.html#%s\">%s</A>|",p[i],p[i]); 643071d4279SBram Moolenaar } 644071d4279SBram Moolenaar } 645071d4279SBram Moolenaar} 646071d4279SBram Moolenaar 647071d4279SBram Moolenaarfunction put_href2() { 648071d4279SBram Moolenaar if ( atag == "" ) { return; } 649071d4279SBram Moolenaar if ( which == FILENAME ) { 650071d4279SBram Moolenaar printf("<A HREF=\"#%s\">%s</A>",atag,atag); 651071d4279SBram Moolenaar } 652071d4279SBram Moolenaar else { 653071d4279SBram Moolenaar nz=split(which,zz,"."); 654071d4279SBram Moolenaar if ( zz[2] == "txt" || zz[1] == "tags" ) { 655071d4279SBram Moolenaar printf("<A HREF=\"%s.html#%s\">%s</A>",zz[1],atag,atag); 656071d4279SBram Moolenaar } 657071d4279SBram Moolenaar else { 658071d4279SBram Moolenaar printf("<A HREF=\"intro.html#%s\">%s</A>",atag,atag); 659071d4279SBram Moolenaar } 660071d4279SBram Moolenaar } 661071d4279SBram Moolenaar} 662071d4279SBram Moolenaar 663071d4279SBram Moolenaarfunction put_href3() { 664071d4279SBram Moolenaar if ( btag == "" ) { return; } 665071d4279SBram Moolenaar if ( which == FILENAME ) { 666071d4279SBram Moolenaar printf("<A HREF=\"#%s\">%s</A>",btag,btag2); 667071d4279SBram Moolenaar } 668071d4279SBram Moolenaar else { 669071d4279SBram Moolenaar nz=split(which,zz,"."); 670071d4279SBram Moolenaar if ( zz[2] == "txt" || zz[1] == "tags" ) { 671071d4279SBram Moolenaar printf("<A HREF=\"%s.html#%s\">%s</A>",zz[1],btag,btag2); 672071d4279SBram Moolenaar } 673071d4279SBram Moolenaar else { 674071d4279SBram Moolenaar printf("<A HREF=\"intro.html#%s\">%s</A>",btag,btag2); 675071d4279SBram Moolenaar } 676071d4279SBram Moolenaar } 677071d4279SBram Moolenaar} 678071d4279SBram Moolenaar 679071d4279SBram Moolenaarfunction put_this() { 680071d4279SBram Moolenaar ntab=split(this,ta," "); 681071d4279SBram Moolenaar for ( nta=1 ; nta <= ntab ; nta++ ) { 682071d4279SBram Moolenaar ata=ta[nta]; 683071d4279SBram Moolenaar lata=length(ata); 684071d4279SBram Moolenaar aword=""; 685071d4279SBram Moolenaar for ( iata=1 ; iata <=lata ; iata++ ) { 686071d4279SBram Moolenaar achar=substr(ata,iata,1); 687071d4279SBram Moolenaar if ( achar != " " ) { aword=aword""achar; } 688071d4279SBram Moolenaar else { 689071d4279SBram Moolenaar if ( aword != "" ) { atag=aword; 690071d4279SBram Moolenaar see_tag(); 691071d4279SBram Moolenaar aword=""; 692071d4279SBram Moolenaar printf(" "); } 693071d4279SBram Moolenaar else { 694071d4279SBram Moolenaar printf(" "); 695071d4279SBram Moolenaar } 696071d4279SBram Moolenaar } 697071d4279SBram Moolenaar } 698071d4279SBram Moolenaar if ( aword != "" ) { atag=aword; 699071d4279SBram Moolenaar see_tag(); 700071d4279SBram Moolenaar } 701071d4279SBram Moolenaar if ( nta != ntab ) { printf(" "); } 702071d4279SBram Moolenaar } 703071d4279SBram Moolenaar} 704071d4279SBram Moolenaar 705071d4279SBram Moolenaarfunction if_already() { 706071d4279SBram Moolenaar already="no"; 707071d4279SBram Moolenaar if ( npipe < 2 ) { return; } 708071d4279SBram Moolenaar if ( atag == ":au" && p[2] == ":autocmd" ) { already="yes";return; } 709071d4279SBram Moolenaar for ( npp=2 ; npp <= npipe ; npp=npp+2 ) { 710071d4279SBram Moolenaar if ( ( (index(p[npp],atag)) != 0 \ 711071d4279SBram Moolenaar && length(p[npp]) > length(atag) \ 712071d4279SBram Moolenaar && length(atag) >= 1 \ 713071d4279SBram Moolenaar ) \ 714071d4279SBram Moolenaar || (p[npp] == atag) \ 715071d4279SBram Moolenaar ) { 716071d4279SBram Moolenaar # printf("p=|%s|,tag=|%s| ",p[npp],atag); 717071d4279SBram Moolenaar already="yes"; return; } 718071d4279SBram Moolenaar } 719071d4279SBram Moolenaar} 720071d4279SBram Moolenaar 721071d4279SBram Moolenaarfunction see_opt() { 722071d4279SBram Moolenaar done_opt="no"; 723071d4279SBram Moolenaar stag=atag; 724071d4279SBram Moolenaar nfields = split(atag,tae,"="); 725071d4279SBram Moolenaar if ( nfields > 1 ) { 726071d4279SBram Moolenaar btag="'"tae[1]"'"; 727071d4279SBram Moolenaar btag2=tae[1]; 728071d4279SBram Moolenaar find_tag3(); 729071d4279SBram Moolenaar if (done == "yes") { 730071d4279SBram Moolenaar for ( ntae=2 ; ntae <= nfields ; ntae++ ) { 731071d4279SBram Moolenaar printf("=%s",tae[ntae]); 732071d4279SBram Moolenaar } 733071d4279SBram Moolenaar atag=stag; 734071d4279SBram Moolenaar done_opt="yes"; 735071d4279SBram Moolenaar return; 736071d4279SBram Moolenaar } 737071d4279SBram Moolenaar btag=tae[1]; 738071d4279SBram Moolenaar btag2=tae[1]; 739071d4279SBram Moolenaar find_tag3(); 740071d4279SBram Moolenaar if ( done=="yes" ) { 741071d4279SBram Moolenaar for ( ntae=2 ; ntae <= nfields ; ntae++ ) { 742071d4279SBram Moolenaar printf("=%s",tae[ntae]); 743071d4279SBram Moolenaar } 744071d4279SBram Moolenaar atag=stag; 745071d4279SBram Moolenaar done_opt="yes"; 746071d4279SBram Moolenaar return; 747071d4279SBram Moolenaar } 748071d4279SBram Moolenaar } 749071d4279SBram Moolenaar nfields = split(atag,tae,"""); 750071d4279SBram Moolenaar if ( nfields > 1 ) { 751071d4279SBram Moolenaar btag="'"tae[1]"'"; 752071d4279SBram Moolenaar btag2=tae[1]; 753071d4279SBram Moolenaar find_tag3(); 754071d4279SBram Moolenaar if (done == "yes") { 755071d4279SBram Moolenaar printf("""); 756071d4279SBram Moolenaar atag=stag; 757071d4279SBram Moolenaar done_opt="yes"; 758071d4279SBram Moolenaar return; 759071d4279SBram Moolenaar } 760071d4279SBram Moolenaar btag=tae[1]; 761071d4279SBram Moolenaar btag2=tae[1]; 762071d4279SBram Moolenaar find_tag3(); 763071d4279SBram Moolenaar if (done == "yes") { 764071d4279SBram Moolenaar printf("""); 765071d4279SBram Moolenaar atag=stag; 766071d4279SBram Moolenaar done_opt="yes"; 767071d4279SBram Moolenaar return; 768071d4279SBram Moolenaar } 769071d4279SBram Moolenaar } 770071d4279SBram Moolenaar btag="'"tae[1]"'"; 771071d4279SBram Moolenaar btag2=tae[1]; 772071d4279SBram Moolenaar find_tag3(); 773071d4279SBram Moolenaar if (done == "yes") { 774071d4279SBram Moolenaar atag=stag; 775071d4279SBram Moolenaar done_opt="yes"; 776071d4279SBram Moolenaar return; 777071d4279SBram Moolenaar } 778071d4279SBram Moolenaar btag=tae[1]; 779071d4279SBram Moolenaar btag2=tae[1]; 780071d4279SBram Moolenaar find_tag3(); 781071d4279SBram Moolenaar if (done == "yes") { 782071d4279SBram Moolenaar atag=stag; 783071d4279SBram Moolenaar done_opt="yes"; 784071d4279SBram Moolenaar return; 785071d4279SBram Moolenaar } 786071d4279SBram Moolenaar atag=stag; 787071d4279SBram Moolenaar} 788