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

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

[nongnu] elpa/subed 53d1e33 102/389: Fix error when adjusting start/stop


From: ELPA Syncer
Subject: [nongnu] elpa/subed 53d1e33 102/389: Fix error when adjusting start/stop time in empty buffer
Date: Fri, 3 Dec 2021 11:00:06 -0500 (EST)

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

    Fix error when adjusting start/stop time in empty buffer
---
 subed/subed-srt.el      | 36 ++++++++++++++++++++----------------
 tests/test-subed-srt.el | 12 ++++++++++++
 2 files changed, 32 insertions(+), 16 deletions(-)

diff --git a/subed/subed-srt.el b/subed/subed-srt.el
index 135c363..f4ec666 100644
--- a/subed/subed-srt.el
+++ b/subed/subed-srt.el
@@ -298,26 +298,30 @@ Return point or nil if there is no previous subtitle."
 
 (defun subed-srt--adjust-subtitle-start-relative (msecs)
   "Add MSECS milliseconds to start time (use negative value to subtract)."
-  (let ((msecs-new (+ (subed-srt--subtitle-msecs-start) msecs)))
-    (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))))
-    (when subed-subtitle-time-adjusted-hook
-      (let ((sub-id (subed-srt--subtitle-id)))
-        (run-hook-with-args 'subed-subtitle-time-adjusted-hook sub-id 
msecs-new)))))
+  (let* ((msecs-start (subed-srt--subtitle-msecs-start))
+         (msecs-new (when msecs-start (+ msecs-start msecs))))
+    (when msecs-new
+      (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))))
+      (when subed-subtitle-time-adjusted-hook
+        (run-hook-with-args 'subed-subtitle-time-adjusted-hook
+                            (subed-srt--subtitle-id) msecs-new)))))
 
 (defun subed-srt--adjust-subtitle-stop-relative (msecs)
   "Add MSECS milliseconds to stop time (use negative value to subtract)."
-  (let ((msecs-new (+ (subed-srt--subtitle-msecs-stop) msecs)))
-    (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))))
+  (let* ((msecs-stop (subed-srt--subtitle-msecs-stop))
+         (msecs-new (when msecs-stop (+ msecs-stop msecs))))
+    (when msecs-new
+      (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))))
     (when subed-subtitle-time-adjusted-hook
-      (let ((sub-id (subed-srt--subtitle-id)))
-        (run-hook-with-args 'subed-subtitle-time-adjusted-hook sub-id
-                            (subed-srt--subtitle-msecs-start))))))
+      (run-hook-with-args 'subed-subtitle-time-adjusted-hook
+                          (subed-srt--subtitle-id)
+                          (subed-srt--subtitle-msecs-start))))))
 
 (defun subed-srt-increase-start-time (&optional arg)
   "Add `subed-seconds-adjust' milliseconds to start time of current subtitle.
diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el
index 9a0ff2e..ef60f5d 100644
--- a/tests/test-subed-srt.el
+++ b/tests/test-subed-srt.el
@@ -678,6 +678,18 @@ Baz.
                 (subed-srt-increase-stop-time)
                 (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")))
+          (it "does nothing if no timestamp can be found."
+              (with-temp-buffer
+                (insert "foo")
+                (goto-char (point-min))
+                (subed-srt-increase-start-time)
+                (expect (buffer-string) :to-equal "foo")
+                (subed-srt-decrease-start-time)
+                (expect (buffer-string) :to-equal "foo")
+                (subed-srt-increase-stop-time)
+                (expect (buffer-string) :to-equal "foo")
+                (subed-srt-decrease-stop-time)
+                (expect (buffer-string) :to-equal "foo")))
           )
 
 (describe "Killing a subtitle"



reply via email to

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