Changeset 77b8654 in git


Ignore:
Timestamp:
25/07/10 08:18:20 (9 years ago)
Author:
Olly Betts <olly@…>
Branches:
add-show-splays, line_contents, master, stereo, svn/github/master, svn/origin/master, svn/tags/1.1.14, svn/tags/1.1.15, svn/tags/1.1.16, svn/tags/1.2.0, svn/tags/1.2.1, svn/tags/1.2.2, svn/tags/1.2.3, svn/tags/1.2.4, svn/tags/1.2.5, svn/trunk, travis-osx
Children:
b0c416c
Parents:
813919e
Message:

src/cavernlog.cc: Don't double escape the contents of href and target
in links in the log.

git-svn-id: file:///home/survex-svn/survex/trunk@3486 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r813919e r77b8654  
     1Sun Jul 25 07:17:20 GMT 2010  Olly Betts <olly@survex.com>
     2
     3        * src/cavernlog.cc: Don't double escape the contents of href and target
     4          in links in the log.
     5
    16Sun Jul 25 06:32:24 GMT 2010  Olly Betts <olly@survex.com>
    27
  • src/cavernlog.cc

    r813919e r77b8654  
    7373#endif
    7474    return s;
    75 }
    76 
    77 static wxString
    78 html_escape(const wxString &str)
    79 {
    80     wxString res;
    81     size_t p = 0;
    82     while (p < str.size()) {
    83         char ch = str[p++];
    84         switch (ch) {
    85             case '<':
    86                 res += wxT("&lt;");
    87                 continue;
    88             case '>':
    89                 res += wxT("&gt;");
    90                 continue;
    91             case '&':
    92                 res += wxT("&amp;");
    93                 continue;
    94             case '"':
    95                 res += wxT("&quot;");
    96                 continue;
    97             default:
    98                 res += ch;
    99         }
    100     }
    101     return res;
    10275}
    10376
     
    271244                    if (colon2 != wxString::npos && colon2 != cur.size() - 1) {
    272245                        wxString href = cur.substr(0, colon2);
    273                         while (++colon2 < cur.size()) {
    274                             if (cur[colon2] != ' ') break;
     246                        size_t colon3 = colon2;
     247                        while (++colon3 < cur.size()) {
     248                            if (cur[colon3] != ' ') break;
    275249                        }
    276                         wxString title = cur.substr(colon2);
    277                         cur.insert(colon2, wxT("</a>"));
    278250                        wxString tag = wxT("<a href=\"");
    279                         tag += html_escape(href);
     251                        tag.append(cur, 0, colon2);
    280252                        tag += wxT("\" target=\"");
    281                         tag += html_escape(title);
     253                        tag.append(cur, colon3);
    282254                        tag += wxT("\">");
    283255                        cur.insert(0, tag);
     256                        cur.insert(colon3 + tag.size(), wxT("</a>"));
    284257                        ++link_count;
    285258                    }
     
    322295                cur += wxT("&amp;");
    323296                break;
     297            case '"':
     298                cur += wxT("&#22;");
     299                continue;
    324300            default:
    325301                if (ch >= 128) {
Note: See TracChangeset for help on using the changeset viewer.