[elpa] externals/ef-themes updated (373ae32f27 -> e45e8962c8)

2023-06-18 Thread ELPA Syncer
elpasync pushed a change to branch externals/ef-themes.

  from  373ae32f27 Add explicit support for which-key
   new  ac548de14f Add ef-elea-dark, ef-elea-light themes
   new  05f21dc71a ef-elea-light: make minor tweaks to diff colours
   new  4e98820d61 ef-frost: make minor tweaks to diff colours
   new  4a26140e21 ef-light: make minor tweaks to diff colours
   new  e45e8962c8 ef-spring: make minor tweaks to diff colours


Summary of changes:
 contrast-ratios.org  | 124 
 ef-elea-dark-theme.el| 289 +++
 ef-cyprus-theme.el => ef-elea-light-theme.el | 226 ++---
 ef-frost-theme.el|   6 +-
 ef-light-theme.el|   6 +-
 ef-spring-theme.el   |   6 +-
 ef-themes.el |   2 +
 7 files changed, 537 insertions(+), 122 deletions(-)
 create mode 100644 ef-elea-dark-theme.el
 copy ef-cyprus-theme.el => ef-elea-light-theme.el (52%)



[elpa] externals/ef-themes 05f21dc71a 2/5: ef-elea-light: make minor tweaks to diff colours

2023-06-18 Thread ELPA Syncer
branch: externals/ef-themes
commit 05f21dc71a7ba2f75a95c9add706df612b982217
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

ef-elea-light: make minor tweaks to diff colours
---
 ef-elea-light-theme.el | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/ef-elea-light-theme.el b/ef-elea-light-theme.el
index 232e15f175..726fd94ae4 100644
--- a/ef-elea-light-theme.el
+++ b/ef-elea-light-theme.el
@@ -100,18 +100,18 @@
 ;;; Diffs
 
   (bg-added  "#c7e8ba")
-  (bg-added-faint"#e0f3d0")
+  (bg-added-faint"#def0cb")
   (bg-added-refine   "#bed9b0")
   (fg-added  "#005000")
 
-  (bg-changed"#ffe5b9")
-  (bg-changed-faint  "#ffefc5")
-  (bg-changed-refine "#ffd09f")
+  (bg-changed"#f5e8b0")
+  (bg-changed-faint  "#f5f2bf")
+  (bg-changed-refine "#f0df9a")
   (fg-changed"#553d00")
 
-  (bg-removed"#f2d0d0")
-  (bg-removed-faint  "#f0e0ca")
-  (bg-removed-refine "#efb4b4")
+  (bg-removed"#f2d0c6")
+  (bg-removed-faint  "#f0e0c0")
+  (bg-removed-refine "#efbfbd")
   (fg-removed"#8f1313")
 
 ;;; Graphs



[elpa] externals/ef-themes 4e98820d61 3/5: ef-frost: make minor tweaks to diff colours

2023-06-18 Thread ELPA Syncer
branch: externals/ef-themes
commit 4e98820d617c136d4b2e158bc0a91d1110d8fe6a
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

ef-frost: make minor tweaks to diff colours
---
 ef-frost-theme.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ef-frost-theme.el b/ef-frost-theme.el
index 3ac89a8059..1fb9357b9c 100644
--- a/ef-frost-theme.el
+++ b/ef-frost-theme.el
@@ -104,9 +104,9 @@
   (bg-added-refine   "#b3efdf")
   (fg-added  "#004840")
 
-  (bg-changed"#ffdfb9")
-  (bg-changed-faint  "#ffefcb")
-  (bg-changed-refine "#ffcfa0")
+  (bg-changed"#f4e8bd")
+  (bg-changed-faint  "#f9efcb")
+  (bg-changed-refine "#efd299")
   (fg-changed"#553d00")
 
   (bg-removed"#ffd6e0")



[elpa] externals/ef-themes 4a26140e21 4/5: ef-light: make minor tweaks to diff colours

2023-06-18 Thread ELPA Syncer
branch: externals/ef-themes
commit 4a26140e21881932214111019c7e09c1c7250c2a
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

ef-light: make minor tweaks to diff colours
---
 ef-light-theme.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ef-light-theme.el b/ef-light-theme.el
index a8f15e6492..c1b8e55fac 100644
--- a/ef-light-theme.el
+++ b/ef-light-theme.el
@@ -104,9 +104,9 @@
   (bg-added-refine   "#c6e8c6")
   (fg-added  "#005000")
 
-  (bg-changed"#ffdfa9")
-  (bg-changed-faint  "#ffefbf")
-  (bg-changed-refine "#fac090")
+  (bg-changed"#f4e8bd")
+  (bg-changed-faint  "#f9efcb")
+  (bg-changed-refine "#efd299")
   (fg-changed"#553d00")
 
   (bg-removed"#ffd8d5")



[elpa] externals/ef-themes ac548de14f 1/5: Add ef-elea-dark, ef-elea-light themes

2023-06-18 Thread ELPA Syncer
branch: externals/ef-themes
commit ac548de14f5f00391fd1a1815b7c271f2882ceb2
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

Add ef-elea-dark, ef-elea-light themes

Find the samples here: .
---
 contrast-ratios.org| 124 +
 ef-elea-dark-theme.el  | 289 +
 ef-elea-light-theme.el | 289 +
 ef-themes.el   |   2 +
 4 files changed, 704 insertions(+)

diff --git a/contrast-ratios.org b/contrast-ratios.org
index 55415c7540..edc8ab281e 100644
--- a/contrast-ratios.org
+++ b/contrast-ratios.org
@@ -703,6 +703,130 @@ work with the overall design of the project.
 | #e7e0da | 5034 | 1.24 |
 #+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
 
+* ef-elea-dark
+:PROPERTIES:
+:CUSTOM_ID: h:2c38512b-f72c-4373-8972-de3bcc232df0
+:END:
+
+** Base colours
+:PROPERTIES:
+:CUSTOM_ID: h:8228a3a0-74c8-401d-8cd6-a33c59d64a94
+:END:
+
+| Name   | | #222524 | #303332 | #3e4140 | #2b2e2d |
+|+-+-+-+-+-|
+| red| #ff656a |5.39 |4.45 |3.60 |4.78 |
+| red-warmer | #ff7a5f |6.04 |4.98 |4.03 |5.36 |
+| red-cooler | #fa7f88 |6.23 |5.14 |4.16 |5.52 |
+| red-faint  | #eba8a8 |7.88 |6.50 |5.26 |6.99 |
+| green  | #7fc87f |7.71 |6.36 |5.15 |6.84 |
+| green-warmer   | #7fca5a |7.73 |6.38 |5.16 |6.86 |
+| green-cooler   | #50cf89 |7.83 |6.46 |5.22 |6.94 |
+| green-faint| #a9c99f |8.50 |7.02 |5.67 |7.54 |
+| yellow | #cac85f |8.79 |7.26 |5.87 |7.80 |
+| yellow-warmer  | #e0b02f |7.67 |6.33 |5.12 |6.80 |
+| yellow-cooler  | #cfb27f |7.60 |6.28 |5.08 |6.74 |
+| yellow-faint   | #cac89f |9.04 |7.46 |6.03 |8.01 |
+| blue   | #57aff6 |6.53 |5.39 |4.36 |5.79 |
+| blue-warmer| #78afff |6.90 |5.70 |4.61 |6.12 |
+| blue-cooler| #62cfef |8.61 |7.11 |5.74 |7.63 |
+| blue-faint | #6ab4ef |6.91 |5.71 |4.61 |6.13 |
+| magenta| #f59acf |7.66 |6.32 |5.11 |6.79 |
+| magenta-warmer | #fa90ea |7.54 |6.23 |5.03 |6.69 |
+| magenta-cooler | #cfaaff |7.99 |6.59 |5.33 |7.08 |
+| magenta-faint  | #d0b9f0 |8.75 |7.22 |5.84 |7.76 |
+| cyan   | #6fcfd2 |8.49 |7.01 |5.67 |7.53 |
+| cyan-warmer| #7fcfdf |8.76 |7.23 |5.84 |7.77 |
+| cyan-cooler| #60d5c2 |8.68 |7.17 |5.80 |7.70 |
+| cyan-faint | #99bfcf |7.88 |6.51 |5.26 |6.99 |
+#+TBLFM: $3='(Λ $2 @1$3);%.2f :: $4='(Λ $2 @1$4);%.2f :: $5='(Λ $2 @1$5);%.2f 
:: $6='(Λ $2 @1$6);%.2f
+
+** Special colours against the modeline
+:PROPERTIES:
+:CUSTOM_ID: h:5cc290f9-710f-4164-88f5-5f3690c70878
+:END:
+
+| Name | | #35605d |
+|--+-+-|
+| modeline-err | #ffbfbf |4.51 |
+| modeline-warning | #dfd443 |4.57 |
+| modeline-info| #7fefff |5.26 |
+#+TBLFM: o$3='(Λ $2 @1$3);%.2f
+
+** Distance and contrast between main backgrounds
+:PROPERTIES:
+:CUSTOM_ID: h:43799f3a-2d1a-482d-b34e-ccd6039515f6
+:END:
+
+# bg-main / bg-dim, bg-main / bg-alt
+| #222524 | distance | contrast |
+|-+--+--|
+| #303332 | 1777 | 1.21 |
+| #3e4140 | 7111 | 1.50 |
+#+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
+
+* ef-elea-light
+:PROPERTIES:
+:CUSTOM_ID: h:ddb01f51-8f6a-466a-a73e-ed3cf23085b7
+:END:
+
+** Base colours
+:PROPERTIES:
+:CUSTOM_ID: h:8cc6238b-e968-4703-a205-58b026f7b3bb
+:END:
+
+| Name   | | #edf5e2 | #e3e9d6 | #d0d7ca | #e8eddc |
+|+-+-+-+-+-|
+| red| #c3303a |4.93 |4.44 |3.75 |4.62 |
+| red-warmer | #d0 |5.10 |4.59 |3.87 |4.77 |
+| red-cooler | #b02440 |5.91 |5.32 |4.49 |5.54 |
+| red-faint  | #894452 |6.23 |5.61 |4.73 |5.84 |
+| green  | #1f601f |6.82 |6.14 |5.18 |6.39 |
+| green-warmer   | #3f5500 |7.47 |6.73 |5.68 |7.00 |
+| green-cooler   | #007047 |5.50 |4.96 |4.18 |5.16 |
+| green-faint| #306630 |6.11 |5.50 |4.64 |5.73 |
+| yellow | #9a501f |5.30 |4.77 |4.03 |4.96 |
+| yellow-warmer  | #b04300 |5.14 |4.63 |3.91 |4.82 |
+| yellow-cooler  | #88541f |5.63 |5.07 |4.27 |5.27 |
+| yellow-faint   | #7f4f4a |6.01 |5.41 |4.57 |5.63 |
+| blue   | #375cc6 |5.35 |4.81 |4.06 |5.01 |
+| blue-warmer| #444fcf |5.75 |5.17 |4.37 |5.38 |
+| blue-cooler| #162f8

[elpa] externals/ef-themes e45e8962c8 5/5: ef-spring: make minor tweaks to diff colours

2023-06-18 Thread ELPA Syncer
branch: externals/ef-themes
commit e45e8962c820c9825dc3b93654029d60078ae441
Author: Protesilaos Stavrou 
Commit: Protesilaos Stavrou 

