| 
														
															@@ -1,7 +1,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;;; -*- mode: EMACS-LISP; lexical-binding: t -*- 
														 | 
														
														 | 
														
															 ;;;; -*- mode: EMACS-LISP; lexical-binding: t -*- 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;; 
														 | 
														
														 | 
														
															 ;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;; bible-mode.el --- A browsing interface for the SWORD Project's Diatheke CLI 
														 | 
														
														 | 
														
															 ;; bible-mode.el --- A browsing interface for the SWORD Project's Diatheke CLI 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;; Time-stamp: <2024-05-24 12:13:14 fred> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;; Time-stamp: <2024-06-14 10:04:32 fred> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;; Author: Zacalot 
														 | 
														
														 | 
														
															 ;; Author: Zacalot 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;; Fixes and modifications by Fred Gilham 
														 | 
														
														 | 
														
															 ;; Fixes and modifications by Fred Gilham 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -106,17 +106,27 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :group 'bible-mode) 
														 | 
														
														 | 
														
															   :group 'bible-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;; This determines whether or not to use the Abbott Smith lexicon. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;; There is special-case code for this. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defcustom bm-use-abbott 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  t 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Use the Abbott Smith `Manual Greek Lexicon' for Greek definitions." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defcustom bm-use-index-for-lexicon nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Some lexicons are accessed by lemmas rather than Strong's numbers. Use 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+an index to look up lemmas from Strong's numbers so these lexicons can 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+be used. Examples of this type of lexicon are AbbottSmith and 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+LiddellScott." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :type 'boolean 
														 | 
														
														 | 
														
															   :type 'boolean 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :local nil 
														 | 
														
														 | 
														
															   :local nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :group 'bible-mode) 
														 | 
														
														 | 
														
															   :group 'bible-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defcustom bm-lexicon-index "AbbottSmithStrongs" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "A module that consists of an index mapping Strong's numbers to Greek 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+lemmas. The code is written to use the entries in AbbottSmithStrongs 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+which are of the form 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+<strong's number>: @LINK <greek lemma>" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  :type '(string :tag "Lexicon index.") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  :local nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  :group 'bible-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defcustom bm-short-greek-lexicon 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defcustom bm-greek-lexicon-short 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "StrongsRealGreek" 
														 | 
														
														 | 
														
															   "StrongsRealGreek" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "Lexicon used for displaying definitions of Greek words in tooltips." 
														 | 
														
														 | 
														
															   "Lexicon used for displaying definitions of Greek words in tooltips." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :type '(string :tag "Lexicon module (e.g. \"StrongsRealGreek\").") 
														 | 
														
														 | 
														
															   :type '(string :tag "Lexicon module (e.g. \"StrongsRealGreek\").") 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -130,7 +140,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :local nil 
														 | 
														
														 | 
														
															   :local nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :group 'bible-mode) 
														 | 
														
														 | 
														
															   :group 'bible-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defcustom bm-short-hebrew-lexicon 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defcustom bm-hebrew-lexicon-short 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "BDBGlosses_Strongs" ; This seems to work 
														 | 
														
														 | 
														
															   "BDBGlosses_Strongs" ; This seems to work 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "Lexicon used for displaying definitions of Hebrew words in tooltips." 
														 | 
														
														 | 
														
															   "Lexicon used for displaying definitions of Hebrew words in tooltips." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   :type '(string :tag "Lexicon module (e.g. \"StrongsRealHebrew\")") 
														 | 
														
														 | 
														
															   :type '(string :tag "Lexicon module (e.g. \"StrongsRealHebrew\")") 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -547,7 +557,7 @@ search." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (interactive "sBible Search: ") 
														 | 
														
														 | 
														
															   (interactive "sBible Search: ") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (when (> (length query) 0) 
														 | 
														
														 | 
														
															   (when (> (length query) 0) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (let* ((searchmode (completing-read "Search Mode: " '("lucene" "phrase") nil t "lucene"))) 
														 | 
														
														 | 
														
															     (let* ((searchmode (completing-read "Search Mode: " '("lucene" "phrase") nil t "lucene"))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      (bm--open-search query searchmode)))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (bm--open-search query searchmode bm-module)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;;###autoload 
														 | 
														
														 | 
														
															 ;;;###autoload 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bible-search-mode-follow-verse () 
														 | 
														
														 | 
														
															 (defun bible-search-mode-follow-verse () 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -652,19 +662,20 @@ like `Of David' or the like.") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; Hash tables for Lexical definitions. 
														 | 
														
														 | 
														
															 ;;; Hash tables for Lexical definitions. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defvar greek-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 (defvar greek-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defvar greek-short-hash (make-hash-table :test 'equal))  ; Hash table for ``short'' lexical lookup 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defvar greek-hash-short (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defvar hebrew-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 (defvar hebrew-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defvar hebrew-short-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defvar hebrew-hash-short (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;; Do lookups using AbbottSmith_Strongs as index to AbbottSmith lexicon. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defvar abbott-index-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defvar abbott-lex-hash (make-hash-table :test 'equal))  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;; Do lookups using index to lexicon with lookups by lemma. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defvar lemma-index-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defvar lemma-lex-hash (make-hash-table :test 'equal))  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; Hash tables for Morphologies. Three at present. 
														 | 
														
														 | 
														
															 ;;; Hash tables for Morphologies. Three at present. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defvar robinson-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 (defvar robinson-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defvar packard-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 (defvar packard-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defvar oshm-hash (make-hash-table :test 'equal)) 
														 | 
														
														 | 
														
															 (defvar oshm-hash (make-hash-table :test 'equal)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; Use HTMLHREF format with diatheke, post-process to render html. 
														 | 
														
														 | 
														
															 ;;; Use HTMLHREF format with diatheke, post-process to render html. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--morph-query (query module) 
														 | 
														
														 | 
														
															 (defun bm--morph-query (query module) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "Executes `diatheke' to do morph query, renders HTML, returns string. 
														 | 
														
														 | 
														
															   "Executes `diatheke' to do morph query, renders HTML, returns string. 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -687,37 +698,28 @@ Does some tweaking specific to morphology." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   ;; Get rid of query ID at front of string: ?????: 
														 | 
														
														 | 
														
															   ;; Get rid of query ID at front of string: ?????: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (bm--exec-diatheke query nil "plain" nil module)) 
														 | 
														
														 | 
														
															   (bm--exec-diatheke query nil "plain" nil module)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--lookup-strongs-greek (window object pos) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Look up Greek lexical data for object at point. If not found in hash table, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-get it from sword database, stash in hash table, and return data." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let* ((query (get-text-property pos 'strong object)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 (match (string-match "[0-9]+" query)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 (lookup-key (match-string 0 query))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (and lookup-key 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 (or (gethash lookup-key greek-hash) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	     (puthash lookup-key (bm--lex-query lookup-key bible-mode-short-greek-lexicon) greek-hash))))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--lookup-lemma-abbott (key) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Given a strong's number, return the Greek lemma from AbbottSmithStrongs." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (or (gethash key abbott-index-hash) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-lemma-index (key) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Given a strong's number, return the Greek lemma from lemma index." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (or (gethash key lemma-index-hash) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (puthash key  
														 | 
														
														 | 
														
															       (puthash key  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	       (string-trim  
														 | 
														
														 | 
														
															 	       (string-trim  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		(replace-regexp-in-string 
														 | 
														
														 | 
														
															 		(replace-regexp-in-string 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		 "(AbbottSmithStrongs)" ""  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		 (bm--lex-query key "AbbottSmithStrongs"))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	       abbott-index-hash))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		 (concat "(" bm-lexicon-index ")") ""  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		 (bm--lex-query key bm-lexicon-index))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	       lemma-index-hash))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--lookup-def-abbott (lemma) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Executes `diatheke' to do abbott query, renders HTML, sets text 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-properties to allow verse cross references. Returns string." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-def-by-greek-lemma (lemma) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Executes `diatheke' to do query by lemma, sets text properties to allow 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+verse cross references. Returns string. Note that this looks up by lemmas,  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+not Strong's numbers. The lemmas are retrieved from a Strong's number-to-lemma 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+index (or possibly otherwise)." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (with-temp-buffer 
														 | 
														
														 | 
														
															   (with-temp-buffer 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (let ((args (list "diatheke" nil (current-buffer) t "-b" "AbbottSmith" "-o" "m" "-f" "plain" "-k" lemma))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (let ((args (list "diatheke" nil (current-buffer) t "-b" bm-greek-lexicon "-o" "m" "-f" "plain" "-k" lemma))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (apply 'call-process args) 
														 | 
														
														 | 
														
															       (apply 'call-process args) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       ;; Clean up outlining in the term buffer. Just fix the first 
														 | 
														
														 | 
														
															       ;; Clean up outlining in the term buffer. Just fix the first 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      ;; level of outline. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ;; level of outline. This is specific to the AbbottSmith module; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ;; it may help for other versions. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (format-replace-strings 
														 | 
														
														 | 
														
															       (format-replace-strings 
														 | 
													
												
											
												
													
														| 
														 | 
														
															        '((" I." . "\n   I.") 
														 | 
														
														 | 
														
															        '((" I." . "\n   I.") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (" 1." . "\n     1.") 
														 | 
														
														 | 
														
															 	 (" 1." . "\n     1.") 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -731,6 +733,9 @@ properties to allow verse cross references. Returns string." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (while (search-forward "\n" nil t) 
														 | 
														
														 | 
														
															       (while (search-forward "\n" nil t) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(delete-blank-lines)) 
														 | 
														
														 | 
														
															 	(delete-blank-lines)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (goto-char (point-min)) 
														 | 
														
														 | 
														
															       (goto-char (point-min)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ;; Highlight verse references to allow lookup from lexicon 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ;; entry. XXX This is incomplete and does not handle all the 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ;; types of cross-reference. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (while (search-forward-regexp bm-verse-regexp nil t) 
														 | 
														
														 | 
														
															       (while (search-forward-regexp bm-verse-regexp nil t) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(put-text-property (match-beginning 0) (match-end 0) 'xref (match-string 0)) 
														 | 
														
														 | 
														
															 	(put-text-property (match-beginning 0) (match-end 0) 'xref (match-string 0)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(put-text-property (match-beginning 0) (match-end 0) 'keymap bible-search-mode-map) 
														 | 
														
														 | 
														
															 	(put-text-property (match-beginning 0) (match-end 0) 'keymap bible-search-mode-map) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -738,37 +743,60 @@ properties to allow verse cross references. Returns string." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	)) 
														 | 
														
														 | 
														
															 	)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (buffer-string))) 
														 | 
														
														 | 
														
															     (buffer-string))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--lookup-lex-def-abbott (key) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let* ((abbott-lemma (bm--lookup-lemma-abbott key)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 ;; Get the lemma which is after the `@LINK' string. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 (lemma (caddr (split-string abbott-lemma))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 ;; Use the lemma to lookup the definition. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 (lex-def (bm--lookup-def-abbott lemma))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    lex-def)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-lex-greek-indexed (key) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((lemma-entry (bm--lookup-lemma-index key))) ; Get lemma from Strong's number 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (when lemma-entry 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (let ((lemma (caddr (split-string lemma-entry " ")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(bm--lookup-def-by-greek-lemma lemma))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--lookup-strongs-greek-abbott (window object pos) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "To use Abbott's Lexicon we extract the Strong's key from the text in the 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-buffer. Given the Strong's number, get the lemma for that number. Use 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-that lemma to lookup the definition in the AbbottStrongs lexicon." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let* ((query (get-text-property pos 'strong object)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-lex-greek (key) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Lookup lexical definition using Strong's number. Check hash table first. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Then, if a lexicon is accessed by lemmas, do lookup using index method; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+otherwise just use the Strong's number method." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (or (gethash key greek-hash) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (puthash key  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	       (if bm-use-index-for-lexicon 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		   (bm--lookup-lex-greek-indexed key) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		 (bm--lex-query key bible-mode-greek-lexicon)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	       greek-hash))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-strongs-greek (window object pos) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Look up Greek lexical string from Greek lexicon for object 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+at point. If not found in hash table, get it from sword database. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+stash in hash table, and return string. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let* ((query (get-text-property pos 'strong object))  ; Get Strong's number from text property 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (match (string-match "[0-9]+" query)) ; Compiler warns about unused match variable. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (lookup-key (match-string 0 query))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (bm--lookup-lex-greek lookup-key))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-strongs-greek-short (window object pos) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Look up Greek lexical string from short Greek lexicon for object 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+at point. If not found in hash table, get it from sword database,  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+stash in hash table, and return string. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let* ((query (get-text-property pos 'strong object))  ; Get Strong's number from text property 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (match (string-match "[0-9]+" query)) ; Compiler warns about unused match variable. 
														 | 
														
														 | 
														
															 	 (match (string-match "[0-9]+" query)) ; Compiler warns about unused match variable. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (lookup-key (match-string 0 query))) 
														 | 
														
														 | 
														
															 	 (lookup-key (match-string 0 query))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ;; Easier to debug longer version. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;; (when lookup-key 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;;   (or (gethash lookup-key greek-hash-short) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+;;;	  (puthash lookup-key (bm--lex-query lookup-key bm-greek-lexicon-short) greek-hash-short))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (when lookup-key 
														 | 
														
														 | 
														
															     (when lookup-key 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      (bm--lookup-lex-def-abbott lookup-key)))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (let ((data (gethash lookup-key greek-hash-short))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(if data data 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (let ((raw-text (bm--lex-query lookup-key bm-greek-lexicon-short))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    (puthash lookup-key raw-text greek-hash-short))))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+       
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;; Not used. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;  (defun bm--hebrew-lex-query (query module) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;    "Executes `diatheke' to do hebrew query, renders HTML, returns string.  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;  XXX directionality problems." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;    (with-temp-buffer 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;      (let ((args (list "diatheke" nil (current-buffer) t "-b" module "-o" "m" "-f" "HTMLHREF" "-k" query))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;        (apply 'call-process args) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-;;;;        (shr-render-region (point-min) (point-max))))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--lookup-strongs-hebrew (window object pos) 
														 | 
														
														 | 
														
															 (defun bm--lookup-strongs-hebrew (window object pos) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Look up Hebrew lexical string for object at point. If not found in hash table, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-get it from sword database, stash in hash table, and return string. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Look up Hebrew lexical string for object at point.  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+If not found in hash table, get it from sword database,  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+stash in hash table, and return string. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 Note: compiler warns about unused `window' argument." 
														 | 
														
														 | 
														
															 Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (let* ((query (get-text-property pos 'strong object)) 
														 | 
														
														 | 
														
															   (let* ((query (get-text-property pos 'strong object)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (match (string-match "[0-9]+" query))         ; Compiler warns about match. 
														 | 
														
														 | 
														
															 	 (match (string-match "[0-9]+" query))         ; Compiler warns about match. 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -777,10 +805,26 @@ Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (let ((lookup-key (concat "H" (match-string 0 query)))) 
														 | 
														
														 | 
														
															       (let ((lookup-key (concat "H" (match-string 0 query)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(or (gethash lookup-key hebrew-hash) 
														 | 
														
														 | 
														
															 	(or (gethash lookup-key hebrew-hash) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	    ;; Use PLAIN format for lookup. XXX directionality problems. 
														 | 
														
														 | 
														
															 	    ;; Use PLAIN format for lookup. XXX directionality problems. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	    (let ((raw-text (bm--lex-query lookup-key bm-short-hebrew-lexicon))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    (let ((raw-text (bm--lex-query lookup-key bm-hebrew-lexicon))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	      ;; XXX massage this text to handle outline formatting a bit better. 
														 | 
														
														 | 
														
															 	      ;; XXX massage this text to handle outline formatting a bit better. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	      (puthash lookup-key raw-text hebrew-hash))))))) 
														 | 
														
														 | 
														
															 	      (puthash lookup-key raw-text hebrew-hash))))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--lookup-strongs-hebrew-short (window object pos) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Look up Hebrew lexical string from short Hebrew lexicon for object 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+at point. If not found in hash table, get it from sword database,  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+stash in hash table, and return string. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let* ((query (get-text-property pos 'strong object)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (match (string-match "[0-9]+" query))         ; Compiler warns about match. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (match-string (match-string 0 query))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (when match-string 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (let ((lookup-key (concat "H" (match-string 0 query)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(or (gethash lookup-key hebrew-hash-short) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    ;; Use PLAIN format for lookup. XXX directionality problems. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    (let ((raw-text (bm--lex-query lookup-key bm-hebrew-lexicon-short))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      ;; XXX massage this text to handle outline formatting a bit better. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	      (puthash lookup-key raw-text hebrew-hash-short))))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--morph-database-lookup (query database hash) 
														 | 
														
														 | 
														
															 (defun bm--morph-database-lookup (query database hash) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (or (gethash query hash) 
														 | 
														
														 | 
														
															   (or (gethash query hash) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (puthash query (bm--morph-query query database) hash))) 
														 | 
														
														 | 
														
															       (puthash query (bm--morph-query query database) hash))) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -805,16 +849,17 @@ Note: compiler warns about unused `window' argument." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; Get string for tooltip display 
														 | 
														
														 | 
														
															 ;;; Get string for tooltip display 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;; 
														 | 
														
														 | 
														
															 ;;; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--show-lex-morph (window object pos) 
														 | 
														
														 | 
														
															 (defun bm--show-lex-morph (window object pos) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Get text for tooltip display. Includes both lex and morph  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+definitions if text module has both tags, otherwise just get  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+lex definition." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (let* ((lex-morph-text "") 
														 | 
														
														 | 
														
															   (let* ((lex-morph-text "") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (lex (get-text-property pos 'strong object)) 
														 | 
														
														 | 
														
															 	 (lex (get-text-property pos 'strong object)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (lex-module nil) 
														 | 
														
														 | 
														
															 	 (lex-module nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (lex-text 
														 | 
														
														 | 
														
															 	 (lex-text 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	  (cond ((string-match "strong:G" lex) 
														 | 
														
														 | 
														
															 	  (cond ((string-match "strong:G" lex) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		 (setq lex-module bm-short-greek-lexicon) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	   	 (bm--lookup-strongs-greek window object pos)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		 (bm--lookup-strongs-greek-short window object pos)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		((string-match "strong:H" lex) 
														 | 
														
														 | 
														
															 		((string-match "strong:H" lex) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		 (setq lex-module bm-short-hebrew-lexicon) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		 (bm--lookup-strongs-hebrew window object pos))))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		 (bm--lookup-strongs-hebrew-short window object pos))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq lex-text (string-replace (concat "(" lex-module ")") "" lex-text)) 
														 | 
														
														 | 
														
															     (setq lex-text (string-replace (concat "(" lex-module ")") "" lex-text)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (let* ((morph (get-text-property pos 'morph object)) 
														 | 
														
														 | 
														
															     (let* ((morph (get-text-property pos 'morph object)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	   (morph-module nil) 
														 | 
														
														 | 
														
															 	   (morph-module nil) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -915,7 +960,7 @@ Insert lemmas in buffer. Must be done after item is inserted in buffer." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm-new-line () 
														 | 
														
														 | 
														
															 (defun bm-new-line () 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  "Ensure beginning of line. Avoid redundant blank lines." 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  "Ensure beginning of line. Try to avoid redundant blank lines." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (unless (= (current-column) 0) 
														 | 
														
														 | 
														
															   (unless (= (current-column) 0) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (insert "\n"))) 
														 | 
														
														 | 
														
															     (insert "\n"))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1034,7 +1079,7 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (let ((text (bm--exec-diatheke "modulelist" nil nil nil "system")) 
														 | 
														
														 | 
														
															   (let ((text (bm--exec-diatheke "modulelist" nil nil nil "system")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	modules) 
														 | 
														
														 | 
														
															 	modules) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (catch 'done 
														 | 
														
														 | 
														
															     (catch 'done 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      (dolist (line (split-string text "\n")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (dolist (line (split-string text "[\n\r]+")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(when (equal line "Commentaries:") 
														 | 
														
														 | 
														
															 	(when (equal line "Commentaries:") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															           (throw 'done nil)) 
														 | 
														
														 | 
														
															           (throw 'done nil)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(when (not (equal "Biblical Texts:" line)) 
														 | 
														
														 | 
														
															 	(when (not (equal "Biblical Texts:" line)) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1060,15 +1105,18 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (module-select-mode) 
														 | 
														
														 | 
														
															     (module-select-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq buffer-read-only nil) 
														 | 
														
														 | 
														
															     (setq buffer-read-only nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (erase-buffer) 
														 | 
														
														 | 
														
															     (erase-buffer) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (setq-local tab-stop-list '(25)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (dolist (mod mods) 
														 | 
														
														 | 
														
															     (dolist (mod mods) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      (insert  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       (propertize (car mod)  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		   'face 'bold  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		   'module (car mod) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		   'help-echo (concat "Select " (car mod)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		   'keymap bm-module-map) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       "\t\t" 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       (format "%s\n" (cadr mod)))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      (let ((name (string-trim (car mod))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    (description (string-trim-left (cadr mod)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(insert  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 (propertize (string-trim name) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		     'face 'bold  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		     'module name 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		     'help-echo (concat "Select " name) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		     'keymap bm-module-map)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(move-to-tab-stop) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(insert (format "%s\n" description)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq buffer-read-only t) 
														 | 
														
														 | 
														
															     (setq buffer-read-only t) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (goto-char (point-min)) 
														 | 
														
														 | 
														
															     (goto-char (point-min)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (pop-to-buffer buf nil t))) 
														 | 
														
														 | 
														
															     (pop-to-buffer buf nil t))) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1076,12 +1124,12 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 ;;;;; Bible Searching 
														 | 
														
														 | 
														
															 ;;;;; Bible Searching 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-(defun bm--open-search (query searchmode) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+(defun bm--open-search (query searchmode module) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "Opens a search buffer of QUERY using SEARCHMODE." 
														 | 
														
														 | 
														
															   "Opens a search buffer of QUERY using SEARCHMODE." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (let ((buf (get-buffer-create (concat "*bible-search-" (downcase bm-module) "-" query "*")))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (let ((buf (get-buffer-create (concat "*bible-search-" (downcase module) "-" query "*")))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (set-buffer buf) 
														 | 
														
														 | 
														
															     (set-buffer buf) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (bible-search-mode) 
														 | 
														
														 | 
														
															     (bible-search-mode) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (bm--display-search query searchmode bm-module) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (bm--display-search query searchmode module) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (pop-to-buffer buf nil t))) 
														 | 
														
														 | 
														
															     (pop-to-buffer buf nil t))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--display-search (query searchmode mod) 
														 | 
														
														 | 
														
															 (defun bm--display-search (query searchmode mod) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1097,7 +1145,7 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (verses nil) 
														 | 
														
														 | 
														
															 	 (verses nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 (query-verses "") 
														 | 
														
														 | 
														
															 	 (query-verses "") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 fullverses) 
														 | 
														
														 | 
														
															 	 fullverses) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (if (equal result (concat "none (" bm-module ")")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (if (equal result (concat "none (" mod ")")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(insert "No results found." (when (equal searchmode "lucene") " Verify index has been build with mkfastmod.")) 
														 | 
														
														 | 
														
															 	(insert "No results found." (when (equal searchmode "lucene") " Verify index has been build with mkfastmod.")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       (progn 
														 | 
														
														 | 
														
															       (progn 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(while match 
														 | 
														
														 | 
														
															 	(while match 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1121,7 +1169,7 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	  (if query-verses 
														 | 
														
														 | 
														
															 	  (if query-verses 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	      (setq query-verses (concat query-verses ";" verse)) 
														 | 
														
														 | 
														
															 	      (setq query-verses (concat query-verses ";" verse)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	    (setq query-verses verse))) 
														 | 
														
														 | 
														
															 	    (setq query-verses verse))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	(setq fullverses (bm--exec-diatheke query-verses)) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	(setq fullverses (bm--exec-diatheke query-verses nil nil nil mod)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	(insert fullverses) 
														 | 
														
														 | 
														
															 	(insert fullverses) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     
														 | 
														
														 | 
														
															 	     
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1129,10 +1177,10 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	  (erase-buffer) 
														 | 
														
														 | 
														
															 	  (erase-buffer) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	  (bm--insert-domnode-recursive (dom-by-tag html-dom-tree 'body) nil nil) 
														 | 
														
														 | 
														
															 	  (bm--insert-domnode-recursive (dom-by-tag html-dom-tree 'body) nil nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	  (goto-char (point-min)) 
														 | 
														
														 | 
														
															 	  (goto-char (point-min)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	  (while (search-forward (concat "(" bm-module ")") nil t) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	  (while (search-forward (concat "(" mod ")") nil t) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	    (replace-match ""))))) 
														 | 
														
														 | 
														
															 	    (replace-match ""))))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (setq mode-name (concat "Bible Search (" bm-module ")")) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    (setq mode-name (concat "Bible Search (" mod ")")) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq buffer-read-only t) 
														 | 
														
														 | 
														
															     (setq buffer-read-only t) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq-local bm-search-query query) 
														 | 
														
														 | 
														
															     (setq-local bm-search-query query) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (setq-local bm-search-mode searchmode) 
														 | 
														
														 | 
														
															     (setq-local bm-search-mode searchmode) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1148,7 +1196,7 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 (defun bm--display-term (termtype) 
														 | 
														
														 | 
														
															 (defun bm--display-term (termtype) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (setq buffer-read-only nil) 
														 | 
														
														 | 
														
															   (setq buffer-read-only nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (cl-do* ((text (buffer-string)) 
														 | 
														
														 | 
														
															   (cl-do* ((text (buffer-string)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-           (match (string-match "[0-9]+" text) (string-match "[0-9]+" text (match-end 0)))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	   (match (string-match "[0-9]+" text) (string-match "[0-9]+" text (match-end 0)))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															       ((not match)) 
														 | 
														
														 | 
														
															       ((not match)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     (let* ((matchstr (match-string 0 text)) 
														 | 
														
														 | 
														
															     (let* ((matchstr (match-string 0 text)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	   (matchstrlen (length matchstr)) 
														 | 
														
														 | 
														
															 	   (matchstrlen (length matchstr)) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1159,7 +1207,7 @@ In processing subnodes, each case will prepend a space if it needs it." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (put-text-property refstart refend 'strong (concat "strong:H" matchstr)) 
														 | 
														
														 | 
														
															 	     (put-text-property refstart refend 'strong (concat "strong:H" matchstr)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (put-text-property refstart refend 'keymap bm-hebrew-keymap) 
														 | 
														
														 | 
														
															 	     (put-text-property refstart refend 'keymap bm-hebrew-keymap) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (add-face-text-property refstart refend `(:foreground "blue"))) 
														 | 
														
														 | 
														
															 	     (add-face-text-property refstart refend `(:foreground "blue"))) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	    ((and (not bm-use-abbott) (eq termtype 'greek)) ; Abbott entries don't have Strong's numbers  
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	    ((eq termtype 'greek) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (put-text-property refstart refend 'strong (concat "strong:G" matchstr)) 
														 | 
														
														 | 
														
															 	     (put-text-property refstart refend 'strong (concat "strong:G" matchstr)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (put-text-property refstart refend 'keymap bm-greek-keymap) 
														 | 
														
														 | 
														
															 	     (put-text-property refstart refend 'keymap bm-greek-keymap) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (add-face-text-property refstart refend `(:foreground "blue")))))) 
														 | 
														
														 | 
														
															 	     (add-face-text-property refstart refend `(:foreground "blue")))))) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1213,14 +1261,13 @@ left-to-right. XXX Why doesn't this work for the tooltips?" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   "Render the definition of the Strong's Greek TERM." 
														 | 
														
														 | 
														
															   "Render the definition of the Strong's Greek TERM." 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (setq buffer-read-only nil) 
														 | 
														
														 | 
														
															   (setq buffer-read-only nil) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (erase-buffer) 
														 | 
														
														 | 
														
															   (erase-buffer) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  (if bm-use-abbott 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-      (insert (replace-regexp-in-string "\(AbbottSmith\)" "" (bm--lookup-lex-def-abbott term))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    (insert (replace-regexp-in-string 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  (insert (replace-regexp-in-string 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     (regexp-opt `(,bm-greek-lexicon)) 
														 | 
														
														 | 
														
															 	     (regexp-opt `(,bm-greek-lexicon)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     "" 
														 | 
														
														 | 
														
															 	     "" 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	     (bm--exec-diatheke term nil "plain" nil bm-greek-lexicon) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	     ;;	     (bm--exec-diatheke term nil "plain" nil bm-greek-lexicon) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	     (bm--lookup-lex-greek term) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	     nil nil nil 7 
														 | 
														
														 | 
														
															 	     nil nil nil 7 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	     ))) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	     )) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   (bm--display-term 'greek)) 
														 | 
														
														 | 
														
															   (bm--display-term 'greek)) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |