[elpa] externals/taxy ff249b0 2/4: Docs: Tidy

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit ff249b05ffc1bbde105cd685b8983394427fdb88
Author: Adam Porter 
Commit: Adam Porter 

Docs: Tidy
---
 README.org |  4 ++--
 taxy.info  | 28 ++--
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/README.org b/README.org
index b65c75c..5c70eed 100644
--- a/README.org
+++ b/README.org
@@ -778,11 +778,11 @@ Note that while =taxy-magit-section.el= is installed with 
the =taxy= package, th
 
 *** Changes
 
-+  Within the ~taxy~ struct and related functions, the term =objects= is 
renamed to =items=, which is more concise but has the same meaning.  This makes 
code a bit more concise (e.g. ~(taxy-objects taxy)~ becomes ~(taxy-items 
taxy)~).
++  Within the ~taxy~ struct and related functions, the term =objects= is 
renamed to =items=, which is shorter and has the same meaning.  This makes code 
a bit more concise (e.g. ~(taxy-objects taxy)~ becomes ~(taxy-items taxy)~).
 
 *** Fixes
 
-+  Function ~taxy-fill~ always calls a taxy's ~:take~ function if present.  
(Fixing "chains" of dynamic taxys.)
++  Function ~taxy-fill~ always calls a taxy's ~:take~ function if defined.  
(Fixing "chains" of dynamic taxys.)
 +  Function ~taxy-magit-section-insert~ applies text properties from the 
inserted string to the indentation string (so commands that rely on text 
properties at the beginning of a line will work).
 
 ** 0.2
diff --git a/taxy.info b/taxy.info
index f1b66b2..772c1a7 100644
--- a/taxy.info
+++ b/taxy.info
@@ -920,9 +920,9 @@ File: README.info,  Node: Changes,  Next: Fixes,  Up: 03-pre
 -
 
• Within the ‘taxy’ struct and related functions, the term objects is
- renamed to items, which is more concise but has the same meaning.
- This makes code a bit more concise (e.g.  ‘(taxy-objects taxy)’
- becomes ‘(taxy-items taxy)’).
+ renamed to items, which is shorter and has the same meaning.  This
+ makes code a bit more concise (e.g.  ‘(taxy-objects taxy)’ becomes
+ ‘(taxy-items taxy)’).
 
 
 File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03-pre
@@ -931,7 +931,7 @@ File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03-pre
 ---
 
• Function ‘taxy-fill’ always calls a taxy’s ‘:take’ function if
- present.  (Fixing "chains" of dynamic taxys.)
+ defined.  (Fixing "chains" of dynamic taxys.)
• Function ‘taxy-magit-section-insert’ applies text properties from
  the inserted string to the indentation string (so commands that
  rely on text properties at the beginning of a line will work).
@@ -1058,16 +1058,16 @@ Node: Magit section32648
 Node: Changelog33306
 Node: 03-pre33468
 Node: Changes33588
-Node: Fixes33944
-Node: 0234379
-Node: Changesx34534
-Node: Additions34819
-Node: Fixesx35732
-Node: 0135979
-Node: Development36078
-Node: Copyright assignment36284
-Node: Credits36871
-Node: License37061
+Node: Fixes33940
+Node: 0234375
+Node: Changesx34530
+Node: Additions34815
+Node: Fixesx35728
+Node: 0135975
+Node: Development36074
+Node: Copyright assignment36280
+Node: Credits36867
+Node: License37057
 
 End Tag Table
 



[elpa] externals/taxy 933d33d 1/4: Example: Tidy (taxy-org-ql-search)

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit 933d33d4772c103d190892dd32656ced848c57c2
Author: Adam Porter 
Commit: Adam Porter 

Example: Tidy (taxy-org-ql-search)
---
 examples/taxy-org-ql-view.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/examples/taxy-org-ql-view.el b/examples/taxy-org-ql-view.el
index 6dac1c7..141aeb5 100644
--- a/examples/taxy-org-ql-view.el
+++ b/examples/taxy-org-ql-view.el
@@ -187,14 +187,14 @@ KEYS is passed to `taxy-org-ql-view-take-fn', which see."
 (cl-defun taxy-org-ql-search
 (buffers-or-files query &key taxy-keys sort)
   "Show Org QL QUERY on BUFFERS-OR-FILES with `taxy-org-ql-view'."