ef-spring: make minor tweaks to diff colours
---
 ef-spring-theme.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ef-spring-theme.el b/ef-spring-theme.el
index 6c32b6e124..ed3b75d1ad 100644
--- a/ef-spring-theme.el
+++ b/ef-spring-theme.el
@@ -104,9 +104,9 @@
   (bg-added-refine   "#b3efcf")
   (fg-added  "#005000")
 
-  (bg-changed"#ffdfb9")
-  (bg-changed-faint  "#ffefcb")
-  (bg-changed-refine "#ffcfa0")
+  (bg-changed"#f0e8bd")
+  (bg-changed-faint  "#f5efcb")
+  (bg-changed-refine "#efd299")
   (fg-changed"#553d00")
 
   (bg-removed"#ffd6e0")



[elpa] externals/hyperbole bcbb612de9 4/5: Fix all issues causing any test cases to fail.

2023-06-18 Thread ELPA Syncer
branch: externals/hyperbole
commit bcbb612de9b353320f9ef0cc6aa21252ce1c5046
Author: Bob Weiner 
Commit: Bob Weiner 

Fix all issues causing any test cases to fail.

Rewrite 'hbut-tests-ibut-insert-links' to support ibtypes and better
actype checks with less code.
---
 ChangeLog   |   72 ++-
 HY-NEWS |   16 +-
 TAGS| 1266 ---
 hargs.el|   20 +-
 hbut.el |  229 +
 hibtypes.el |9 +-
 hpath.el|   81 +--
 hui-mouse.el|5 +-
 hui-window.el   |   65 +--
 hui.el  |8 +-
 kotl/klink.el   |   32 +-
 test/hbut-tests.el  |  161 +++---
 test/hibtypes-tests.el  |9 +-
 test/hui-tests.el   |   26 +-
 test/hy-test-helpers.el |5 +-
 15 files changed, 1079 insertions(+), 925 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ee705cebb2..133edffc7d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,14 +1,82 @@
+2023-06-17  Bob Weiner  
+
+* hui.el (hui:ibut-link-directly): Document new inter-window Assist Mouse
+Key handling.
+
+* hui-window.el (hmouse-alist-add-window-handlers): Separate checks of
+dragging items to modeline from dragging within a window when not
+on a modeline with a release on a modeline.  This clarifies the
+context when {C-h A} is used.
+
+* kotl/klink.el (klink:act): Improve doc; update link node label only
+if point is within a koutline.
+
+* hpath.el (hpath:delimited-possible-path): Skip if at end of line since
+paths cannot span lines and therefore cannot be within one.
+
+* hibtypes.el (rfc): Set lbl-start and lbl-end attributes.
+
+* hbut.el (ibut:set-name-and-label-key-p): Improve doc and return 't when
+just lbl-start is found for named, non-delimited ibuts.
+  (ibut:label-p): Ensure match does not contain delimiters, as it
+may have run past the beginning of another button.
+  (ibut:label-set): Improve doc.
+ (ibut:operate): Improve instance handling.
+ (ibut:insert-text): Fully handle klinks, add 'man' actype support,
+and handle error when actype is nil.
+  (ibut:program): Remove condition-case around whole function so that
+errors can be seen with tracebacks.
+
+* hargs.el (hargs:delimited): Update to handle regexps with match to bol that
+does not move point forward; move forward a char each iteration
+
+* test/hui-tests.el (hui-gibut-create-link-to-file-line,
+ hui-gibut-create-link-to-file-line-and-column): Improve
+readability and add check of 'name attribute.
+  test/hy-test-helpers.el (hy-test-helpers-verify-hattr-at-p): Add support
+for 'name attribute.
+  test/hibtypes-tests.el (ibtypes::annot-bib-test): Fix.
+  test/hbut-tests.el: Fix some free variable scoping issues; remove unused
+local variables
+  (hbut-tests-actypes-list): Separate out ibutton test data
+and add data to test ibtype is correct.
+ (hbut-tests-ibut-insert-text-temp-buffer): Rename to
+'hbut-tests-ibut-insert-links'; rewrite to simplify and make more reusable.
+ (hbut-tests-ibut-insert-text-temp-file): Deleted this and
+merged into 'hbut-tests-ibut-insert-links'.
+
+* kotl/klink.el (klink:act): Improve doc.  Fix to not try to update link label
+if 'link-to-kotl' fails to display a koutline.
+
+* hbut.el (ibut:insert-text): Add clear error when no matching actype is found.
+Update klink handling.
+
+2023-06-13  Bob Weiner  
+
+* hbut.el (ibut:operate): Update to handle more scenarios from the doc table.
+
+* hbdata.el (hbdata:ibut-instance): Replace with 'hbdata:ibut-instance-next'.
+(hbdata:ibut-instance-last): Improve doc.
+
 2023-06-11  Bob Weiner  
 
 * man/hyperbole.texi (Smart Mouse Drags between Windows): Update appendix doc
 to latest behavior.
 
 * hbut.el (ibut:operate): Drop 'name' arg and get it from 'hbut:current attrs.
+Improve name handling and buffer insertion.  Use 
'ibut:set-name-and-label-key-p'
+to set 'lbl-key.
+  (ibut:set-name-and-label-key-p): Set 'lbl-start attribute.
+  (ibut:insert-text): With kbd-key actypes, allow for whitespace 
inside of
+braces.
   (ibut:program):
-  hui.el (hui:ibut-create, hui:ibut-link-create): Change calls to 
'ibut:operate'.
+  hui.el (hui:ibut-create, hui:ibut-link-create): Change calls to 
'ibut:operate'
+and improve moving to button text.
 
 * test/hbut-tests.el (hbut-tests-ibut-insert-annot-bib): Allow for 0 or more
 whitespace at end of buffer.
+ (hbut-tests-ibut-insert-kbd-key): Independently test
+without and without a name.
 
 * hbdata.el (hbdata:instance-next): Improve doc.
 (hbdata:ibut-instance): Fix inverted logic when orig-name-key
@@ -32,7 +100,7 @@
 
 * kotl/klink.el (klink:act): Document.
 (klink): Remove 'ibut:set-label' as 

[elpa] externals/hyperbole 6665a78470 2/5: Fix a number of ibut recognition issues

2023-06-18 Thread ELPA Syncer
branch: externals/hyperbole
commit 6665a78470e7a8578f4ef12dd5858dd7eb51c79b
Author: Bob Weiner 
Commit: Bob Weiner 

Fix a number of ibut recognition issues
---
 hbut.el| 70 +-
 hui.el |  6 ++---
 test/hbut-tests.el | 31 +---
 3 files changed, 68 insertions(+), 39 deletions(-)

