#
# generated by genmod v1.0
#
# style gentrim
#
$record_number = 0;
sub conv_gentrim {
local(%can) = @_;
$record_number++;
if (!defined $can{'CiteType'}) {
&bib'gotwarn("required field CiteType is not defined");
$can{'CiteType'} = 'misc';
}
local($edname) = '';
if (defined $can{'Editors'}) {
$edname = $can{'Editors'};
if ($can{'Editors'} =~ /$bib'cs_sep/) {
$edname = 'eds.';
} else {
$edname = 'ed.';
}
}
local($date) = undef;
if (defined $can{'Month'}) {
local($mo) = &bp_util'output_month($can{'Month'}, 'short');
if (defined $can{'Year'}) {
$date = "$mo $can{'Year'}";
} else {
$date = $mo;
}
} else {
$date = $can{'Year'} if defined $can{'Year'};
}
local($pp, $wp) = (undef,undef);
$pp = $can{'Pages'} if defined $can{'Pages'};
$wp = $can{'PagesWhole'} if defined $can{'PagesWhole'};
if ( (!defined $wp) && (defined $pp) && ($pp !~ /-|,/) ) {
$wp = $pp;
$pp = undef;
}
# set default type using the CiteType field
$type = &gentrim_default_type($can{'CiteType'});
# Initialize output string
$str = '';
$str .= "m1100";
if ($type eq 'article') {
if (!defined $can{'Journal'}) {
&bib'gotwarn("No Journal field in $type citation");
}
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
$str .= "\"$can{'Title'},\" " if defined $can{'Title'};
if (defined $can{'Journal'}) {
$str .= "m2101$can{'Journal'}m2111, ";
}
if (defined $can{'Editors'}) {
local($tEditors);
$tEditors = &bp_util'canon_to_name($can{'Editors'}, 'plain');
$str .= "($tEditors, ${edname}), ";
}
$str .= "vol. $can{'Volume'}, " if defined $can{'Volume'};
$str .= "no. $can{'Number'}, " if defined $can{'Number'};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "$can{'Publisher'}, " if defined $can{'Publisher'};
$str .= "${date}, " if defined ${date};
} elsif ($type eq 'report') {
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
$str .= "\"$can{'Title'},\" " if defined $can{'Title'};
if (defined $can{'ReportType'}) {
$str .= "$can{'ReportType'}";
$str .= " $can{'ReportNumber'}" if defined $can{'ReportNumber'};
$str .= ", ";
}
$str .= "$can{'Organization'}, " if defined $can{'Organization'};
$str .= "$can{'School'}, " if defined $can{'School'};
$str .= "$can{'PubAddress'}, " if defined $can{'PubAddress'};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "${date}, " if defined ${date};
$str .= "${wp} pages, " if defined ${wp};
} elsif ($type eq 'book') {
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
if (defined $can{'Title'}) {
$str .= "m2101$can{'Title'}m2111, ";
}
if (defined $can{'Editors'}) {
local($tEditors);
$tEditors = &bp_util'canon_to_name($can{'Editors'}, 'plain');
$str .= "($tEditors, ${edname}), ";
}
$str .= "vol. $can{'Volume'}, " if defined $can{'Volume'};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "$can{'Publisher'}, " if defined $can{'Publisher'};
$str .= "$can{'Edition'} ed., " if defined $can{'Edition'};
$str .= "${date}, " if defined ${date};
$str .= "${wp} pages, " if defined ${wp};
} elsif ($type eq 'inproceedings') {
if (!defined $can{'SuperTitle'}) {
&bib'gotwarn("No SuperTitle field in $type citation");
}
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
$str .= "\"$can{'Title'},\" " if defined $can{'Title'};
if (defined $can{'SuperTitle'}) {
$str .= "in m2101$can{'SuperTitle'}m2111, ";
}
if (defined $can{'Editors'}) {
local($tEditors);
$tEditors = &bp_util'canon_to_name($can{'Editors'}, 'plain');
$str .= "($tEditors, ${edname}), ";
}
$str .= "($can{'PubAddress'}), " if defined $can{'PubAddress'};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "$can{'Organization'}, " if defined $can{'Organization'};
if (defined $can{'Journal'}) {
$str .= "published as m2101$can{'Journal'}m2111, ";
$str .= "vol. $can{'Volume'}, " if defined $can{'Volume'};
$str .= "no. $can{'Number'}" if defined $can{'Number'};
}
$str .= "${date}, " if defined ${date};
} elsif ($type eq 'inbook') {
if (!defined $can{'SuperTitle'}) {
&bib'gotwarn("No SuperTitle field in $type citation");
}
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
$str .= "\"$can{'Title'},\" " if defined $can{'Title'};
if (defined $can{'SuperTitle'}) {
$str .= "in m2101$can{'SuperTitle'}m2111, ";
}
$str .= "vol. $can{'Volume'}, " if defined $can{'Volume'};
$str .= "no. $can{'Number'}" if defined $can{'Number'};
if (defined $can{'Editors'}) {
local($tEditors);
$tEditors = &bp_util'canon_to_name($can{'Editors'}, 'plain');
$str .= "($tEditors, ${edname}), ";
}
$str .= "($can{'PubAddress'}), " if defined $can{'PubAddress'};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "$can{'Organization'}, " if defined $can{'Organization'};
$str .= "${date}, " if defined ${date};
} elsif ( ($type eq 'misc') || ($type eq 'unpublished') || ($type eq 'manual') || ($type eq 'avmaterial') || ($type eq 'proceedings') || ($type eq 'thesis') || ($type eq 'map') ) {
if (defined $can{'Authors'}) {
local($tAuthors);
$tAuthors = &bp_util'canon_to_name($can{'Authors'}, 'plain');
$str .= "$tAuthors, ";
}
$str .= "\"$can{'Title'}\", " if defined $can{'Title'};
if (defined $can{'Journal'}) {
$str .= "m2101$can{'Journal'}m2111, ";
$str .= "v$can{'Volume'}, " if defined $can{'Volume'};
$str .= "n$can{'Number'}, " if defined $can{'Number'};
}
if (defined $can{'SuperTitle'}) {
$str .= "in m2101$can{'SuperTitle'}m2111, ";
}
if (defined $can{'Editors'}) {
local($tEditors);
$tEditors = &bp_util'canon_to_name($can{'Editors'}, 'plain');
$str .= "edited by $tEditors, ";
}
$str .= "$can{'Publisher'}, " if defined $can{'Publisher'};
$str .= "${date}, " if defined ${date};
$str .= "pp. ${pp}, " if defined ${pp};
$str .= "${wp} pages, " if defined ${wp};
}
$str =~ s/,\s*$/./ || $str =~ s/,"\s*$/."/;
$str .= "\n";
$str;
}
sub gentrim_default_type {
local($citetype) = @_;
local($type) = 'misc';
if (defined $citetype) {
if ($citetype =~ /^(article|report|book|inproceedings|inbook|misc|unpublished|manual|avmaterial|proceedings|thesis|map)$/) {
$type = $citetype;
} else {
&bib'gotwarn("Type '$can{'CiteType'}' not recognized -- using default type 'misc'");
}
}
$type;
}
1;