Fossil

Check-in [54e01c60e2]
Login

Check-in [54e01c60e2]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:When rendering HTML pages using the fossil-doc class and the data-title="..." attribute, reverse the HTML escapes in the argument to data-title since they will be reencoded prior to rendering.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 54e01c60e21827d3d3cebb5195621817c7795b560ede60e3bc6fc8c60c42dad6
User & Date: drh 2019-08-01 21:05:00.564
Context
2019-08-01
23:31
Implement the fossil_clearenv() function for Win32. ... (check-in: 61fd10ecd1 user: mistachkin tags: trunk)
21:05
When rendering HTML pages using the fossil-doc class and the data-title="..." attribute, reverse the HTML escapes in the argument to data-title since they will be reencoded prior to rendering. ... (check-in: 54e01c60e2 user: drh tags: trunk)
19:30
Clear all environment variables prior to invoking a CGI extension. (Works on posix - need to fix it for windows.) ... (check-in: ed63bdd71e user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/doc.c.
449
450
451
452
453
454
455



456




457
458
459
460
461
462
463
    }
    if( nAttr==5 && fossil_strnicmp(zAttr,"class",5)==0 ){
      if( nValue!=10 || fossil_strnicmp(zValue,"fossil-doc",10)!=0 ) return 0;
      seenClass = 1;
      if( seenTitle ) return 1;
    }
    if( nAttr==10 && fossil_strnicmp(zAttr,"data-title",10)==0 ){



      blob_append(pTitle, zValue, nValue);




      seenTitle = 1;
      if( seenClass ) return 1;
    }
  }
  return seenClass;
}








>
>
>
|
>
>
>
>







449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
    }
    if( nAttr==5 && fossil_strnicmp(zAttr,"class",5)==0 ){
      if( nValue!=10 || fossil_strnicmp(zValue,"fossil-doc",10)!=0 ) return 0;
      seenClass = 1;
      if( seenTitle ) return 1;
    }
    if( nAttr==10 && fossil_strnicmp(zAttr,"data-title",10)==0 ){
      /* The text argument to data-title="" will have had any characters that
      ** are special to HTML encoded.  We need to decode these before turning
      ** the text into a title, as the title text will be reencoded later */
      char *zTitle = mprintf("%.*s", nValue, zValue);
      int i;
      for(i=0; fossil_isspace(zTitle[i]); i++){}
      html_to_plaintext(zTitle+i, pTitle);
      fossil_free(zTitle);
      seenTitle = 1;
      if( seenClass ) return 1;
    }
  }
  return seenClass;
}