Skip to content

Commit

Permalink
Fixing biblatex #306
Browse files Browse the repository at this point in the history
  • Loading branch information
plk committed Mar 15, 2015
1 parent f8cd90e commit 37f1837
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 35 deletions.
8 changes: 4 additions & 4 deletions lib/Biber.pm
Expand Up @@ -2271,8 +2271,8 @@ sub create_uniquename_info {
# "X" and "von X" or "X" and "X Jr" using initials/first names when there is no need.
my $lastname = (Biber::Config->getblxoption('useprefix', $bee, $citekey) and
$name->get_prefix ? $name->get_prefix : '') .
$name->get_lastname .
($name->get_suffix ? $name->get_suffix : '');
$name->get_lastname;
# ($name->get_suffix ? $name->get_suffix : '');
my $nameinitstring = $name->get_nameinitstring;
my $namestring = $name->get_namestring;
my $namecontext;
Expand Down Expand Up @@ -2384,8 +2384,8 @@ sub generate_uniquename {
# "X" and "von X" or "X" and "X Jr" using initials/first names when there is no need.
my $lastname = (Biber::Config->getblxoption('useprefix', $bee, $citekey) and
$name->get_prefix ? $name->get_prefix : '') .
$name->get_lastname .
($name->get_suffix ? $name->get_suffix : '');
$name->get_lastname;
# ($name->get_suffix ? $name->get_suffix : '');
my $nameinitstring = $name->get_nameinitstring;
my $namestring = $name->get_namestring;
my $namecontext = 'global'; # default
Expand Down
16 changes: 4 additions & 12 deletions lib/Biber/Input/file/biblatexml.pm
Expand Up @@ -641,6 +641,10 @@ sub parsename {

my $namestring = '';

# Don't add suffix to namestring or nameinitstring as these are used for uniquename disambiguation
# which should only care about lastname + any prefix (if useprefix=true). See biblatex github
# tracker #306.

# prefix
if (my $p = $namec{prefix}) {
$namestring .= "$p ";
Expand All @@ -651,31 +655,19 @@ sub parsename {
$namestring .= "$l, ";
}

# suffix
if (my $s = $namec{suffix}) {
$namestring .= "$s, ";
}

# firstname
if (my $f = $namec{first}) {
$namestring .= "$f";
}

# middlename
if (my $m = $namec{middle}) {
$namestring .= "$m, ";
}

# Remove any trailing comma and space if, e.g. missing firstname
$namestring =~ s/,\s+\z//xms;

# Construct $nameinitstring
my $nameinitstr = '';
$nameinitstr .= join('', @{$namec{prefix_i}}) . '_' if ( $usepre and exists($namec{prefix}) );
$nameinitstr .= $namec{last} if exists($namec{last});
$nameinitstr .= '_' . join('', @{$namec{suffix_i}}) if exists($namec{suffix});
$nameinitstr .= '_' . join('', @{$namec{first_i}}) if exists($namec{first});
$nameinitstr .= '_' . join('', @{$namec{middle_i}}) if exists($namec{middle});
$nameinitstr =~ s/\s+/_/g;

return Biber::Entry::Name->new(
Expand Down
8 changes: 6 additions & 2 deletions lib/Biber/Input/file/bibtex.pm
Expand Up @@ -1134,6 +1134,12 @@ sub parsename {
$gen_suffix_i = inits(biber_decode_utf8($nd_name->format($si_f)));

my $namestring = '';


# Don't add suffix to namestring or nameinitstring as these are used for uniquename disambiguation
# which should only care about lastname + any prefix (if useprefix=true). See biblatex github
# tracker #306.

# prefix
my $ps;
my $prefix_stripped;
Expand Down Expand Up @@ -1162,7 +1168,6 @@ sub parsename {
$suffix_i = $gen_suffix_i;
$suffix_stripped = remove_outer($suffix);
$ss = $suffix ne $suffix_stripped ? 1 : 0;
$namestring .= "$suffix_stripped, ";
}
# firstname
my $fs;
Expand All @@ -1184,7 +1189,6 @@ sub parsename {
my $nameinitstr = '';
$nameinitstr .= join('', @$prefix_i) . '_' if ( $usepre and $prefix );
$nameinitstr .= $lastname if $lastname;
$nameinitstr .= '_' . join('', @$suffix_i) if $suffix;
$nameinitstr .= '_' . join('', @$firstname_i) if $firstname;
$nameinitstr =~ s/\s+/_/g;
$nameinitstr =~ s/~/_/g;
Expand Down
15 changes: 4 additions & 11 deletions lib/Biber/Input/file/endnotexml.pm
Expand Up @@ -679,33 +679,26 @@ sub parsename {

my $namestring = '';

# Don't add suffix to namestring or nameinitstring as these are used for uniquename disambiguation
# which should only care about lastname + any prefix (if useprefix=true). See biblatex github
# tracker #306.

# lastname
if (my $l = $namec{last}) {
$namestring .= "$l, ";
}

# suffix
if (my $s = $namec{suffix}) {
$namestring .= "$s, ";
}

# firstname
if (my $f = $namec{first}) {
$namestring .= "$f";
}

# middlename
if (my $m = $namec{middle}) {
$namestring .= "$m, ";
}

# Remove any trailing comma and space if, e.g. missing firstname
$namestring =~ s/,\s+\z//xms;

# Construct $nameinitstring
my $nameinitstr = '';
$nameinitstr .= $namec{last} if exists($namec{last});
$nameinitstr .= '_' . join('', @{$namec{suffix_i}}) if exists($namec{suffix});
$nameinitstr .= '_' . join('', @{$namec{first_i}}) if exists($namec{first});
$nameinitstr .= '_' . join('', @{$namec{middle_i}}) if exists($namec{middle});
$nameinitstr =~ s/\s+/_/g;
Expand Down
8 changes: 4 additions & 4 deletions lib/Biber/Input/file/ris.pm
Expand Up @@ -592,12 +592,13 @@ sub _name {

my $namestring = '';

# Don't add suffix to namestring or nameinitstring as these are used
# for uniquename disambiguation which should only care about lastname
# + any prefix (if useprefix=true). See biblatex github tracker #306.

# lastname
$namestring .= "$lastname, ";

# suffix
$namestring .= "$suffix, " if $suffix;

# firstname
$namestring .= $firstname if $firstname;

Expand All @@ -609,7 +610,6 @@ sub _name {
# Construct $nameinitstring
my $nameinitstr = '';
$nameinitstr .= $lastname if $lastname;
$nameinitstr .= '_' . join('', @si) if $suffix;
$nameinitstr .= '_' . join('', @fni) if $firstname;
$nameinitstr =~ s/\s+/_/g;
$nameinitstr =~ s/~/_/g;
Expand Down
4 changes: 2 additions & 2 deletions t/names.t
Expand Up @@ -66,8 +66,8 @@ my $name2 =
firstname_i => ['J'],
lastname => 'Doe',
lastname_i => ['D'],
nameinitstring => 'Doe_J_J',
namestring => 'Doe, Jr, John',
nameinitstring => 'Doe_J',
namestring => 'Doe, John',
prefix => undef,
prefix_i => undef,
strip => { firstname => 0, lastname => 0, prefix => undef, suffix => 0 },
Expand Down

0 comments on commit 37f1837

Please sign in to comment.