-  (declare (indent defun))
-  (let* ((title (format "Query:%S  In:%s" query buffers-or-files))
+  (declare (indent 1))
+  (let* ((title (format "Query:%S  In:%S" query buffers-or-files))
 (taxy (taxy-org-ql-view-make-taxy title
 taxy-keys))
 (items (org-ql-select buffers-or-files query
  :action 'element-with-markers
  :sort sort))
-(buffer-name (format "*Taxy Org QL View: %s" title)))
+(buffer-name (format "*Taxy Org QL View: %s*" title)))
 (when (get-buffer buffer-name)
   ;; Reusing an existing magit-section buffer seems to cause a lot
   ;; of GC, so just kill it if it already exists.



[elpa] externals/taxy updated (29ea0a3 -> cdde0a1)

2021-08-30 Thread ELPA Syncer
elpasync pushed a change to branch externals/taxy.

  from  29ea0a3   Meta: Update .gitignore
   new  933d33d   Example: Tidy (taxy-org-ql-search)
   new  ff249b0   Docs: Tidy
   new  56d7415   Release: 0.3
   new  cdde0a1   Meta: 0.4-pre


Summary of changes:
 README.org   |  10 +++--
 examples/taxy-org-ql-view.el |   6 +--
 taxy.el  |   2 +-
 taxy.info| 104 ---
 4 files changed, 69 insertions(+), 53 deletions(-)



[elpa] externals/taxy cdde0a1 4/4: Meta: 0.4-pre

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit cdde0a1d995f8c4b8e0289d610e417c612de6c39
Author: Adam Porter 
Commit: Adam Porter 

Meta: 0.4-pre
---
 README.org |  4 +++
 taxy.el|  2 +-
 taxy.info  | 84 +++---
 3 files changed, 53 insertions(+), 37 deletions(-)

diff --git a/README.org b/README.org
index 5beff14..6603f8f 100644
--- a/README.org
+++ b/README.org
@@ -774,6 +774,10 @@ Note that while =taxy-magit-section.el= is installed with 
the =taxy= package, th
 :TOC:  :depth 0
 :END:
 
+** 0.4-pre
+
+Nothing new yet.
+
 ** 0.3
 
 *** Changes
diff --git a/taxy.el b/taxy.el
index 0696ffe..9df4607 100644
--- a/taxy.el
+++ b/taxy.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/taxy.el
-;; Version: 0.3
+;; Version: 0.4-pre
 ;; Package-Requires: ((emacs "26.3"))
 ;; Keywords: lisp
 
diff --git a/taxy.info b/taxy.info
index f7dcca8..8be5b80 100644
--- a/taxy.info
+++ b/taxy.info
@@ -48,10 +48,12 @@ Dynamic taxys
 
 Changelog
 
+* 0.4-pre: 04-pre. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
+
 0.3
 
 * Changes::
@@ -898,14 +900,23 @@ File: README.info,  Node: Changelog,  Next: Development,  
Prev: Usage,  Up: Top
 
 * Menu:
 
+* 0.4-pre: 04-pre. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
 
-File: README.info,  Node: 03,  Next: 02,  Up: Changelog
+File: README.info,  Node: 04-pre,  Next: 03,  Up: Changelog
+
+4.1 0.4-pre
+===
 
-4.1 0.3
+Nothing new yet.
+
+
+File: README.info,  Node: 03,  Next: 02,  Prev: 04-pre,  Up: Changelog
+
+4.2 0.3
 ===
 
 * Menu:
@@ -916,7 +927,7 @@ File: README.info,  Node: 03,  Next: 02,  Up: Changelog
 
 File: README.info,  Node: Changes,  Next: Fixes,  Up: 03
 
-4.1.1 Changes
+4.2.1 Changes
 -
 
• Within the ‘taxy’ struct and related functions, the term objects is
@@ -927,7 +938,7 @@ File: README.info,  Node: Changes,  Next: Fixes,  Up: 03
 
 File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03
 
-4.1.2 Fixes
+4.2.2 Fixes
 ---
 
• Function ‘taxy-fill’ always calls a taxy’s ‘:take’ function if
@@ -939,7 +950,7 @@ File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03
 
 File: README.info,  Node: 02,  Next: 01,  Prev: 03,  Up: Changelog
 
-4.2 0.2
+4.3 0.2
 ===
 
 * Menu:
@@ -951,7 +962,7 @@ File: README.info,  Node: 02,  Next: 01,  Prev: 03,  Up: 
Changelog
 
 File: README.info,  Node: Changesx,  Next: Additions,  Up: 02
 
-4.2.1 Changes
+4.3.1 Changes
 -
 
• Function ‘taxy-take-keyed*’ is renamed to ‘taxy-take-keyed’,
@@ -961,7 +972,7 @@ File: README.info,  Node: Changesx,  Next: Additions,  Up: 
02
 
 File: README.info,  Node: Additions,  Next: Fixesx,  Prev: Changesx,  Up: 02
 
-4.2.2 Additions
+4.3.2 Additions
 ---
 
• Struct ‘taxy’ now has a ‘:make’ slot, a function called to make new
@@ -979,7 +990,7 @@ File: README.info,  Node: Additions,  Next: Fixesx,  Prev: 
Changesx,  Up: 02
 
 File: README.info,  Node: Fixesx,  Prev: Additions,  Up: 02
 
-4.2.3 Fixes
+4.3.3 Fixes
 ---
 
• ‘taxy-magit-section’’s ‘insert-object’ function.
@@ -989,7 +1000,7 @@ File: README.info,  Node: Fixesx,  Prev: Additions,  Up: 02
 
 File: README.info,  Node: 01,  Prev: 02,  Up: Changelog
 
-4.3 0.1
+4.4 0.1
 ===
 
 First tagged version.
@@ -1041,33 +1052,34 @@ GPLv3
 
 Tag Table:
 Node: Top218
-Node: Examples1646
-Node: Numbery (starting basically)1965
-Node: Lettery (filling incrementally)7720
-Node: Sporty (understanding completely)10400
-Node: Applications16387
-Node: Installation16787
-Node: Usage17088
-Node: Dynamic taxys19225
-Node: Multi-level dynamic taxys21780
-Node: "Chains" of independent multi-level dynamic taxys23973
-Node: Reusable taxys26845
-Node: Threading macros31014
-Node: Modifying filled taxys31553
-Node: Magit section32636
-Node: Changelog33294
-Node: 0333448
-Node: Changes33556
-Node: Fixes33904
-Node: 0234335
-Node: Changesx34486
-Node: Additions34771
-Node: Fixesx35684
-Node: 0135931
-Node: Development36030
-Node: Copyright assignment36236
-Node: Credits36823
-Node: License37013
+Node: Examples1667
+Node: Numbery (starting basically)1986
+Node: Lettery (filling incrementally)7741
+Node: Sporty (understanding completely)10421
+Node: Applications16408
+Node: Installation16808
+Node: Usage17109
+Node: Dynamic taxys19246
+Node: Multi-level dynamic taxys21801
+Node: "Chains" of independent multi-level dynamic taxys23994
+Node: Reusable taxys26866
+Node: Threading macros31035
+Node: Modifying filled taxys31574
+Node: Magit section32657
+Node: Changelog33315
+Node: 04-pre33489
+Node: 0333595
+Node: Changes33718
+Node: Fixes34066
+Node: 0234497
+Node: Changesx34648
+Node: Additions34933
+Node: Fixesx35846
+Node: 0136093
+Node: Development36192
+Node: Copyright assignment36398
+Node: Credits36985
+Node: License37175
 
 End Tag Table
 



[elpa] externals/taxy 56d7415 3/4: Release: 0.3

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit 56d74159fb0e34e8e4850a7c6974d419414e43e7
Author: Adam Porter 
Commit: Adam Porter 

Release: 0.3
---
 README.org |  2 +-
 taxy.el|  2 +-
 taxy.info  | 72 +++---
 3 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/README.org b/README.org
index 5c70eed..5beff14 100644
--- a/README.org
+++ b/README.org
@@ -774,7 +774,7 @@ Note that while =taxy-magit-section.el= is installed with 
the =taxy= package, th
 :TOC:  :depth 0
 :END:
 
-** 0.3-pre
+** 0.3
 
 *** Changes
 
diff --git a/taxy.el b/taxy.el
index 06f169a..0696ffe 100644
--- a/taxy.el
+++ b/taxy.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/taxy.el
-;; Version: 0.3-pre
+;; Version: 0.3
 ;; Package-Requires: ((emacs "26.3"))
 ;; Keywords: lisp
 
diff --git a/taxy.info b/taxy.info
index 772c1a7..f7dcca8 100644
--- a/taxy.info
+++ b/taxy.info
@@ -48,11 +48,11 @@ Dynamic taxys
 
 Changelog
 
-* 0.3-pre: 03-pre. 
+* 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
-0.3-pre
+0.3
 
 * Changes::
 * Fixes::
@@ -898,15 +898,15 @@ File: README.info,  Node: Changelog,  Next: Development,  
Prev: Usage,  Up: Top
 
 * Menu:
 
-* 0.3-pre: 03-pre. 
+* 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
 
-File: README.info,  Node: 03-pre,  Next: 02,  Up: Changelog
+File: README.info,  Node: 03,  Next: 02,  Up: Changelog
 
-4.1 0.3-pre
-===
+4.1 0.3
+===
 
 * Menu:
 
@@ -914,7 +914,7 @@ File: README.info,  Node: 03-pre,  Next: 02,  Up: Changelog
 * Fixes::
 
 
-File: README.info,  Node: Changes,  Next: Fixes,  Up: 03-pre
+File: README.info,  Node: Changes,  Next: Fixes,  Up: 03
 
 4.1.1 Changes
 -
@@ -925,7 +925,7 @@ File: README.info,  Node: Changes,  Next: Fixes,  Up: 03-pre
  ‘(taxy-items taxy)’).
 
 
-File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03-pre
+File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03
 
 4.1.2 Fixes
 ---
@@ -937,7 +937,7 @@ File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03-pre
  rely on text properties at the beginning of a line will work).
 
 
-File: README.info,  Node: 02,  Next: 01,  Prev: 03-pre,  Up: Changelog
+File: README.info,  Node: 02,  Next: 01,  Prev: 03,  Up: Changelog
 
 4.2 0.2
 ===
@@ -1041,33 +1041,33 @@ GPLv3
 
 Tag Table:
 Node: Top218
-Node: Examples1658
-Node: Numbery (starting basically)1977
-Node: Lettery (filling incrementally)7732
-Node: Sporty (understanding completely)10412
-Node: Applications16399
-Node: Installation16799
-Node: Usage17100
-Node: Dynamic taxys19237
-Node: Multi-level dynamic taxys21792
-Node: "Chains" of independent multi-level dynamic taxys23985
-Node: Reusable taxys26857
-Node: Threading macros31026
-Node: Modifying filled taxys31565
-Node: Magit section32648
-Node: Changelog33306
-Node: 03-pre33468
-Node: Changes33588
-Node: Fixes33940
-Node: 0234375
-Node: Changesx34530
-Node: Additions34815
-Node: Fixesx35728
-Node: 0135975
-Node: Development36074
-Node: Copyright assignment36280
-Node: Credits36867
-Node: License37057
+Node: Examples1646
+Node: Numbery (starting basically)1965
+Node: Lettery (filling incrementally)7720
+Node: Sporty (understanding completely)10400
+Node: Applications16387
+Node: Installation16787
+Node: Usage17088
+Node: Dynamic taxys19225
+Node: Multi-level dynamic taxys21780
+Node: "Chains" of independent multi-level dynamic taxys23973
+Node: Reusable taxys26845
+Node: Threading macros31014
+Node: Modifying filled taxys31553
+Node: Magit section32636
+Node: Changelog33294
+Node: 0333448
+Node: Changes33556
+Node: Fixes33904
+Node: 0234335
+Node: Changesx34486
+Node: Additions34771
+Node: Fixesx35684
+Node: 0135931
+Node: Development36030
+Node: Copyright assignment36236
+Node: Credits36823
+Node: License37013
 
 End Tag Table
 



[elpa] externals/tramp f015886: Tramp ELPA version 2.5.1.2 released

2021-08-30 Thread ELPA Syncer
branch: externals/tramp
commit f015886436e23593c074b4f22713bf3005f6b414
Author: Michael Albinus 
Commit: Michael Albinus 

Tramp ELPA version 2.5.1.2 released
---
 test/tramp-tests.el | 165 ++---
 texi/tramp.texi |  51 ++--
 texi/trampver.texi  |   2 +-
 tramp-adb.el|   9 +-
 tramp-cache.el  |   6 +-
 tramp-cmds.el   |   2 +-
 tramp-compat.el |  21 +++-
 tramp-gvfs.el   |   2 +-
 tramp-sh.el | 132 +++-
 tramp-smb.el| 337 +++-
 tramp.el|  77 +++-
 trampver.el |   6 +-
 12 files changed, 529 insertions(+), 281 deletions(-)

diff --git a/test/tramp-tests.el b/test/tramp-tests.el
index 98493bf..a7a8ec8 100644
--- a/test/tramp-tests.el
+++ b/test/tramp-tests.el
@@ -177,6 +177,19 @@ The temporary file is not created."
 (make-temp-name "tramp-test")
 (if local temporary-file-directory tramp-test-temporary-file-directory
 
+;; Method "smb" supports `make-symbolic-link' only if the remote host
+;; has CIFS capabilities.  tramp-adb.el, tramp-gvfs.el, tramp-rclone.el
+;; and tramp-sshfs.el do not support symbolic links at all.
+(defmacro tramp--test-ignore-make-symbolic-link-error (&rest body)
+  "Run BODY, ignoring \"make-symbolic-link not supported\" file error."
+  (declare (indent defun) (debug (body)))
+  `(condition-case err
+   (progn ,@body)
+ (file-error
+  (unless (string-equal (error-message-string err)
+   "make-symbolic-link not supported")
+   (signal (car err) (cdr err))
+
 ;; Don't print messages in nested `tramp--test-instrument-test-case' calls.
 (defvar tramp--test-instrument-test-case-p nil
   "Whether `tramp--test-instrument-test-case' run.
@@ -2866,7 +2879,8 @@ This tests also `file-directory-p' and 
`file-accessible-directory-p'."
   (file-name-nondirectory tmp-name1) tmp-name2))
   (tmp-name4 (expand-file-name "foo" tmp-name1))
   (tmp-name5 (expand-file-name "foo" tmp-name2))
-  (tmp-name6 (expand-file-name "foo" tmp-name3)))
+  (tmp-name6 (expand-file-name "foo" tmp-name3))
+  (tmp-name7 (tramp--test-make-temp-name nil quoted)))
 
   ;; Copy complete directory.
   (unwind-protect
@@ -2922,7 +2936,48 @@ This tests also `file-directory-p' and 
`file-accessible-directory-p'."
;; Cleanup.
(ignore-errors
  (delete-directory tmp-name1 'recursive)
- (delete-directory tmp-name2 'recursive))
+ (delete-directory tmp-name2 'recursive)))
+
+  ;; Copy symlink to directory.  Implemented since Emacs 28.1.
+  (when (boundp 'copy-directory-create-symlink)
+   (dolist (copy-directory-create-symlink '(nil t))
+ (unwind-protect
+ (tramp--test-ignore-make-symbolic-link-error
+   ;; Copy to file name.
+   (make-directory tmp-name1)
+   (write-region "foo" nil tmp-name4)
+   (make-symbolic-link tmp-name1 tmp-name7)
+   (should (file-directory-p tmp-name1))
+   (should (file-exists-p tmp-name4))
+   (should (file-symlink-p tmp-name7))
+   (copy-directory tmp-name7 tmp-name2)
+   (if copy-directory-create-symlink
+   (should
+(string-equal
+ (file-symlink-p tmp-name2) (file-symlink-p tmp-name7)))
+ (should (file-directory-p tmp-name2)))
+   ;; Copy to directory name.
+   (delete-directory tmp-name2 'recursive)
+   (make-directory tmp-name2)
+   (should (file-directory-p tmp-name2))
+   (copy-directory tmp-name7 (file-name-as-directory tmp-name2))
+   (if copy-directory-create-symlink
+   (should
+(string-equal
+ (file-symlink-p
+  (expand-file-name
+   (file-name-nondirectory tmp-name7) tmp-name2))
+ (file-symlink-p tmp-name7)))
+ (should
+  (file-directory-p
+   (expand-file-name
+(file-name-nondirectory tmp-name7) tmp-name2)
+
+   ;; Cleanup.
+   (ignore-errors
+ (delete-directory tmp-name1 'recursive)
+ (delete-directory tmp-name2 'recursive)
+ (delete-directory tmp-name7 'recursive
 
 (ert-deftest tramp-test16-directory-files ()
   "Check `directory-files'."
@@ -3266,19 +3321,6 @@ This tests also `file-directory-p' and 
`file-accessible-directory-p'."
(ignore-errors (kill-buffer buffer))
(ignore-errors (delete-directory tmp-name1 'recursive))
 
-;; Method "smb" supports `make-symbolic-link' only if the remote host
-;; has CIFS capabilities.  tramp-adb.el, tramp-gvfs.el, tramp-rclone.el
-;; and tramp-sshfs.el do not support symbolic links at all.

[elpa] externals/taxy 040ff13: Examples: (taxy-org-ql-view) WIP

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit 040ff135cfb96ed36b89aac2cdf907bb6b9db1a5
Author: Adam Porter 
Commit: Adam Porter 

Examples: (taxy-org-ql-view) WIP
---
 examples/taxy-org-ql-view.el | 52 
 1 file changed, 48 insertions(+), 4 deletions(-)

diff --git a/examples/taxy-org-ql-view.el b/examples/taxy-org-ql-view.el
index 141aeb5..1a8f751 100644
--- a/examples/taxy-org-ql-view.el
+++ b/examples/taxy-org-ql-view.el
@@ -26,6 +26,9 @@
 
  Requirements
 
+(require 'map)
+(require 'seq)
+
 (require 'org-ql-view)
 
 (require 'taxy)
@@ -132,12 +135,53 @@ Returns in format \"%Y-%m-%d\"."
 (ts-format "Planning: %Y-%m-%d" (ts-parse-org-element planning-element
 
 (taxy-org-ql-view-define-key planning ()
-  "Return non-nil if ELEMENT has a planning date."
+  "Return \"Planned\" if ELEMENT has a planning date."
   (when (or (org-element-property :deadline element)
(org-element-property :scheduled element)
(org-element-property :closed element))
 "Planned"))
 
+(taxy-org-ql-view-define-key deadline (&rest args)
+  "Return whether ELEMENT has a deadline according to ARGS."
+  (when-let ((deadline-element (org-element-property :deadline element)))
+(pcase args
+  (`(,(or 'nil 't)) "Deadlined")
+  (_ (let ((element-ts (ts-parse-org-element deadline-element)))
+  (pcase args
+((and `(:past)
+  (guard (ts> (ts-now) element-ts)))
+ "Overdue")
+((and `(:today)
+  (guard (equal (ts-day (ts-now)) (ts-day element-ts
+ "Due today")
+((and `(:future)
+  (guard (ts< (ts-now) element-ts)))
+ ;; FIXME: Not necessarily soon.
+ "Due soon")
+((and `(:before ,target-date)
+  (guard (ts< element-ts (ts-parse target-date
+ (concat "Due before: " target-date))
+((and `(:after ,target-date)
+  (guard (ts> element-ts (ts-parse target-date
+ (concat "Due after: " target-date))
+((and `(:on ,target-date)
+  (guard (let ((now (ts-now)))
+   (and (equal (ts-doy element-ts)
+   (ts-doy now))
+(equal (ts-year element-ts)
+   (ts-year now))
+ (concat "Due on: " target-date))
+((and `(:from ,target-ts)
+  (guard (ts<= (ts-parse target-ts) element-ts)))
+ (concat "Due from: " target-ts))
+((and `(:to ,target-ts)
+  (guard (ts>= (ts-parse target-ts) element-ts)))
+ (concat "Due to: " target-ts))
+((and `(:from ,from-ts :to ,to-ts)
+  (guard (and (ts<= (ts-parse from-ts) element-ts)
+  (ts>= (ts-parse to-ts) element-ts
+ (format "Due from: %s to %s" from-ts to-ts
+
 (defun taxy-org-ql-view-take-fn (keys)
   "Return a `taxy' \"take\" function for KEYS.
 Each of KEYS should be a function alias defined in
@@ -155,9 +199,9 @@ ad infinitum, approximately)."
 (fn) (pcase fn
((pred symbolp) fn)
(`(,(and (pred symbolp) fn)
-  . ,(and args (guard (and args
-   (atom (car args))
-   (cl-notany #'symbolp 
args)
+  . ,(and args (guard (cl-typecase (car args)
+((or keyword (and atom (not 
symbol)))
+ t)
 ;; Key with args: replace with a lambda that
 ;; calls that key's function with given args.
 `(lambda (element)



[nongnu] elpa/editorconfig f7918f5: Use new implementation by default (#263)

2021-08-30 Thread ELPA Syncer
branch: elpa/editorconfig
commit f7918f52d440784564df39440cbec18a3f30dac3
Author: 10sr <8.slas...@gmail.com>
Commit: GitHub 

Use new implementation by default (#263)

* Use new implementation by default

* Remove old test

* Make editorconfig-hack-properties-functions deprecated
---
 README.md   |  20 ---
 editorconfig.el |  19 +--
 ert-tests/editorconfig-2.el | 130 
 3 files changed, 13 insertions(+), 156 deletions(-)

diff --git a/README.md b/README.md
index 69f4748..c436e8a 100644
--- a/README.md
+++ b/README.md
@@ -136,26 +136,6 @@ only blocks of `web-mode` by adding following to your 
init.el:
 ```
 
 
-### `editorconfig-hack-properties-functions`
-
-A list of functions to alter property values before applying them.
-
-These functions will be run after loading \".editorconfig\" files and before
-applying them to current buffer, so that you can alter some properties from
-\".editorconfig\" before they take effect.
-
-For example, Makefile files always use tab characters for indentation: you can
-overwrite \"indent_style\" property when current `major-mode` is
-`makefile-mode`:
-
-``` emacs-lisp
-(add-hook 'editorconfig-hack-properties-functions
-  '(lambda (props)
- (when (derived-mode-p 'makefile-mode)
-   (puthash 'indent_style "tab" props
-
-```
-
 
 ## Troubleshooting
 
diff --git a/editorconfig.el b/editorconfig.el
index 84dd311..7c475cd 100644
--- a/editorconfig.el
+++ b/editorconfig.el
@@ -148,6 +148,8 @@ This hook will be run even when there are no matching 
sections in
 These functions will be run after loading \".editorconfig\" files and before
 applying them to current buffer, so that you can alter some properties from
 \".editorconfig\" before they take effect.
+(Since 2021/08/30 (v0.9.0): Buffer coding-systems are set before running
+this functions, so this variable cannot be used to change coding-systems.)
 
 For example, Makefiles always use tab characters for indentation: you can
 overwrite \"indent_style\" property when current `major-mode' is a
@@ -162,6 +164,11 @@ This hook will be run even when there are no matching 
sections in
 \".editorconfig\", or no \".editorconfig\" file was found at all."
   :type 'hook
   :group 'editorconfig)
+(make-obsolete-variable 'editorconfig-hack-properties-functions
+"Using `editorconfig-after-apply-functions' instead is 
recommended,
+because since 2021/08/30 (v0.9.0) this variable cannot support all 
properties:
+charset values will be referenced before running this hook."
+"v0.9.0")
 
 (define-obsolete-variable-alias
   'edconf-indentation-alist
@@ -842,11 +849,11 @@ F is that function, and FILENAME and ARGS are arguments 
passed to F."
 (format "Error while setting variables from 
EditorConfig: %S" err
 ret))
 
-(defvar editorconfig--enable-20210221-testing nil
-  "Enable testing version of `editorconfig-mode'.
+(defvar editorconfig--legacy-version nil
+  "Use legacy version of editorconfig-mode.
 
-Currently this mode is not well tested yet and can cause unexpected behaviors
-like killing Emacs process or not able to visit files at all.")
+As of 2021/08/30, `editorconfig-mode' uses totally new implementation by 
default.
+This flag disables this and go back to previous version.")
 
 ;;;###autoload
 (define-minor-mode editorconfig-mode
@@ -856,7 +863,7 @@ To disable EditorConfig in some buffers, modify
 `editorconfig-exclude-modes' or `editorconfig-exclude-regexps'."
   :global t
   :lighter editorconfig-mode-lighter
-  (if editorconfig--enable-20210221-testing
+  (if (not editorconfig--legacy-version)
   (let ((modehooks '(prog-mode-hook
   text-mode-hook
   read-only-mode-hook
@@ -880,7 +887,7 @@ To disable EditorConfig in some buffers, modify
 (remove-hook hook
  'editorconfig-major-mode-hook
 
-;; editorconfig--enable-20210221-testing is disabled
+;; editorconfig--legacy-version is enabled
 ;; See https://github.com/editorconfig/editorconfig-emacs/issues/141 for 
why
 ;; not `after-change-major-mode-hook'
 (dolist (hook '(change-major-mode-after-body-hook
diff --git a/ert-tests/editorconfig-2.el b/ert-tests/editorconfig-2.el
deleted file mode 100644
index 782bc89..000
--- a/ert-tests/editorconfig-2.el
+++ /dev/null
@@ -1,130 +0,0 @@
-(require 'editorconfig)
-
-(defun display-warning (type message &optional level buffer-name)
-  "When testing overwrite this function to throw error when called."
-  (unless (eq level :debug)
-(error "display-warning called: %S %S %S %S"
-   type
-   message
-   level
-   buffer-name)))
-
-(defmacro with-visit-file (path &rest body)
-  "Visit PATH and evaluate BODY."
-  (declare (indent 1) (debug t))
-  `(let ((buf (find-file-noselect 

[elpa] externals/debbugs a3012f9: Let filters work on `debbugs-gnu-package' lists

2021-08-30 Thread Michael Albinus
branch: externals/debbugs
commit a3012f9bf25e645035730160bd1cbe499b4c2d4c
Author: Michael Albinus 
Commit: Michael Albinus 

Let filters work on `debbugs-gnu-package' lists

* debbugs-gnu.el (debbugs-gnu-local-print-function): Declare.
(debbugs-gnu-current-print-function): New defvar, renamed from
`debbugs-gnu-print-function'.
(debbugs-gnu-package, debbugs-gnu-rescan): Let-bind it.
(debbugs-gnu-package-tabulated-list-print): Adapt accordingly.
(debbugs-gnu-show-reports, debbugs-gnu-toggle-sort)
(debbugs-gnu-widen, debbugs-gnu-toggle-suppress):
Call `debbugs-gnu-local-print-function'.
(debbugs-gnu-mode): Set `debbugs-gnu-local-print-function'.
---
 debbugs-gnu.el | 34 ++
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 760b764..3bd95a8 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -225,6 +225,7 @@
 (defvar debbugs-gnu-local-query)
 (defvar debbugs-gnu-local-filter)
 (defvar debbugs-gnu-local-suppress)
+(defvar debbugs-gnu-local-print-function)
 (defvar debbugs-gnu-sort-state)
 (defvar debbugs-gnu-limit)
 
@@ -431,6 +432,10 @@ a date, value is the cons cell (BEFORE . AFTER).")
 The specification which bugs shall be suppressed is taken from
   `debbugs-gnu-default-suppress-bugs'.")
 
+(defvar debbugs-gnu-current-print-function #'tabulated-list-print
+  "Which function to apply printing the tabulated list..
+See `debbugs-gnu-package' for an alternative.")
+
 (defcustom debbugs-gnu-emacs-current-release "28.1"
   "The current Emacs relase developped for."
   :type '(choice (const "24.5")
@@ -662,10 +667,6 @@ depend on PHRASE being a string, or nil.  See Info node
   (interactive)
   (debbugs-gnu '("tagged")))
 
-(defvar debbugs-gnu-print-function #'tabulated-list-print
-  "Which function to apply printing the tabulated list..
-See `debbugs-gnu-package' for an alternative.")
-
 ;;;###autoload
 (defun debbugs-gnu-package (&optional packages)
   "List the bug reports of default packages, divided by severity."
@@ -677,10 +678,9 @@ See `debbugs-gnu-package' for an alternative.")
   (string-join debbugs-gnu-default-packages ","))
debbugs-gnu-default-packages)))
 
-  (let ((debbugs-gnu-print-function 
#'debbugs-gnu-package-tabulated-list-print))
-(debbugs-gnu debbugs-gnu-applicable-severities packages))
-  (setq-local debbugs-gnu-print-function
- #'debbugs-gnu-package-tabulated-list-print))
+  (let ((debbugs-gnu-current-print-function
+#'debbugs-gnu-package-tabulated-list-print))
+(debbugs-gnu debbugs-gnu-applicable-severities packages)))
 
 (defun debbugs-gnu-package-tabulated-list-print ()
   "Print the tabulated list for `tramp-gnu-package'."
@@ -690,7 +690,8 @@ See `debbugs-gnu-package' for an alternative.")
 (delq nil
   (mapcar
(lambda (x) (when (eq (car x) 'package) (cdr x)))
-   debbugs-gnu-current-query
+   debbugs-gnu-local-query)))
+   tabulated-list-entries)
 (kill-region (point-min) (point-max))
 (dolist (done '(t nil))
   (dolist (severity (reverse debbugs-gnu-applicable-severities))
@@ -728,9 +729,7 @@ See `debbugs-gnu-package' for an alternative.")
  (delq nil
(mapcar
 (lambda (x)
-  (and (memq (alist-get 'id (car x)) blockers)
-   (equal "pending" (alist-get 'pending (car x)))
-   x))
+  (and (memq (alist-get 'id (car x)) blockers) x))
 entries)))
(when tabulated-list-entries
  (narrow-to-region (point-min) (point-max))
@@ -1016,7 +1015,7 @@ are taken from the cache instead."
   'append
 
 (tabulated-list-init-header)
-(funcall debbugs-gnu-print-function)
+(funcall debbugs-gnu-local-print-function)
 
 (set-buffer-modified-p nil)
 (goto-char (point-min
@@ -1206,6 +1205,7 @@ Interactively, it is non-nil with the prefix argument."
(debbugs-gnu-current-query debbugs-gnu-local-query)
(debbugs-gnu-current-filter debbugs-gnu-local-filter)
(debbugs-gnu-current-suppress debbugs-gnu-local-suppress)
+   (debbugs-gnu-current-print-function debbugs-gnu-local-print-function)
(debbugs-cache-expiry (if nocache t debbugs-cache-expiry)))
 (funcall debbugs-gnu-show-reports-function)
 (when id
@@ -1223,6 +1223,8 @@ Interactively, it is non-nil with the prefix argument."
debbugs-gnu-current-filter)
   (set (make-local-variable 'debbugs-gnu-local-suppress)
debbugs-gnu-current-suppress)
+  (set (make-local-variable 'debbugs-gnu-local-print-function)
+   debbugs-gnu-current-print-function)
   (setq tabulated-list-format [("Id" 5 debbugs-gnu-sort-id)
   ("State" 10 debbugs-gnu-sort-state)
   ("Submitter" 18 debbugs-gnu-sort-submitter

[nongnu] elpa/php-mode aa7d217 1/2: Update README about NonGNU ELPA

2021-08-30 Thread ELPA Syncer
branch: elpa/php-mode
commit aa7d2175da80b02e83879f28a7de94be8bdd1a65
Author: USAMI Kenta 
Commit: USAMI Kenta 

Update README about NonGNU ELPA
---
 README.ja.md | 24 +++-
 README.md| 24 +++-
 2 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/README.ja.md b/README.ja.md
index 732e531..1b00243 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -7,7 +7,9 @@
 [![Build 
Status](https://github.com/emacs-php/php-mode/workflows/CI/badge.svg)](https://github.com/emacs-php/php-mode/actions)
 [![melpa badge][melpa-badge]][melpa-link]
 [![melpa stable badge][melpa-stable-badge]][melpa-stable-link]
-[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa]
+[![NonGNU-devel ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
 
 A powerful and flexible Emacs major mode for editing PHP scripts
 
@@ -20,6 +22,22 @@ A powerful and flexible Emacs major mode for editing PHP 
scripts
 
 **PHP ModeはEmacs 25.2以降で動作します**。古いバージョンのEmacsでも動作するかもしれませんが、保証外です。 
古いバージョンのEmacsのPHPモードを使用することによる問題のバグ報告は積極的に対応しません。現在のサポートポリシーは[Supported 
Version]のページをご覧ください。
 
+### NonGNU ELPAからのインストール
+
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa] [![NonGNU-devel 
ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
+
+Emacs 28 (未リリース; 次期バージョン) では[NonGNU 
ELPA](https://elpa.nongnu.org/)がデフォルトのパッケージリポジトリとして追加されています。
+
+```el
+;; For Emacs < 28
+(when (< emacs-major-version 28)
+  (with-eval-after-load 'package
+(add-to-list 'package-archives '("nongnu" . 
"https://elpa.nongnu.org/nongnu/";
+
+(unless (package-installed-p 'php-mode)
+  (package-install 'php-mode))
+```
+
 ### **(推奨)** MELPAからのインストール
 
 [![melpa badge][melpa-badge]][melpa-link] [![melpa stable 
badge][melpa-stable-badge]][melpa-stable-link]
@@ -339,6 +357,10 @@ PHP Modeは[GNU General Public License Version 3][gpl-v3] 
(GPLv3) でライセ
 [elpa-php-mode]: https://packages.debian.org/sid/elpa-php-mode
 [gpl-v3]: https://www.gnu.org/licenses/quick-guide-gplv3.html
 [issue-430]: https://github.com/emacs-php/php-mode/issues/430
+[nongnu-devel-elpa-badge]: https://elpa.nongnu.org/nongnu-devel/php-mode.svg
+[nongnu-devel-elpa]: https://elpa.nongnu.org/nongnu-devel/php-mode.html
+[nongnu-elpa-badge]: https://elpa.nongnu.org/nongnu/php-mode.svg
+[nongnu-elpa]: https://elpa.nongnu.org/nongnu/php-mode.html
 [melpa-badge]: http://melpa.org/packages/php-mode-badge.svg
 [melpa-link]: http://melpa.org/#/php-mode
 [melpa-stable-badge]: http://stable.melpa.org/packages/php-mode-badge.svg
diff --git a/README.md b/README.md
index 6f227da..d273c16 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,9 @@
 [![Build 
Status](https://github.com/emacs-php/php-mode/workflows/CI/badge.svg)](https://github.com/emacs-php/php-mode/actions)
 [![melpa badge][melpa-badge]][melpa-link]
 [![melpa stable badge][melpa-stable-badge]][melpa-stable-link]
-[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa]
+[![NonGNU-devel ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
 
 A powerful and flexible Emacs major mode for editing PHP scripts
 
@@ -22,6 +24,22 @@ Installation
 
 The current support policy can be found on the [Supported Version] page.
 
+### Install from NonGNU ELPA
+
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa] [![NonGNU-devel 
ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
+
+Emacs 28 (unreleased; next major version) includes [NonGNU 
ELPA](https://elpa.nongnu.org/) as the default package repository.
+
+```el
+;; For Emacs < 28
+(when (< emacs-major-version 28)
+  (with-eval-after-load 'package
+(add-to-list 'package-archives '("nongnu" . 
"https://elpa.nongnu.org/nongnu/";
+
+(unless (package-installed-p 'php-mode)
+  (package-install 'php-mode))
+```
+
 ### **(RECOMMENDED)** Install from MELPA
 
 [![melpa badge][melpa-badge]][melpa-link] [![melpa stable 
badge][melpa-stable-badge]][melpa-stable-link]
@@ -319,6 +337,10 @@ This project was maintained by [Eric James Michael 
Ritz][@ejmr] until 2017. Curr
 [elpa-php-mode]: https://packages.debian.org/sid/elpa-php-mode
 [gpl-v3]: https://www.gnu.org/licenses/quick-guide-gplv3.html
 [issue-430]: https://github.com/emacs-php/php-mode/issues/430
+[nongnu-devel-elpa-badge]: https://elpa.nongnu.org/nongnu-devel/php-mode.svg
+[nongnu-devel-elpa]: https://elpa.nongnu.org/nongnu-devel/php-mode.html
+[nongnu-elpa-badge]: https://elpa.nongnu.org/nongnu/php-mode.svg
+[nongnu-elpa]: https://elpa.nongnu.org/nongnu/php-mode.html
 [melpa-badge]: http://melpa.org/packages/php-mode-badge.svg
 [melpa-link]: http://melpa.org/#/php-mode
 [melpa-stable-badge]: http://stable.melpa.org/packages

[nongnu] elpa/php-mode 535aec8 2/2: Merge pull request #684 from emacs-php/update/readme-nongnu-elpa

2021-08-30 Thread ELPA Syncer
branch: elpa/php-mode
commit 535aec81739e8e766e0420fda616efc8846f2911
Merge: 8212f41 aa7d217
Author: USAMI Kenta 
Commit: GitHub 

Merge pull request #684 from emacs-php/update/readme-nongnu-elpa

Update README about NonGNU ELPA
---
 README.ja.md | 24 +++-
 README.md| 24 +++-
 2 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/README.ja.md b/README.ja.md
index 732e531..1b00243 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -7,7 +7,9 @@
 [![Build 
Status](https://github.com/emacs-php/php-mode/workflows/CI/badge.svg)](https://github.com/emacs-php/php-mode/actions)
 [![melpa badge][melpa-badge]][melpa-link]
 [![melpa stable badge][melpa-stable-badge]][melpa-stable-link]
-[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa]
+[![NonGNU-devel ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
 
 A powerful and flexible Emacs major mode for editing PHP scripts
 
@@ -20,6 +22,22 @@ A powerful and flexible Emacs major mode for editing PHP 
scripts
 
 **PHP ModeはEmacs 25.2以降で動作します**。古いバージョンのEmacsでも動作するかもしれませんが、保証外です。 
古いバージョンのEmacsのPHPモードを使用することによる問題のバグ報告は積極的に対応しません。現在のサポートポリシーは[Supported 
Version]のページをご覧ください。
 
+### NonGNU ELPAからのインストール
+
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa] [![NonGNU-devel 
ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
+
+Emacs 28 (未リリース; 次期バージョン) では[NonGNU 
ELPA](https://elpa.nongnu.org/)がデフォルトのパッケージリポジトリとして追加されています。
+
+```el
+;; For Emacs < 28
+(when (< emacs-major-version 28)
+  (with-eval-after-load 'package
+(add-to-list 'package-archives '("nongnu" . 
"https://elpa.nongnu.org/nongnu/";
+
+(unless (package-installed-p 'php-mode)
+  (package-install 'php-mode))
+```
+
 ### **(推奨)** MELPAからのインストール
 
 [![melpa badge][melpa-badge]][melpa-link] [![melpa stable 
badge][melpa-stable-badge]][melpa-stable-link]
@@ -339,6 +357,10 @@ PHP Modeは[GNU General Public License Version 3][gpl-v3] 
(GPLv3) でライセ
 [elpa-php-mode]: https://packages.debian.org/sid/elpa-php-mode
 [gpl-v3]: https://www.gnu.org/licenses/quick-guide-gplv3.html
 [issue-430]: https://github.com/emacs-php/php-mode/issues/430
+[nongnu-devel-elpa-badge]: https://elpa.nongnu.org/nongnu-devel/php-mode.svg
+[nongnu-devel-elpa]: https://elpa.nongnu.org/nongnu-devel/php-mode.html
+[nongnu-elpa-badge]: https://elpa.nongnu.org/nongnu/php-mode.svg
+[nongnu-elpa]: https://elpa.nongnu.org/nongnu/php-mode.html
 [melpa-badge]: http://melpa.org/packages/php-mode-badge.svg
 [melpa-link]: http://melpa.org/#/php-mode
 [melpa-stable-badge]: http://stable.melpa.org/packages/php-mode-badge.svg
diff --git a/README.md b/README.md
index 6f227da..d273c16 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,9 @@
 [![Build 
Status](https://github.com/emacs-php/php-mode/workflows/CI/badge.svg)](https://github.com/emacs-php/php-mode/actions)
 [![melpa badge][melpa-badge]][melpa-link]
 [![melpa stable badge][melpa-stable-badge]][melpa-stable-link]
-[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![GPL 
v3](https://img.shields.io/badge/license-GPL_v3-green.svg)](http://www.gnu.org/licenses/gpl-3.0.txt)
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa]
+[![NonGNU-devel ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
 
 A powerful and flexible Emacs major mode for editing PHP scripts
 
@@ -22,6 +24,22 @@ Installation
 
 The current support policy can be found on the [Supported Version] page.
 
+### Install from NonGNU ELPA
+
+[![NonGNU ELPA][nongnu-elpa-badge]][nongnu-elpa] [![NonGNU-devel 
ELPA][nongnu-devel-elpa-badge]][nongnu-devel-elpa]
+
+Emacs 28 (unreleased; next major version) includes [NonGNU 
ELPA](https://elpa.nongnu.org/) as the default package repository.
+
+```el
+;; For Emacs < 28
+(when (< emacs-major-version 28)
+  (with-eval-after-load 'package
+(add-to-list 'package-archives '("nongnu" . 
"https://elpa.nongnu.org/nongnu/";
+
+(unless (package-installed-p 'php-mode)
+  (package-install 'php-mode))
+```
+
 ### **(RECOMMENDED)** Install from MELPA
 
 [![melpa badge][melpa-badge]][melpa-link] [![melpa stable 
badge][melpa-stable-badge]][melpa-stable-link]
@@ -319,6 +337,10 @@ This project was maintained by [Eric James Michael 
Ritz][@ejmr] until 2017. Curr
 [elpa-php-mode]: https://packages.debian.org/sid/elpa-php-mode
 [gpl-v3]: https://www.gnu.org/licenses/quick-guide-gplv3.html
 [issue-430]: https://github.com/emacs-php/php-mode/issues/430
+[nongnu-devel-elpa-badge]: https://elpa.nongnu.org/nongnu-devel/php-mode.svg
+[nongnu-devel-elpa]: https://elpa.nongnu.org/nongnu-devel/php-mode.html
+[nongnu-elpa-badge]: https://elpa.nongnu.org/nongnu/php-mode.svg
+[nongnu-elpa]: https://elpa.nongnu.org/nongnu/php-mode.html
 [melpa-badge]: http://melpa.org/packages/php-mode-badge.svg
 [melp

[nongnu] elpa/dart-mode 3bac142: Bump version to 1.0.7

2021-08-30 Thread ELPA Syncer
branch: elpa/dart-mode
commit 3bac14200f9f8f8fcebc383087572da5c3823c34
Author: Brady Trainor 
Commit: Brady Trainor 

Bump version to 1.0.7
---
 dart-mode.el | 16 ++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/dart-mode.el b/dart-mode.el
index dbc9f13..1acfe37 100644
--- a/dart-mode.el
+++ b/dart-mode.el
@@ -1,11 +1,23 @@
 ;;; dart-mode.el --- Major mode for editing Dart files -*- lexical-binding: t; 
-*-
 
-;; Author: Brady Trainor 
+;; Author: https://github.com/bradyt/dart-mode/issues
 ;; URL: https://github.com/bradyt/dart-mode
-;; Version: 1.0.6
+;; Version: 1.0.7
 ;; Package-Requires: ((emacs "24.3"))
 ;; Keywords: languages
 
+;; The author is Brady Trainor, but removed from keywords in attempt
+;; to avoid some class of robots.
+
+;; Honorable mention to previous author, maintainer and
+;; contributors. Please see git history for significant
+;; contributions. They are mostly gone from the current repo, replaced
+;; or split out to dart-server repo. Most of the Github stars are from
+;; previous management. The mistakes and regressions in the rewrite
+;; below are my own. The previous implementation was done with cc-mode
+;; framework. Let me know if you think it should be added back as an
+;; option.
+
 ;;; Commentary:
 
 ;; Major mode for editing Dart files.



[elpa] externals/org b1a74d4: agenda: Fix whitespace

2021-08-30 Thread ELPA Syncer
branch: externals/org
commit b1a74d4c7aa1eb1d1d4fbbf4c80794e3d33b7184
Author: Marco Wahl 
Commit: Marco Wahl 

agenda: Fix whitespace
---
 lisp/org-agenda.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index b4e5547..3035823 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -7381,7 +7381,7 @@ When in a restricted subtree, remove it.
 
 The restriction will span over the entire file if TYPE is `file',
 or if type is '(4), or if the cursor is before the first headline
-in the file. Otherwise, only apply the restriction to the current
+in the file.  Otherwise, only apply the restriction to the current
 subtree."
   (interactive "P")
   (if (and org-agenda-overriding-restriction
@@ -10198,7 +10198,7 @@ entries in that Org file."
 (date (calendar-gregorian-from-absolute
(get-text-property point 'day
 ;; the following 2 vars are needed in the calendar
-(org-dlet 
+(org-dlet
((displayed-month (car date))
 (displayed-year (nth 2 date)))
   (unwind-protect



[elpa] externals/diff-hl a682de6 2/2: If there is no hunk at or above point, search below

2021-08-30 Thread ELPA Syncer
branch: externals/diff-hl
commit a682de60187763128d2d0a85f1d168d89877691f
Author: Dmitry Gutov 
Commit: Dmitry Gutov 

If there is no hunk at or above point, search below

Resolves #169
---
 diff-hl-show-hunk.el |  7 +++
 diff-hl.el   | 12 ++--
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/diff-hl-show-hunk.el b/diff-hl-show-hunk.el
index f8998b7..10473da 100644
--- a/diff-hl-show-hunk.el
+++ b/diff-hl-show-hunk.el
@@ -345,11 +345,10 @@ The backend is determined by 
`diff-hl-show-hunk-function'."
   (save-excursion
 (diff-hl-show-hunk-hide))
 
-  (cond
-   ((not (vc-backend buffer-file-name))
+  (unless (vc-backend buffer-file-name)
 (user-error "The buffer is not under version control"))
-   ((not (diff-hl-hunk-overlay-at (point)))
-(diff-hl-previous-hunk)))
+
+  (diff-hl-find-current-hunk)
 
   (setq diff-hl-show-hunk--original-overlay nil)
 
diff --git a/diff-hl.el b/diff-hl.el
index 1c1bf51..5481caa 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -540,8 +540,7 @@ in the source file, or the last line of the hunk above it."
 (let ((diff-buffer (generate-new-buffer-name "*diff-hl*"))
   (buffer (current-buffer))
   (line (save-excursion
-  (unless (diff-hl-hunk-overlay-at (point))
-(diff-hl-previous-hunk))
+  (diff-hl-find-current-hunk)
   (line-number-at-pos)))
   (fileset (vc-deduce-fileset)))
   (unwind-protect
@@ -625,6 +624,15 @@ in the source file, or the last line of the hunk above it."
   (interactive)
   (diff-hl-next-hunk t))
 
+(defun diff-hl-find-current-hunk ()
+  (let (o)
+(cond
+ ((diff-hl-hunk-overlay-at (point)))
+ ((setq o (diff-hl-search-next-hunk t))
+  (goto-char (overlay-start o)))
+ (t
+  (diff-hl-next-hunk)
+
 (defun diff-hl-mark-hunk ()
   (interactive)
   (let ((hunk (diff-hl-hunk-overlay-at (point



[elpa] externals/diff-hl updated (dbd46bf -> a682de6)

2021-08-30 Thread ELPA Syncer
elpasync pushed a change to branch externals/diff-hl.

  from  dbd46bf   Fix a warning
   new  983366c   Make diff-hl-show-hunk's key bindings more consistent 
with the base set
   new  a682de6   If there is no hunk at or above point, search below


Summary of changes:
 diff-hl-show-hunk-posframe.el |  4 +---
 diff-hl-show-hunk.el  | 13 +
 diff-hl.el| 12 ++--
 3 files changed, 16 insertions(+), 13 deletions(-)



[elpa] externals/diff-hl 983366c 1/2: Make diff-hl-show-hunk's key bindings more consistent with the base set

2021-08-30 Thread ELPA Syncer
branch: externals/diff-hl
commit 983366cb40923df23dd26ab38f616a1791094653
Author: Dmitry Gutov 
Commit: Dmitry Gutov 

Make diff-hl-show-hunk's key bindings more consistent with the base set

To avoid the conflict between 'C-v x n' as diff-hl-revert-hunk and 
diff-hl-show-hunk-next.

Mentioned in #169.

The user can, of course, choose their own bindings.

/Cc @alvarogonzalezsotillo
---
 diff-hl-show-hunk-posframe.el | 4 +---
 diff-hl-show-hunk.el  | 6 ++
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/diff-hl-show-hunk-posframe.el b/diff-hl-show-hunk-posframe.el
index ba77151..16de180 100644
--- a/diff-hl-show-hunk-posframe.el
+++ b/diff-hl-show-hunk-posframe.el
@@ -91,10 +91,8 @@ Customize it to change the base properties of the text.")
 (define-key map [escape]#'diff-hl-show-hunk-hide)
 (define-key map (kbd "q")   #'diff-hl-show-hunk-hide)
 (define-key map (kbd "C-g") #'diff-hl-show-hunk-hide)
-(define-key map (kbd "p")   #'diff-hl-show-hunk-previous)
-(define-key map (kbd "n")   #'diff-hl-show-hunk-next)
 (define-key map (kbd "c")   #'diff-hl-show-hunk-copy-original-text)
-(define-key map (kbd "r")   #'diff-hl-show-hunk-revert-hunk)
+(define-key map (kbd "n")   #'diff-hl-show-hunk-revert-hunk)
 (define-key map (kbd "[")   #'diff-hl-show-hunk-previous)
 (define-key map (kbd "]")   #'diff-hl-show-hunk-next)
 (define-key map (kbd "{")   #'diff-hl-show-hunk-previous)
diff --git a/diff-hl-show-hunk.el b/diff-hl-show-hunk.el
index 6e3e63b..f8998b7 100644
--- a/diff-hl-show-hunk.el
+++ b/diff-hl-show-hunk.el
@@ -212,10 +212,8 @@ Returns a list with the buffer and the line number of the 
clicked line."
 
 (defvar diff-hl-show-hunk--inline-popup-map
   (let ((map (make-sparse-keymap)))
-(define-key map (kbd "p") #'diff-hl-show-hunk-previous)
-(define-key map (kbd "n") #'diff-hl-show-hunk-next)
 (define-key map (kbd "c") #'diff-hl-show-hunk-copy-original-text)
-(define-key map (kbd "r") #'diff-hl-show-hunk-revert-hunk)
+(define-key map (kbd "n") #'diff-hl-show-hunk-revert-hunk)
 (define-key map (kbd "[") #'diff-hl-show-hunk-previous)
 (define-key map (kbd "]") #'diff-hl-show-hunk-next)
 (define-key map (kbd "{") #'diff-hl-show-hunk-previous)
@@ -273,7 +271,7 @@ BUFFER is a buffer with the hunk."
  (if (and (boundp 'diff-hl-reference-revision) 
diff-hl-reference-revision)
  (concat "Diff with " diff-hl-reference-revision)
"Diff with HEAD")
- "(q)Quit  (p)Previous  (n)Next  (r)Revert  (c)Copy original"
+ "(q)Quit  (\[)Previous  (\])Next  (n)Revert  (c)Copy original"
  diff-hl-show-hunk--inline-popup-map
  #'diff-hl-show-hunk-hide
  point



[elpa] externals/taxy f98b42a 2/3: Release: 0.4

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit f98b42ac71950fbc79cba0905fd93c5a2c39db52
Author: Adam Porter 
Commit: Adam Porter 

Release: 0.4
---
 README.org |  4 ++--
 taxy.el|  2 +-
 taxy.info  | 71 +++---
 3 files changed, 39 insertions(+), 38 deletions(-)

diff --git a/README.org b/README.org
index 6603f8f..8527226 100644
--- a/README.org
+++ b/README.org
@@ -774,9 +774,9 @@ Note that while =taxy-magit-section.el= is installed with 
the =taxy= package, th
 :TOC:  :depth 0
 :END:
 
-** 0.4-pre
+** 0.4
 
-Nothing new yet.
++  Incremented version to cause a new ELPA release (since removing a file that 
wasn't intended to be distributed on ELPA).
 
 ** 0.3
 
diff --git a/taxy.el b/taxy.el
index 9df4607..c73e30e 100644
--- a/taxy.el
+++ b/taxy.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/taxy.el
-;; Version: 0.4-pre
+;; Version: 0.4
 ;; Package-Requires: ((emacs "26.3"))
 ;; Keywords: lisp
 
diff --git a/taxy.info b/taxy.info
index 8be5b80..79f660f 100644
--- a/taxy.info
+++ b/taxy.info
@@ -48,7 +48,7 @@ Dynamic taxys
 
 Changelog
 
-* 0.4-pre: 04-pre. 
+* 0.4: 04. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
@@ -900,21 +900,22 @@ File: README.info,  Node: Changelog,  Next: Development,  
Prev: Usage,  Up: Top
 
 * Menu:
 
-* 0.4-pre: 04-pre. 
+* 0.4: 04. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
 
-File: README.info,  Node: 04-pre,  Next: 03,  Up: Changelog
+File: README.info,  Node: 04,  Next: 03,  Up: Changelog
 
-4.1 0.4-pre
-===
+4.1 0.4
+===
 
-Nothing new yet.
+   • Incremented version to cause a new ELPA release (since removing a
+ file that wasn’t intended to be distributed on ELPA).
 
 
-File: README.info,  Node: 03,  Next: 02,  Prev: 04-pre,  Up: Changelog
+File: README.info,  Node: 03,  Next: 02,  Prev: 04,  Up: Changelog
 
 4.2 0.3
 ===
@@ -1052,34 +1053,34 @@ GPLv3
 
 Tag Table:
 Node: Top218
-Node: Examples1667
-Node: Numbery (starting basically)1986
-Node: Lettery (filling incrementally)7741
-Node: Sporty (understanding completely)10421
-Node: Applications16408
-Node: Installation16808
-Node: Usage17109
-Node: Dynamic taxys19246
-Node: Multi-level dynamic taxys21801
-Node: "Chains" of independent multi-level dynamic taxys23994
-Node: Reusable taxys26866
-Node: Threading macros31035
-Node: Modifying filled taxys31574
-Node: Magit section32657
-Node: Changelog33315
-Node: 04-pre33489
-Node: 0333595
-Node: Changes33718
-Node: Fixes34066
-Node: 0234497
-Node: Changesx34648
-Node: Additions34933
-Node: Fixesx35846
-Node: 0136093
-Node: Development36192
-Node: Copyright assignment36398
-Node: Credits36985
-Node: License37175
+Node: Examples1659
+Node: Numbery (starting basically)1978
+Node: Lettery (filling incrementally)7733
+Node: Sporty (understanding completely)10413
+Node: Applications16400
+Node: Installation16800
+Node: Usage17101
+Node: Dynamic taxys19238
+Node: Multi-level dynamic taxys21793
+Node: "Chains" of independent multi-level dynamic taxys23986
+Node: Reusable taxys26858
+Node: Threading macros31027
+Node: Modifying filled taxys31566
+Node: Magit section32649
+Node: Changelog33307
+Node: 0433473
+Node: 0333684
+Node: Changes33803
+Node: Fixes34151
+Node: 0234582
+Node: Changesx34733
+Node: Additions35018
+Node: Fixesx35931
+Node: 0136178
+Node: Development36277
+Node: Copyright assignment36483
+Node: Credits37070
+Node: License37260
 
 End Tag Table
 



[elpa] externals/taxy 7f08dde 1/3: Tidy: Remove taxy-org-ql-view.el

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit 7f08ddeb885188ba74ad3339325b1876ed0c3d3a
Author: Adam Porter 
Commit: Adam Porter 

Tidy: Remove taxy-org-ql-view.el

Moved to the org-ql.git repo to comply with ELPA's expectations.
---
 examples/taxy-org-ql-view.el | 266 ---
 1 file changed, 266 deletions(-)

diff --git a/examples/taxy-org-ql-view.el b/examples/taxy-org-ql-view.el
deleted file mode 100644
index 1a8f751..000
--- a/examples/taxy-org-ql-view.el
+++ /dev/null
@@ -1,266 +0,0 @@
-;;; taxy-org-ql-view.el ---  -*- lexical-binding: t; 
-*-
-
-;; Copyright (C) 2021  Adam Porter
-
-;; Author: Adam Porter 
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see .
-
-;;; Commentary:
-
-;;
-
-;;; Code:
-
- Requirements
-
-(require 'map)
-(require 'seq)
-
-(require 'org-ql-view)
-
-(require 'taxy)
-(require 'taxy-magit-section)
-
- Structs
-
-(cl-defstruct (taxy-org-ql-view-section
-   (:include taxy-magit-section
- (format-fn #'org-ql-view--format-element)
- (indent 2)
- (make #'make-taxy-org-ql-view-section
-
- Macros
-
- Defining taxy keys with macro
-
-(defvar taxy-org-ql-view-keys nil)
-
-(defmacro taxy-org-ql-view-define-key (name args &rest body)
-  "Define a `taxy-org-ql-view' key function by NAME having BODY taking ARGS.
-Within BODY, `element' is bound to the `org-element' element
-being tested.
-
-Defines a function named `taxy-org-ql--predicate-NAME', and adds
-an entry to `taxy-org-ql-view-keys' mapping NAME to the new
-function symbol."
-  (declare (indent defun)
-  (debug (&define symbolp listp &rest def-form)))
-  (let* ((fn-symbol (intern (format "taxy-org-ql--predicate-%s" name)))
-(fn `(lambda (element ,@args)
-   ,@body)))
-`(progn
-   (fset ',fn-symbol ,fn)
-   (setf (map-elt taxy-org-ql-view-keys ',name) ',fn-symbol
-
-(taxy-org-ql-view-define-key heading (&rest strings)
-  "Return STRINGS that ELEMENT's heading matches."
-  (when-let ((matches (cl-loop with heading = (org-element-property :raw-value 
element)
-  for string in strings
-  when (string-match (regexp-quote string) heading)
-  collect string)))
-(format "Heading: %s" (string-join matches ", "
-
-(taxy-org-ql-view-define-key todo (&optional keyword)
-  "Return the to-do keyword for ELEMENT.
-If KEYWORD, return whether it matches that."
-  (when-let ((element-keyword (org-element-property :todo-keyword element)))
-(cl-flet ((format-keyword
-  (keyword) (format "To-do: %s" keyword)))
-  (pcase keyword
-   ('nil (format-keyword element-keyword))
-   (_ (pcase element-keyword
-((pred (equal keyword))
- (format-keyword element-keyword
-
-(taxy-org-ql-view-define-key tags (&rest tags)
-  "Return the tags for ELEMENT.
-If TAGS, return whether it matches them."
-  (cl-flet ((tags-at
-(pos) (apply #'append (delq 'org-ql-nil (org-ql--tags-at pos)
-(org-with-point-at (org-element-property :org-hd-marker element)
-  (pcase tags
-   ('nil (tags-at (point)))
-   (_ (when-let (common-tags (seq-intersection tags (tags-at (point))
-   #'cl-equalp))
-(format "Tags: %s" (string-join common-tags ", "
-
-(taxy-org-ql-view-define-key priority (&optional priority)
-  "Return ELEMENT's priority as a string.
-If PRIORITY, return it if it matches ELEMENT's priority."
-  (when-let ((priority-number (org-element-property :priority element)))
-(cl-flet ((format-priority
-  (num) (format "Priority: %s" num)))
-  ;; FIXME: Priority numbers may be wildly larger, right?
-  (pcase priority
-   ('nil (format-priority (char-to-string priority-number)))
-   (_ (pcase (char-to-string priority-number)
-((and (pred (equal priority)) string)
- (format-priority string
-
-(taxy-org-ql-view-define-key planning-month ()
-  "Return ELEMENT's planning-date month, or nil.
-Returns in format \"%Y-%m (%B)\"."
-  (when-let ((planning-element (or (org-element-property :deadline element)
-  (org-element-property :scheduled el

[elpa] externals/taxy 675d1b2 3/3: Meta: 0.5-pre

2021-08-30 Thread ELPA Syncer
branch: externals/taxy
commit 675d1b23309ff5d151a1f2e162c22d9b47937d1d
Author: Adam Porter 
Commit: Adam Porter 

Meta: 0.5-pre
---
 README.org |  4 +++
 taxy.el|  2 +-
 taxy.info  | 88 +++---
 3 files changed, 55 insertions(+), 39 deletions(-)

diff --git a/README.org b/README.org
index 8527226..31c4121 100644
--- a/README.org
+++ b/README.org
@@ -774,6 +774,10 @@ Note that while =taxy-magit-section.el= is installed with 
the =taxy= package, th
 :TOC:  :depth 0
 :END:
 
+** 0.5-pre
+
+Nothing new yet.
+
 ** 0.4
 
 +  Incremented version to cause a new ELPA release (since removing a file that 
wasn't intended to be distributed on ELPA).
diff --git a/taxy.el b/taxy.el
index c73e30e..c00fcfc 100644
--- a/taxy.el
+++ b/taxy.el
@@ -5,7 +5,7 @@
 ;; Author: Adam Porter 
 ;; Maintainer: Adam Porter 
 ;; URL: https://github.com/alphapapa/taxy.el
-;; Version: 0.4
+;; Version: 0.5-pre
 ;; Package-Requires: ((emacs "26.3"))
 ;; Keywords: lisp
 
diff --git a/taxy.info b/taxy.info
index 79f660f..4c3cc2c 100644
--- a/taxy.info
+++ b/taxy.info
@@ -48,12 +48,14 @@ Dynamic taxys
 
 Changelog
 
+* 0.5-pre: 05-pre. 
 * 0.4: 04. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
 
+
 0.3
 
 * Changes::
@@ -900,15 +902,24 @@ File: README.info,  Node: Changelog,  Next: Development,  
Prev: Usage,  Up: Top
 
 * Menu:
 
+* 0.5-pre: 05-pre. 
 * 0.4: 04. 
 * 0.3: 03. 
 * 0.2: 02. 
 * 0.1: 01. 
 
 
-File: README.info,  Node: 04,  Next: 03,  Up: Changelog
+File: README.info,  Node: 05-pre,  Next: 04,  Up: Changelog
+
+4.1 0.5-pre
+===
 
-4.1 0.4
+Nothing new yet.
+
+
+File: README.info,  Node: 04,  Next: 03,  Prev: 05-pre,  Up: Changelog
+
+4.2 0.4
 ===
 
• Incremented version to cause a new ELPA release (since removing a
@@ -917,7 +928,7 @@ File: README.info,  Node: 04,  Next: 03,  Up: Changelog
 
 File: README.info,  Node: 03,  Next: 02,  Prev: 04,  Up: Changelog
 
-4.2 0.3
+4.3 0.3
 ===
 
 * Menu:
@@ -928,7 +939,7 @@ File: README.info,  Node: 03,  Next: 02,  Prev: 04,  Up: 
Changelog
 
 File: README.info,  Node: Changes,  Next: Fixes,  Up: 03
 
-4.2.1 Changes
+4.3.1 Changes
 -
 
• Within the ‘taxy’ struct and related functions, the term objects is
@@ -939,7 +950,7 @@ File: README.info,  Node: Changes,  Next: Fixes,  Up: 03
 
 File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03
 
-4.2.2 Fixes
+4.3.2 Fixes
 ---
 
• Function ‘taxy-fill’ always calls a taxy’s ‘:take’ function if
@@ -951,7 +962,7 @@ File: README.info,  Node: Fixes,  Prev: Changes,  Up: 03
 
 File: README.info,  Node: 02,  Next: 01,  Prev: 03,  Up: Changelog
 
-4.3 0.2
+4.4 0.2
 ===
 
 * Menu:
@@ -963,7 +974,7 @@ File: README.info,  Node: 02,  Next: 01,  Prev: 03,  Up: 
Changelog
 
 File: README.info,  Node: Changesx,  Next: Additions,  Up: 02
 
-4.3.1 Changes
+4.4.1 Changes
 -
 
• Function ‘taxy-take-keyed*’ is renamed to ‘taxy-take-keyed’,
@@ -973,7 +984,7 @@ File: README.info,  Node: Changesx,  Next: Additions,  Up: 
02
 
 File: README.info,  Node: Additions,  Next: Fixesx,  Prev: Changesx,  Up: 02
 
-4.3.2 Additions
+4.4.2 Additions
 ---
 
• Struct ‘taxy’ now has a ‘:make’ slot, a function called to make new
@@ -991,7 +1002,7 @@ File: README.info,  Node: Additions,  Next: Fixesx,  Prev: 
Changesx,  Up: 02
 
 File: README.info,  Node: Fixesx,  Prev: Additions,  Up: 02
 
-4.3.3 Fixes
+4.4.3 Fixes
 ---
 
• ‘taxy-magit-section’’s ‘insert-object’ function.
@@ -1001,7 +1012,7 @@ File: README.info,  Node: Fixesx,  Prev: Additions,  Up: 
02
 
 File: README.info,  Node: 01,  Prev: 02,  Up: Changelog
 
-4.4 0.1
+4.5 0.1
 ===
 
 First tagged version.
@@ -1053,34 +1064,35 @@ GPLv3
 
 Tag Table:
 Node: Top218
-Node: Examples1659
-Node: Numbery (starting basically)1978
-Node: Lettery (filling incrementally)7733
-Node: Sporty (understanding completely)10413
-Node: Applications16400
-Node: Installation16800
-Node: Usage17101
-Node: Dynamic taxys19238
-Node: Multi-level dynamic taxys21793
-Node: "Chains" of independent multi-level dynamic taxys23986
-Node: Reusable taxys26858
-Node: Threading macros31027
-Node: Modifying filled taxys31566
-Node: Magit section32649
-Node: Changelog33307
-Node: 0433473
-Node: 0333684
-Node: Changes33803
-Node: Fixes34151
-Node: 0234582
-Node: Changesx34733
-Node: Additions35018
-Node: Fixesx35931
-Node: 0136178
-Node: Development36277
-Node: Copyright assignment36483
-Node: Credits37070
-Node: License37260
+Node: Examples1680
+Node: Numbery (starting basically)1999
+Node: Lettery (filling incrementally)7754
+Node: Sporty (understanding completely)10434
+Node: Applications16421
+Node: Installation16821
+Node: Usage17122
+Node: Dynamic taxys19259
+Node: Multi-level dynamic taxys21814
+Node: "Chains" of independent multi-level dynamic taxys24007
+Node: Reusable taxys26879
+Node: Threading macros31048
+Node: Modifying filled taxys31587
+Node:

[elpa] externals/taxy updated (040ff13 -> 675d1b2)

2021-08-30 Thread ELPA Syncer
elpasync pushed a change to branch externals/taxy.

  from  040ff13   Examples: (taxy-org-ql-view) WIP
   new  7f08dde   Tidy: Remove taxy-org-ql-view.el
   new  f98b42a   Release: 0.4
   new  675d1b2   Meta: 0.5-pre


Summary of changes:
 README.org   |   6 +-
 examples/taxy-org-ql-view.el | 266 ---
 taxy.el  |   2 +-
 taxy.info|  95 +---
 4 files changed, 60 insertions(+), 309 deletions(-)
 delete mode 100644 examples/taxy-org-ql-view.el



[elpa] main 927f839: * elpa-packages (engraved-faces): New package

2021-08-30 Thread monnier--- via
branch: main
commit 927f8397bfbda6cc140d63ea5955c7c9b0137ebc
Author: Stefan Monnier 
Commit: Stefan Monnier 

* elpa-packages (engraved-faces): New package
---
 elpa-packages | 4 
 1 file changed, 4 insertions(+)

diff --git a/elpa-packages b/elpa-packages
index 51840bc..69dd6e3 100644
--- a/elpa-packages
+++ b/elpa-packages
@@ -152,6 +152,8 @@
  ("emms"   :url "https://git.savannah.gnu.org/git/emms.git";
   :doc "doc/emms.texinfo"
   :auto-sync t)
+ ("engrave-faces"  :url "https://github.com/tecosaur/engrave-faces.git";
+  :auto-sync t)
  ("enwc"   :url "hg::https://hg.savannah.nongnu.org/hgweb/enwc/";)
  ("epoch-view" :url nil)
  ("ergoemacs-mode" :url "https://github.com/ergoemacs/ergoemacs-mode.git";)
@@ -346,6 +348,8 @@
  ("shell-quasiquote"   :url nil)
  ("shen-mode"  :url nil)
  ("sisu-mode"  :url nil)
+ ;; ("sketch-mode" :url 
"https://github.com/dalanicolai/sketch-mode";
+ ;;  :auto-sync t)
  ("slime-volleyball"   :url nil)
  ("sm-c-mode"  :url nil)
  ("smalltalk-mode" :url nil) ;; Was "git://git.sv.gnu.org/smalltalk"



[elpa] branch externals/engrave-faces created (now 95d25d4)

2021-08-30 Thread ELPA Syncer
elpasync pushed a change to branch externals/engrave-faces.

at  95d25d4   minor refactor: face extraction from text property

This branch includes the following new commits:

   new  8fe5dec   Initial commit
   new  d12687f   Add autoloading, fix typo
   new  93fc726   Check preset faces when merging
   new  3f7c5d5   Fix homepage url
   new  757ba80   Improve attribute-plist face handling
   new  19da183   Add strikethrough support
   new  aaa030a   Add licence
   new  c5c83ef   Fix invalid docstring in macro, remove unused func
   new  59bfd13   Fix single-face text being unstyled
   new  4ef39b1   Improve handling of face inheritance.
   new  c2ad032   Allow .-merge-attributes to work with single face
   new  0cc9159   No longer set default face information separately
   new  14eddbe   LaTeX: Don't set colour at the start of a block
   new  b6d31d8   Account for multiple inherited faces
   new  52ab6fb   LaTeX export: fix edge case with braces across \n
   new  d4b95ce   Replace apply append with mapcan
   new  e9a9b37   More face inheritance form edge cases
   new  ccebbdd   Add the org-block face to the preset, improve doc
   new  3b3dda6   Improve docstrings and add some defcustoms
   new  7fc664a   Add interactive commands for backends
   new  4e6026e   New backend: ANSI
   new  69f0e59   New backend: HTML
   new  1d73b8e   Fix inaccurate comments
   new  2fee4f7   Create engrave-faces-BACKEND-file command
   new  97c9ad7   When style is missing attribute, don't check face
   new  2b03748   html: set page bg to default face bg (if given)
   new  1f68496   LaTeX: use named colour for fg when possible
   new  8bbaaf8   Missing subr-x requirement
   new  8b5e1fc   Move copyright to the FSF
   new  fdfaf14   Set the :group in defcustom statements
   new  67de75f   html: allow for css classes without a :slug
   new  e063673   html: add support for weight and height
   new  581b594   html: apply background & foreground color to page
   new  36320d5   Declare ansi-color-apply-on-region function
   new  e22391c   latex: refactor initial \color string insertion
   new  95d25d4   minor refactor: face extraction from text property




[elpa] externals/engrave-faces d12687f 02/36: Add autoloading, fix typo

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit d12687f3e4b1c4f63c21e05d5df4416a476e7f49
Author: TEC 
Commit: TEC 

Add autoloading, fix typo
---
 engrave-faces-latex.el | 4 +++-
 engrave-faces.el   | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 0ffbcc9..94de483 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -42,7 +42,7 @@
 
 (defun engrave-faces-latex-face-apply (faces content)
   "TODO"
-  (let ((attrs (engrave-face-merge-attributes faces)))
+  (let ((attrs (engrave-faces-merge-attributes faces)))
 (let ((fg (plist-get attrs :foreground))
   (bg (plist-get attrs :background))
   (it (eql (plist-get attrs :slant) 'italic))
@@ -85,9 +85,11 @@
   (while (search-forward "\n}" nil t)
 (replace-match "}\n")))
 
+;;;###autoload
 (engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper)
 (add-hook 'engrave-faces-latex-after-hook 
#'engrave-faces-latex-post-processing)
 
+;;;###autoload
 (defun engrave-faces-latex-buffer-standalone ()
   "Export current buffer to a standalone LaTeX buffer."
   (interactive)
diff --git a/engrave-faces.el b/engrave-faces.el
index 99c317c..4af0fdb 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -36,7 +36,9 @@
 
 ;;; Code:
 
+;;;###autoload
 (defvar engrave-faces--backends nil)
+;;;###autoload
 (defmacro engrave-faces-define-backend (name extension face-transformer)
   `(progn (add-to-list 'engrave-faces--backends
(list ,name :face-transformer ,face-transformer 
:extension ,extension))



[elpa] externals/engrave-faces 757ba80 05/36: Improve attribute-plist face handling

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 757ba80394c0f8d5178eb0ffda9414b89c82255d
Author: TEC 
Commit: TEC 

Improve attribute-plist face handling
---
 engrave-faces.el | 15 ++-
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 6b82605..5e65249 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -114,8 +114,12 @@ output.")
   ;; happens in invisible regions).
   (when (> (length text) 0)
 (princ (funcall face-transformer
-(or (get-text-property (point) 'face)
-'default)
+(let ((prop (get-text-property (point) 'face)))
+  (cond
+   ((null prop) 'default)
+   ((and (listp prop)
+ (eq (car prop) 'quote)) (eval prop))
+   ((listp prop) prop)))
 text)
engraved-buf))
   (goto-char next-change)))
@@ -135,9 +139,10 @@ output.")
   (delq nil
 (delq 'unspecified
   (mapcar (lambda (face)
-(or
- (plist-get (cdr (assoc face 
engrave-faces-preset-styles)) attr)
- (face-attribute face attr nil 
t)))
+(or (plist-get (cdr (assoc 
face engrave-faces-preset-styles)) attr)
+(cond
+ ((symbolp face) 
(face-attribute face attr nil t))
+ ((listp face) (plist-get 
face attr)
   (delq 'default (if (listp faces) 
faces (list faces)
  engrave-faces-attributes-of-interest)))
 



[elpa] externals/engrave-faces 8fe5dec 01/36: Initial commit

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 8fe5decb3fa42bcf9c6688575b1a5e3e8beafe8a
Author: TEC 
Commit: TEC 

Initial commit
---
 README.org |  23 +
 engrave-faces-latex.el | 113 +
 engrave-faces.el   | 221 +
 3 files changed, 357 insertions(+)

diff --git a/README.org b/README.org
new file mode 100644
index 000..d4c1428
--- /dev/null
+++ b/README.org
@@ -0,0 +1,23 @@
+#+title: Engrave Faces
+#+author: tecosaur
+
+There are some great packages for Exporting buffers to particular formats, but
+each one seems to reinvent the core mechanism of processing the font-lock in a
+buffer such that it can be exported to a particular format.
+
+This package aims to produce a versatile generic core which can process a
+fortified buffer and elegantly pass the data to any number of backends which 
can
+deal with specific output formats.
+
+This is very much a work in progress, a rough plan can be seen below.
+I fully expect some important items to have been forgotten.
+
+*Font lock processing*
+- [X] Single faces
+- [X] Merge multiple faces
+- [ ] Process overlays
+
+*Included backends*
+- [X] LaTeX
+- [ ] HTML
+- [ ] ANSI
diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
new file mode 100644
index 000..0ffbcc9
--- /dev/null
+++ b/engrave-faces-latex.el
@@ -0,0 +1,113 @@
+;;; engrave-faces-latex.el --- Support for engraving buffers to LaTeX -*- 
lexical-binding: t; -*-
+
+;; This file is part of engrave-faces.
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;;; Commentary:
+
+;; Support for engraving buffers to LaTeX.
+
+;;; Code:
+
+(require 'engrave-faces)
+
+(defvar engrave-faces-latex-output-style 'preset
+  "TODO")
+
+(defun engrave-faces-latex-gen-preamble ()
+  "TODO"
+  (concat
+   "\\definecolor{EFD}{HTML}{" (substring (plist-get 
engrave-faces-preset-default :foreground) 1) "}\n"
+   (mapconcat
+(lambda (face-style)
+  (engrave-faces-latex-gen-preamble-line (car face-style) (cdr 
face-style)))
+engrave-faces-preset-styles
+"\n")))
+
+(defun engrave-faces-latex-gen-preamble-line (face style)
+  (let ((short (plist-get style :slug))
+(fg(plist-get style :foreground))
+(bg(plist-get style :background))
+(it(eql (plist-get style:slant) 'italic))
+(bl(member (plist-get style :weight) '(bold extra-bold
+(concat (when fg (format "\\definecolor{EF%s}{HTML}{%s}\n" short 
(substring fg 1)))
+(when bg (format "\\definecolor{Ef%s}{HTML}{%s}\n" short 
(substring bg 1)))
+"\\newcommand{\\EF" short "}[1]{"
+(when bg (concat "\\colorbox{Ef" short "}{"))
+(when fg (concat "\\textcolor{EF" short "}{"))
+(when bl "\\textbf{") (when it "\\textit{")
+"#1}"
+(when bg "}") (when fg "}") (when bl "}") (when it "}")
+" % " (symbol-name face
+
+(defun engrave-faces-latex-face-apply (faces content)
+  "TODO"
+  (let ((attrs (engrave-face-merge-attributes faces)))
+(let ((fg (plist-get attrs :foreground))
+  (bg (plist-get attrs :background))
+  (it (eql (plist-get attrs :slant) 'italic))
+  (bl (member (plist-get attrs :weight) '(bold extra-bold
+  (concat
+   (when bg (concat "\\colorbox[HTML]{" (substring bg 1) "}{"))
+   (when fg (concat "\\textcolor[HTML]{" (substring fg 1) "}{"))
+   (when bl "\\textbf{") (when it "\\textit{")
+   content
+   (when bg "}") (when fg "}") (when bl "}") (when it "}")
+
+(defun engrave-faces-latex-face-mapper (faces content)
+  "TODO"
+  (let ((protected-content (replace-regexp-in-string "[\\{}$%&_#]" "\\&" 
content))
+(style (assoc faces engrave-faces-preset-styles)))
+(if (string-match-p "\\`[\n[:space:]]+\\'" content)
+protected-content
+  (if (and style (eq engrave-faces-latex-output-style 'preset))
+  (concat "\\EF" (plist-get (cdr style) :slug) "{" protected-content 
"}")
+(engrave-faces-latex-face-apply faces protected-content)
+
+(defvar engrave-faces-latex-char-replacements
+  '(("" . "char92{}")
+("^" . "char94{}")
+("~" . "char126{}")))
+
+(defun engrave-faces-latex-post-processing ()
+  (goto-char (point-min))
+  (insert (if (eq engrave-faces-latex-output-style 'preset)
+  "\\color{EFD}"
+(concat "\\color[HTML]{"
+(substring (plist-get (assoc 'default 
engrave-faces-preset-styles)
+  :foreground) 1)
+"}")))
+  (dolist (find-sub engrave-faces-latex-char-replacements)
+(goto-char (point-min))
+(while (search-forward (car find-sub) nil t)
+  (replace-match (cdr find-sub
+  (goto-char (point-min))
+  (while (search-forward "\n}" nil t)
+(replace-match "}\n")))
+
+(engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-map

[elpa] externals/engrave-faces 52ab6fb 15/36: LaTeX export: fix edge case with braces across \n

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 52ab6fb9101411aeb60ceb036dbdbfdd7582d2b1
Author: TEC 
Commit: TEC 

LaTeX export: fix edge case with braces across \n
---
 engrave-faces-latex.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 38d02da..0ea2355 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -81,8 +81,8 @@
 (while (search-forward (car find-sub) nil t)
   (replace-match (cdr find-sub
   (goto-char (point-min))
-  (while (search-forward "\n}" nil t)
-(replace-match "}\n")))
+  (while (re-search-forward "\n\\([[:space:]]*\\)\\(}+\\)" nil t)
+(replace-match "\\2\n\\1")))
 
 ;;;###autoload
 (engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper)



[elpa] externals/engrave-faces 59bfd13 09/36: Fix single-face text being unstyled

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 59bfd133bd8604d29ffc81b3627463a72c4ab67b
Author: TEC 
Commit: TEC 

Fix single-face text being unstyled
---
 engrave-faces.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 331a48e..f64d81c 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -109,7 +109,7 @@ output.")
((null prop) 'default)
((and (listp prop)
  (eq (car prop) 'quote)) (eval prop))
-   ((listp prop) prop)))
+   (t prop)))
 text)
engraved-buf))
   (goto-char next-change)))



[elpa] externals/engrave-faces 19da183 06/36: Add strikethrough support

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 19da183b7a39fe5fcf3be319fde615f7c103499b
Author: TEC 
Commit: TEC 

Add strikethrough support
---
 engrave-faces-latex.el | 18 ++
 engrave-faces.el   |  2 +-
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 94de483..81c809f 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -28,6 +28,7 @@
   (let ((short (plist-get style :slug))
 (fg(plist-get style :foreground))
 (bg(plist-get style :background))
+(st(plist-get style :strike-through))
 (it(eql (plist-get style:slant) 'italic))
 (bl(member (plist-get style :weight) '(bold extra-bold
 (concat (when fg (format "\\definecolor{EF%s}{HTML}{%s}\n" short 
(substring fg 1)))
@@ -35,24 +36,25 @@
 "\\newcommand{\\EF" short "}[1]{"
 (when bg (concat "\\colorbox{Ef" short "}{"))
 (when fg (concat "\\textcolor{EF" short "}{"))
-(when bl "\\textbf{") (when it "\\textit{")
+(when st "\\sout{") (when bl "\\textbf{") (when it "\\textit{")
 "#1}"
-(when bg "}") (when fg "}") (when bl "}") (when it "}")
+(when bg "}") (when fg "}") (when st "}") (when bl "}") (when it 
"}")
 " % " (symbol-name face
 
 (defun engrave-faces-latex-face-apply (faces content)
   "TODO"
   (let ((attrs (engrave-faces-merge-attributes faces)))
-(let ((fg (plist-get attrs :foreground))
-  (bg (plist-get attrs :background))
-  (it (eql (plist-get attrs :slant) 'italic))
-  (bl (member (plist-get attrs :weight) '(bold extra-bold
+(let ((bg (plist-get attrs :background))
+  (fg (plist-get attrs :foreground))
+  (it (eql (plist-get attrs:slant) 'italic))
+  (bl (member (plist-get attrs :weight) '(bold extra-bold)))
+  (st (plist-get attrs :strike-through)))
   (concat
(when bg (concat "\\colorbox[HTML]{" (substring bg 1) "}{"))
(when fg (concat "\\textcolor[HTML]{" (substring fg 1) "}{"))
-   (when bl "\\textbf{") (when it "\\textit{")
+   (when st "\\sout{") (when bl "\\textbf{") (when it "\\textit{")
content
-   (when bg "}") (when fg "}") (when bl "}") (when it "}")
+   (when bg "}") (when fg "}") (when st "}") (when bl "}") (when it 
"}")
 
 (defun engrave-faces-latex-face-mapper (faces content)
   "TODO"
diff --git a/engrave-faces.el b/engrave-faces.el
index 5e65249..a92dd60 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -59,7 +59,7 @@
   (kill-buffer engraved-buf
 
 (defvar engrave-faces-attributes-of-interest
-  '(:foreground :background :slant :weight :height)
+  '(:foreground :background :slant :weight :height :strike-through)
   "Attributes which sould be paid attention to.")
 
 (defvar engrave-faces-before-hook nil



[elpa] externals/engrave-faces 7fc664a 20/36: Add interactive commands for backends

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 7fc664a4f3add72070477b62374e8f7db4eee12d
Author: TEC 
Commit: TEC 

Add interactive commands for backends
---
 engrave-faces-latex.el | 13 +
 engrave-faces.el   | 24 
 2 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 5a3891e..5166309 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -91,15 +91,8 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
   (while (re-search-forward "\n\\([[:space:]]*\\)\\(}+\\)" nil t)
 (replace-match "\\2\n\\1")))
 
-;;;###autoload
-(engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper)
-(add-hook 'engrave-faces-latex-after-hook 
#'engrave-faces-latex-post-processing)
-
-;;;###autoload
-(defun engrave-faces-latex-buffer-standalone ()
+(defun engrave-faces-latex-make-standalone ()
   "Export current buffer to a standalone LaTeX buffer."
-  (interactive)
-  (switch-to-buffer (engrave-faces-latex-buffer))
   (goto-char (point-min))
   (insert "\\documentclass{article}
 
@@ -117,5 +110,9 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
   (insert "\\end{Verbatim}
 \\end{document}"))
 
+;;;###autoload
+(engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper 
#'engrave-faces-latex-make-standalone #'latex-mode)
+(add-hook 'engrave-faces-latex-after-hook 
#'engrave-faces-latex-post-processing)
+
 (provide 'engrave-faces-latex)
 ;;; engrave-faces-latex.el ends here
diff --git a/engrave-faces.el b/engrave-faces.el
index a6014c9..8146fc2 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -42,12 +42,28 @@
 (defvar engrave-faces--backends nil)
 
 ;;;###autoload
-(defmacro engrave-faces-define-backend (name extension face-transformer)
+(defmacro engrave-faces-define-backend (name extension face-transformer 
&optional standalone-transformer view-setup)
   `(progn (add-to-list 'engrave-faces--backends
(list ,name :face-transformer ,face-transformer 
:extension ,extension))
-  (defun ,(intern (concat "engrave-faces-" name "-buffer")) ()
-,(concat "Convert buffer to " name " formatting")
-(engrave-faces-buffer-1 ,name))
+  (defun ,(intern (concat "engrave-faces-" name "-buffer")) (&optional 
switch-to-result)
+,(concat "Convert buffer to " name " formatting.")
+(interactive '(t))
+(let ((buf (engrave-faces-buffer ,name)))
+  (when switch-to-result
+(switch-to-buffer buf)
+,(when view-setup `(funcall ,view-setup)))
+  buf))
+  ,(when standalone-transformer
+ `(defun ,(intern (concat "engrave-faces-" name 
"-buffer-standalone")) (&optional switch-to-result)
+(interactive '(t))
+,(concat "Export the current buffer to a standalone " name " 
buffer.")
+(let ((buf (engrave-faces-buffer ,name)))
+  (with-current-buffer buf
+(funcall ,standalone-transformer))
+  (when switch-to-result
+(switch-to-buffer buf)
+,(when view-setup `(funcall ,view-setup)))
+  buf)))
   (defvar ,(intern (concat "engrave-faces-" name "-before-hook")) nil)
   (defvar ,(intern (concat "engrave-faces-" name "-after-hook")) nil)))
 



[elpa] externals/engrave-faces b6d31d8 14/36: Account for multiple inherited faces

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit b6d31d8ca0a5f323e1685f7761cff82efcbcd690
Author: TEC 
Commit: TEC 

Account for multiple inherited faces
---
 engrave-faces.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 9dd559f..5d52634 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -137,7 +137,8 @@ I.e. ([facea :inherit faceb] facec) results in (facea faceb 
facec)"
  (cons face
(let ((inherit (face-attribute face :inherit nil 
nil)))
  (when (and inherit (not (eq inherit 
'unspecified)))
-   (engrave-faces-explicit-inheritance (list 
inherit))
+   (engrave-faces-explicit-inheritance
+(if (listp inherit) inherit (list 
inherit)))
faces)))
 
 (defun engrave-faces-attribute-values (faces attribute)



[elpa] externals/engrave-faces c5c83ef 08/36: Fix invalid docstring in macro, remove unused func

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit c5c83ef42742315230b656b82c95db97fe6bc335
Author: TEC 
Commit: TEC 

Fix invalid docstring in macro, remove unused func
---
 engrave-faces.el | 12 +---
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index a92dd60..331a48e 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -43,21 +43,11 @@
   `(progn (add-to-list 'engrave-faces--backends
(list ,name :face-transformer ,face-transformer 
:extension ,extension))
   (defun ,(intern (concat "engrave-faces-" name "-buffer")) ()
-(concat "Convert buffer to " ,name " formatting")
+,(concat "Convert buffer to " name " formatting")
 (engrave-faces-buffer-1 ,name))
   (defvar ,(intern (concat "engrave-faces-" name "-before-hook")) nil)
   (defvar ,(intern (concat "engrave-faces-" name "-after-hook")) nil)))
 
-(defun engrave-faces-region-for-paste (beg end)
-  "Convert the region between BEG and END to ANSI."
-  (let ((engraved-buf (save-restriction
-(narrow-to-region beg end)
-(engrave-faces-buffer-1
-(unwind-protect
-(with-current-buffer engraved-buf
-  (buffer-string))
-  (kill-buffer engraved-buf
-
 (defvar engrave-faces-attributes-of-interest
   '(:foreground :background :slant :weight :height :strike-through)
   "Attributes which sould be paid attention to.")



[elpa] externals/engrave-faces 4ef39b1 10/36: Improve handling of face inheritance.

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 4ef39b1a06d96695e6824b14517eadb67fbce462
Author: TEC 
Commit: TEC 

Improve handling of face inheritance.

Now if a face inherits from a face with explicit styling, that explicit
styling is used instead of the current styling of the inherited face.
---
 engrave-faces.el | 40 
 1 file changed, 28 insertions(+), 12 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index f64d81c..e51f079 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -121,20 +121,36 @@ output.")
   (run-hooks (intern (concat "engrave-faces-" backend "-after-hook"
 engraved-buf
 
-(defun engrave-faces-merge-attributes (faces)
+(defun engrave-faces-merge-attributes (faces &optional attributes)
+  "Find the final ATTRIBUTES for text with FACES."
+  (setq faces (engrave-faces-explicit-inheritance faces))
   (apply #'append
  (mapcar (lambda (attr)
-   (list attr
- (car
-  (delq nil
-(delq 'unspecified
-  (mapcar (lambda (face)
-(or (plist-get (cdr (assoc 
face engrave-faces-preset-styles)) attr)
-(cond
- ((symbolp face) 
(face-attribute face attr nil t))
- ((listp face) (plist-get 
face attr)
-  (delq 'default (if (listp faces) 
faces (list faces)
- engrave-faces-attributes-of-interest)))
+   (list attr (car (engrave-faces-attribute-values faces 
attr
+ (or attributes engrave-faces-attributes-of-interest
+
+(defun engrave-faces-explicit-inheritance (faces)
+  "Expand :inherit for each face in FACES.
+I.e. ([facea :inherit faceb] facec) results in (facea faceb facec)"
+  (apply #'append (mapcar
+   (lambda (face)
+ (cons face
+   (let ((inherit (face-attribute face :inherit nil 
nil)))
+ (when (and inherit (not (eq inherit 
'unspecified)))
+   (engrave-faces-explicit-inheritance (list 
inherit))
+   faces)))
+
+(defun engrave-faces-attribute-values (faces attribute)
+  "Fetch all specified instances of ATTRIBUTE for FACES, ignoring inheritence.
+To consider inheritence, use `engrave-faces-explicit-inheritance' first."
+  (delq nil (delq 'unspecified
+  (mapcar
+   (lambda (face)
+ (or (plist-get (cdr (assoc face 
engrave-faces-preset-styles)) attribute)
+ (cond
+  ((symbolp face) (face-attribute face attribute nil 
nil))
+  ((listp face) (plist-get face attribute)
+   (delq 'default (if (listp faces) faces (list faces)))
 
 (defun engrave-faces-next-face-change (pos &optional limit)
   ;; (engrave-faces-next-change pos 'face limit) would skip over entire



[elpa] externals/engrave-faces 69f0e59 22/36: New backend: HTML

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 69f0e59e6f4594f82c1e08d6485f0b5e5aeb9efb
Author: TEC 
Commit: TEC 

New backend: HTML
---
 README.org|   2 +-
 engrave-faces-html.el | 130 ++
 2 files changed, 131 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index 7c8f771..82efd86 100644
--- a/README.org
+++ b/README.org
@@ -19,5 +19,5 @@ I fully expect some important items to have been forgotten.
 
 *Included backends*
 - [X] LaTeX
-- [ ] HTML
+- [X] HTML
 - [X] ANSI
diff --git a/engrave-faces-html.el b/engrave-faces-html.el
new file mode 100644
index 000..bb8ea22
--- /dev/null
+++ b/engrave-faces-html.el
@@ -0,0 +1,130 @@
+;;; engrave-faces-html.el --- Support for engraving buffers to HTML -*- 
lexical-binding: t; -*-
+
+;; This file is part of engrave-faces.
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;;; Commentary:
+
+;; Support for engraving buffers to HTML.
+
+;;; Code:
+
+(require 'engrave-faces)
+
+(defcustom engrave-faces-html-output-style 'preset
+  "How to encode HTML style information.
+When nil, all face properties are applied via inline styles.
+When preset, CSS classes are generated for `engrave-faces-preset-styles'."
+  :type '(choice nil preset)
+  :group 'engrave-faces)
+
+(defcustom engrave-faces-html-class-prefix "ef-"
+  "Prefix to use when generating CSS class names."
+  :type 'string
+  :group 'engrave-faces)
+
+(defun engrave-faces-html-gen-stylesheet (&optional indent)
+  "Generate a preamble which provides short commands for the preset styles.
+See `engrave-faces-preset-styles' and `engrave-faces-html-output-style'."
+  (let ((stylesheet
+ (mapconcat
+  (lambda (face-style)
+(engrave-faces-html-gen-stylesheet-entry (car face-style) (cdr 
face-style)))
+  engrave-faces-preset-styles
+  "\n")))
+(if indent
+(mapconcat (lambda (line)
+ (concat indent line))
+   (split-string stylesheet "\n")
+   "\n")
+  stylesheet)))
+
+(defun engrave-faces-html-gen-stylesheet-entry (face style)
+  "Generate a HTML preamble line for STYLE representing FACE."
+  (concat "." engrave-faces-html-class-prefix (plist-get style :slug)
+  " {\n  "
+  (engrave-faces-html-gen-style-css style "\n  ")
+  " }"))
+
+(defun engrave-faces-html-gen-style-css (attrs seperator)
+  "Compose the relevant CSS styles to apply compatible ATTRS, seperated by 
SEPERATOR."
+  (let ((fg(plist-get attrs  :foreground))
+(bg(plist-get attrs  :background))
+(st(plist-get attrs  :strike-through))
+(ul(plist-get attrs  :underline))
+(it(eql (plist-get attrs :slant) 'italic))
+(wt(plist-get attrs  :weight)))
+(mapconcat
+ #'identity
+ (delq nil
+   (list
+(when fg (format "color: %s;" fg))
+(when bg (format "background-color: %s;" bg))
+(when st "text-decoration: line-through;")
+(when ul "text-decoration: underline;")
+(when it "text-decoration: italic;")
+(when wt (format "font-weight: %s;" wt
+ seperator)))
+
+(defun engrave-faces-html-face-apply (faces content)
+  (let ((attrs (engrave-faces-merge-attributes faces)))
+(concat ""
+content "")))
+
+(defun engrave-faces-html-protect-string (str)
+  (replace-regexp-in-string
+   "<" "<"
+   (replace-regexp-in-string
+">" ">"
+(replace-regexp-in-string
+ "&" "&"
+ str
+
+(defun engrave-faces-html-face-mapper (faces content)
+  "Create a HTML representation of CONTENT With FACES applied."
+  (let ((protected-content (engrave-faces-html-protect-string content))
+(style (unless (eq faces 'default) (assoc faces 
engrave-faces-preset-styles
+(if (string-match-p "\\`[\n[:space:]]+\\'" content)
+protected-content
+  (if (and style (eq engrave-faces-html-output-style 'preset))
+  (concat ""
+  protected-content "")
+(engrave-faces-html-face-apply faces protected-content)
+
+(defun engrave-faces-html-make-standalone ()
+  "Export current buffer to a standalone LaTeX buffer."
+  (goto-char (point-min))
+  (insert "
+
+  
+
+"
+  (engrave-faces-html-protect-string (if (buffer-file-name)
+ (file-name-nondirectory 
(buffer-file-name))
+   (buffer-name)))
+  "
+
+  pre {
+font-size: 1rem;
+max-width: min(100rem, 100%);
+width: max-content;
+white-space: pre-wrap;
+margin: auto; }\n"
+  (engrave-faces-html-gen-stylesheet "  ")
+  "
+
+  
+  
+\n")
+  (goto-char (point-max))
+  (insert "
+
+  
+"))
+
+;;;###autoload
+(engrave-faces-define-backend "html" ".html" #'engrave-faces-html-face-mapper 
#'engrave-faces-html-make-

[elpa] externals/engrave-faces 3b3dda6 19/36: Improve docstrings and add some defcustoms

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 3b3dda6dd225539b067a83d1d832ed5259af2eb1
Author: TEC 
Commit: TEC 

Improve docstrings and add some defcustoms
---
 engrave-faces-latex.el | 17 +-
 engrave-faces.el   | 60 +++---
 2 files changed, 49 insertions(+), 28 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 0ea2355..5a3891e 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -11,11 +11,17 @@
 
 (require 'engrave-faces)
 
-(defvar engrave-faces-latex-output-style 'preset
-  "TODO")
+(defcustom engrave-faces-latex-output-style 'preset
+  "How to encode LaTeX style information.
+When nil, all face properties are applied via \\colorbox, \\textcolor,
+\\textbf, etc. each time.
+When preset, short commands are generated for `engrave-faces-preset-styles'."
+  :type '(choice nil preset)
+  :group 'engrave-faces)
 
 (defun engrave-faces-latex-gen-preamble ()
-  "TODO"
+  "Generate a preamble which provides short commands for the preset styles.
+See `engrave-faces-preset-styles' and `engrave-faces-latex-output-style'."
   (mapconcat
(lambda (face-style)
  (engrave-faces-latex-gen-preamble-line (car face-style) (cdr face-style)))
@@ -23,6 +29,7 @@
"\n"))
 
 (defun engrave-faces-latex-gen-preamble-line (face style)
+  "Generate a LaTeX preamble line for STYLE representing FACE."
   (let ((short (plist-get style :slug))
 (fg(plist-get style :foreground))
 (bg(plist-get style :background))
@@ -40,7 +47,7 @@
 " % " (symbol-name face
 
 (defun engrave-faces-latex-face-apply (faces content)
-  "TODO"
+  "Convert each (compatable) parameter of FACES to a LaTeX command apllied to 
CONTENT."
   (let ((attrs (engrave-faces-merge-attributes faces)))
 (let ((bg (plist-get attrs :background))
   (fg (plist-get attrs :foreground))
@@ -55,7 +62,7 @@
(when bg "}") (when fg "}") (when st "}") (when bl "}") (when it 
"}")
 
 (defun engrave-faces-latex-face-mapper (faces content)
-  "TODO"
+  "Create a LaTeX representation of CONTENT With FACES applied."
   (let ((protected-content (replace-regexp-in-string "[\\{}$%&_#]" "\\&" 
content))
 (style (unless (eq faces 'default) (assoc faces 
engrave-faces-preset-styles
 (if (string-match-p "\\`[\n[:space:]]+\\'" content)
diff --git a/engrave-faces.el b/engrave-faces.el
index 2675100..a6014c9 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -51,25 +51,33 @@
   (defvar ,(intern (concat "engrave-faces-" name "-before-hook")) nil)
   (defvar ,(intern (concat "engrave-faces-" name "-after-hook")) nil)))
 
-(defvar engrave-faces-attributes-of-interest
+(defgroup engrave-faces nil
+  "Export buffers with font-lock information to other formats."
+  :group 'hypermedia)
+
+(defcustom engrave-faces-attributes-of-interest
   '(:foreground :background :slant :weight :height :strike-through)
-  "Attributes which sould be paid attention to.")
+  "Attributes which sould be paid attention to."
+  :type '(repeat symbol)
+  :group 'engrave-faces)
 
-(defvar engrave-faces-before-hook nil
-  "Hook run before htmlizing a buffer.
-The hook functions are run in the source buffer (not the resulting HTML
-buffer).")
+(defcustom engrave-faces-before-hook nil
+  "Hook run before engraving a buffer.
+The hook functions are run in the source buffer (not the resulting buffer)."
+  :type 'hook
+  :group 'engrave-faces)
 
-(defvar engrave-faces-after-hook nil
-  "Hook run after htmlizing a buffer.
+(defcustom engrave-faces-after-hook nil
+  "Hook run after engraving a buffer.
 Unlike `engrave-faces-before-hook', these functions are run in the generated
-HTML buffer.  You may use them to modify the outlook of the final HTML
-output.")
+buffer.  You may use them to modify the outlook of the final output."
+  :type 'hook
+  :group 'engrave-faces)
+
+(defun engrave-faces-buffer (backend)
+  "Export the current buffer with BACKEND and return the created buffer.
 
-(defun engrave-faces-buffer-1 (backend)
-  ;; Internal function; don't call it from outside this file.  Ansify
-  ;; current buffer, writing the resulting ANSI to a new buffer, and
-  ;; return it.
+This function is mostly lifted from htmlize."
   (save-excursion
 ;; Protect against the hook changing the current buffer.
 (save-excursion
@@ -92,13 +100,13 @@ output.")
   (completed nil))
   (unwind-protect
   (let (next-change text)
-;; This loop traverses and reads the source buffer, appending
-;; the resulting ANSI to ANSIBUF.  This method is fast
-;; because: 1) it doesn't require examining the text
-;; properties char by char (engrave-faces-next-face-change is used
-;; to move between runs with the same face), and 2) it doesn't
-;; require frequent buffer switches, which are slow because
-;; 

[elpa] externals/engrave-faces c2ad032 11/36: Allow .-merge-attributes to work with single face

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit c2ad032e384c4288ba62ca5bba65de2cf9612aa6
Author: TEC 
Commit: TEC 

Allow .-merge-attributes to work with single face

Instead of only accepting a list of faces.
---
 engrave-faces.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index e51f079..5b69c21 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -123,7 +123,7 @@ output.")
 
 (defun engrave-faces-merge-attributes (faces &optional attributes)
   "Find the final ATTRIBUTES for text with FACES."
-  (setq faces (engrave-faces-explicit-inheritance faces))
+  (setq faces (engrave-faces-explicit-inheritance (if (listp faces) faces 
(list faces
   (apply #'append
  (mapcar (lambda (attr)
(list attr (car (engrave-faces-attribute-values faces 
attr



[elpa] externals/engrave-faces 93fc726 03/36: Check preset faces when merging

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 93fc726a0a01f24146eb9a1fc4a1891fe797b953
Author: TEC 
Commit: TEC 

Check preset faces when merging
---
 engrave-faces.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 4af0fdb..03cbdbf 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -135,7 +135,9 @@ output.")
   (delq nil
 (delq 'unspecified
   (mapcar (lambda (face)
-(face-attribute face attr nil 
t))
+(or
+ (plist-get (cdr (assoc face 
engrave-faces-preset-styles)) attr)
+ (face-attribute face attr nil 
t)))
   (delq 'default (if (listp faces) 
faces (list faces)
  engrave-faces-attributes-of-interest)))
 



[elpa] externals/engrave-faces ccebbdd 18/36: Add the org-block face to the preset, improve doc

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit ccebbdda0c3f8b5c6e5857bdd7f5a49d4739c904
Author: TEC 
Commit: TEC 

Add the org-block face to the preset, improve doc
---
 engrave-faces.el | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 23b2562..2675100 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -201,6 +201,7 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
 (font-lock-comment-delimiter-face:short "comment-delim":slug "cd"  
  :foreground "#9ca0a4")
 (font-lock-regexp-grouping-construct :short "regexp"   :slug "rc"  
  :foreground "#4078f2" :weight bold)
 (font-lock-regexp-grouping-backslash :short "regexp-backslash" :slug "rb"  
  :foreground "#4078f2" :weight bold)
+(org-block   :short "org-block":slug "ob") 
; forcing no background is preferable
 (highlight-numbers-number:short "number"   :slug "hn"  
  :foreground "#da8548" :weight bold)
 (highlight-quoted-quote  :short "qquote"   :slug "hq"  
  :foreground "#4078f2")
 (highlight-quoted-symbol :short "qsymbol"  :slug "hs"  
  :foreground "#986801")
@@ -213,7 +214,15 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
 (rainbow-delimiters-depth-7-face :short "rd7"  :slug 
"rdvii" :foreground "#4db5bd")
 (rainbow-delimiters-depth-8-face :short "rd8"  :slug 
"rdiix" :foreground "#80a880")
 (rainbow-delimiters-depth-9-face :short "rd9"  :slug 
"rdix"  :foreground "#887070"))
-  "TODO")
+  "Overriding face values.
+
+By setting :foreground, :background, etc. a certain theme can be set for
+the faces.  The face attributes here will also be used when calculating
+inherited styles.
+
+Faces here will represented more compactly when possible, by using the
+:short or :slug parameter to produce a named version styles, wheras other
+faces will need to be explicitly styled each time they're used.")
 
 (defun engrave-faces-check-nondefault (attr value)
   (unless (or (eq value (face-attribute 'default attr nil t))



[elpa] externals/engrave-faces 8b5e1fc 29/36: Move copyright to the FSF

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 8b5e1fc45fed9ff2ae4b4ac6d50fb8856fc6b2e7
Author: TEC 
Commit: TEC 

Move copyright to the FSF
---
 LICENCE| 4 ++--
 engrave-faces-ansi.el  | 2 ++
 engrave-faces-html.el  | 2 ++
 engrave-faces-latex.el | 2 ++
 engrave-faces.el   | 2 +-
 5 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/LICENCE b/LICENCE
index 38eeb45..ac75458 100644
--- a/LICENCE
+++ b/LICENCE
@@ -632,7 +632,7 @@ state the exclusion of warranty; and each file should have 
at least
 the "copyright" line and a pointer to where the full notice is found.
 
 Convert font-lock faces to other formats.
-Copyright (C) 2021 TEC
+Copyright (C) 2021 Free Software Foundation, Inc.
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -652,7 +652,7 @@ Also add information on how to contact you by electronic 
and paper mail.
 If the program does terminal interaction, make it output a short
 notice like this when it starts in an interactive mode:
 
-Engrave Faces  Copyright (C) 2021 TEC
+Engrave Faces  Copyright (C) 2021 Free Software Foundation, Inc.
 This program comes with ABSOLUTELY NO WARRANTY; for details type Symbol’s 
value as variable is void: showshow c' for details.
 
 The hypothetical commands Symbol’s value as variable is void: showshow c' 
should show the appropriate
diff --git a/engrave-faces-ansi.el b/engrave-faces-ansi.el
index 4663256..17b987f 100644
--- a/engrave-faces-ansi.el
+++ b/engrave-faces-ansi.el
@@ -1,5 +1,7 @@
 ;;; engrave-faces-ansi.el --- Support for engraving buffers to LaTeX -*- 
lexical-binding: t; -*-
 
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
 ;; This file is part of engrave-faces.
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index 3190892..9a60cbc 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -1,5 +1,7 @@
 ;;; engrave-faces-html.el --- Support for engraving buffers to HTML -*- 
lexical-binding: t; -*-
 
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
 ;; This file is part of engrave-faces.
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 29c208b..0e116a7 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -1,5 +1,7 @@
 ;;; engrave-faces-latex.el --- Support for engraving buffers to LaTeX -*- 
lexical-binding: t; -*-
 
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
 ;; This file is part of engrave-faces.
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
diff --git a/engrave-faces.el b/engrave-faces.el
index 8a681bb..60bf438 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -1,6 +1,6 @@
 ;;; engrave-faces.el --- Convert font-lock faces to other formats -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021 TEC
+;; Copyright (C) 2021 Free Software Foundation, Inc.
 
 ;; Author: TEC 
 ;; Maintainer: TEC 



[elpa] externals/engrave-faces e22391c 35/36: latex: refactor initial \color string insertion

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit e22391c36538b820461411eefe5b6955f730997c
Author: TEC 
Commit: TEC 

latex: refactor initial \color string insertion
---
 engrave-faces-latex.el | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 0e116a7..4e69cca 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -81,9 +81,10 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
 (defun engrave-faces-latex-post-processing ()
   (goto-char (point-min))
   (insert
-   (if (eq engrave-faces-latex-output-style 'preset)
-   (format "\\color{EF%s}" (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles)) :slug))
- "\\color[HTML]{" (substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles)) :foreground) 1) "}"))
+   (let ((style (cdr (assoc 'default engrave-faces-preset-styles
+ (if (eq engrave-faces-latex-output-style 'preset)
+   (format "\\color{EF%s}" (plist-get style :slug))
+   (concat "\\color[HTML]{" (substring (plist-get style :foreground) 1) 
"}"
   (dolist (find-sub engrave-faces-latex-char-replacements)
 (goto-char (point-min))
 (while (search-forward (car find-sub) nil t)



[elpa] externals/engrave-faces 3f7c5d5 04/36: Fix homepage url

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 3f7c5d54231a43865ffe2ef76722ce8f04cdefa9
Author: TEC 
Commit: TEC 

Fix homepage url
---
 engrave-faces.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 03cbdbf..6b82605 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -8,7 +8,7 @@
 ;; Modified: January 18, 2021
 ;; Version: 0.0.1
 ;; Keywords: faces
-;; Homepage: https://github.com/tec/engrave-faces
+;; Homepage: https://github.com/tecosaur/engrave-faces
 ;; Package-Requires: ((emacs "27.1"))
 
 ;;; License:



[elpa] externals/engrave-faces 1f68496 27/36: LaTeX: use named colour for fg when possible

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 1f68496edd26c7c84ce18cf5adf46aa452af6f2b
Author: TEC 
Commit: TEC 

LaTeX: use named colour for fg when possible
---
 engrave-faces-latex.el | 9 -
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 5166309..29c208b 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -78,11 +78,10 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
 
 (defun engrave-faces-latex-post-processing ()
   (goto-char (point-min))
-  (when (eq engrave-faces-latex-output-style 'preset)
-(insert "\\color[HTML]{"
-(substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles))
-  :foreground) 1)
-"}"))
+  (insert
+   (if (eq engrave-faces-latex-output-style 'preset)
+   (format "\\color{EF%s}" (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles)) :slug))
+ "\\color[HTML]{" (substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles)) :foreground) 1) "}"))
   (dolist (find-sub engrave-faces-latex-char-replacements)
 (goto-char (point-min))
 (while (search-forward (car find-sub) nil t)



[elpa] externals/engrave-faces 1d73b8e 23/36: Fix inaccurate comments

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 1d73b8ed7b4603bf57b0d3a272660c8d34d94339
Author: TEC 
Commit: TEC 

Fix inaccurate comments
---
 engrave-faces-html.el |  2 +-
 engrave-faces.el  | 16 +++-
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index bb8ea22..10987ca 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -93,7 +93,7 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
 (engrave-faces-html-face-apply faces protected-content)
 
 (defun engrave-faces-html-make-standalone ()
-  "Export current buffer to a standalone LaTeX buffer."
+  "Export current buffer to a standalone HTML buffer."
   (goto-char (point-min))
   (insert "
 
diff --git a/engrave-faces.el b/engrave-faces.el
index 8146fc2..6bf9640 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -5,28 +5,28 @@
 ;; Author: TEC 
 ;; Maintainer: TEC 
 ;; Created: January 18, 2021
-;; Modified: January 18, 2021
-;; Version: 0.0.1
+;; Modified: July 10, 2021
+;; Version: 0.1.0
 ;; Keywords: faces
 ;; Homepage: https://github.com/tecosaur/engrave-faces
 ;; Package-Requires: ((emacs "27.1"))
 
 ;;; License:
 
-;; This file is part of org-pandoc-import, which is not part of GNU Emacs.
+;; This file is part of engrave-faces, which is not part of GNU Emacs.
 ;;
-;; org-pandoc-import is free software: you can redistribute it and/or modify
+;; engrave-faces is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation, either version 3 of the License, or
 ;; (at your option) any later version.
 ;;
-;; org-pandoc-import is distributed in the hope that it will be useful,
+;; engrave-faces is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 ;;
 ;; You should have received a copy of the GNU General Public License
-;; along with org-pandoc-import.  If not, see .
+;; along with engrave-faces.  If not, see .
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
@@ -91,9 +91,7 @@ buffer.  You may use them to modify the outlook of the final 
output."
   :group 'engrave-faces)
 
 (defun engrave-faces-buffer (backend)
-  "Export the current buffer with BACKEND and return the created buffer.
-
-This function is mostly lifted from htmlize."
+  "Export the current buffer with BACKEND and return the created buffer."
   (save-excursion
 ;; Protect against the hook changing the current buffer.
 (save-excursion



[elpa] externals/engrave-faces 97c9ad7 25/36: When style is missing attribute, don't check face

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 97c9ad784afc3e9c7c5b21bfc566f8ddf9ba8f83
Author: TEC 
Commit: TEC 

When style is missing attribute, don't check face

Otherwise you can get a weird mix of properties.
---
 engrave-faces.el | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index e173ffb..01f187f 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -205,10 +205,11 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
   (delq nil (delq 'unspecified
   (mapcar
(lambda (face)
- (or (plist-get (cdr (assoc face 
engrave-faces-preset-styles)) attribute)
- (cond
-  ((symbolp face) (face-attribute face attribute nil 
nil))
-  ((listp face) (plist-get face attribute)
+ (if-let ((style (cdr (assoc face 
engrave-faces-preset-styles
+ (plist-get style attribute)
+   (cond
+((symbolp face) (face-attribute face attribute nil 
nil))
+((listp face) (plist-get face attribute)
(delq 'default (if (listp faces) faces (list faces)))
 
 (defun engrave-faces-next-face-change (pos &optional limit)



[elpa] externals/engrave-faces e063673 32/36: html: add support for weight and height

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit e063673cf6896a902d17386cf425a39090119a11
Author: TEC 
Commit: TEC 

html: add support for weight and height
---
 engrave-faces-html.el | 19 +--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index d4ce0fc..ee32412 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -56,7 +56,8 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
 (st(plist-get attrs  :strike-through))
 (ul(plist-get attrs  :underline))
 (it(eql (plist-get attrs :slant) 'italic))
-(wt(plist-get attrs  :weight)))
+(wt(plist-get attrs  :weight))
+(ht(plist-get attrs  :height)))
 (mapconcat
  #'identity
  (delq nil
@@ -66,9 +67,23 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
 (when st "text-decoration: line-through;")
 (when ul "text-decoration: underline;")
 (when it "text-decoration: italic;")
-(when wt (format "font-weight: %s;" wt
+(when wt (format "font-weight: %s;" (engrave-faces-html-css-weight 
wt)))
+(when (and ht (floatp ht)) (format "font-size: %sem" ht
  seperator)))
 
+(defun engrave-faces-html-css-weight (weight)
+  (pcase weight
+('ultra-light 100) ('extra-light 100)
+('light 200) ('thin 200)
+('semi-light 300)
+('book 400) ('normal 400) ('regular 400)
+('medium 500)
+('semi-bold 600) ('demi-bold 600)
+('bold 700)
+('extra-bold 800)
+('heavy 900) ('ultra-bold 900)
+('black 950)))
+
 (defun engrave-faces-html-face-apply (faces content)
   (let ((attrs (engrave-faces-merge-attributes faces)))
 (concat ""



[elpa] externals/engrave-faces aaa030a 07/36: Add licence

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit aaa030a514e9e55f41e3f02824cb7fd6103d5d62
Author: TEC 
Commit: TEC 

Add licence
---
 LICENCE | 672 
 1 file changed, 672 insertions(+)

diff --git a/LICENCE b/LICENCE
new file mode 100644
index 000..38eeb45
--- /dev/null
+++ b/LICENCE
@@ -0,0 +1,672 @@
+GNU GENERAL PUBLIC LICENSE
+Version 3, 29 June 2007
+
+Copyright (C) 2007 Free Software Foundation, Inc. 
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+Preamble
+
+The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+TERMS AND CONDITIONS
+
+0. Definitions.
+
+"This License" refers to version 3 of the GNU General Public License.
+
+"Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+"The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modif

[elpa] externals/engrave-faces 4e6026e 21/36: New backend: ANSI

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 4e6026e1e8ef4e785ed57c72db4961248b4ad08f
Author: TEC 
Commit: TEC 

New backend: ANSI
---
 README.org|   2 +-
 engrave-faces-ansi.el | 167 ++
 2 files changed, 168 insertions(+), 1 deletion(-)

diff --git a/README.org b/README.org
index d4c1428..7c8f771 100644
--- a/README.org
+++ b/README.org
@@ -20,4 +20,4 @@ I fully expect some important items to have been forgotten.
 *Included backends*
 - [X] LaTeX
 - [ ] HTML
-- [ ] ANSI
+- [X] ANSI
diff --git a/engrave-faces-ansi.el b/engrave-faces-ansi.el
new file mode 100644
index 000..4663256
--- /dev/null
+++ b/engrave-faces-ansi.el
@@ -0,0 +1,167 @@
+;;; engrave-faces-ansi.el --- Support for engraving buffers to LaTeX -*- 
lexical-binding: t; -*-
+
+;; This file is part of engrave-faces.
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;;; Commentary:
+
+;; Support for engraving buffers to LaTeX.
+
+;;; Code:
+
+(require 'engrave-faces)
+
+(defcustom engrave-faces-ansi-color-mode '8-bit
+  "The ansi escape mode set to use.
+This accepts both n-bit and m-color forms.
+Possible values are:
+- `3-bit'  (`8-color')
+- `4-bit'  (`16-color')
+- `8-bit'  (`256-color')
+- `24-bit' (`16m-color')"
+  :type '(choice
+  (const 3-bit)
+  (const 4-bit)
+  (const 8-bit)
+  (const 24-bit))
+  :group 'engrave-faces)
+
+(defcustom engrave-faces-ansi-use-face-colours t
+  "Whether to apply face colours"
+  :group 'engrave-faces)
+
+(defvar engrave-faces-ansi-face-nesting nil)
+
+(defun engrave-faces-ansi-code (attrs)
+  "Genrerate ANSI commands which apply ATTRS to the succeeding text."
+  (concat
+   (when (member (plist-get attrs :weight) '(bold extra-bold)) "\uE000[1m")
+   (when (eq 'italic (plist-get attrs :slant)) "\uE000[3m")
+   (when (eq t (plist-get attrs :underline)) "\uE000[4m")
+   (when (and engrave-faces-ansi-use-face-colours
+  (plist-get attrs :foreground))
+ (engrave-faces-ansi-color-to-ansi
+  (plist-get attrs :foreground)))
+   (when (and engrave-faces-ansi-use-face-colours
+  (plist-get attrs :background))
+ (engrave-faces-ansi-color-to-ansi
+  (plist-get attrs :background) t
+
+; Color conversion
+
+(defun engrave-faces-ansi-color-to-ansi (color &optional background)
+  (if (eq color 'unspecified) nil
+(apply (pcase engrave-faces-ansi-color-mode
+ ((or '3-bit '8-color) #'engrave-faces-ansi-color-3bit-code)
+ ((or '4-bit '16-color) #'engrave-faces-ansi-color-4bit-code)
+ ((or '8-bit '256-color) #'engrave-faces-ansi-color-8bit-code)
+ ((or '24-bit '16m-color) #'engrave-faces-ansi-color-24bit-code))
+   (append (mapcar (lambda (c) (/ c 257)) (color-values color)) (list 
background)
+
+(defun engrave-faces-ansi-color-dist-squared (reference rgb)
+  "Squared L2 distance between a REFERENCE and RBG values, each a list of 3 
values (r g b)."
+  (+ (* (nth 0 reference)
+(nth 0 rgb))
+ (* (nth 1 reference)
+(nth 1 rgb))
+ (* (nth 2 reference)
+(nth 2 rgb
+
+;; 3-bit / 8-color
+
+(defun engrave-faces-ansi-color-3bit-code (r g b &optional background)
+  "Convert the (R G B) colour code to a correspanding 4bit ansi escape 
sequence."
+  (format "\uE000[%sm"
+  (% (pcase (nth (engrave-faces-ansi-color-rbg-to-256 r g b)
+ engrave-faces-ansi-256-to-16-map)) 8)))
+
+;; 4-bit / 16-color
+
+(defvar engrave-faces-ansi-256-to-16-map
+  '(0   1  2  3  4  5  6  7  8  9 10 11 12 13 14 15
+0   4  4  4 12 12  2  6  4  4 12 12  2  2  6  4
+12 12  2  2  2  6 12 12 10 10 10 10 14 12 10 10
+10 10 10 14  1  5  4  4 12 12  3  8  4  4 12 12
+2   2  6  4 12 12  2  2  2  6 12 12 10 10 10 10
+14 12 10 10 10 10 10 14  1  1  5  4 12 12  1  1
+5   4 12 12  3  3  8  4 12 12  2  2  2  6 12 12
+10 10 10 10 14 12 10 10 10 10 10 14  1  1  1  5
+12 12  1  1  1  5 12 12  1  1  1  5 12 12  3  3
+3   7 12 12 10 10 10 10 14 12 10 10 10 10 10 14
+9   9  9  9 13 12  9  9  9  9 13 12  9  9  9  9
+13 12  9  9  9  9 13 12 11 11 11 11  7 12 10 10
+10 10 10 14  9  9  9  9  9 13  9  9  9  9  9 13
+9   9  9  9  9 13  9  9  9  9  9 13  9  9  9  9
+9  13 11 11 11 11 11 15  0  0  0  0  0  0  8  8
+8   8  8  8  7  7  7  7  7  7 15 15 15 15 15 15))
+
+(defun engrave-faces-ansi-color-4bit-code (r g b &optional background)
+  "Convert the (R G B) colour code to a correspanding 4bit ansi escape 
sequence."
+  (format "\uE000[%sm"
+  (pcase (nth (engrave-faces-ansi-color-rbg-to-256 r g b)
+  engrave-faces-ansi-256-to-16-map)
+((and (pred (> 8)) n)
+ (+ 30 (if background 10 0) n))
+(n
+ (format "1;%d" (+ 22 (if background 10 0) n))
+
+;; 8-bit / 256-color
+
+(defvar engrave-faces-ansi-color-6cube-values

[elpa] externals/engrave-faces e9a9b37 17/36: More face inheritance form edge cases

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit e9a9b374538285bcbc07bb0c147ca4476e2ef175
Author: TEC 
Commit: TEC 

More face inheritance form edge cases

I /think/ it should be all sorted now.
---
 engrave-faces.el | 23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index a6ba153..23b2562 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -36,8 +36,11 @@
 
 ;;; Code:
 
+(require 'map)
+
 ;;;###autoload
 (defvar engrave-faces--backends nil)
+
 ;;;###autoload
 (defmacro engrave-faces-define-backend (name extension face-transformer)
   `(progn (add-to-list 'engrave-faces--backends
@@ -131,14 +134,18 @@ output.")
 (defun engrave-faces-explicit-inheritance (faces)
   "Expand :inherit for each face in FACES.
 I.e. ([facea :inherit faceb] facec) results in (facea faceb facec)"
-  (apply #'append (mapcar
-   (lambda (face)
- (cons face
-   (let ((inherit (face-attribute face :inherit nil 
nil)))
- (when (and inherit (not (eq inherit 
'unspecified)))
-   (engrave-faces-explicit-inheritance
-(if (listp inherit) inherit (list 
inherit)))
-   faces)))
+  (delq nil
+(mapcan
+ (lambda (face)
+   (if (listp face)
+   (let ((inherit (plist-get face :inherit)))
+ (cons (map-delete face :inherit)
+   (engrave-faces-explicit-inheritance inherit)))
+ (cons face
+   (let ((inherit (face-attribute face :inherit nil nil)))
+ (when (and inherit (not (eq inherit 'unspecified)))
+   (engrave-faces-explicit-inheritance inherit))
+ (if (listp faces) faces (list faces)
 
 (defun engrave-faces-attribute-values (faces attribute)
   "Fetch all specified instances of ATTRIBUTE for FACES, ignoring inheritence.



[elpa] externals/engrave-faces 0cc9159 12/36: No longer set default face information separately

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 0cc9159956785078ddd8c66619a81c52f9a5182e
Author: TEC 
Commit: TEC 

No longer set default face information separately

This is now possible thanks to the earlier re-implementation of face
inheritance.
---
 engrave-faces-latex.el | 16 +++-
 engrave-faces.el   |  9 -
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 81c809f..76f8b16 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -16,13 +16,11 @@
 
 (defun engrave-faces-latex-gen-preamble ()
   "TODO"
-  (concat
-   "\\definecolor{EFD}{HTML}{" (substring (plist-get 
engrave-faces-preset-default :foreground) 1) "}\n"
-   (mapconcat
-(lambda (face-style)
-  (engrave-faces-latex-gen-preamble-line (car face-style) (cdr 
face-style)))
-engrave-faces-preset-styles
-"\n")))
+  (mapconcat
+   (lambda (face-style)
+ (engrave-faces-latex-gen-preamble-line (car face-style) (cdr face-style)))
+   engrave-faces-preset-styles
+   "\n"))
 
 (defun engrave-faces-latex-gen-preamble-line (face style)
   (let ((short (plist-get style :slug))
@@ -59,7 +57,7 @@
 (defun engrave-faces-latex-face-mapper (faces content)
   "TODO"
   (let ((protected-content (replace-regexp-in-string "[\\{}$%&_#]" "\\&" 
content))
-(style (assoc faces engrave-faces-preset-styles)))
+(style (unless (eq faces 'default) (assoc faces 
engrave-faces-preset-styles
 (if (string-match-p "\\`[\n[:space:]]+\\'" content)
 protected-content
   (if (and style (eq engrave-faces-latex-output-style 'preset))
@@ -76,7 +74,7 @@
   (insert (if (eq engrave-faces-latex-output-style 'preset)
   "\\color{EFD}"
 (concat "\\color[HTML]{"
-(substring (plist-get (assoc 'default 
engrave-faces-preset-styles)
+(substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles))
   :foreground) 1)
 "}")))
   (dolist (find-sub engrave-faces-latex-char-replacements)
diff --git a/engrave-faces.el b/engrave-faces.el
index 5b69c21..9dd559f 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -178,7 +178,8 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
 ;;; Style helpers
 
 (defvar engrave-faces-preset-styles ; doom-one-light
-  '((font-lock-keyword-face  :short "keyword"  :slug "k"   
  :foreground "#e45649")
+  '((default :short "default"  :slug "D"   
  :foreground "#383a42")
+(font-lock-keyword-face  :short "keyword"  :slug "k"   
  :foreground "#e45649")
 (font-lock-doc-face  :short "doc"  :slug "d"   
  :foreground "#84888b" :slant italic)
 (font-lock-type-face :short "type" :slug "t"   
  :foreground "#986801")
 (font-lock-string-face   :short "string"   :slug "s"   
  :foreground "#50a14f")
@@ -207,9 +208,6 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
 (rainbow-delimiters-depth-9-face :short "rd9"  :slug 
"rdix"  :foreground "#887070"))
   "TODO")
 
-(defvar engrave-faces-preset-default '(:foreground "#383a42")
-  "TODO")
-
 (defun engrave-faces-check-nondefault (attr value)
   (unless (or (eq value (face-attribute 'default attr nil t))
   (eq value 'unspecified))
@@ -227,7 +225,8 @@ To consider inheritence, use 
`engrave-faces-explicit-inheritance' first."
   (mapcar
(lambda (attr)
  (let ((attr-val (face-attribute (car face-style) attr nil 
t)))
-   (when (engrave-faces-check-nondefault attr attr-val)
+   (when (or (engrave-faces-check-nondefault attr attr-val)
+ (eq (car face-style) 'default))
  (list attr attr-val
engrave-faces-attributes-of-interest
engrave-faces-preset-styles))



[elpa] externals/engrave-faces d4b95ce 16/36: Replace apply append with mapcan

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit d4b95cebdca1ec637c713c3abc8aa211c96d2978
Author: TEC 
Commit: TEC 

Replace apply append with mapcan
---
 engrave-faces.el | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 5d52634..a6ba153 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -124,10 +124,9 @@ output.")
 (defun engrave-faces-merge-attributes (faces &optional attributes)
   "Find the final ATTRIBUTES for text with FACES."
   (setq faces (engrave-faces-explicit-inheritance (if (listp faces) faces 
(list faces
-  (apply #'append
- (mapcar (lambda (attr)
-   (list attr (car (engrave-faces-attribute-values faces 
attr
- (or attributes engrave-faces-attributes-of-interest
+  (mapcan (lambda (attr)
+(list attr (car (engrave-faces-attribute-values faces attr
+  (or attributes engrave-faces-attributes-of-interest)))
 
 (defun engrave-faces-explicit-inheritance (faces)
   "Expand :inherit for each face in FACES.



[elpa] externals/engrave-faces 36320d5 34/36: Declare ansi-color-apply-on-region function

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 36320d571a03dfdd1d11a04ccd418f4be0b037f7
Author: TEC 
Commit: TEC 

Declare ansi-color-apply-on-region function
---
 engrave-faces-ansi.el | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/engrave-faces-ansi.el b/engrave-faces-ansi.el
index 17b987f..98a088f 100644
--- a/engrave-faces-ansi.el
+++ b/engrave-faces-ansi.el
@@ -163,6 +163,9 @@ are collateral damage from \"[0m\"."
   (while (re-search-forward "\uE000" nil t)
 (replace-match "\e")))
 
+(declare-function ansi-color-apply-on-region "ansi-color"
+  (begin end &optional preserve-sequences))
+
 ;;;###autoload
 (engrave-faces-define-backend "ansi" ".txt" #'engrave-faces-ansi-face-apply nil
   (lambda () (ansi-color-apply-on-region 
(point-min) (point-max) t)))



[elpa] externals/engrave-faces 14eddbe 13/36: LaTeX: Don't set colour at the start of a block

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 14eddbe96b12e30236d0086ce9743fec9aa8c03c
Author: TEC 
Commit: TEC 

LaTeX: Don't set colour at the start of a block

This is a poor approach as it doesn't persist over page breaks.
It's better to set the foreground colour in the definition for a
tcolorbox using the defined EFD (default foreground) colour.
---
 engrave-faces-latex.el | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 76f8b16..38d02da 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -71,12 +71,11 @@
 
 (defun engrave-faces-latex-post-processing ()
   (goto-char (point-min))
-  (insert (if (eq engrave-faces-latex-output-style 'preset)
-  "\\color{EFD}"
-(concat "\\color[HTML]{"
-(substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles))
-  :foreground) 1)
-"}")))
+  (when (eq engrave-faces-latex-output-style 'preset)
+(insert "\\color[HTML]{"
+(substring (plist-get (cdr (assoc 'default 
engrave-faces-preset-styles))
+  :foreground) 1)
+"}"))
   (dolist (find-sub engrave-faces-latex-char-replacements)
 (goto-char (point-min))
 (while (search-forward (car find-sub) nil t)



[elpa] externals/engrave-faces 581b594 33/36: html: apply background & foreground color to page

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 581b59461898515640216a21611729f6b4cce3a7
Author: TEC 
Commit: TEC 

html: apply background & foreground color to page
---
 engrave-faces-html.el | 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index ee32412..911f03f 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -123,9 +123,15 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
(buffer-name)))
   "
 

[elpa] externals/engrave-faces fdfaf14 30/36: Set the :group in defcustom statements

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit fdfaf141ed2b9808cba07194a6b476dac08ef936
Author: TEC 
Commit: TEC 

Set the :group in defcustom statements
---
 engrave-faces.el | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 60bf438..363e109 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -46,21 +46,21 @@
 (defcustom engrave-faces-attributes-of-interest
   '(:foreground :background :slant :weight :height :strike-through)
   "Attributes which sould be paid attention to."
-  :type '(repeat symbol)
-  :group 'engrave-faces)
+  :group 'engrave-faces
+  :type '(repeat symbol))
 
 (defcustom engrave-faces-before-hook nil
   "Hook run before engraving a buffer.
 The hook functions are run in the source buffer (not the resulting buffer)."
-  :type 'hook
-  :group 'engrave-faces)
+  :group 'engrave-faces
+  :type 'hook)
 
 (defcustom engrave-faces-after-hook nil
   "Hook run after engraving a buffer.
 Unlike `engrave-faces-before-hook', these functions are run in the generated
 buffer.  You may use them to modify the outlook of the final output."
-  :type 'hook
-  :group 'engrave-faces)
+  :group 'engrave-faces
+  :type 'hook)
 
 ;;;###autoload
 (defvar engrave-faces--backends nil)



[elpa] externals/engrave-faces 2fee4f7 24/36: Create engrave-faces-BACKEND-file command

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 2fee4f736a18f00dd97732f3f5b43d54d1bbe7ac
Author: TEC 
Commit: TEC 

Create engrave-faces-BACKEND-file command
---
 engrave-faces.el | 88 +---
 1 file changed, 59 insertions(+), 29 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 6bf9640..e173ffb 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -38,35 +38,6 @@
 
 (require 'map)
 
-;;;###autoload
-(defvar engrave-faces--backends nil)
-
-;;;###autoload
-(defmacro engrave-faces-define-backend (name extension face-transformer 
&optional standalone-transformer view-setup)
-  `(progn (add-to-list 'engrave-faces--backends
-   (list ,name :face-transformer ,face-transformer 
:extension ,extension))
-  (defun ,(intern (concat "engrave-faces-" name "-buffer")) (&optional 
switch-to-result)
-,(concat "Convert buffer to " name " formatting.")
-(interactive '(t))
-(let ((buf (engrave-faces-buffer ,name)))
-  (when switch-to-result
-(switch-to-buffer buf)
-,(when view-setup `(funcall ,view-setup)))
-  buf))
-  ,(when standalone-transformer
- `(defun ,(intern (concat "engrave-faces-" name 
"-buffer-standalone")) (&optional switch-to-result)
-(interactive '(t))
-,(concat "Export the current buffer to a standalone " name " 
buffer.")
-(let ((buf (engrave-faces-buffer ,name)))
-  (with-current-buffer buf
-(funcall ,standalone-transformer))
-  (when switch-to-result
-(switch-to-buffer buf)
-,(when view-setup `(funcall ,view-setup)))
-  buf)))
-  (defvar ,(intern (concat "engrave-faces-" name "-before-hook")) nil)
-  (defvar ,(intern (concat "engrave-faces-" name "-after-hook")) nil)))
-
 (defgroup engrave-faces nil
   "Export buffers with font-lock information to other formats."
   :group 'hypermedia)
@@ -90,6 +61,65 @@ buffer.  You may use them to modify the outlook of the final 
output."
   :type 'hook
   :group 'engrave-faces)
 
+;;;###autoload
+(defvar engrave-faces--backends nil)
+
+;;;###autoload
+(defmacro engrave-faces-define-backend (backend extension face-transformer 
&optional standalone-transformer view-setup)
+  "Create a new engraving backend BACKEND.
+EXTENSION is the extension which will be used when writing engraved files.
+FACE-TRANSFORMER is the all important function which can be called with a
+list of faces and some content to apply those faces to and generate an output
+string accordingly.
+Should a pre/postable make sense for complete files using BACKEND, a
+STANDALONE-TRANSFORMER may be defined which operates on a buffer which has been
+generated by `engrave-faces-buffer' and is called after hooks.
+If STANDALONE-TRANSFORMER is given it will be used when directly creating a 
file,
+and cause a -standalone version of the buffer transforming function to be 
created."
+  `(progn (add-to-list 'engrave-faces--backends
+   (list ,backend :face-transformer ,face-transformer 
:extension ,extension))
+  (defun ,(intern (concat "engrave-faces-" backend "-buffer")) 
(&optional switch-to-result)
+,(concat "Convert buffer to " backend " formatting.")
+(interactive '(t))
+(let ((buf (engrave-faces-buffer ,backend)))
+  (when switch-to-result
+(switch-to-buffer buf)
+,(when view-setup `(funcall ,view-setup)))
+  buf))
+  ,(when standalone-transformer
+ `(defun ,(intern (concat "engrave-faces-" backend 
"-buffer-standalone")) (&optional switch-to-result)
+(interactive '(t))
+,(concat "Export the current buffer to a standalone " backend 
" buffer.")
+(let ((buf (engrave-faces-buffer ,backend)))
+  (with-current-buffer buf
+(funcall ,standalone-transformer))
+  (when switch-to-result
+(switch-to-buffer buf)
+,(when view-setup `(funcall ,view-setup)))
+  buf)))
+  (defun ,(intern (concat "engrave-faces-" backend "-file")) (file 
&optional open-result)
+,(concat "Convert file to " backend " formatting.")
+(interactive (list buffer-file-name t))
+(let ((output-file (engrave-faces-file file ,extension ,backend 
,standalone-transformer)))
+  (when open-result (find-file output-file))
+  output-file))
+  (defvar ,(intern (concat "engrave-faces-" backend "-before-hook")) 
nil)
+  (defvar ,(intern (concat "engrave-faces-" backend "-after-hook")) 
nil)))
+
+(defun engrave-faces-file (file extension backend &optional postprocessor)
+  "Using BACKEND, engrave FILE and save it as FIL

[elpa] externals/engrave-faces 2b03748 26/36: html: set page bg to default face bg (if given)

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 2b03748a8cfef6dace551c4d43b72786bbdf0428
Author: TEC 
Commit: TEC 

html: set page bg to default face bg (if given)
---
 engrave-faces-html.el | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index 10987ca..3190892 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -104,7 +104,11 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
  (file-name-nondirectory 
(buffer-file-name))
(buffer-name)))
   "
-

[elpa] externals/engrave-faces 8bbaaf8 28/36: Missing subr-x requirement

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 8bbaaf853314fcdcc98383a05ae1313c901eaa5a
Author: TEC 
Commit: TEC 

Missing subr-x requirement
---
 engrave-faces.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/engrave-faces.el b/engrave-faces.el
index 01f187f..8a681bb 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -37,6 +37,7 @@
 ;;; Code:
 
 (require 'map)
+(require 'subr-x)
 
 (defgroup engrave-faces nil
   "Export buffers with font-lock information to other formats."



[elpa] externals/engrave-faces 67de75f 31/36: html: allow for css classes without a :slug

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 67de75f6ae2d165e7294cba3ff55ff97a12696e6
Author: TEC 
Commit: TEC 

html: allow for css classes without a :slug
---
 engrave-faces-html.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/engrave-faces-html.el b/engrave-faces-html.el
index 9a60cbc..d4ce0fc 100644
--- a/engrave-faces-html.el
+++ b/engrave-faces-html.el
@@ -43,7 +43,8 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-html-output-style'."
 
 (defun engrave-faces-html-gen-stylesheet-entry (face style)
   "Generate a HTML preamble line for STYLE representing FACE."
-  (concat "." engrave-faces-html-class-prefix (plist-get style :slug)
+  (concat "." engrave-faces-html-class-prefix (or (plist-get style :slug)
+  (symbol-name face))
   " {\n  "
   (engrave-faces-html-gen-style-css style "\n  ")
   " }"))



[elpa] externals/engrave-faces 95d25d4 36/36: minor refactor: face extraction from text property

2021-08-30 Thread ELPA Syncer
branch: externals/engrave-faces
commit 95d25d45b14c655a130c15a3b95280762de86ce6
Author: TEC 
Commit: TEC 

minor refactor: face extraction from text property

Use lexical scope when evaluating.
---
 engrave-faces.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/engrave-faces.el b/engrave-faces.el
index 363e109..541d4dd 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -163,8 +163,8 @@ If a POSTPROCESSOR function is provided, it is called 
before saving."
 (let ((prop (get-text-property (point) 'face)))
   (cond
((null prop) 'default)
-   ((and (listp prop)
- (eq (car prop) 'quote)) (eval prop))
+   ((and (listp prop) (eq (car prop) 'quote))
+(eval prop t))
(t prop)))
 text)
engraved-buf))



[elpa] externals/crdt updated (70ae7ba -> ceb2b98)

2021-08-30 Thread ELPA Syncer
elpasync pushed a change to branch externals/crdt.

  from  70ae7ba   Merge branch 'fix' into 'master'
   new  05713ba   Purge some dependencies.
   new  a1c235a   bump version number
   new  58cb983   Fix clone-indirect-buffer behavior
   new  ceb2b98   Merge branch 'fix' into 'master'


Summary of changes:
 crdt.el | 17 ++---
 1 file changed, 10 insertions(+), 7 deletions(-)



[elpa] externals/crdt 05713ba 1/4: Purge some dependencies.

2021-08-30 Thread ELPA Syncer
branch: externals/crdt
commit 05713ba8a3c0ee00766c286c8105b50b1c4419e2
Author: Qiantan Hong 
Commit: Qiantan Hong 

Purge some dependencies.
---
 crdt.el | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/crdt.el b/crdt.el
index 727e055..2c1822e 100644
--- a/crdt.el
+++ b/crdt.el
@@ -30,12 +30,10 @@
 
 ;;; Customs
 
-(require 'xdg)
+(require 'xdg nil t)
 (require 'cl-lib)
-(require 'subr-x)
 (require 'url)
 (require 'color)
-(require 'files)
 
 (defgroup crdt nil
   "Collaborative editing using Conflict-free Replicated Data Types."
@@ -65,7 +63,7 @@
   "Path to the tuntox binary."
   :type 'file)
 
-(defcustom crdt-tuntox-key-path (xdg-data-home)
+(defcustom crdt-tuntox-key-path (if (featurep 'xdg) (xdg-data-home) "~/")
   "Path to save tuntox's private key."
   :type 'directory)
 
@@ -1636,7 +1634,7 @@ Setup up the server with PASSWORD and assign this Emacs 
DISPLAY-NAME."
  :buffer (generate-new-buffer "*Tuntox Proxy*")
  :command
  `(,crdt-tuntox-executable
-   "-C" ,crdt-tuntox-key-path
+   "-C" ,(expand-file-name crdt-tuntox-key-path)
"-f" "/dev/stdin" ; do the filtering for safety 
sake
,@ (when (and password (> (length password) 0))
 `("-s" ,password))



[elpa] externals/crdt 58cb983 3/4: Fix clone-indirect-buffer behavior

2021-08-30 Thread ELPA Syncer
branch: externals/crdt
commit 58cb983a8df2bb9405623934d80dad932f454cc6
Author: Qiantan Hong 
Commit: Qiantan Hong 

Fix clone-indirect-buffer behavior

Disable crdt-mode entirely in the cloned buffer for now.
---
 crdt.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/crdt.el b/crdt.el
index 2a07b7e..458834c 100644
--- a/crdt.el
+++ b/crdt.el
@@ -351,7 +351,9 @@ Each element is of the form (CURSOR-OVERLAY . 
REGION-OVERLAY).")
 (before-change-functions . crdt--before-change)
 (post-command-hook . crdt--post-command)
 (deactivate-mark-hook . crdt--post-command)
-(kill-buffer-hook . crdt--kill-buffer-hook)))
+(kill-buffer-hook . crdt--kill-buffer-hook)
+(clone-buffer-hook . crdt--clone-buffer-hook)
+(clone-indirect-buffer-hook . crdt--clone-buffer-hook)))
 
 (defun crdt--install-hooks ()
   "Install the hooks used by CRDT-MODE."
@@ -399,6 +401,9 @@ Also set CRDT--PSEUDO-CURSOR-TABLE to NIL."
 (crdt--clear-pseudo-cursor-table)
 (setq crdt--overlay-table nil)))
 
+(defun crdt--clone-buffer-hook ()
+  (crdt-mode -1))
+
 ;;; Author visualization
 
 (defsubst crdt--visualize-author-1 (beg end site)



[elpa] externals/crdt a1c235a 2/4: bump version number

2021-08-30 Thread ELPA Syncer
branch: externals/crdt
commit a1c235a2e603c86a7f3dd197c51a715b47603e0c
Author: Qiantan Hong 
Commit: Qiantan Hong 

bump version number
---
 crdt.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crdt.el b/crdt.el
index 2c1822e..2a07b7e 100644
--- a/crdt.el
+++ b/crdt.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Qiantan Hong 
 ;; URL: https://code.librehq.com/qhong/crdt.el
 ;; Keywords: collaboration crdt
-;; Version: 0.1.2
+;; Version: 0.1.3
 
 ;; This file is part of GNU Emacs.
 



[elpa] externals/crdt ceb2b98 4/4: Merge branch 'fix' into 'master'

2021-08-30 Thread ELPA Syncer
branch: externals/crdt
commit ceb2b982922cd9829485db21abdb273b9e1fa98a
Merge: 70ae7ba 58cb983
Author: Qiantan Hong 
Commit: Qiantan Hong 

Merge branch 'fix' into 'master'

Fix

See merge request qhong/crdt.el!3
---
 crdt.el | 17 ++---
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/crdt.el b/crdt.el
index 727e055..458834c 100644
--- a/crdt.el
+++ b/crdt.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Qiantan Hong 
 ;; URL: https://code.librehq.com/qhong/crdt.el
 ;; Keywords: collaboration crdt
-;; Version: 0.1.2
+;; Version: 0.1.3
 
 ;; This file is part of GNU Emacs.
 
@@ -30,12 +30,10 @@
 
 ;;; Customs
 
-(require 'xdg)
+(require 'xdg nil t)
 (require 'cl-lib)
-(require 'subr-x)
 (require 'url)
 (require 'color)
-(require 'files)
 
 (defgroup crdt nil
   "Collaborative editing using Conflict-free Replicated Data Types."
@@ -65,7 +63,7 @@
   "Path to the tuntox binary."
   :type 'file)
 
-(defcustom crdt-tuntox-key-path (xdg-data-home)
+(defcustom crdt-tuntox-key-path (if (featurep 'xdg) (xdg-data-home) "~/")
   "Path to save tuntox's private key."
   :type 'directory)
 
@@ -353,7 +351,9 @@ Each element is of the form (CURSOR-OVERLAY . 
REGION-OVERLAY).")
 (before-change-functions . crdt--before-change)
 (post-command-hook . crdt--post-command)
 (deactivate-mark-hook . crdt--post-command)
-(kill-buffer-hook . crdt--kill-buffer-hook)))
+(kill-buffer-hook . crdt--kill-buffer-hook)
+(clone-buffer-hook . crdt--clone-buffer-hook)
+(clone-indirect-buffer-hook . crdt--clone-buffer-hook)))
 
 (defun crdt--install-hooks ()
   "Install the hooks used by CRDT-MODE."
@@ -401,6 +401,9 @@ Also set CRDT--PSEUDO-CURSOR-TABLE to NIL."
 (crdt--clear-pseudo-cursor-table)
 (setq crdt--overlay-table nil)))
 
+(defun crdt--clone-buffer-hook ()
+  (crdt-mode -1))
+
 ;;; Author visualization
 
 (defsubst crdt--visualize-author-1 (beg end site)
@@ -1636,7 +1639,7 @@ Setup up the server with PASSWORD and assign this Emacs 
DISPLAY-NAME."
  :buffer (generate-new-buffer "*Tuntox Proxy*")
  :command
  `(,crdt-tuntox-executable
-   "-C" ,crdt-tuntox-key-path
+   "-C" ,(expand-file-name crdt-tuntox-key-path)
"-f" "/dev/stdin" ; do the filtering for safety 
sake
,@ (when (and password (> (length password) 0))
 `("-s" ,password))