Update to v2.1.4:

New: Allow for comma separated list of references in aux_cmd.
This commit is contained in:
Ian Jauslin 2019-11-13 11:22:41 -05:00
parent 9eafbe43eb
commit 2136ba3f69
4 changed files with 92 additions and 76 deletions

View File

@ -1,3 +1,8 @@
2.1.4:
* New: Allow for comma separated list of references in aux_cmd.
2.1.3: 2.1.3:
* Fixed: entries that contain a '%' do not cause a failure. * Fixed: entries that contain a '%' do not cause a failure.

View File

@ -15,10 +15,10 @@
## limitations under the License. ## limitations under the License.
# directory containing the engine files # directory containing the engine files
enginedir=/home/ian/Programs/BBlog2/src/engines enginedir=/usr/share/BBlog/engines
# version # version
version=2.1.3 version=2.1.4
function print_config { function print_config {
echo "engine: $engine" echo "engine: $engine"
@ -272,17 +272,20 @@ function inverse_map_citeref {
foundref=0 foundref=0
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r ref; do grep -h "$aux_cmd" $aux | while read -r refs; do
eval "ref=\${ref#$aux_cmd}" eval "refs=\${refs#$aux_cmd}"
ref="${ref%\}}" refs="${ref%\}}"
# replace the ref via the ref_map # can be a comma separated list
possibleref=$(map_citeref "$ref") for ref in $(echo -n "$refs" | tr ',' '\n'); do
# check whether the ref is the right one # replace the ref via the ref_map
if [ "$possibleref" = "$newref" ]; then possibleref=$(map_citeref "$ref")
echo "$ref" # check whether the ref is the right one
foundref=1 if [ "$possibleref" = "$newref" ]; then
return 1 echo "$ref"
fi foundref=1
return 1
fi
done
done && echo "$foundref$newref" done && echo "$foundref$newref"
} }

View File

@ -1,5 +1,5 @@
base_SQL="SELECT title,author,journal,year,token,doi,arxiv,citeref,prauth FROM bibliography" base_SQL="SELECT title,author,journal,year,token,doi,arxiv,citeref,prauth,bibtex FROM bibliography"
base_SQL_noprauth="SELECT title,author,journal,year,token,doi,arxiv,citeref FROM bibliography" base_SQL_noprauth="SELECT title,author,journal,year,token,doi,arxiv,citeref,bibtex FROM bibliography"
# add quotes # add quotes
function SQL_addquotes { function SQL_addquotes {
@ -23,32 +23,36 @@ function generate_SQL_alpha {
exists_citeref=0 exists_citeref=0
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r citeref; do grep -h "$aux_cmd" $aux | while read -r citerefs; do
eval "citeref=\${citeref#$aux_cmd}" eval "citerefs=\${citerefs#$aux_cmd}"
citeref="${citeref%\}}" citerefs="${citerefs%\}}"
# replace the citeref with a ref_map if there is any # can be a comma separated list
if [ -n "$ref_map" ]; then for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do
citeref=$(map_citeref "$citeref")
fi
# Only query the db if there is no matching extra entry # replace the citeref with a ref_map if there is any
foundit=0 if [ -n "$ref_map" ]; then
if [ ${#extra} -gt 0 ]; then citeref=$(map_citeref "$citeref")
for entry in "${extra[@]}"; do fi
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi
if [ "$foundit" = 0 ]; then # Only query the db if there is no matching extra entry
echo -n "$citeref' OR citeref='" foundit=0
exists_citeref=1 if [ ${#extra} -gt 0 ]; then
fi for entry in "${extra[@]}"; do
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi
if [ "$foundit" = 0 ]; then
echo -n "$citeref' OR citeref='"
exists_citeref=1
fi
done
done done
# if there are no citerefs close ' # if there are no citerefs close '
@ -70,46 +74,50 @@ function fetch_BBlog_entries_appearance {
citeref_list="" citeref_list=""
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r citeref; do grep -h "$aux_cmd" $aux | while read -r citerefs; do
eval "citeref=\${citeref#$aux_cmd}" eval "citerefs=\${citerefs#$aux_cmd}"
citeref="${citeref%\}}" citerefs="${citerefs%\}}"
# replace the citeref with a ref_map if there is any # can be a comma separated list
if [ -n "$ref_map" ]; then for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do
citeref=$(map_citeref "$citeref")
fi
# check whether the reference was already cited # replace the citeref with a ref_map if there is any
citeref_list="$citeref_list;" if [ -n "$ref_map" ]; then
if $(echo "$citeref_list" | grep -q ";$citeref;"); then citeref=$(map_citeref "$citeref")
# remove trailing ';'
citeref_list="${citeref_list%;}"
else
citeref_list="$citeref_list$citeref"
# Only query the db if there is no matching extra entry
foundit=0
if [ ${#extra} -gt 0 ]; then
for entry in "${extra[@]}"; do
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi fi
if [ "$foundit" = 0 ]; then # check whether the reference was already cited
SQL="$base_SQL_noprauth WHERE citeref='$citeref'" citeref_list="$citeref_list;"
sqlite3 -line "$db" "$SQL" | SQL_addquotes if $(echo "$citeref_list" | grep -q ";$citeref;"); then
# remove trailing ';'
citeref_list="${citeref_list%;}"
else else
echo "citeref=$citeref" citeref_list="$citeref_list$citeref"
fi
# add an empty line # Only query the db if there is no matching extra entry
echo "" foundit=0
fi if [ ${#extra} -gt 0 ]; then
for entry in "${extra[@]}"; do
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi
if [ "$foundit" = 0 ]; then
SQL="$base_SQL_noprauth WHERE citeref='$citeref'"
sqlite3 -line "$db" "$SQL" | SQL_addquotes
else
echo "citeref=$citeref"
fi
# add an empty line
echo ""
fi
done
done done
} }

View File

@ -1,5 +1,5 @@
.Dd $Mdocdate: November 5 2019 $ .Dd $Mdocdate: November 13 2019 $
.Dt BBLOG 2.1.3 .Dt BBLOG 2.1.4
.Os .Os
.Sh NAME .Sh NAME
.Nm BBlog .Nm BBlog