Edgewall Software

Ticket #352: cap_ticket352.patch

File cap_ticket352.patch, 3.7 KB (added by daniel, 4 years ago)

Patch from Cap Petschulat (from the list)

  • trac/util.py

     
    5656    out.write ('</select>') 
    5757    return out.getvalue() 
    5858 
     59def wiki_escape_newline(text): 
     60    text = text.replace(os.linesep, '[[BR]]') 
     61    return text 
     62         
    5963def escape(text): 
    6064    """Escapes &, <, > and \"""" 
    6165    if not text: 
     
    156160def shorten_line(text, maxlen = 75): 
    157161    if not text: 
    158162        return '' 
    159     if len(text) < maxlen: 
     163    i = text.find('[[BR]]') 
     164    if i < maxlen: 
     165            shortline = text[:i]+' ...' 
     166    elif len(text) < maxlen: 
    160167        shortline = text 
    161168    else: 
    162169        i = text[:maxlen].rfind(' ') 
  • trac/File.py

     
    252252                                      svn.core.SVN_PROP_REVISION_AUTHOR, self.pool) 
    253253        msg = svn.fs.revision_prop(self.fs_ptr, rev, 
    254254                                   svn.core.SVN_PROP_REVISION_LOG, self.pool) 
    255         msg_html = wiki_to_html(msg, self.req.hdf, self.env) 
     255        msg_html = wiki_to_html(util.wiki_escape_newline(msg), self.req.hdf, self.env) 
    256256        date = svn.fs.revision_prop(self.fs_ptr, rev, 
    257257                                    svn.core.SVN_PROP_REVISION_DATE, self.pool) 
    258258        sdate = util.svn_date_to_string(date, self.pool) 
  • trac/Log.py

     
    4040            if change.copyfrom_path: 
    4141                self.branch_info[rev] = (change.copyfrom_path, newpath) 
    4242 
    43         shortlog = shorten_line(log) 
     43        shortlog = shorten_line(wiki_escape_newline(log)) 
    4444        t = util.svn_time_from_cstring(date, pool) / 1000000 
    4545        gmt = time.gmtime(t) 
    4646        item = { 
     
    4949            'date'     : svn_date_to_string (date, pool), 
    5050            'gmt'      : time.strftime('%a, %d %b %Y %H:%M:%S GMT', gmt), 
    5151            'log.raw'  : escape(log), 
    52             'log'      : wiki_to_oneliner(log, self.req.hdf, self.env), 
     52            'log'      : wiki_to_oneliner(shorten_line(wiki_escape_newline(log)), self.req.hdf, self.env), 
    5353            'shortlog' : escape(shortlog), 
    5454            'file_href': self.env.href.browser(self.path, rev), 
    5555            'changeset_href': self.env.href.changeset(rev) 
  • trac/Changeset.py

     
    263263        author = changeset_info['author'] or 'None' 
    264264        self.req.hdf.setValue('changeset.author', escape(author)) 
    265265        self.req.hdf.setValue('changeset.message', 
    266                               wiki_to_html(changeset_info['message'], 
     266                              wiki_to_html(wiki_escape_newline(changeset_info['message']), 
    267267                                           self.req.hdf, self.env)) 
    268268        self.req.hdf.setValue('changeset.revision', str(self.rev)) 
    269269        add_dictlist_to_hdf(change_info, self.req.hdf, 'changeset.changes') 
  • trac/Browser.py

     
    9292                'age'          : pretty_age(date_seconds), 
    9393                'is_dir'       : is_dir, 
    9494                'author'       : author, 
    95                 'change'       : wiki_to_oneliner(shorten_line(change), 
     95                'change'       : wiki_to_oneliner(shorten_line(wiki_escape_newline(change)), 
    9696                                                  self.req.hdf, self.env) 
    9797                } 
    9898            if rev_specified: