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

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

[nongnu] elpa/subed 84935a7 152/389: Make sure adjusting forward/backwar


From: ELPA Syncer
Subject: [nongnu] elpa/subed 84935a7 152/389: Make sure adjusting forward/backward never subtracts/adds
Date: Fri, 3 Dec 2021 11:00:16 -0500 (EST)

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

    Make sure adjusting forward/backward never subtracts/adds
---
 subed/subed-srt.el      | 10 ++++++++--
 tests/test-subed-srt.el | 22 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/subed/subed-srt.el b/subed/subed-srt.el
index f4552ba..1a703df 100644
--- a/subed/subed-srt.el
+++ b/subed/subed-srt.el
@@ -312,7 +312,10 @@ Return new start time in milliseconds or nil if it didn't 
change."
         (setq msecs-new msecs-min))
       (when (> msecs-new msecs-max)
         (setq msecs-new msecs-max))
-      (unless (eq msecs-new msecs-start)
+      ;; msecs-new must be bigger than the current start time if we are adding
+      ;; or smaller if we are subtracting.
+      (when (or (and (> msecs 0) (> msecs-new msecs-start))   ;; Adding
+                (and (< msecs 0) (< msecs-new msecs-start)))  ;; Subtracting
         (save-excursion
           (subed-srt-jump-to-subtitle-time-start)
           (when (looking-at subed-srt--regexp-timestamp)
@@ -336,7 +339,10 @@ Return new stop time in milliseconds or nil if it didn't 
change."
         (setq msecs-new msecs-min))
       (when (and msecs-max (> msecs-new msecs-max))
         (setq msecs-new msecs-max))
-      (unless (eq msecs-new msecs-stop)
+      ;; msecs-new must be bigger than the current stop time if we are adding 
or
+      ;; smaller if we are subtracting.
+      (when (or (and (> msecs 0) (> msecs-new msecs-stop))   ;; Adding
+                (and (< msecs 0) (< msecs-new msecs-stop)))  ;; Subtracting
         (save-excursion
           (subed-srt-jump-to-subtitle-time-stop)
           (when (looking-at subed-srt--regexp-timestamp)
diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el
index 90e68c1..2433f08 100644
--- a/tests/test-subed-srt.el
+++ b/tests/test-subed-srt.el
@@ -783,6 +783,28 @@ Baz.
                                     (expect (subed-srt--subtitle-msecs-stop 2) 
:to-be (- (subed-srt--subtitle-msecs-start 3)
                                                                                
          subed-subtitle-spacing))))
                               )
+                    (it "without undershooting the target time."
+                        (with-temp-buffer
+                          (insert (concat "1\n"
+                                          "00:00:01,000 --> 00:00:02,000\n"
+                                          "Foo.\n\n"
+                                          "2\n"
+                                          "00:00:02,000 --> 00:00:03,000\n"
+                                          "Bar.\n"))
+                          (subed-jump-to-subtitle-id 1)
+                          (expect (subed-increase-stop-time 1) :to-be nil)
+                          (expect (subed--subtitle-msecs-stop) :to-equal 
2000)))
+                    (it "without overshooting the target time."
+                        (with-temp-buffer
+                          (insert (concat "1\n"
+                                          "00:00:01,000 --> 00:00:02,000\n"
+                                          "Foo.\n\n"
+                                          "2\n"
+                                          "00:00:02,000 --> 00:00:03,000\n"
+                                          "Bar.\n"))
+                          (subed-jump-to-subtitle-id 2)
+                          (expect (subed-decrease-start-time 1) :to-be nil)
+                          (expect (subed--subtitle-msecs-start) :to-equal 
2000)))
                     )
           (it "does nothing if no timestamp can be found."
               (with-temp-buffer



reply via email to

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