Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog5
-rwxr-xr-xbin/BBlog29
-rw-r--r--engines/sqlite.sh130
-rw-r--r--man/man1/BBlog.14
4 files changed, 92 insertions, 76 deletions
diff --git a/Changelog b/Changelog
index 792c411..801ccc6 100644
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,8 @@
+2.1.4:
+
+ * New: Allow for comma separated list of references in aux_cmd.
+
+
2.1.3:
* Fixed: entries that contain a '%' do not cause a failure.
diff --git a/bin/BBlog b/bin/BBlog
index 141b8a5..9d63581 100755
--- a/bin/BBlog
+++ b/bin/BBlog
@@ -15,10 +15,10 @@
## limitations under the License.
# directory containing the engine files
-enginedir=/home/ian/Programs/BBlog2/src/engines
+enginedir=/usr/share/BBlog/engines
# version
-version=2.1.3
+version=2.1.4
function print_config {
echo "engine: $engine"
@@ -272,17 +272,20 @@ function inverse_map_citeref {
foundref=0
# sift through aux file
- grep -h "$aux_cmd" $aux | while read -r ref; do
- eval "ref=\${ref#$aux_cmd}"
- ref="${ref%\}}"
- # replace the ref via the ref_map
- possibleref=$(map_citeref "$ref")
- # check whether the ref is the right one
- if [ "$possibleref" = "$newref" ]; then
- echo "$ref"
- foundref=1
- return 1
- fi
+ grep -h "$aux_cmd" $aux | while read -r refs; do
+ eval "refs=\${refs#$aux_cmd}"
+ refs="${ref%\}}"
+ # can be a comma separated list
+ for ref in $(echo -n "$refs" | tr ',' '\n'); do
+ # replace the ref via the ref_map
+ possibleref=$(map_citeref "$ref")
+ # check whether the ref is the right one
+ if [ "$possibleref" = "$newref" ]; then
+ echo "$ref"
+ foundref=1
+ return 1
+ fi
+ done
done && echo "$foundref$newref"
}
diff --git a/engines/sqlite.sh b/engines/sqlite.sh
index af7afdd..b10d6c3 100644
--- a/engines/sqlite.sh
+++ b/engines/sqlite.sh
@@ -1,5 +1,5 @@
-base_SQL="SELECT title,author,journal,year,token,doi,arxiv,citeref,prauth FROM bibliography"
-base_SQL_noprauth="SELECT title,author,journal,year,token,doi,arxiv,citeref 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,bibtex FROM bibliography"
# add quotes
function SQL_addquotes {
@@ -23,32 +23,36 @@ function generate_SQL_alpha {
exists_citeref=0
# sift through aux file
- grep -h "$aux_cmd" $aux | while read -r citeref; do
- eval "citeref=\${citeref#$aux_cmd}"
- citeref="${citeref%\}}"
+ grep -h "$aux_cmd" $aux | while read -r citerefs; do
+ eval "citerefs=\${citerefs#$aux_cmd}"
+ citerefs="${citerefs%\}}"
- # replace the citeref with a ref_map if there is any
- if [ -n "$ref_map" ]; then
- citeref=$(map_citeref "$citeref")
- fi
+ # can be a comma separated list
+ for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do
- # 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
-
- if [ "$foundit" = 0 ]; then
- echo -n "$citeref' OR citeref='"
- exists_citeref=1
- fi
+ # replace the citeref with a ref_map if there is any
+ if [ -n "$ref_map" ]; then
+ citeref=$(map_citeref "$citeref")
+ fi
+
+ # 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
+
+ if [ "$foundit" = 0 ]; then
+ echo -n "$citeref' OR citeref='"
+ exists_citeref=1
+ fi
+ done
done
# if there are no citerefs close '
@@ -70,46 +74,50 @@ function fetch_BBlog_entries_appearance {
citeref_list=""
# sift through aux file
- grep -h "$aux_cmd" $aux | while read -r citeref; do
- eval "citeref=\${citeref#$aux_cmd}"
- citeref="${citeref%\}}"
+ grep -h "$aux_cmd" $aux | while read -r citerefs; do
+ eval "citerefs=\${citerefs#$aux_cmd}"
+ citerefs="${citerefs%\}}"
- # replace the citeref with a ref_map if there is any
- if [ -n "$ref_map" ]; then
- citeref=$(map_citeref "$citeref")
- fi
+ # can be a comma separated list
+ for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do
- # check whether the reference was already cited
- citeref_list="$citeref_list;"
- if $(echo "$citeref_list" | grep -q ";$citeref;"); then
- # 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
+ # replace the citeref with a ref_map if there is any
+ if [ -n "$ref_map" ]; then
+ citeref=$(map_citeref "$citeref")
fi
-
- if [ "$foundit" = 0 ]; then
- SQL="$base_SQL_noprauth WHERE citeref='$citeref'"
- sqlite3 -line "$db" "$SQL" | SQL_addquotes
+
+ # check whether the reference was already cited
+ citeref_list="$citeref_list;"
+ if $(echo "$citeref_list" | grep -q ";$citeref;"); then
+ # remove trailing ';'
+ citeref_list="${citeref_list%;}"
else
- echo "citeref=$citeref"
- fi
+ citeref_list="$citeref_list$citeref"
- # add an empty line
- echo ""
- fi
+ # 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
+
+ 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
}
diff --git a/man/man1/BBlog.1 b/man/man1/BBlog.1
index a37b75d..6303c38 100644
--- a/man/man1/BBlog.1
+++ b/man/man1/BBlog.1
@@ -1,5 +1,5 @@
-.Dd $Mdocdate: November 5 2019 $
-.Dt BBLOG 2.1.3
+.Dd $Mdocdate: November 13 2019 $
+.Dt BBLOG 2.1.4
.Os
.Sh NAME
.Nm BBlog