| 
					
				 | 
			
			
				@@ -667,8 +667,8 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (and inlinep 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 org-footnote-fill-after-inline-note-extraction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (org-fill-paragraph))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; Add label (REF), identifier (MARKER) and definition (DEF) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; to REF-TABLE if data was unknown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  ;; Add label (REF), identifier (MARKER), definition (DEF) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  ;; and type (INLINEP) to REF-TABLE if data was unknown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (unless a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (let ((def (or (nth 3 ref)	; inline 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   (and export-props 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -686,28 +686,21 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				      '(:todo-keywords t :tags t :priority t)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				(org-export-preprocess-string def parameters)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			    def) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  inlinep) ref-table))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; Remove definition of non-inlined footnotes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (unless inlinep (org-footnote-delete-definitions lbl)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  inlinep) ref-table))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; 2. Find and remove the footnote section, if any.  Also 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;;    determine where footnotes shall be inserted (INS-POINT). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       ((and org-footnote-section 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (org-mode-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (re-search-forward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      "[ \t]*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      nil t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(delete-region (match-beginning 0) (org-end-of-subtree t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ((org-mode-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(if (and org-footnote-section 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 (re-search-forward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  "[ \t]*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  nil t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (setq ins-point (match-beginning 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (delete-region (match-beginning 0) (org-end-of-subtree t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  ;; Remove superfluous blank lines at the end of buffer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (skip-chars-backward " \r\t\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (delete-region (point) (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (unless (bolp) (newline)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (setq ins-point (point)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(unless (bolp) (newline))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        (t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; Remove any left-over tag in the buffer, if one is set up. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(when org-footnote-tag-for-non-org-mode-files 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -719,22 +712,19 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (delete-region (point) (progn (forward-line) (point)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; In Message mode, ensure footnotes are inserted before the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; signature. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(let ((pt-max (if (and (derived-mode-p 'message-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       (goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       (re-search-backward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				message-signature-separator nil t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    ;; Ensure one blank line separates last 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    ;; footnote from signature. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (beginning-of-line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (open-line 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			    (point)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(point-max)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (goto-char pt-max) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (skip-chars-backward " \t\n\r") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (delete-region (point) pt-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(unless (bolp) (newline)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq ins-point (point)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(if (and (derived-mode-p 'message-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (goto-char (point-max)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (re-search-backward message-signature-separator nil t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (beginning-of-line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (goto-char (point-max))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; During export, `org-footnote-insert-pos-for-preprocessor' has 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; precedence over previously found position. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (setq ins-point 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (copy-marker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (if (and export-props 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (eq org-footnote-insert-pos-for-preprocessor 'point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (point-min) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (point)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; 3. Clean-up REF-TABLE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (setq ref-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (delq nil 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -751,14 +741,13 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		      (t x))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		   ref-table))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (setq ref-table (nreverse ref-table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ;; 4. Insert the footnotes again in the buffer, at the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; 4. Remove left-over definitions in the buffer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (mapc (lambda (x) (unless (nth 3 x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (org-footnote-delete-definitions (car x)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    ref-table) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; 5. Insert the footnotes again in the buffer, at the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;;    appropriate spot. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (goto-char (or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (and export-props 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (eq org-footnote-insert-pos-for-preprocessor 'point-min) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  ins-point 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (point-max))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (goto-char ins-point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ;; No footnote: exit. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ((not ref-table)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -773,15 +762,22 @@ Additional note on `org-footnote-insert-pos-for-preprocessor': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; stated in `org-blank-before-new-entry'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 ((not (org-mode-p)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (skip-chars-backward " \t\n\r") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (delete-region (point) ins-point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (unless (bolp) (newline)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  ;; Keep one blank line between footnotes and signature. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (when (and (derived-mode-p 'message-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (re-search-forward message-signature-separator nil t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (open-line 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (when org-footnote-tag-for-non-org-mode-files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (insert "\n" org-footnote-tag-for-non-org-mode-files "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 ((and org-footnote-section (not export-props)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (unless (bolp) (newline)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (when (and (cdr (assq 'heading org-blank-before-new-entry)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		     (zerop (save-excursion (org-back-over-empty-lines)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (insert "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (insert "* " org-footnote-section "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(set-marker ins-point nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; Insert the footnotes, separated by a blank line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(insert (mapconcat (lambda (x) (format "\n[%s] %s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					  (nth (if sort-only 0 1) x) (nth 2 x))) 
			 |