pike.git / bin / htmlify_docs.lpc

version» Context lines:

pike.git/bin/htmlify_docs.lpc:235:      string short(string s)   {    return short_descs[s] ? " - "+short_descs[s] : "";   }         inherit "/precompiled/regexp":is_example;      list(string) indexes_done=(<>); + list(string) pages_done=(<>); +    string mkindex(string topic, int usehead)   {    string head;    string a,ret;    ret="";       indexes_done[topic]=1;       switch(topic)    {    case "pages":    head="<b>All pages:</b>\n";    ret="<ul>\n";    foreach(sort_array(m_indices(pages)),a) -  +  {    ret+="<li><a href="+pages[a]+">"+a+"</a>"+short(a)+"\n"; -  +  }       ret+="</ul>\n";    break;       case "programs":    head="<b>Builtin programs:</b>\n";    ret="<ul>\n";    foreach(sort_array(m_indices(pages)),a)    {    if(a[0]!='/') continue;    -  +  pages_done[a]=1;    ret+="<li><a href="+pages[a]+">"+a+"</a>"+short(a)+"\n";    }       ret+="</ul>\n";    break;       case "examples":    head="<b>examples:</b>\n";    ret="<ul>\n";    foreach(sort_array(m_indices(pages)),a)    {    if(search(a,"example")==-1) continue;    -  +  pages_done[a]=1; +     ret+="<li><a href="+pages[a]+">"+a+"</a>"+short(a)+"\n";    }       ret+="</ul>\n";    break;       case "other":    head="<b>Other pages</b>\n";    ret="<ul>\n"; -  foreach(sort_array(m_indices(pages) - -  map_array(`|(@m_values(keywords)),html_quote) - -  map_array(m_indices(all_efuns()),html_quote)),a) +  foreach(sort_array(m_indices(pages) - indices(pages_done) ),a)    { -  if(a[0]=='/') continue; +     if(a[0..4]=="index") continue; -  if(search(a,"example")!=-1) continue; +     ret+="<li><a href="+pages[a]+">"+a+"</a>"+short(a)+"\n";    }    ret+="</ul>\n";    break;       case "efuns":    head="<b>All builtin functions:</b>\n";    ret="<ul>\n";    foreach(sort_array(m_indices(all_efuns())),a)    {    a=html_quote(a);    if(pages[a])    { -  +  pages_done[a]=1;    ret+="<li><a href="+pages[a]+">"+a+"</a>"+short(a)+"\n";    }else{    if(writepages)    perror("Warning: no page for function: "+a+".\n");    }    }    ret+="</ul>\n";    break;       default:
pike.git/bin/htmlify_docs.lpc:327:    }       head="<a name="+topic+">";    head+="<b>"+capitalize(topic)+"</a>";    head+=short(topic);    head+="</b>\n";    ret="<ul>\n";    foreach(sort_array(keywords[topic]),a)    {    a=html_quote(a); +  pages_done[a]=1;    ret+="<li><a href="+pages[a]+">"+a+"</a>"+ short(a) +"\n";    }    ret+="</ul></a>\n";    break;    }       if(usehead) ret=head+ret;       return ret;   }
pike.git/bin/htmlify_docs.lpc:436:    break;       case "SEE ALSO":    rest=replace(rest,({"\n"," ","\t"}),({"","",""}));    a=rest/",";    b=({});    foreach(a,a)    {    string tmp;    tmp=a; +  if(a[0]!='`' && a[0]!='/')    a=explode(a,"/")[-1];    if(pages[a])    {    b+=({ "<a href="+pages[a]+">" + a + "</a>" });    }else if(subpages[a]){    b+=({ "<a href="+subpages[a]+">" + a + "</a>" });    }else if(subpages[fname+"-&gt;"+a]){    b+=({ "<a href="+subpages[name+"-&gt;"+a]+">" + a + "</a>" });    }else{    if(writepages) -  perror("Warning, unlinked SEE ALSO: "+a+"\n"); +  perror(path+": Warning, unlinked SEE ALSO: "+a+"\n");    b+=({ tmp });    }    }    rest=implode_nicely(b);    break;       case "SYNTAX":    case "SYNTAX EXAMPLE":    rest=syntax_magic(rest);    break;       case "EXAMPLES":    case "EXAMPLE":    case "DIRECTIVE":    case "PREPROCESSOR DIRECTIVES":    rest="<tt>"+magic(rest,1)+"</tt>";    break;       case "RELATED FUNCTIONS":    a=name; -  +     sscanf(rest,"%*skeyword %[a-z/A-Z0-9]",a);    rest=mkindex(a, 0);    }       sections[headno]="<dt>"+    smallcaps(type)+    "<dd>\n"+rest+"\n<p>";    }    if(keywords[part_name])    {
pike.git/bin/htmlify_docs.lpc:543:    tmp=mkindex(a, 1);    break;       case "KEYWORD_LIST":    sscanf(a,"%s\n",a);    tmp=mkindex(a, 0);    break;       case "LINK":    sscanf(a,"%s %s",a,b); -  tmp="<a href="+a+".html>"+b+"</a>"; +  pages_done[(a/"/")[-1]]=1; +  tmp="<a href="+fippel_path(a)+".html>"+b+"</a>";    break;       default:    perror("Unknown directive: "+pre+".\n");    }       }    sections[section]=tmp;    }    cont=implode(sections,"\n<p>\n");
pike.git/bin/htmlify_docs.lpc:630:    if(is_example::match(tmp+"\n"))    {    l++;    }else{    i++;    }    }       if(l > i*2)    { +  int err;    l=0;    foreach(cont/"\n", tmp)    {    l++;    if(!is_example::match(tmp+"\n"))    {    perror(path+":"+l+": not on example form.\n"); -  +  if(++err == 5) break;    }    }    }    perror("Warning: not converting "+path+".\n");    }    output="";    }    return output;   }