From: Jakub Narebski <jnareb@gmail.com>
To: Stephen Boyd <bebarino@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 1/2] gitweb.js: fix null object exception in initials calculation
Date: Thu, 19 Nov 2009 22:40:26 +0100 [thread overview]
Message-ID: <200911192240.27743.jnareb@gmail.com> (raw)
In-Reply-To: <1258659887-5244-2-git-send-email-bebarino@gmail.com>
On Thu, 19 Nov 2009, Stephen Boyd wrote:
> Currently handleLine() assumes that a commit author name will always
> start with a capital letter. It's possible that the author name is
> user@example.com and therefore calling a match() on the name will fail
> to return any matches. Subsequently joining these matches will cause an
> exception. Fix by checking that we have a match before trying to join
> the results into a set of initials for the author.
>
> Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
> ---
[From "[PATCH 0/2] jn/gitweb-blame fixes"]
> This series is based on next's jn/gitweb-blame branch.
>
> I was trying out the incremental blame and noticed it didn't work
> each time. The first patch fixes the crashing I experience when
> blaming gitweb.perl (ironic ;-)
Hmmm... gitweb/gitweb.perl *was* one of files I have tested
'blame_incremental' view on, but I have not experienced any
crashes.
Perhaps it was the matter of different JavaScript engine (Mozilla 1.7.12
with Gecko/20050923 engine, Konqueror 3.5.3-0.2.fc4), or different
starting point for blame.
I assume that crashing lead simply to not working blame, not to browser
crash?
> gitweb/gitweb.js | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/gitweb/gitweb.js b/gitweb/gitweb.js
> index 22570f5..02454d8 100644
> --- a/gitweb/gitweb.js
> +++ b/gitweb/gitweb.js
> @@ -532,8 +532,11 @@ function handleLine(commit, group) {
> if (group.numlines >= 2) {
> var fragment = document.createDocumentFragment();
> var br = document.createElement("br");
> - var text = document.createTextNode(
> - commit.author.match(/\b([A-Z])\B/g).join(''));
> + var match = commit.author.match(/\b([A-Z])\B/g);
> + if (match) {
> + var text = document.createTextNode(
> + match.join(''));
> + }
> if (br && text) {
> var elem = fragment || td_sha1;
> elem.appendChild(br);
Thanks. It now corresponds to what it is done for ordinary 'blame'
view, i.e.:
my @author_initials = ($author =~ /\b([[:upper:]])\B/g);
if (@author_initials) {
print "<br />" .
esc_html(join('', @author_initials));
# or join('.', ...)
}
P.S. Unfortunately unless we decide to generate JavaScript from Perl code,
using something like GWT for Java or Pylons for Python, e.g. CGI::Ajax
(which is not in Perl core), we would have to have such code duplication.
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2009-11-19 21:40 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-19 19:44 [PATCH 0/2] jn/gitweb-blame fixes Stephen Boyd
2009-11-19 19:44 ` [PATCH 1/2] gitweb.js: fix null object exception in initials calculation Stephen Boyd
2009-11-19 21:40 ` Jakub Narebski [this message]
2009-11-19 22:48 ` Stephen Boyd
2009-11-19 19:44 ` [PATCH 2/2] gitweb.js: use unicode encoding for nbsp instead of html entity Stephen Boyd
2009-11-19 23:00 ` Jakub Narebski
2009-11-20 1:00 ` Stephen Boyd
2009-11-25 3:51 ` [PATCHv2 2/2] gitweb.js: fix padLeftStr() and its usage Stephen Boyd
2009-11-19 23:05 ` [PATCH 0/2] jn/gitweb-blame fixes Jakub Narebski
2009-11-20 1:00 ` Stephen Boyd
2009-11-20 4:05 ` Stephen Boyd
2009-11-21 0:32 ` Jakub Narebski
2009-11-21 14:56 ` Jakub Narebski
2009-11-25 0:45 ` [PATCH] gitweb.js: Harden setting blamed commit info in incremental blame Jakub Narebski
2009-11-25 1:01 ` Nanako Shiraishi
2009-11-25 1:13 ` Jakub Narebski
2009-11-25 4:01 ` Stephen Boyd
2009-11-25 14:36 ` Jakub Narebski
2009-11-25 20:55 ` Jakub Narebski
2009-11-25 21:39 ` Junio C Hamano
2009-11-25 23:28 ` Jakub Narebski
2009-11-26 0:34 ` Junio C Hamano
2009-11-26 0:59 ` Jakub Narebski
2009-11-26 20:12 ` [RFC/PATCH] gitweb: Make linking to actions requiring JavaScript a feature Jakub Narebski
2009-11-26 20:34 ` Junio C Hamano
2009-11-26 21:24 ` Jakub Narebski
2009-11-27 2:39 ` Junio C Hamano
2009-11-27 15:41 ` Jakub Narebski
2009-11-27 18:29 ` Junio C Hamano
2009-12-01 1:18 ` Junio C Hamano
2009-12-01 16:51 ` Jakub Narebski
2009-12-01 16:52 ` [PATCH 1/2] " Jakub Narebski
2009-12-01 16:54 ` [PATCH 2/2] gitweb: Add link to other blame implementation in blame views Jakub Narebski
2009-12-07 1:04 ` [PATCH] gitweb.js: Harden setting blamed commit info in incremental blame Stephen Boyd
2009-12-07 1:19 ` Stephen Boyd
2009-12-08 16:29 ` PATCH/RFC] gitweb.js: Workaround for IE8 bug Jakub Narebski
2009-12-08 21:56 ` Stephen Boyd
2009-12-08 22:24 ` Jakub Narebski
2009-12-08 22:32 ` Jakub Narebski
2009-12-09 0:08 ` Stephen Boyd
2009-11-23 4:52 ` [PATCH 0/2] jn/gitweb-blame fixes Stephen Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200911192240.27743.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=bebarino@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.