emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/subed 800d4b3 150/389: Return new start/stop time when adj


From: ELPA Syncer
Subject: [nongnu] elpa/subed 800d4b3 150/389: Return new start/stop time when adjusting
Date: Fri, 3 Dec 2021 11:00:15 -0500 (EST)

branch: elpa/subed
commit 800d4b3858429ae1399239ca140263073b1781b1
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>

    Return new start/stop time when adjusting
---
 subed/subed-srt.el      |  30 +++++++-----
 subed/subed.el          |   5 ++
 tests/test-subed-srt.el | 123 ++++++++++++++++++++++++++----------------------
 3 files changed, 91 insertions(+), 67 deletions(-)

diff --git a/subed/subed-srt.el b/subed/subed-srt.el
index dfa837e..37e1715 100644
--- a/subed/subed-srt.el
+++ b/subed/subed-srt.el
@@ -297,7 +297,8 @@ Return point or nil if there is no previous subtitle."
 ;;; Manipulation
 
 (defun subed-srt--adjust-subtitle-start-relative (msecs)
-  "Add MSECS milliseconds to start time (use negative value to subtract)."
+  "Add MSECS milliseconds to start time (use negative value to subtract).
+Return new start time in milliseconds or nil if it didn't change."
   (subed-disable-sync-point-to-player-temporarily)
   (let* ((msecs-start (subed-srt--subtitle-msecs-start))
          (msecs-new (when msecs-start (+ msecs-start msecs)))
@@ -311,14 +312,17 @@ Return point or nil if there is no previous subtitle."
         (setq msecs-new msecs-min))
       (when (> msecs-new msecs-max)
         (setq msecs-new msecs-max))
-      (save-excursion
-        (subed-srt-jump-to-subtitle-time-start)
-        (when (looking-at subed-srt--regexp-timestamp)
-          (replace-match (subed-srt--msecs-to-timestamp msecs-new))))
-      (subed--run-subtitle-time-adjusted-hook))))
+      (unless (eq msecs-new msecs-start)
+        (save-excursion
+          (subed-srt-jump-to-subtitle-time-start)
+          (when (looking-at subed-srt--regexp-timestamp)
+            (replace-match (subed-srt--msecs-to-timestamp msecs-new))
+            (subed--run-subtitle-time-adjusted-hook)
+            msecs-new))))))
 
 (defun subed-srt--adjust-subtitle-stop-relative (msecs)
-  "Add MSECS milliseconds to stop time (use negative value to subtract)."
+  "Add MSECS milliseconds to stop time (use negative value to subtract).
+Return new stop time in milliseconds or nil if it didn't change."
   (subed-disable-sync-point-to-player-temporarily)
   (let* ((msecs-stop (subed-srt--subtitle-msecs-stop))
          (msecs-new (when msecs-stop (+ msecs-stop msecs)))
@@ -332,11 +336,13 @@ Return point or nil if there is no previous subtitle."
         (setq msecs-new msecs-min))
       (when (and msecs-max (> msecs-new msecs-max))
         (setq msecs-new msecs-max))
-      (save-excursion
-        (subed-srt-jump-to-subtitle-time-stop)
-        (when (looking-at subed-srt--regexp-timestamp)
-          (replace-match (subed-srt--msecs-to-timestamp msecs-new))))
-      (subed--run-subtitle-time-adjusted-hook))))
+      (unless (eq msecs-new msecs-stop)
+        (save-excursion
+          (subed-srt-jump-to-subtitle-time-stop)
+          (when (looking-at subed-srt--regexp-timestamp)
+            (replace-match (subed-srt--msecs-to-timestamp msecs-new))
+            (subed--run-subtitle-time-adjusted-hook)
+            msecs-new))))))
 
 (defun subed-srt-subtitle-insert (&optional arg)
   "Insert subtitle(s).
diff --git a/subed/subed.el b/subed/subed.el
index 07bc00a..29573c1 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -180,6 +180,8 @@ Before BODY is run, point is placed on the subtitle's ID."
   "Add `subed-milliseconds-adjust' milliseconds to start time of
 current subtitle.
 
+Return new start time in milliseconds or nil if it didn't change.
+
 If a prefix argument is given, it is used to set
 `subed-milliseconds-adjust' before moving subtitles.  If the
 prefix argument is given but not numerical,
@@ -198,6 +200,7 @@ Example usage:
 (defun subed-decrease-start-time (&optional arg)
   "Subtract `subed-milliseconds-adjust' milliseconds from start
 time of current subtitle.
+Return new start time in milliseconds or nil if it didn't change.
 See also `subed-increase-start-time'."
   (interactive "P")
   (subed--adjust-subtitle-start-relative (* -1 (subed--get-milliseconds-adjust 
arg))))
@@ -205,6 +208,7 @@ See also `subed-increase-start-time'."
 (defun subed-increase-stop-time (&optional arg)
   "Add `subed-milliseconds-adjust' milliseconds to stop time of
 current subtitle.
+Return new stop time in milliseconds or nil if it didn't change.
 See also `subed-increase-start-time'."
   (interactive "P")
   (subed--adjust-subtitle-stop-relative (subed--get-milliseconds-adjust arg)))
@@ -212,6 +216,7 @@ See also `subed-increase-start-time'."
 (defun subed-decrease-stop-time (&optional arg)
   "Subtract `subed-milliseconds-adjust' milliseconds from stop
 time of current subtitle.
+Return new stop time in milliseconds or nil if it didn't change.
 See also `subed-increase-start-time'."
   (interactive "P")
   (subed--adjust-subtitle-stop-relative (* -1 (subed--get-milliseconds-adjust 
arg))))
diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el
index 3b4004f..90e68c1 100644
--- a/tests/test-subed-srt.el
+++ b/tests/test-subed-srt.el
@@ -611,71 +611,71 @@ Baz.
                 (add-hook 'subed-subtitle-time-adjusted-hook 'foo)
                 (with-temp-buffer
                   (insert mock-srt-data)
-                  (subed-increase-start-time)
+                  (expect (subed-increase-start-time) :to-equal 183550)
                   (expect 'foo :to-have-been-called-with 3 183550)
                   (expect 'foo :to-have-been-called-times 1)
                   (subed-srt-jump-to-subtitle-id 1)
-                  (subed-increase-stop-time)
+                  (expect (subed-increase-stop-time) :to-equal 65223)
                   (expect 'foo :to-have-been-called-with 1 61000)
                   (expect 'foo :to-have-been-called-times 2)
                   (subed-srt-jump-to-subtitle-end 2)
-                  (subed-decrease-start-time)
+                  (expect (subed-decrease-start-time) :to-equal 122134)
                   (expect 'foo :to-have-been-called-with 2 122134)
                   (expect 'foo :to-have-been-called-times 3)
                   (subed-srt-jump-to-subtitle-text 3)
-                  (subed-decrease-stop-time 100)
+                  (expect (subed-decrease-stop-time) :to-equal 195400)
                   (expect 'foo :to-have-been-called-with 3 183550)
                   (expect 'foo :to-have-been-called-times 4))))
           (it "adjusts the start/stop time."
               (with-temp-buffer
                 (insert mock-srt-data)
                 (subed-srt-jump-to-subtitle-id 1)
-                (subed-increase-start-time)
+                (expect (subed-increase-start-time) :to-equal 61100)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,100 --> 00:01:05,123\n")
-                (subed-decrease-start-time)
-                (subed-decrease-start-time)
+                (expect (subed-decrease-start-time) :to-equal 61000)
+                (expect (subed-decrease-start-time) :to-equal 60900)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,123\n")
-                (subed-increase-stop-time)
-                (subed-increase-stop-time)
+                (expect (subed-increase-stop-time) :to-equal 65223)
+                (expect (subed-increase-stop-time) :to-equal 65323)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,323\n")
-                (subed-decrease-stop-time)
+                (expect (subed-decrease-stop-time) :to-equal 65223)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:00,900 --> 00:01:05,223\n")))
           (it "adjusts the start/stop time if milliseconds lack digits."
               (with-temp-buffer
                 (insert mock-srt-data)
                 (subed-srt-jump-to-subtitle-id 3)
-                (subed-increase-start-time 200)
-                (subed-decrease-start-time 100)
+                (expect (subed-increase-start-time 200) :to-equal 183650)
+                (expect (subed-decrease-start-time 100) :to-equal 183550)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:03:03,550 --> 00:03:15,5\n")
-                (subed-increase-stop-time 100)
-                (subed-decrease-stop-time 200)
+                (expect (subed-increase-stop-time 100) :to-equal 195600)
+                (expect (subed-decrease-stop-time 200) :to-equal 195400)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-stop)
                                         (thing-at-point 'line)) :to-equal 
"00:03:03,550 --> 00:03:15,400\n")))
           (it "sets the number of seconds if given an argument."
               (with-temp-buffer
                 (insert mock-srt-data)
                 (subed-srt-jump-to-subtitle-id 1)
-                (subed-increase-start-time 200)
-                (subed-increase-start-time)
-                (subed-increase-start-time)
+                (expect (subed-increase-start-time 200) :to-equal 61200)
+                (expect (subed-increase-start-time) :to-equal 61400)
+                (expect (subed-increase-start-time) :to-equal 61600)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,600 --> 00:01:05,123\n")
-                (subed-decrease-start-time 50)
-                (subed-decrease-start-time)
+                (expect (subed-decrease-start-time 50) :to-be 61550)
+                (expect (subed-decrease-start-time) :to-be 61500)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:05,123\n")
-                (subed-decrease-stop-time 1000)
-                (subed-decrease-stop-time)
-                (subed-decrease-stop-time)
+                (expect (subed-decrease-stop-time 1000) :to-be 64123)
+                (expect (subed-decrease-stop-time) :to-be 63123)
+                (expect (subed-decrease-stop-time) :to-be 62123)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:02,123\n")
-                (subed-increase-stop-time 2000)
-                (subed-increase-stop-time)
+                (expect (subed-increase-stop-time 2000) :to-be 64123)
+                (expect (subed-increase-stop-time) :to-be 66123)
                 (expect (save-excursion (subed-srt-jump-to-subtitle-time-start)
                                         (thing-at-point 'line)) :to-equal 
"00:01:01,500 --> 00:01:06,123\n")))
           (describe "enforces limits"
@@ -684,27 +684,30 @@ Baz.
                                   (with-temp-buffer
                                     (insert mock-srt-data)
                                     (subed-srt-jump-to-subtitle-id 1)
-                                    (subed-decrease-start-time 60999)
+                                    (expect (subed-decrease-start-time 60999) 
:to-be 1)
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be 1)
-                                    (subed-decrease-start-time 1)
+                                    (expect (subed-decrease-start-time 1) 
:to-be 0)
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be 0)
-                                    (subed-decrease-start-time 1)
+                                    (expect (subed-decrease-start-time 1) 
:to-be nil)
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be 0)))
                               (it "of a non-first subtitle."
                                   (with-temp-buffer
                                     (insert mock-srt-data)
                                     (subed-srt-jump-to-subtitle-id 2)
-                                    (subed-decrease-start-time (- 
(subed-srt--subtitle-msecs-start 2)
-                                                                      
(subed-srt--subtitle-msecs-stop 1)
-                                                                      
subed-subtitle-spacing
-                                                                      1))
+                                    (expect (subed-decrease-start-time (- 
(subed-srt--subtitle-msecs-start 2)
+                                                                          
(subed-srt--subtitle-msecs-stop 1)
+                                                                          
subed-subtitle-spacing
+                                                                          1)) 
:to-be (+ (subed-srt--subtitle-msecs-stop 1)
+                                                                               
         subed-subtitle-spacing
+                                                                               
         1))
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be (+ (subed-srt--subtitle-msecs-stop 1)
                                                                                
         subed-subtitle-spacing
                                                                                
         1))
-                                    (subed-decrease-start-time 1)
+                                    (expect (subed-decrease-start-time 1) 
:to-be (+ (subed-srt--subtitle-msecs-stop 1)
+                                                                               
     subed-subtitle-spacing))
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be (+ (subed-srt--subtitle-msecs-stop 1)
                                                                                
         subed-subtitle-spacing))
-                                    (subed-decrease-start-time 1)
+                                    (expect (subed-decrease-start-time 1) 
:to-be nil)
                                     (expect (subed-srt--subtitle-msecs-start) 
:to-be (+ (subed-srt--subtitle-msecs-stop 1)
                                                                                
         subed-subtitle-spacing))))
                               )
@@ -712,21 +715,21 @@ Baz.
                         (with-temp-buffer
                           (insert mock-srt-data)
                           (subed-srt-jump-to-subtitle-id 2)
-                          (subed-increase-start-time (- 
(subed-srt--subtitle-msecs-stop 2)
-                                                            
(subed-srt--subtitle-msecs-start 2)
-                                                            1))
+                          (expect (subed-increase-start-time (- 
(subed-srt--subtitle-msecs-stop 2)
+                                                                
(subed-srt--subtitle-msecs-start 2)
+                                                                1)) :to-be (- 
(subed-srt--subtitle-msecs-stop 2) 1))
                           (expect (subed-srt--subtitle-msecs-start 2) :to-be 
(- (subed-srt--subtitle-msecs-stop 2) 1))
-                          (subed-increase-start-time 1)
+                          (expect (subed-increase-start-time 1) :to-be 
(subed-srt--subtitle-msecs-stop 2))
                           (expect (subed-srt--subtitle-msecs-start 2) :to-be 
(subed-srt--subtitle-msecs-stop 2))
-                          (subed-increase-start-time 1)
+                          (expect (subed-increase-start-time 1) :to-be nil)
                           (expect (subed-srt--subtitle-msecs-start 2) :to-be 
(subed-srt--subtitle-msecs-stop 2))))
                     (it "when decreasing stop time."
                         (with-temp-buffer
                           (insert mock-srt-data)
                           (subed-srt-jump-to-subtitle-id 2)
                           (subed-decrease-stop-time (- 
(subed-srt--subtitle-msecs-stop 2)
-                                                           
(subed-srt--subtitle-msecs-start 2)
-                                                           1))
+                                                       
(subed-srt--subtitle-msecs-start 2)
+                                                       1))
                           (expect (subed-srt--subtitle-msecs-stop 2) :to-be (+ 
(subed-srt--subtitle-msecs-start 2) 1))
                           (subed-decrease-stop-time 1)
                           (expect (subed-srt--subtitle-msecs-stop 2) :to-be 
(subed-srt--subtitle-msecs-start 2))
@@ -737,17 +740,24 @@ Baz.
                                   (with-temp-buffer
                                     (insert mock-srt-data)
                                     (subed-srt-jump-to-subtitle-id 3)
-                                    (subed-increase-stop-time (- (* 99 3600000)
-                                                                     
(subed-srt--subtitle-msecs-stop 3)))
+                                    (expect (subed-increase-stop-time (- (* 99 
3600000)
+                                                                         
(subed-srt--subtitle-msecs-stop 3)))
+                                            :to-be (* 99 3600000))
                                     (expect (subed-srt--subtitle-msecs-stop 3) 
:to-be (* 99 3600000))
-                                    (subed-increase-stop-time (* 59 60000))
+                                    (expect (subed-increase-stop-time (* 59 
60000)) :to-be (+ (* 99 3600000)
+                                                                               
               (* 59 60000)))
                                     (expect (subed-srt--subtitle-msecs-stop 3) 
:to-be (+ (* 99 3600000)
                                                                                
          (* 59 60000)))
-                                    (subed-increase-stop-time (* 59 1000))
+                                    (expect (subed-increase-stop-time (* 59 
1000)) :to-be (+ (* 99 3600000)
+                                                                               
              (* 59 60000)
+                                                                               
              (* 59 1000)))
                                     (expect (subed-srt--subtitle-msecs-stop 3) 
:to-be (+ (* 99 3600000)
                                                                                
          (* 59 60000)
                                                                                
          (* 59 1000)))
-                                    (subed-increase-stop-time 999)
+                                    (expect (subed-increase-stop-time 999) 
:to-be (+ (* 99 3600000)
+                                                                               
          (* 59 60000)
+                                                                               
          (* 59 1000)
+                                                                               
          999))
                                     (expect (subed-srt--subtitle-msecs-stop 3) 
:to-be (+ (* 99 3600000)
                                                                                
          (* 59 60000)
                                                                                
          (* 59 1000)
@@ -756,17 +766,20 @@ Baz.
                                   (with-temp-buffer
                                     (insert mock-srt-data)
                                     (subed-srt-jump-to-subtitle-id 2)
-                                    (subed-increase-stop-time (- 
(subed-srt--subtitle-msecs-start 3)
-                                                                     
(subed-srt--subtitle-msecs-stop 2)
-                                                                     
subed-subtitle-spacing
-                                                                     1))
+                                    (expect (subed-increase-stop-time (- 
(subed-srt--subtitle-msecs-start 3)
+                                                                         
(subed-srt--subtitle-msecs-stop 2)
+                                                                         
subed-subtitle-spacing
+                                                                         1)) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
+                                                                               
        subed-subtitle-spacing
+                                                                               
        1))
                                     (expect (subed-srt--subtitle-msecs-stop 2) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
                                                                                
          subed-subtitle-spacing
                                                                                
          1))
-                                    (subed-increase-stop-time 1)
+                                    (expect (subed-increase-stop-time 1) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
+                                                                               
    subed-subtitle-spacing))
                                     (expect (subed-srt--subtitle-msecs-stop 2) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
                                                                                
          subed-subtitle-spacing))
-                                    (subed-increase-stop-time 1)
+                                    (expect (subed-increase-stop-time 1) 
:to-be nil)
                                     (expect (subed-srt--subtitle-msecs-stop 2) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
                                                                                
          subed-subtitle-spacing))))
                               )
@@ -775,13 +788,13 @@ Baz.
               (with-temp-buffer
                 (insert "foo")
                 (goto-char (point-min))
-                (subed-increase-start-time)
+                (expect (subed-increase-start-time) :to-be nil)
                 (expect (buffer-string) :to-equal "foo")
-                (subed-decrease-start-time)
+                (expect (subed-decrease-start-time) :to-be nil)
                 (expect (buffer-string) :to-equal "foo")
-                (subed-increase-stop-time)
+                (expect (subed-increase-stop-time) :to-be nil)
                 (expect (buffer-string) :to-equal "foo")
-                (subed-decrease-stop-time)
+                (expect (subed-decrease-stop-time) :to-be nil)
                 (expect (buffer-string) :to-equal "foo")))
           )
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]