diff --git a/hbut.el b/hbut.el
index 5ab00eaaad..356873ffa9 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:18-Sep-91 at 02:57:09
-;; Last-Mod: 11-Jun-23 at 13:42:14 by Bob Weiner
+;; Last-Mod: 11-Jun-23 at 21:32:08 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1652,13 +1652,17 @@ excluding delimiters, not just one."
  ;; Skip past any optional name and separators
  (when name-end
(goto-char name-end)
-   (if (looking-at ibut:label-separator-regexp)
-   ;; Move past up to 2 possible characters of ibut
-   ;; delimiters; this prevents recognizing named,
-   ;; delimited ibuts of a single character since no one
-   ;; should need that.
-   (goto-char (min (+ 2 (match-end 0)) (point-max)))
- (goto-char opoint)))
+   (hattr:set 'hbut:current 'lbl-start
+  (if (looking-at ibut:label-separator-regexp)
+  (progn
+;; Move past up to 2 possible characters of ibut
+;; delimiters; this prevents recognizing named,
+;; delimited ibuts of a single character since no 
one
+;; should need that.
+(goto-char (min (+ 2 (match-end 0)) (point-max)))
+(match-end 0))
+(prog1 (point)
+  (goto-char opoint)
 
  (setq lbl-start-end (if (and start-delim end-delim)
  (ibut:label-p nil start-delim end-delim t t)
@@ -1743,9 +1747,9 @@ Store new button attributes in the symbol, 'hbut:current."
  (unwind-protect
  (progn (setq text-start (or (hattr:get 'hbut:current 
'lbl-start)
  (point))
-  text-end (or (hattr:get 'hbut:current 'lbl-end)
-   (point)))
+  text-end (hattr:get 'hbut:current 'lbl-end))
 (unless (and (<= text-start (point))
+ text-end
  (>= text-end (point)))
   ;; Move to text of ibut before trying to activate it
   ;; (may be on name)
@@ -2167,17 +2171,13 @@ Summary of operations based on inputs:
 | nil   | newname  | region | mod: add newname to lbl-key ibut (skip region) |
 |---+--++|"
   ;; !! TODO: Code does not yet fully match what is in docstring table
-  (let* ((lbl-key (hattr:get 'hbut:current 'lbl-key))
-(actype (hattr:get 'hbut:current 'actype))
+  (let* ((actype (hattr:get 'hbut:current 'actype))
 (name (hattr:get 'hbut:current 'name))
 (name-regexp (ibut:label-regexp (ibut:label-to-key name)))
 (modify new-name)
 (region-flag (hmouse-use-region-p))
 ;; (new-name-key)
 (instance-flag))
-(unless (and (stringp lbl-key) (not (string-empty-p lbl-key)))
-  (hypb:error "(ibut:operate): hbut:current ibut lbl-key (%s) must be 
non-nil"
- lbl-key))
 (unless actype
   (hypb:error "(ibut:operate): hbut:current ibut actype (%s) must be 
non-nil"
  actype))
@@ -2239,7 +2239,7 @@ Summary of operations based on inputs:
 (cond ((not (and name new-name))
;; No name to insert, just insert ibutton text below
)
-  ((not name)
+  ((and (not name) new-name)
(setq start (point))
(insert new-name)
(setq end (point)))
@@ -2270,17 +2270,20 @@ Summary of operations based on inputs:
   (equal buf-lbl name)))
nil)
   ((progn (when start (goto-char start))
-  (looking-at (regexp-quote name)))
+  (when name  (looking-at (regexp-quote name
(setq start (point)
  end (match-end 0)))
-  (t (setq start (point))
- (insert name)
- (setq end (point
+  (name
+   (setq start (point))
+   (insert name)
+   (setq end (point
+
 (when (and start end)
   (ibut:delimit s

[elpa] externals/hyperbole updated (26402fa498 -> 655df928af)

2023-06-18 Thread ELPA Syncer
elpasync pushed a change to branch externals/hyperbole.

  from  26402fa498 Add kotl tests (#339)
   new  ef9c00eaa8 Snapshot of still in progress ibut updates; see Todo list
   new  6665a78470 Fix a number of ibut recognition issues
   new  ef3a180e4b Fix ibut-instance functions, ibut:operate and actypes 
hbut-tests
   new  bcbb612de9 Fix all issues causing any test cases to fail.
   new  655df928af Merge branch 'rsw'


Summary of changes:
 ChangeLog   |  179 +
 HY-NEWS |   16 +-
 TAGS| 1894 ---
 hact.el |6 +-
 hactypes.el |   25 +-
 hargs.el|   87 ++-
 hbdata.el   |   83 +--
 hbut.el |  878 ++
 hibtypes.el |   55 +-
 hmouse-tag.el   |   36 +-
 hpath.el|   83 ++-
 hui-mouse.el|   34 +-
 hui-window.el   |   65 +-
 hui.el  |   60 +-
 hyrolo.el   |8 +-
 kotl/klink.el   |   32 +-
 kotl/kotl-mode.el   |   11 +-
 kotl/kview.el   |   13 +-
 man/hkey-help.txt   |2 +-
 man/hyperbole.texi  |  123 +--
 man/version.texi|4 +-
 test/hbut-tests.el  |  152 +++-
 test/hibtypes-tests.el  |9 +-
 test/hui-tests.el   |   44 +-
 test/hy-test-helpers.el |9 +-
 25 files changed, 2283 insertions(+), 1625 deletions(-)



[elpa] externals/hyperbole ef3a180e4b 3/5: Fix ibut-instance functions, ibut:operate and actypes hbut-tests

2023-06-18 Thread ELPA Syncer
branch: externals/hyperbole
commit ef3a180e4b08e9a108e4c9a8dd019daa75324006
Author: Bob Weiner 
Commit: Bob Weiner 

Fix ibut-instance functions, ibut:operate and actypes hbut-tests
---
 hbdata.el  |  54 ++---
 hbut.el|  25 +++---
 test/hbut-tests.el | 100 ++---
 3 files changed, 79 insertions(+), 100 deletions(-)

diff --git a/hbdata.el b/hbdata.el
index 963691816f..757bd7ece8 100644
--- a/hbdata.el
+++ b/hbdata.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date: 2-Apr-91
-;; Last-Mod: 11-Jun-23 at 09:59:24 by Bob Weiner
+;; Last-Mod: 13-Jun-23 at 01:27:25 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -36,9 +36,9 @@
 ;;(KeyPlaceholders  LinkType   
creator and modifier with times)
 ;;("alt.mouse.el" nil nil   link-to-file  ("./ell/alt-mouse.el") 
"z...@gnu.org" "19991027:09:19:26" "z...@gnu.org" "19991027:09:31:36")
 ;;
-;;  which means:  button \<(alt.mouse.el)> found in file "TO-DO" in the current
-;;  directory provides a link to the local file "./ell/alt-mouse.el".  It was
-;;  created and last modified by z...@gnu.org.
+;;  which means: button \<(alt.mouse.el)> found in file "TO-DO" in the
+;;  current directory provides a link to the local file "./ell/alt-mouse.el".
+;;  It was created and last modified by z...@gnu.org.
 ;;
 ;;  All link entries that originate from the same source file are stored
 ;;  contiguously, one per line, in reverse order of creation.
@@ -284,33 +284,29 @@ class `hbdata' to operate on the entry."
(lambda () (read (current-buffer)))
lbl-key key-src directory))
 
-(defun hbdata:ibut-instance (&optional orig-name-key but-sym)
-  "Return ibutton instance number string from optional ORIG-NAME-KEY and 
BUT-SYM.
-ORIG-NAME-KEY nil means create a new ibutton; otherwise modify an
-existing one.  BUT-SYM nil means use `hbut:current'.  If
-successful, return a button instance string to append to button
-label or t when first instance."
-  (let* ((b (hattr:copy (or but-sym 'hbut:current) 'but))
-(name-key (ibut:label-to-key (hattr:get b 'name)))
-(key (or orig-name-key name-key))
-(new-key (if orig-name-key name-key key))
-(lbl-instance))
-(or (when key
- (if orig-name-key
- (let ((inst-num (hbdata:ibut-instance-last new-key)))
-   (setq lbl-instance (when inst-num
-(hbdata:instance-next
- (concat new-key hbut:instance-sep
- (int-to-string inst-num))
-   (when (setq lbl-instance (hbdata:ibut-instance-last new-key))
- (setq lbl-instance (concat hbut:instance-sep
-(int-to-string (1+ lbl-instance))
- lbl-instance)
-   t)))
+(defun hbdata:ibut-instance-next (name-key)
+  "Given NAME-KEY, return next ibutton instance number string for current 
buffer.
+If there is no existing ibutton with NAME-KEY, return t.
+
+With NAME-KEY nil or NAME-KEY 'name' and no existing in-buffer ibutton
+with that name, return t.
+With NAME-KEY 'name' and highest in-buffer ibutton 'name:3',
+return ':4'."
+  (if (null name-key)
+  t
+(let ((lbl-instance (hbdata:ibut-instance-last name-key)))
+  (if lbl-instance
+ (concat hbut:instance-sep (int-to-string (1+ lbl-instance)))
+   t
 
 (defun hbdata:ibut-instance-last (name-key)
   "Return highest instance number for implicit button NAME-KEY in current 
buffer.
-1 if not repeated, nil if no instance."
+Instance number is returned as an integer.  Return 1 if NAME-KEY exists
+in the buffer but no other instances do; nil if no instance.
+
+With no match, return nil.
+With only 'name' found, return 1.
+With 'name' and 'name:2' found, return 2."
   (let ((key (car (ibut:label-sort-keys (ibut:label-key-match name-key)
 (cond ((null key) nil)
  ((string-match (concat (regexp-quote hbut:instance-sep)
@@ -323,6 +319,8 @@ label or t when first instance."
   "Return string for the next higher button instance number after NAME-KEY's.
 Return nil if NAME-KEY is nil.
 
+Given 'name', return ':2'.  Given 'name:2', return ':3'.
+
 This does not search any buffer for other instances; it uses the
 NAME-KEY string literally, so it must include any instance number
 to increment."
diff --git a/hbut.el b/hbut.el
index 356873ffa9..440182606f 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
 ;; Author:   Bob Weiner
 ;;
 ;; Orig-Date:18-Sep-91 at 02:57:09
-;; Last-Mod: 11-Jun-23 at 21:32:08 by Bob Weiner
+;; Last-Mod: 12-Jun-23 at 22:56:47 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -1875,7 +1875,7 @@ Store new button attributes in the symbol, 'hbut:current."
  (when args
(hattr:set 'hbut:current 'args (if actype (cdr a

[elpa] externals/debbugs c584de1b1b 1/2: Call 'tabulated-list-print-entry' in 'debbugs-gnu-print-entry'

2023-06-18 Thread Michael Albinus
branch: externals/debbugs
commit c584de1b1b7841b1c6d11d9badda2e890eb45c18
Author: Morgan Smith 
Commit: Michael Albinus 

Call 'tabulated-list-print-entry' in 'debbugs-gnu-print-entry'

Some of the features of 'tabulated-list' (tabulated-list-next-column,
tabulated-list-sort) didn't work properly because 'debbugs-gnu-print-entry'
didn't set the 'tabulated-list-column-name' text property.  Instead of 
trying
to duplicate code we can simply call 'tabulated-list-print-entry'.

* debbugs-gnu.el (debbugs-gnu-print-entry): Remove all printing logic
and replace with a call to 'tabulated-list-print-entry'.  (Bug#64064)
---
 debbugs-gnu.el | 40 ++--
 1 file changed, 2 insertions(+), 38 deletions(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 3feca518f6..d66a9eaecf 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1052,18 +1052,7 @@ are taken from the cache instead."
 (defun debbugs-gnu-print-entry (list-id cols)
   "Insert a debbugs entry at point.
 Used instead of `tabulated-list-print-entry'."
-  (let ((beg (point))
-   (pos 0)
-   (case-fold-search t)
-   (id   (aref cols 0))
-   (id-length(nth 1 (aref tabulated-list-format 0)))
-   (state(aref cols 1))
-   (state-length (nth 1 (aref tabulated-list-format 1)))
-   (submitter(aref cols 2))
-   (submitter-length (nth 1 (aref tabulated-list-format 2)))
-   (title(aref cols 3))
-   ;; (title-length (nth 1 (aref tabulated-list-format 3)))
-)
+  (let ((case-fold-search t))
 (when (and
   ;; We may have a narrowing in effect.
   (or (not debbugs-gnu-limit)
@@ -1090,32 +1079,7 @@ Used instead of `tabulated-list-print-entry'."
   (> (cddr check) val)))
  (throw :suppress t
 
-  ;; Insert id.
-  (indent-to (- id-length (length id)))
-  (insert id)
-  ;; Insert state.
-  (indent-to (setq pos (+ pos id-length 1)) 1)
-  (insert (if (> (length state) state-length)
- (propertize (substring state 0 state-length)
- 'help-echo state)
-   state))
-  ;; Insert submitter.
-  (indent-to (setq pos (+ pos state-length 1)) 1)
-  (insert (if (> (length submitter) submitter-length)
- (propertize (substring submitter 0 submitter-length)
- 'help-echo submitter)
-   submitter))
-  (indent-to (+ pos (1- submitter-length)))
-  ;; Insert title.
-  (indent-to (setq pos (+ pos submitter-length 1)) 1)
-  (insert (propertize title 'help-echo title))
-  ;; Add properties.
-  (add-text-properties
-   beg (point)
-   `(tabulated-list-id ,list-id
-tabulated-list-entry ,cols
-mouse-face highlight))
-  (insert ?\n
+  (tabulated-list-print-entry list-id cols
 
 (defun debbugs-gnu-menu-map-emacs-enabled ()
   "Whether \"Show Release Blocking Bugs\" is enabled in the menu."



[elpa] externals/debbugs updated (8e529f90b1 -> 3f2a99a698)

2023-06-18 Thread Michael Albinus
albinus pushed a change to branch externals/debbugs.

  from  8e529f90b1 Code cleanup, adapt copyright years
   new  c584de1b1b Call 'tabulated-list-print-entry' in 
'debbugs-gnu-print-entry'
   new  3f2a99a698 * debbugs-gnu.el (debbugs-gnu-print-entry): Keep 
`mouse-face' property.


Summary of changes:
 debbugs-gnu.el | 41 +
 1 file changed, 5 insertions(+), 36 deletions(-)



[elpa] externals/debbugs 3f2a99a698 2/2: * debbugs-gnu.el (debbugs-gnu-print-entry): Keep `mouse-face' property.

2023-06-18 Thread Michael Albinus
branch: externals/debbugs
commit 3f2a99a698d5066e4ae7d3a749b6c52889d52eac
Author: Michael Albinus 
Commit: Michael Albinus 

* debbugs-gnu.el (debbugs-gnu-print-entry): Keep `mouse-face' property.
---
 debbugs-gnu.el | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index d66a9eaecf..925d4bbd92 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1079,7 +1079,12 @@ Used instead of `tabulated-list-print-entry'."
   (> (cddr check) val)))
  (throw :suppress t
 
-  (tabulated-list-print-entry list-id cols
+  (tabulated-list-print-entry list-id cols)
+
+  ;; Add properties.
+  (add-text-properties
+   (line-beginning-position 0) (line-end-position 0)
+   '(mouse-face highlight)
 
 (defun debbugs-gnu-menu-map-emacs-enabled ()
   "Whether \"Show Release Blocking Bugs\" is enabled in the menu."



[elpa] externals/org d50956e480: org-manual, org-guide: Improve timestamp documentation

2023-06-18 Thread ELPA Syncer
branch: externals/org
commit d50956e480e6e637b81af05abf678d65a05dce19
Author: David Masterson 
Commit: Ihor Radchenko 

org-manual, org-guide: Improve timestamp documentation

* doc/org-manual.org (Dates and Times): Explain the purpose of
timestamps in the opening paragraphs.
(Timestamps): Mention that time range.  Clarify that an entry may
contain multiple timestamps, providing an example.  Explain formal
time range meaning, with example.  Add cindex entry "time range".  Add
date range example.
* doc/org-guide.org: Syncronoize changes with org-manual, adding some
missing pieces.
(Timestamps): Remove useless cindex entries (org-guide does not
produce index).

Co-authored-by: Ihor Radchenko 
Link: 
https://orgmode.org/list/sj0pr03mb5455693ca8266256d46ba594a2...@sj0pr03mb5455.namprd03.prod.outlook.com

TINYCHANGE
---
 doc/org-guide.org  | 33 +
 doc/org-manual.org | 49 +
 2 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/doc/org-guide.org b/doc/org-guide.org
index 828bdd872e..a247d3b071 100644
--- a/doc/org-guide.org
+++ b/doc/org-guide.org
@@ -1081,7 +1081,15 @@ Tags and Properties]].
 
 To assist project planning, TODO items can be labeled with a date
 and/or a time.  The specially formatted string carrying the date and
-time information is called a /timestamp/ in Org mode.
+time information is called a /timestamp/ in Org mode.  This may be
+a little confusing because timestamp is often used as indicating when
+something was created or last changed.  However, in Org mode this term
+is used in a much wider sense.
+
+Timestamps can be used to plan appointments, schedule tasks, set
+deadlines, track time, and more.  The following sections describe
+the timestamp format and tooling that Org mode provides for common
+use cases dealing with time and time intervals.
 
 ** Timestamps
 :PROPERTIES:
@@ -1099,12 +1107,16 @@ the agenda (see [[*The Weekly/Daily Agenda]]).  We 
distinguish:
 
   A simple timestamp just assigns a date/time to an item.  This is
   just like writing down an appointment or event in a paper agenda.
+  There can be multiple timestamps in an item.
 
   #+begin_example
   ,* Meet Peter at the movies
 <2006-11-01 Wed 19:15>
   ,* Discussion on climate change
 <2006-11-02 Thu 20:00-22:00>
+  ,* My days off
+<2006-11-03 Fri>
+<2006-11-06 Mon>
   #+end_example
 
 - Timestamp with repeater interval ::
@@ -1121,8 +1133,6 @@ the agenda (see [[*The Weekly/Daily Agenda]]).  We 
distinguish:
 
 - Diary-style expression entries ::
 
-  #+cindex: diary style timestamps
-  #+cindex: sexp timestamps
   For more complex date specifications, Org mode supports using the
   special expression diary entries implemented in the Emacs Calendar
   package.  For example, with optional time:
@@ -1132,13 +1142,28 @@ the agenda (see [[*The Weekly/Daily Agenda]]).  We 
distinguish:
 <%%(diary-float t 4 2)>
   #+end_example
 
+- Time range ::
+
+  Time range is a timestamp having two time units connected by =-=
+
+  #+begin_example
+  ,* Discussion on climate change
+<2006-11-02 Thu 10:00-12:00>
+  #+end_example
+
 - Time/Date range ::
 
-  Two timestamps connected by =--= denote a range.
+  Two timestamps connected by =--= denote a range.  In the agenda, the
+  headline is shown on the first and last day of the range, and on any
+  dates that are displayed and fall in the range.  The first example
+  specifies just the dates of the range while the second example
+  specifies a time range for each date.
 
   #+begin_example
   ,** Meeting in Amsterdam
  <2004-08-23 Mon>--<2004-08-26 Thu>
+  ,** This weeks committee meetings
+ <2004-08-23 Mon 10:00-11:00>--<2004-08-26 Thu 10:00-11:00>
   #+end_example
 
 - Inactive timestamp ::
diff --git a/doc/org-manual.org b/doc/org-manual.org
index c116948491..4b00d1e6fd 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -5987,6 +5987,11 @@ a little confusing because timestamp is often used as 
indicating when
 something was created or last changed.  However, in Org mode this term
 is used in a much wider sense.
 
+Timestamps can be used to plan appointments, schedule tasks, set
+deadlines, track time, and more.  The following sections describe
+the timestamp format and tooling that Org mode provides for common
+use cases dealing with time and time intervals.
+
 ** Timestamps
 :PROPERTIES:
 :DESCRIPTION: Assigning a time to a tree entry.
@@ -5997,12 +6002,12 @@ is used in a much wider sense.
 #+cindex: deadlines
 #+cindex: scheduling
 
-A timestamp is a specification of a date (possibly with a time) in a
-special format, either =<2003-09-16 Tue>= or
-=<2003-09-16 Tue 09:39>=[fn:19].  A timestamp can appear anywhere in
-the headline or body of an Org tree entry.  Its presence causes
-entries to be shown on specific dates in the agenda (see [[*Weekly/daily
-agenda]]).  We distinguish:
+A t

[elpa] externals/debbugs 59f00ee268: Don't error out on 'nil' alist value

2023-06-18 Thread Michael Albinus
branch: externals/debbugs
commit 59f00ee26894aca30ca45f6695418128bfd8eacc
Author: Morgan Smith 
Commit: Michael Albinus 

Don't error out on 'nil' alist value

The intention of the DEFAULT argument to 'alist-get' is to return "" 
instead of
nil.  However, this still returns nil if the key exists but the value is
nil.

This problem wasn't detected previously since the functions
'debbugs-gnu-sort-submitter' and 'debbugs-gnu-sort-title' weren't actually
used until the previous commit.

* debbugs-gnu.el (debbugs-gnu-sort-submitter)
(debbugs-gnu-sort-title): Remove DEFAULT argument of alist-get and
instead wrap call with 'or' to return default.  (Bug#64064)

* debbugs-org.el (debbugs-org-show-reports): If the subject is
empty, use the empty string.
---
 debbugs-gnu.el | 16 ++--
 debbugs-org.el |  5 ++---
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 925d4bbd92..cbc310ae57 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1293,10 +1293,12 @@ Interactively, it is non-nil with the prefix argument."
 (defun debbugs-gnu-sort-submitter (s1 s2)
   (let ((address1
 (debbugs-gnu--split-address
- (decode-coding-string (alist-get 'originator (car s1) "") 'utf-8)))
+ (decode-coding-string
+   (or (alist-get 'originator (car s1)) "") 'utf-8)))
(address2
 (debbugs-gnu--split-address
- (decode-coding-string (alist-get 'originator (car s2) "") 'utf-8
+ (decode-coding-string
+   (or (alist-get 'originator (car s2)) "") 'utf-8
 (cond
  ;; Bugs I'm the originator of go to the beginning.
  ((and (string-equal user-mail-address (car address1))
@@ -1314,14 +1316,16 @@ Interactively, it is non-nil with the prefix argument."
 (defun debbugs-gnu-sort-title (s1 s2)
   (let ((owner1
 (car (debbugs-gnu--split-address
-  (decode-coding-string (alist-get 'owner (car s1) "") 'utf-8
+  (decode-coding-string
+(or (alist-get 'owner (car s1)) "") 'utf-8
(subject1
-(decode-coding-string (alist-get 'subject (car s1) "") 'utf-8))
+(decode-coding-string (or (alist-get 'subject (car s1)) "") 'utf-8))
(owner2
 (car (debbugs-gnu--split-address
-  (decode-coding-string (alist-get 'owner (car s2) "") 'utf-8
+  (decode-coding-string
+(or (alist-get 'owner (car s2)) "") 'utf-8
(subject2
-(decode-coding-string (alist-get 'subject (car s2) "") 'utf-8)))
+(decode-coding-string (or (alist-get 'subject (car s2)) "") 'utf-8)))
 (cond
  ;; Bugs I'm the owner of go to the beginning.
  ((and (string-equal user-mail-address owner1)
diff --git a/debbugs-org.el b/debbugs-org.el
index be6af04a8e..2055a0faec 100644
--- a/debbugs-org.el
+++ b/debbugs-org.el
@@ -209,9 +209,8 @@ marked as \"client-side filter\"."
 (archived (alist-get 'archived status))
 (tags (append (alist-get 'found_versions status)
   (alist-get 'tags status)))
-(subject (when (alist-get 'subject status)
-   (decode-coding-string
-(alist-get 'subject status) 'utf-8)))
+(subject (decode-coding-string
+   (or (alist-get 'subject status) "") 'utf-8))
 (date (alist-get 'date status))
 (last-modified (alist-get 'last_modified status))
 (originator (when (alist-get 'originator status)



[elpa] externals/debbugs dcb42bdde4 1/2: Add 'debbugs-gnu-rescan' to 'tabulated-list-revert-hook'

2023-06-18 Thread Michael Albinus
branch: externals/debbugs
commit dcb42bdde493d8af61c56a44dec7d85daac1da86
Author: Morgan Smith 
Commit: Michael Albinus 

Add 'debbugs-gnu-rescan' to 'tabulated-list-revert-hook'

This now fetches new bugs when the buffer is reverted.

* debbugs-gnu.el (debbugs-gnu-mode): Add 'debbugs-gnu-rescan' to
'tabulated-list-revert-hook'.  (Bug#64064)
---
 debbugs-gnu.el | 1 +
 1 file changed, 1 insertion(+)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index cbc310ae57..034dff9dda 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1231,6 +1231,7 @@ Interactively, it is non-nil with the prefix argument."
   ("Title" 10 debbugs-gnu-sort-title)])
   (setq tabulated-list-sort-key (cons "Id" nil))
   (setq tabulated-list-printer #'debbugs-gnu-print-entry)
+  (add-hook 'tabulated-list-revert-hook #'debbugs-gnu-rescan nil t)
   (buffer-disable-undo)
   (setq truncate-lines t)
   (setq buffer-read-only t))



[elpa] externals/debbugs updated (59f00ee268 -> 25d52f5f3b)

2023-06-18 Thread Michael Albinus
albinus pushed a change to branch externals/debbugs.

  from  59f00ee268 Don't error out on 'nil' alist value
   new  dcb42bdde4 Add 'debbugs-gnu-rescan' to 'tabulated-list-revert-hook'
   new  25d52f5f3b * debbugs-gnu.el (debbugs-gnu-mode-map): Fix menu item.


Summary of changes:
 debbugs-gnu.el | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)



[elpa] externals/debbugs 25d52f5f3b 2/2: * debbugs-gnu.el (debbugs-gnu-mode-map): Fix menu item.

2023-06-18 Thread Michael Albinus
branch: externals/debbugs
commit 25d52f5f3befbb0497c8d8ace95eeae84ad40323
Author: Michael Albinus 
Commit: Michael Albinus 

* debbugs-gnu.el (debbugs-gnu-mode-map): Fix menu item.
---
 debbugs-gnu.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 034dff9dda..dedd4336f4 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -1160,10 +1160,10 @@ Used instead of `tabulated-list-print-entry'."
  :help "Send control message to debbugs.gnu.org")
   #'debbugs-gnu-show-all-blocking-reports)
 (define-key-after menu-map [debbugs-gnu-make-control-message]
-  '(menu-item "Make Control Message"
+  `(menu-item "Make Control Message"
  debbugs-gnu-make-control-message
- :help (concat "Make (but don't yet send) "
-   "a control message to debbugs.gnu.org"))
+ :help ,(concat "Make (but don't yet send) "
+"a control message to debbugs.gnu.org"))
   #'debbugs-gnu-send-control-message)
 
 (define-key-after menu-map [debbugs-gnu-separator1]



[elpa] externals/emacs-gc-stats cdea9f03ba 6/6: Bump version to 1.2.3

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit cdea9f03baf8f451760b12444de5b177a9366ef3
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Bump version to 1.2.3
---
 emacs-gc-stats.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/emacs-gc-stats.el b/emacs-gc-stats.el
index 68cd5471e3..a520778c93 100644
--- a/emacs-gc-stats.el
+++ b/emacs-gc-stats.el
@@ -7,7 +7,7 @@
 ;; URL: https://git.sr.ht/~yantar92/emacs-gc-stats
 ;; Package-Requires: ((emacs "25.1"))
 
-;; Version: 1.2.2
+;; Version: 1.2.3
 
 ;; 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



[elpa] externals/emacs-gc-stats d9d6674b8e 5/6: fixup! emacs-gc-stats-save-session: Query and open mailto: link

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit d9d6674b8ed3e3bc59c92f717e2d3b41954fb197
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

fixup! emacs-gc-stats-save-session: Query and open mailto: link
---
 emacs-gc-stats.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/emacs-gc-stats.el b/emacs-gc-stats.el
index 056ee4c628..68cd5471e3 100644
--- a/emacs-gc-stats.el
+++ b/emacs-gc-stats.el
@@ -185,8 +185,9 @@ Otherwise, collect symbol."
   (push session previous-sessions)))
   (prin1 previous-sessions (current-buffer)))
 (when
-   (yes-or-no-p
-(format "GC stats saved to \"%s\".  Send email to 
emacs-gc-st...@gnu.org? " emacs-gc-stats-file))
+   (and (called-interactively-p)
+(yes-or-no-p
+ (format "GC stats saved to \"%s\".  Send email to 
emacs-gc-st...@gnu.org? " emacs-gc-stats-file)))
   (browse-url "mailto:emacs-gc-st...@gnu.org";))
 (message "GC stats saved to \"%s\".  You can share the file by sending 
email to emacs-gc-st...@gnu.org" emacs-gc-stats-file)))
 



[elpa] externals/emacs-gc-stats 073b137f67 2/6: README: Clarify what is being collected

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit 073b137f67c55a63a42aad687b7f31744c73dd86
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

README: Clarify what is being collected
---
 README.md  | 10 ++
 README.org |  9 +
 2 files changed, 19 insertions(+)

diff --git a/README.md b/README.md
index 325f379dbc..f6443497ab 100644
--- a/README.md
+++ b/README.md
@@ -27,3 +27,13 @@ and then share the saved `emacs-gc-stats-file` (defaults to
 You can use `M-x emacs-gc-stats-clear` to clear the currently collected
 session data.
 
+The following data is being collected after every command:
+
+-   GC settings `gc-cons-threshold` and `gc-cons-percentage`
+-   Emacs version and whether Emacs framework (Doom, Prelude, etc) is used
+-   Whether `gcmh-mode` is used
+-   Idle time and Emacs uptime
+-   Available OS memory (see `memory-info`)
+-   Emacs memory allocation/GC stats
+-   Current command
+
diff --git a/README.org b/README.org
index d92f8bc104..7a4a916c16 100644
--- a/README.org
+++ b/README.org
@@ -28,3 +28,12 @@ mailto:emacs-gc-st...@gnu.org.
 
 You can use =M-x emacs-gc-stats-clear= to clear the currently collected
 session data.
+
+The following data is being collected after every command:
+- GC settings ~gc-cons-threshold~ and ~gc-cons-percentage~
+- Emacs version and whether Emacs framework (Doom, Prelude, etc) is used
+- Whether ~gcmh-mode~ is used
+- Idle time and Emacs uptime
+- Available OS memory (see ~memory-info~)
+- Emacs memory allocation/GC stats
+- Current command



[elpa] externals/emacs-gc-stats updated (478b9fcb08 -> cdea9f03ba)

2023-06-18 Thread ELPA Syncer
elpasync pushed a change to branch externals/emacs-gc-stats.

  from  478b9fcb08 Bump version to 1.2.1
   new  22dabe237e README: Mention the relevant emacs-devel threads
   new  073b137f67 README: Clarify what is being collected
   new  2fc536b3b2 emacs-gc-stats-save-session: Query and open mailto: link
   new  1419a996e9 Bump version to 1.2.2
   new  d9d6674b8e fixup! emacs-gc-stats-save-session: Query and open 
mailto: link
   new  cdea9f03ba Bump version to 1.2.3


Summary of changes:
 README.md | 15 +++
 README.org| 13 +
 emacs-gc-stats.el |  7 ++-
 3 files changed, 34 insertions(+), 1 deletion(-)



[elpa] externals/emacs-gc-stats 22dabe237e 1/6: README: Mention the relevant emacs-devel threads

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit 22dabe237e14ad139d23f1c369eb06ecda000466
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

README: Mention the relevant emacs-devel threads

* README.org: Add links to the emacs-devel threads introducing the
need to gather the statistics.
---
 README.md  | 5 +
 README.org | 4 
 2 files changed, 9 insertions(+)

diff --git a/README.md b/README.md
index c81790185c..325f379dbc 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,11 @@ This package collects Emacs garbage collection (GC) statistics 
over
 time and saves it in the format that can be shared with Emacs
 maintainers.
 
+Context:
+
+-   
+-   
+
 See the source code for information how to contact the author.
 
 **Usage:**
diff --git a/README.org b/README.org
index d64b1be4d1..d92f8bc104 100644
--- a/README.org
+++ b/README.org
@@ -5,6 +5,10 @@ This package collects Emacs garbage collection (GC) statistics 
over
 time and saves it in the format that can be shared with Emacs
 maintainers.
 
+Context:
+- https://yhetil.org/emacs-devel/20230310110747.4hytasakomvdyf7i@Ergus/
+- https://yhetil.org/emacs-devel/87v8j6t3i9.fsf@localhost/
+
 See the source code for information how to contact the author.
 
 *Usage:*



[elpa] externals/emacs-gc-stats 1419a996e9 4/6: Bump version to 1.2.2

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit 1419a996e9bc2933609447e2155b261d3c324b49
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

Bump version to 1.2.2
---
 emacs-gc-stats.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/emacs-gc-stats.el b/emacs-gc-stats.el
index ca4a69ff71..056ee4c628 100644
--- a/emacs-gc-stats.el
+++ b/emacs-gc-stats.el
@@ -7,7 +7,7 @@
 ;; URL: https://git.sr.ht/~yantar92/emacs-gc-stats
 ;; Package-Requires: ((emacs "25.1"))
 
-;; Version: 1.2.1
+;; Version: 1.2.2
 
 ;; 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



[elpa] externals/emacs-gc-stats 2fc536b3b2 3/6: emacs-gc-stats-save-session: Query and open mailto: link

2023-06-18 Thread ELPA Syncer
branch: externals/emacs-gc-stats
commit 2fc536b3b2657bddc3d01f5a339a1f60b2d3228b
Author: Ihor Radchenko 
Commit: Ihor Radchenko 

emacs-gc-stats-save-session: Query and open mailto: link

* emacs-gc-stats.el (emacs-gc-stats-save-session): Prompt to send
email and open mailto:emacs-gc-st...@gnu.org link.
---
 emacs-gc-stats.el | 4 
 1 file changed, 4 insertions(+)

diff --git a/emacs-gc-stats.el b/emacs-gc-stats.el
index d8de3c37bf..ca4a69ff71 100644
--- a/emacs-gc-stats.el
+++ b/emacs-gc-stats.el
@@ -184,6 +184,10 @@ Otherwise, collect symbol."
 (setcdr (cdr existing) (cdr session))
   (push session previous-sessions)))
   (prin1 previous-sessions (current-buffer)))
+(when
+   (yes-or-no-p
+(format "GC stats saved to \"%s\".  Send email to 
emacs-gc-st...@gnu.org? " emacs-gc-stats-file))
+  (browse-url "mailto:emacs-gc-st...@gnu.org";))
 (message "GC stats saved to \"%s\".  You can share the file by sending 
email to emacs-gc-st...@gnu.org" emacs-gc-stats-file)))
 
 (defun emacs-gc-stats-clear ()



[elpa] externals/org 294a4d2fe2: ox-icalendar: Add support for unscheduled and repeating TODOs

2023-06-18 Thread ELPA Syncer
branch: externals/org
commit 294a4d2fe21ffcdc1acbbafed1bfc69a1ece7d13
Author: Jack Kamm 
Commit: Jack Kamm 

ox-icalendar: Add support for unscheduled and repeating TODOs

* lisp/ox-icalendar.el (org-icalendar-todo-unscheduled-start): New
customization to control the exported start time of unscheduled tasks.
(org-icalendar--rrule): Helper function for RRULE export.
(org-icalendar--vevent): Use the new helper function for RRULE.
(org-icalendar--repeater-type): Helper function to get the repeater
type, and display warning if not supported.
(org-icalendar--vtodo): Change how unscheduled TODOs are handled using
the new customization option.  Export SCHEDULED and DEADLINE
repeaters.  In case of SCHEDULED repeater and a DEADLINE without
repeater, treat DEADLINE as RRULE UNTIL.  Emit a warning for tricky
edge cases that are not yet implemented.
* testing/lisp/test-ox-icalendar.el
(test-ox-icalendar/todo-repeater-shared): Test for exporting shared
SCHEDULED/DEADLINE repeater.
(test-ox-icalendar/todo-repeating-deadline-warndays): Test using
warning days as DTSTART of repeating deadline.
(test-ox-icalendar/todo-repeater-until): Test using DEADLINE as RRULE
UNTIL.
(test-ox-icalendar/todo-repeater-until-utc): Test RRULE UNTIL is in
UTC format when DTSTART is not in local time format.
(test-ox-icalendar/warn-unsupported-repeater): Unit test to warn for
unsupported repeater types.
* lisp/org-lint.el (org-lint-mismatched-planning-repeaters): Add lint
for mismatched SCHEDULED and DEADLINE repeaters.
* testing/lisp/test-org-lint.el
(test-org-lint/mismatched-planning-repeaters): Add test for linting of
mismatched SCHEDULED and DEADLINE repeaters.
* doc/org-manual.org (iCalendar Export): Add link to new variable
`org-icalendar-todo-unscheduled-start'.
---
 doc/org-manual.org|   6 +-
 etc/ORG-NEWS  |  64 ++
 lisp/org-lint.el  |  34 +++
 lisp/ox-icalendar.el  | 182 --
 testing/lisp/test-org-lint.el |   7 ++
 testing/lisp/test-ox-icalendar.el |  88 ++
 6 files changed, 353 insertions(+), 28 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index 4b00d1e6fd..4feb15e71f 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -16071,14 +16071,16 @@ standard iCalendar format.
 #+vindex: org-icalendar-include-todo
 #+vindex: org-icalendar-use-deadline
 #+vindex: org-icalendar-use-scheduled
+#+vindex: org-icalendar-todo-unscheduled-start
 The iCalendar export backend can also incorporate TODO entries based
 on the configuration of the ~org-icalendar-include-todo~ variable.
 The backend exports plain timestamps as =VEVENT=, TODO items as
 =VTODO=, and also create events from deadlines that are in non-TODO
 items.  The backend uses the deadlines and scheduling dates in Org
 TODO items for setting the start and due dates for the iCalendar TODO
-entry.  Consult the ~org-icalendar-use-deadline~ and
-~org-icalendar-use-scheduled~ variables for more details.
+entry.  Consult the ~org-icalendar-use-deadline~,
+~org-icalendar-use-scheduled~, and
+~org-icalendar-todo-unscheduled-start~ variables for more details.
 
 #+vindex: org-icalendar-categories
 #+vindex: org-icalendar-alarm-time
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 7e70150640..a24caddfed 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -50,6 +50,21 @@ ox-icalendar.  In particular, older versions of org-caldav 
may
 encounter issues, and users are advised to update to the most recent
 version of org-caldav.  See 
[[https://github.com/dengste/org-caldav/commit/618bf4cdc9be140ca1993901d017b7f18297f1b8][this
 org-caldav commit]] for more information.
 
+*** Icalendar export of unscheduled TODOs no longer have start time of today
+
+For TODOs without a scheduled start time, ox-icalendar no longer
+forces them to have a scheduled start time of today when exporting.
+
+Instead, the new customization ~org-icalendar-todo-unscheduled-start~
+controls the exported start date for unscheduled tasks.  Its default
+is ~recurring-deadline-warning~ which will export unscheduled tasks
+with no start date, unless it has a recurring deadline (in which case
+the iCalendar spec demands a start date, and
+~org-deadline-warning-days~ is used for that).
+
+To revert to the old behavior, set
+~org-icalendar-todo-unscheduled-start~ to ~current-datetime~.
+
 ** New and changed options
 *** Commands affected by ~org-fold-catch-invisible-edits~ can now be customized
 
@@ -188,6 +203,28 @@ default settings of "Body only", "Visible only", and "Force
 publishing" in the ~org-export-dispatch~ UI to be customized,
 respectively.
 
+*** New option ~org-icalendar-todo-unscheduled-start~ to control unscheduled 
TODOs in ox-icalendar
+
+~org-icalendar-todo-unscheduled-start~ controls how ox-icalendar
+exports the starting datetime for unsch

[nongnu] elpa/subed 93dde01c74 3/8: Merge remote-tracking branch 'mbork/waveform' into waveform

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit 93dde01c743bc62d714169179a8f9910cbab9476
Merge: 2606208506 5577c44bac
Author: Sacha Chua 
Commit: Sacha Chua 

Merge remote-tracking branch 'mbork/waveform' into waveform
---
 README.org  |   7 +
 subed/subed-common.el   |   1 +
 subed/subed-waveform.el | 316 
 subed/subed-waveform.el.license |   3 +
 subed/subed.el  |   3 +
 5 files changed, 330 insertions(+)

diff --git a/README.org b/README.org
index d129c85a48..f7d9f3677d 100644
--- a/README.org
+++ b/README.org
@@ -103,6 +103,13 @@ Microsoft Windows, you will not be able to synchronize 
with MPV.
 - Move one frame forward or backward (~C-c C-f .~ and ~C-c C-f ,~;
   pressing ~,~ or ~.~ afterwards moves by frames until any other
   key is pressed).
+- Show the waveform (~M-x subed-toggle-show-waveform~, off by default)
+  extracted from the media file using ~ffmpeg~ with the start/stop
+  positions of the current subtitle and the current position in MPV
+  marked along with the subtitle.  Change the "volume" of the waveform
+  (i.e., the /visible/ amplitude) with ~C-c C--~ and ~C-c C-=~.
+  Redisplay the waveform with ~C-c |~.  Left/right-click on the
+  waveform to set the start/stop timestamps.
 
 ** Installation
 *** Installing the subed package from NonGNU Elpa
diff --git a/subed/subed-common.el b/subed/subed-common.el
index 5940467a3b..0e465e3152 100644
--- a/subed/subed-common.el
+++ b/subed/subed-common.el
@@ -31,6 +31,7 @@
 (require 'subed-config)
 (require 'subed-debug)
 (require 'subed-mpv)
+(require 'subed-waveform)
 
 (declare-function subed-tsv-mode "subed-tsv" ())
 
diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
new file mode 100644
index 00..4cfbc32693
--- /dev/null
+++ b/subed/subed-waveform.el
@@ -0,0 +1,316 @@
+;;; subed-waveform.el --- display waveforms in subed buffers  -*- 
lexical-binding: t; -*-
+
+;; Copyright (C) 2023 Sacha Chua, Marcin Borkowski
+
+;; Author: Sacha Chua , Marcin Borkowski 
+;; Keywords: multimedia
+
+;; 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:
+
+;; This file contains variables, options, functions and commands for
+;; displaying a waveform along with the current subtitle.  To turn the
+;; displaying on, say `M-x subed-toggle-show-waveform'.  Press `C-x
+;; C-=' and `C-x C--' to make the amplitude of the displayed waveform
+;; larger and smaller.  If the waveform becomes corrupted or is out of
+;; sync (this may happen for example when you modify the start/stop
+;; timestamp(s) using Subed mode commands but then undo your changes),
+;; press `C-c |' to redisplay it.  Say `M-x customize-group
+;; subed-waveform' to configure.  Click the waveform with
+;; `mouse-1'/`mouse-2' to set the start/stop timestamp.  Consider
+;; setting `subed-loop-seconds-before' and `subed-loop-seconds-after'
+;; to positive values for better experience.
+;;
+;;; Code:
+
+(defcustom subed-waveform-ffmpeg-executable "ffmpeg"
+  "Path to the FFMPEG executable used for generating waveforms."
+  :type 'file
+  :group 'subed-waveform)
+
+(defcustom subed-waveform-ffmpeg-filter-args ":colors=white,negate"
+  "Additional arguments for the showwavespic filter.
+The background is black by default and the foreground reddish.
+To change the foreground color, use something like
+\":colors=white\".  To invert the colors (for example to obtain
+black on white), use \":colors=white,negate\"."
+  :type '(choice
+  (string :tag "Extra arguments to include")
+  (function :tag "Function to call with the width and height"))
+  :group 'subed-waveform)
+
+(defcustom subed-waveform-bar-params
+  '((:start . (:id "start" :stroke-color "darkgreen" :stroke-width "3"))
+(:stop . (:id "stop" :stroke-color "darkred" :stroke-width "3"))
+(:current . (:id "current" :stroke-color "orange" :stroke-width "2")))
+  "An alist of bar types and parameters.
+The keys in it are `:start', `:stop' and `:current'.  The values are
+SVG parameters of the displayed bars.  Every bar must have a unique
+`:id' parameter."
+  :type '(alist :key-type (choice (const :tag "Start" :start)
+ (const :tag "Stop" :stop)
+ (const :tag "Current" :current))
+   :value-type (plist :key-type symbol :value-type string))
+  :group 'subed-wav

[nongnu] elpa/subed fe09133aa5 6/8: Untabify everything

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit fe09133aa562b1f0ce6ec636dc31b957ffa075ee
Author: Sacha Chua 
Commit: Sacha Chua 

Untabify everything
---
 .dir-locals.el  |   2 +
 subed/subed-align.el|   4 +-
 subed/subed-ass.el  |   4 +-
 subed/subed-common.el   | 460 
 subed/subed-config.el   |   8 +-
 subed/subed-mpv.el  |  34 ++--
 subed/subed-srt.el  |   4 +-
 subed/subed-tsv.el  |   8 +-
 subed/subed-vtt.el  |   6 +-
 subed/subed-waveform.el | 242 -
 10 files changed, 387 insertions(+), 385 deletions(-)

diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 00..3a491ef96b
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,2 @@
+((emacs-lisp-mode
+  (indent-tabs-mode . nil)))
diff --git a/subed/subed-align.el b/subed/subed-align.el
index 4c8def2adb..bb25d545e5 100644
--- a/subed/subed-align.el
+++ b/subed/subed-align.el
@@ -95,7 +95,7 @@ Return a buffer with FORMAT."
 (goto-char (point-min))
 (flush-lines "^[0-9]+$")
 ;; reinsert comments
-   (subed-align-reinsert-comments subtitles)
+(subed-align-reinsert-comments subtitles)
 
 (defun subed-align-reinsert-comments (subtitles)
   "Reinsert the comments from SUBTITLES."
@@ -105,7 +105,7 @@ Return a buffer with FORMAT."
  (when (elt sub 4)
;; find the first subtitle that matches the sub, although the times may 
have changed.
;; Probably the midpoint of the subtitle will still be within the sub
-;; TODO: Accommodate comments in other formats
+   ;; TODO: Accommodate comments in other formats
(when (subed-jump-to-subtitle-id-at-msecs (/ (+ (elt sub 2) (elt sub 
1)) 2))
  (insert (elt sub 4)
subtitles))
diff --git a/subed/subed-ass.el b/subed/subed-ass.el
index 9f534ad0b3..9e26057e57 100644
--- a/subed/subed-ass.el
+++ b/subed/subed-ass.el
@@ -273,8 +273,8 @@ function for MAJOR-MODE."
 (subed-jump-to-subtitle-text)
 (delete-region pos (point))
 (insert " ")
-   (let 
((subed-enforce-time-boundaries nil))
-   
(subed-set-subtitle-time-stop new-end)))
+(let ((subed-enforce-time-boundaries nil))
+  (subed-set-subtitle-time-stop new-end)))
 (error "No subtitle to merge into")
 
 (cl-defmethod subed--auto-insert (&context (major-mode subed-ass-mode))
diff --git a/subed/subed-common.el b/subed/subed-common.el
index 0e465e3152..3c683042c8 100644
--- a/subed/subed-common.el
+++ b/subed/subed-common.el
@@ -349,9 +349,9 @@ If SUB-ID is not given, set the text of the current 
subtitle."
   nil)
 
 (subed-define-generic-function set-subtitle-time-start (msecs
-   

&optional sub-id
-   


ignore-negative-duration
-   

ignore-overlap)
+&optional sub-id
+
ignore-negative-duration
+ignore-overlap)
   "Set subtitle start time to MSECS milliseconds.
 
 If SUB-ID is not given, set the start of the current subtitle.
@@ -369,66 +369,66 @@ Return the new subtitle start time in milliseconds."
   (save-excursion
 (when (or (not sub-id)
   (and sub-id (subed-jump-to-subtitle-id sub-id)))
-   (when (< msecs 0)
-   (if (eq subed-enforce-time-boundaries 
'error)
-   (error "Start time %d is 
negative." msecs)
-   (setq msecs 0)))
-   (when (and
-(not ignore-negative-duration)
-subed-enforce-time-boundaries
-(> msecs 
(subed-subtitle-msecs-stop)))
-   (pcase subed-enforce-time-boundaries
-   ('error
-(error "Start time %s will be after 
stop time %s"
-   
(subed-msecs-to-timestamp msecs)
-

[nongnu] elpa/subed ec701d3a57 1/8: Add the capability to display waveforms

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit ec701d3a573c8193cce1baba6aa24b791bff2877
Author: Marcin Borkowski 
Commit: Marcin Borkowski 

Add the capability to display waveforms
---
 README.org  |   7 +
 subed/subed-common.el   |   1 +
 subed/subed-waveform.el | 279 
 subed/subed-waveform.el.license |   3 +
 subed/subed.el  |   3 +
 5 files changed, 293 insertions(+)

diff --git a/README.org b/README.org
index f51126b054..35bbfdcfb1 100644
--- a/README.org
+++ b/README.org
@@ -103,6 +103,13 @@ Microsoft Windows, you will not be able to synchronize 
with MPV.
 - Move one frame forward or backward (~C-c C-f .~ and ~C-c C-f ,~;
   pressing ~,~ or ~.~ afterwards moves by frames until any other
   key is pressed).
+- Show the waveform (~M-x subed-toggle-show-waveform~, off by default)
+  extracted from the media file using ~ffmpeg~ with the start/stop
+  positions of the current subtitle and the current position in MPV
+  marked along with the subtitle.  Change the "volume" of the waveform
+  (i.e., the /visible/ amplitude) with ~C-c C--~ and ~C-c C-=~.
+  Redisplay the waveform with ~C-c |~.  Left/right-click on the
+  waveform to set the start/stop timestamps.
 
 ** Installation
 *** Installing the subed package from NonGNU Elpa
diff --git a/subed/subed-common.el b/subed/subed-common.el
index 83d296c131..d2486c478d 100644
--- a/subed/subed-common.el
+++ b/subed/subed-common.el
@@ -31,6 +31,7 @@
 (require 'subed-config)
 (require 'subed-debug)
 (require 'subed-mpv)
+(require 'subed-waveform)
 
 (declare-function subed-tsv-mode "subed-tsv" ())
 
diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
new file mode 100644
index 00..62993f5dd6
--- /dev/null
+++ b/subed/subed-waveform.el
@@ -0,0 +1,279 @@
+;;; subed-waveform.el --- display waveforms in subed buffers  -*- 
lexical-binding: t; -*-
+
+;; Copyright (C) 2023 Sacha Chua, Marcin Borkowski
+
+;; Author: Sacha Chua , Marcin Borkowski 
+;; Keywords: multimedia
+
+;; 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:
+
+;; This file contains variables, options, functions and commands for
+;; displaying a waveform along with the current subtitle.  To turn the
+;; displaying on, say `M-x subed-toggle-show-waveform'.  Press `C-x
+;; C-=' and `C-x C--' to make the amplitude of the displayed waveform
+;; larger and smaller.  If the waveform becomes corrupted or is out of
+;; sync (this may happen for example when you modify the start/stop
+;; timestamp(s) using Subed mode commands but then undo your changes),
+;; press `C-c |' to redisplay it.  Say `M-x customize-group
+;; subed-waveform' to configure.  Click the waveform with
+;; `mouse-1'/`mouse-2' to set the start/stop timestamp.  Consider
+;; setting `subed-loop-seconds-before' and `subed-loop-seconds-after'
+;; to positive values for better experience.
+;;
+;;; Code:
+
+(defcustom subed-waveform-ffmpeg-executable "ffmpeg"
+  "Path to the FFMPEG executable used for generating waveforms."
+  :type 'file
+  :group 'subed-waveform)
+
+(defcustom subed-waveform-ffmpeg-filter-args ":colors=white,negate"
+  "Additional arguments for the showwavespic filter.
+The background is black by default and the foreground reddish.
+To change the foreground color, use something like
+\":colors=white\".  To invert the colors (for example to obtain
+black on white), use \":colors=white,negate\"."
+  :type '(choice
+  (string :tag "Extra arguments to include")
+  (function :tag "Function to call with the width and height"))
+  :group 'subed-waveform)
+
+(defcustom subed-waveform-bar-params
+  '((:start . (:id "start" :stroke-color "darkgreen" :stroke-width "3"))
+(:stop . (:id "stop" :stroke-color "darkred" :stroke-width "3"))
+(:current . (:id "current" :stroke-color "orange" :stroke-width "2")))
+  "An alist of bar types and parameters.
+The keys in it are `:start', `:stop' and `:current'.  The values are
+SVG parameters of the displayed bars.  Every bar must have a unique
+`:id' parameter."
+  :type '(alist :key-type (choice (const :tag "Start" :start)
+ (const :tag "Stop" :stop)
+ (const :tag "Current" :current))
+   :value-type (plist :key-type symbol :value-type string))
+  :group 'subed-waveform)
+
+(defcustom subed-waveform-v

[nongnu] elpa/subed updated (2606208506 -> 6ce7de37f2)

2023-06-18 Thread ELPA Syncer
elpasync pushed a change to branch elpa/subed.

  from  2606208506 1.2.2: Do not autoplay media over TRAMP
   new  ec701d3a57 Add the capability to display waveforms
   new  5577c44bac Add support for setting timestamps with the mouse
   new  93dde01c74 Merge remote-tracking branch 'mbork/waveform' into 
waveform
   new  6286279b93 Switch to subed-waveform-minor-mode, allow filter 
functions
   new  504ac658fb waveform: subed-waveform-preview-msecs-before / after, 
and more mouse commands
   new  fe09133aa5 Untabify everything
   new  b716bd8fdc Actually use `subed-waveform-minor-mode-map'
   new  6ce7de37f2 1.2.3 - merge subed-waveform


Summary of changes:
 .dir-locals.el  |   2 +
 NEWS.org|   7 +
 README.org  |  12 +-
 subed/subed-align.el|   4 +-
 subed/subed-ass.el  |   4 +-
 subed/subed-common.el   | 461 +-
 subed/subed-config.el   |   8 +-
 subed/subed-mpv.el  |  34 +--
 subed/subed-srt.el  |   4 +-
 subed/subed-tsv.el  |   8 +-
 subed/subed-vtt.el  |   6 +-
 subed/subed-waveform.el | 532 
 subed/subed-waveform.el.license |   3 +
 subed/subed.el  |   2 +-
 14 files changed, 820 insertions(+), 267 deletions(-)
 create mode 100644 .dir-locals.el
 create mode 100644 subed/subed-waveform.el
 create mode 100644 subed/subed-waveform.el.license



[nongnu] elpa/subed b716bd8fdc 7/8: Actually use `subed-waveform-minor-mode-map'

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit b716bd8fdcc68769567c56d9cc5f00e494a6e3eb
Author: Sacha Chua 
Commit: Sacha Chua 

Actually use `subed-waveform-minor-mode-map'

* subed/subed-waveform.el: Actually use
`subed-waveform-minor-mode-map'.
---
 subed/subed-waveform.el | 21 +++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
index 9a8d7ae401..04be565eeb 100644
--- a/subed/subed-waveform.el
+++ b/subed/subed-waveform.el
@@ -168,11 +168,20 @@ rounded to the nearest multiple of this number."
   (when (overlayp subed-waveform--image-overlay)
 (delete-overlay subed-waveform--image-overlay)))
 
+(defvar subed-waveform-minor-mode-map
+  (let ((map (make-sparse-keymap)))
+(define-key map (kbd "C-c C-=") #'subed-waveform-volume-increase)
+(define-key map (kbd "C-c C--") #'subed-waveform-volume-decrease)
+(define-key map (kbd "C-c |") #'subed-waveform-put-svg)
+map)
+  "Keymap for `subed-waveform-minor-mode'.")
+
 ;;;###autoload
 (define-minor-mode subed-waveform-minor-mode
   "Display waveforms for subtitles. Update on motion."
-  :lighter "w"
-  :require 'subed
+  :keymap subed-waveform-minor-mode-map
+   :lighter "w"
+   :require 'subed
   (if subed-waveform-minor-mode
   (progn
 (add-hook 'before-save-hook #'subed-waveform-remove nil t)
@@ -190,14 +199,6 @@ rounded to the nearest multiple of this number."
 (remove-hook 'subed-mpv-playback-position-hook 
#'subed-waveform--update-current-bar t)
 (remove-hook 'after-change-motion-hook #'subed-waveform-put-svg t)))
 
-(defvar subed-waveform-minor-mode-map
-  (let ((map (make-sparse-keymap)))
-(define-key map (kbd "C-c C-=") #'subed-waveform-volume-increase)
-(define-key map (kbd "C-c C--") #'subed-waveform-volume-decrease)
-(define-key map (kbd "C-c |") #'subed-waveform-put-svg)
-map)
-  "Keymap for `subed-waveform-minor-mode'.")
-
 (defconst subed-waveform-volume-map
   (let ((map (make-sparse-keymap)))
 (define-key map (kbd "C-=") #'subed-waveform-volume-increase)



[nongnu] elpa/subed 504ac658fb 5/8: waveform: subed-waveform-preview-msecs-before / after, and more mouse commands

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit 504ac658fb89a5ef73bf0bea180a0a2ed57c3432
Author: Sacha Chua 
Commit: Sacha Chua 

waveform: subed-waveform-preview-msecs-before / after, and more mouse 
commands

* subed/subed-waveform.el: Add more documentation.
(subed-waveform-preview-msecs-before): New option. I decided to use
msecs here because it's cleaner and fits into the way other parts of
subed use msecs. I'd like to change subed-loop-seconds-before to
subed-loop-msecs-before etc. someday...
(subed-waveform-preview-msecs-after): New option.
(subed-waveform-sample-msecs): New option, copied over from 
sachac/subed-waveform.
(subed-waveform-remove): Try to remove all the overlays from
subed-waveform, in case something has gotten very confused.
(subed-waveform-minor-mode): Remember to put the SVG on.
(subed-waveform-minor-mode-map): Move the keys to the minor mode map.
(subed-waveform--start): Local variable.
(subed-waveform--stop): Local variable.
(subed-waveform--pixels-per-second): Useful for mouse events.
(subed-waveform--position-to-percent): Return nil if position is nil.
(subed-waveform--set-svg): Use subed-preview-msecs-before / after, and
store subed-waveform--pixels-per-second.
(subed-waveform--update-current-bar): Do this only if playback
position is non-nil.
(subed-waveform-svg-map): Add the button clicks to the SVG map, and
include some of the features from sachac/subed-waveform.
(subed-waveform--update-overlay-svg): Rename the map to 
subed-waveform-svg-map.
(subed-waveform-put-svg): Check if we're in a valid subtitle before
adding the overlay.
(subed-waveform--mouse-event-to-ms): Indentation.
(subed-waveform-reduce-start-time, subed-waveform-increase-stop-time,
subed-waveform-split, subed-waveform--sample-timer,
subed-waveform-jump-to-timestamp,
subed-waveform--restore-mpv-position, subed-waveform-play-sample):
Copied from sachac/subed-waveform with a few tweaks.
* subed/subed.el (subed-mode-map): Remove subed-waveform keys.
---
 subed/subed-waveform.el | 293 ++--
 subed/subed.el  |   3 -
 2 files changed, 232 insertions(+), 64 deletions(-)

diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
index 9980d780aa..c4b05380b6 100644
--- a/subed/subed-waveform.el
+++ b/subed/subed-waveform.el
@@ -24,8 +24,47 @@
 ;; displaying a waveform along with the current subtitle.  Use
 ;; `subed-waveform-minor-mode' to turn the waveform display on or off.
 ;; Press `C-x C-=' and `C-x C--' to make the amplitude of the
-;; displayed waveform larger and smaller. Click the waveform with
-;; `mouse-1'/`mouse-2' to set the start/stop timestamp.
+;; displayed waveform larger and smaller.
+
+;; To set the start time, click the waveform with `mouse-1' (left-click).
+;; To set the stop time, use `mouse-3' (right-click).
+;; You can also adjust start/stop times with the following
+;; keybindings from `subed-mode-map':
+;; M-[ - `subed-decrease-start-time'
+;; M-] - `subed-increase-start-time'
+;; M-{ - `subed-decrease-stop-time'
+;; M-} - `subed-increase-stop-time'
+
+;; To play a sample from the middle of a waveform, middle-click on the
+;; position you would like to play.  This plays
+;; `subed-waveform-sample-msecs' milliseconds and then sets the
+;; playing position to that point.
+
+;; You can shift-drag with `mouse-1' (left mouse button) to the left
+;; of a subtitle's waveform in order to extend the view earlier and
+;; set the start time. `Shift-drag-mouse-3' (right mouse button) to
+;; extend the view later and set the stop time.
+
+;; To split a subtitle in the middle using the text at point, use
+;; S-C-mouse-2 (control-shift middle-click), which is bound to
+;; `subed-waveform-split'.
+
+;; Customization:
+
+;; Use `M-x customize-group subed-waveform' to configure options.  To
+;; change how much time you see before or after the current subtitle,
+;; set `subed-waveform-preview-msecs-before' and
+;; `subed-waveform-preview-msecs-after'. You may also want to adjust
+;; `subed-loop-seconds-before' and `subed-loop-seconds-after' if you
+;; want this to match the looping behavior toggled with
+;; `subed-toggle-loop-over-current-subtitle'. (Note the switch from
+;; milliseconds to seconds.)  The boundaries of the current subtitle
+;; as well as the current playing position are indicated with the
+;; colors set in `subed-waveform-bar-params'.
+;;
+;; To change how your adjustments affect previous/next subtitles,
+;; customize the `subed-enforce-time-boundaries' and
+;; `subed-subtitle-spacing' variables.
 
 ;; To automatically display subtitles whenever you open a subed file,
 ;; add the following to your configuration:
@@ -33,24 +72,20 @@
 ;; (with-eval-after-load 'subed
 ;;   (add-hook 'subed-mode-hook 'subed-waveform-minor-mode))
 ;;
+;; Troubleshooting:
+
 ;; If the waveform becomes corrupted or is out of sync (this may
 ;; happen for 

[nongnu] elpa/subed 6ce7de37f2 8/8: 1.2.3 - merge subed-waveform

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit 6ce7de37f21e123467ef1191db7a37cd99881c00
Author: Sacha Chua 
Commit: Sacha Chua 

1.2.3 - merge subed-waveform
---
 NEWS.org   | 7 +++
 subed/subed.el | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/NEWS.org b/NEWS.org
index f86484525a..0db7e7e84a 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,6 +1,13 @@
 #+OPTIONS: toc:nil
 
 * subed news
+** Version 1.2.3 - 2023-06-18 - Sacha Chua
+
+Added subed-waveform, which you can enable with
+subed-waveform-minor-mode. This makes it easier to review the waveform
+for the current subtitle so that you can use it to adjust the start or
+stop time. It requires the ffmpeg executable. Thanks, mbork!
+
 ** Version 1.2.2 - 2023-04-09 - Sacha Chua
 
 subed should not autoplay media over TRAMP.
diff --git a/subed/subed.el b/subed/subed.el
index 5d76a03567..cc6d24ebe4 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -1,6 +1,6 @@
 ;;; subed.el --- A major mode for editing subtitles  -*- lexical-binding: t; 
-*-
 
-;; Version: 1.2.2
+;; Version: 1.2.3
 ;; Maintainer: Sacha Chua 
 ;; Author: Random User
 ;; Keywords: convenience, files, hypermedia, multimedia



[nongnu] elpa/subed 6286279b93 4/8: Switch to subed-waveform-minor-mode, allow filter functions

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit 6286279b9323365c1e0a7454768bd380bd5f8384
Author: Sacha Chua 
Commit: Sacha Chua 

Switch to subed-waveform-minor-mode, allow filter functions

* README.org (Features): Document `subed-waveform-minor-mode'. Move it
above more specialized features such as word timing data and
alignment.
* subed/subed-waveform.el: Update the comment to refer to
`subed-waveform-minor-mode'. Add paragraphs.
(subed-waveform): Define customize group.
(subed-waveform-ffmpeg-filter-args): Change the default to gray to
make it more likely to be somewhat visible. (I wonder if we can get
this to default to the user's foreground color...) Include the
documentation for setting it to a function.
(subed-show-waveform-p): Removed because I changed it to be a minor
mode like my other implementation. That way, we can just use the minor
mode variable `subed-waveform-minor-mode' to check if it's enabled or
not. Using a minor mode means that the code for enabling and disabling
is together in one place and follows standard conventions, and has a
bunch of extra niceties like announcing the status and letting people
add hooks. I know there are a bunch of other things in subed that
don't use minor modes (like the CPS overlay); I might switch them over
at some point.
(subed-enable-show-waveform): Removed, use `subed-waveform-minor-mode'
with a positive arg.
(subed-disable-show-waveform): Removed, use
`subed-waveform-minor-mode' with a negative arg.
(subed-waveform-remove): New convenience function since we want to
call this from the mode as well.
(subed-waveform-minor-mode): New function.
(subed-waveform-fancy-filter): Example fancy filter.
(subed-waveform--from-file): Accept fancy filter.
(subed-waveform--*): Generally renamed subed--waveform-* to
subed-waveform--* so that the nameless package can hide the prefix
more easily.
(subed-waveform-put-svg): Ignores arguments so that it can easily be
added to hooks.
---
 README.org  |  19 +--
 subed/subed-waveform.el | 304 +++-
 2 files changed, 184 insertions(+), 139 deletions(-)

diff --git a/README.org b/README.org
index f7d9f3677d..f59c28c5f3 100644
--- a/README.org
+++ b/README.org
@@ -70,11 +70,19 @@ formats are:
   to happen automatically when buffers are loaded or saved, which
   time is adjusted, and how much time to leave between subtitles.
 - Convert between formats with ~M-x subed-convert~.
+- Show the waveform (~M-x subed-waveform-minor-mode~, off by default)
+  extracted from the media file using ~ffmpeg~ with the start/stop
+  positions of the current subtitle and the current position in MPV
+  marked along with the subtitle.  Change the "volume" of the waveform
+  (i.e., the /visible/ amplitude) with ~C-c C--~ and ~C-c C-=~.
+  Redisplay the waveform with ~C-c |~.  Left/right-click on the
+  waveform to set the start/stop timestamps. If you would like to display the 
waveform automatically when you open a file, you can add ~(add-hook 
'subed-mode-hook 'subed-waveform-minor-mode)~ to your configuration.  
 - Load word timing data (ex: SRV2) using ~M-x
-  subed-word-data-load-from-file~.
+  subed-word-data-load-from-file~. This will be used for splitting
+  words at timestamps when available.
 - Use ~M-x subed-align~ and [[https://www.readbeyond.it/aeneas/][aeneas]] to 
align your text or subtitles
   with an audio file in order to get timestamps.
-  
+
 *** mpv integration (optional)
 
 Using network sockets to control MPV works on Linux and on Mac OS X,
@@ -103,13 +111,6 @@ Microsoft Windows, you will not be able to synchronize 
with MPV.
 - Move one frame forward or backward (~C-c C-f .~ and ~C-c C-f ,~;
   pressing ~,~ or ~.~ afterwards moves by frames until any other
   key is pressed).
-- Show the waveform (~M-x subed-toggle-show-waveform~, off by default)
-  extracted from the media file using ~ffmpeg~ with the start/stop
-  positions of the current subtitle and the current position in MPV
-  marked along with the subtitle.  Change the "volume" of the waveform
-  (i.e., the /visible/ amplitude) with ~C-c C--~ and ~C-c C-=~.
-  Redisplay the waveform with ~C-c |~.  Left/right-click on the
-  waveform to set the start/stop timestamps.
 
 ** Installation
 *** Installing the subed package from NonGNU Elpa
diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
index 4cfbc32693..9980d780aa 100644
--- a/subed/subed-waveform.el
+++ b/subed/subed-waveform.el
@@ -21,31 +21,60 @@
 ;;; Commentary:
 
 ;; This file contains variables, options, functions and commands for
-;; displaying a waveform along with the current subtitle.  To turn the
-;; displaying on, say `M-x subed-toggle-show-waveform'.  Press `C-x
-;; C-=' and `C-x C--' to make the amplitude of the displayed waveform
-;; larger and smaller.  If the waveform becomes corrupted or is out of
-;; sync (this may happe

[nongnu] elpa/subed 5577c44bac 2/8: Add support for setting timestamps with the mouse

2023-06-18 Thread ELPA Syncer
branch: elpa/subed
commit 5577c44bace1636237c84a18143505259b0fd417
Author: Marcin Borkowski 
Commit: Marcin Borkowski 

Add support for setting timestamps with the mouse
---
 subed/subed-waveform.el | 41 +++--
 1 file changed, 39 insertions(+), 2 deletions(-)

diff --git a/subed/subed-waveform.el b/subed/subed-waveform.el
index 62993f5dd6..4cfbc32693 100644
--- a/subed/subed-waveform.el
+++ b/subed/subed-waveform.el
@@ -73,6 +73,14 @@ when people speak are indistinguishable from silence."
   :type 'number
   :group 'subed-waveform)
 
+(defcustom subed-waveform-timestamp-resolution
+  20
+  "Resolution of the timestamps.
+When the user clicks on the waveform, the timestamp set will be
+rounded to the nearest multiple of this number."
+  :type 'integer
+  :group 'subed-waveform)
+
 (defun subed-show-waveform-p ()
   "Whether waveform is displayed for the current subtitle."
   (member #'subed-waveform-put-svg subed-subtitle-motion-hook))
@@ -249,6 +257,13 @@ times per second."
 subed--waveform-stop))
   (subed--waveform-update-overlay-svg))
 
+(defconst subed-waveform-map
+  (let ((subed-waveform-map (make-keymap)))
+(define-key subed-waveform-map [mouse-1] #'subed-waveform-set-start)
+(define-key subed-waveform-map [mouse-3] #'subed-waveform-set-stop)
+subed-waveform-map)
+  "A keymap for clicking on the waveform.")
+
 (defun subed--waveform-update-overlay-svg ()
   "Update the SVG in the overlay.
 Assume `subed--waveform-svg' is already set."
@@ -256,8 +271,9 @@ Assume `subed--waveform-svg' is already set."
   'before-string
   (propertize
" "
-   'display
-   (svg-image subed--waveform-svg
+   'display (svg-image subed--waveform-svg)
+   'pointer 'arrow
+   'keymap subed-waveform-map)))
 
 (defun subed-waveform-put-svg ()
   "Put an overlay with the SVG in the current subtitle.
@@ -274,6 +290,27 @@ Set the relevant variables if necessary."
 "\n"))
   (subed--waveform-set-svg))
 
+(defun waveform-mouse-event-to-ms (event)
+  "Return the millisecond position of EVENT."
+  (let* ((x (car (elt (cadr event) 8)))
+ (width (car (elt (cadr event) 9
+(* subed-waveform-timestamp-resolution
+   (round (+ (* (/ (* 1.0 x) width)
+   (- subed--waveform-stop subed--waveform-start))
+subed--waveform-start)
+ subed-waveform-timestamp-resolution
+
+(defun subed-waveform-set-start (event)
+  "Set the start timestamp in the place clicked."
+  (interactive "e")
+  (subed-set-subtitle-time-start (waveform-mouse-event-to-ms event))
+  (subed--waveform-update-bars (subed-subtitle-msecs-start)))
+
+(defun subed-waveform-set-stop (event)
+  "Set the start timestamp in the place clicked."
+  (interactive "e")
+  (subed-set-subtitle-time-stop (waveform-mouse-event-to-ms event))
+  (subed--waveform-update-bars (subed-subtitle-msecs-start)))
 
 (provide 'subed-waveform)
 ;;; subed-waveform.el ends here