Fossil SCM

Handle more corner cases when locating the title for wiki pages.

mistachkin 2014-02-15 01:44 trunk
Commit afc25dd4bc495ac5164220345a8812b62eb40530
1 file changed +11 -3
+11 -3
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1739,14 +1739,22 @@
17391739
z = blob_str(pIn);
17401740
for(i=0; fossil_isspace(z[i]); i++){}
17411741
if( z[i]!='<' ) return 0;
17421742
i++;
17431743
if( strncmp(&z[i],"title>", 6)!=0 ) return 0;
1744
- iStart = i+6;
1744
+ for(iStart=i+6; fossil_isspace(z[iStart]); iStart++){}
17451745
for(i=iStart; z[i] && (z[i]!='<' || strncmp(&z[i],"</title>",8)!=0); i++){}
1746
- if( z[i]!='<' ) return 0;
1747
- blob_init(pTitle, &z[iStart], i-iStart);
1746
+ if( strncmp(&z[i],"</title>",8)!=0 ){
1747
+ blob_init(pTitle, 0, 0);
1748
+ blob_init(pTail, &z[iStart], -1);
1749
+ return 1;
1750
+ }
1751
+ if( i-iStart>0 ){
1752
+ blob_init(pTitle, &z[iStart], i-iStart);
1753
+ }else{
1754
+ blob_init(pTitle, 0, 0);
1755
+ }
17481756
blob_init(pTail, &z[i+8], -1);
17491757
return 1;
17501758
}
17511759
17521760
/*
17531761
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1739,14 +1739,22 @@
1739 z = blob_str(pIn);
1740 for(i=0; fossil_isspace(z[i]); i++){}
1741 if( z[i]!='<' ) return 0;
1742 i++;
1743 if( strncmp(&z[i],"title>", 6)!=0 ) return 0;
1744 iStart = i+6;
1745 for(i=iStart; z[i] && (z[i]!='<' || strncmp(&z[i],"</title>",8)!=0); i++){}
1746 if( z[i]!='<' ) return 0;
1747 blob_init(pTitle, &z[iStart], i-iStart);
 
 
 
 
 
 
 
 
1748 blob_init(pTail, &z[i+8], -1);
1749 return 1;
1750 }
1751
1752 /*
1753
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -1739,14 +1739,22 @@
1739 z = blob_str(pIn);
1740 for(i=0; fossil_isspace(z[i]); i++){}
1741 if( z[i]!='<' ) return 0;
1742 i++;
1743 if( strncmp(&z[i],"title>", 6)!=0 ) return 0;
1744 for(iStart=i+6; fossil_isspace(z[iStart]); iStart++){}
1745 for(i=iStart; z[i] && (z[i]!='<' || strncmp(&z[i],"</title>",8)!=0); i++){}
1746 if( strncmp(&z[i],"</title>",8)!=0 ){
1747 blob_init(pTitle, 0, 0);
1748 blob_init(pTail, &z[iStart], -1);
1749 return 1;
1750 }
1751 if( i-iStart>0 ){
1752 blob_init(pTitle, &z[iStart], i-iStart);
1753 }else{
1754 blob_init(pTitle, 0, 0);
1755 }
1756 blob_init(pTail, &z[i+8], -1);
1757 return 1;
1758 }
1759
1760 /*
1761

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button