[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/subed a9a6835 154/389: Ensure subtitle length stays the sa
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/subed a9a6835 154/389: Ensure subtitle length stays the same when moving |
Date: |
Fri, 3 Dec 2021 11:00:16 -0500 (EST) |
branch: elpa/subed
commit a9a6835ef62f70a42609d6663568ee18698c5f38
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>
Ensure subtitle length stays the same when moving
---
subed/subed.el | 11 +++++++++--
tests/test-subed.el | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/subed/subed.el b/subed/subed.el
index 723ee8b..0e5cc7e 100644
--- a/subed/subed.el
+++ b/subed/subed.el
@@ -234,8 +234,15 @@ After subtitles are moved is done, replay the first moved
subtitle if replaying is enabled."
(subed--with-subtitle-replay-disabled
(subed--for-each-subtitle beg end
- (subed--adjust-subtitle-start msecs)
- (subed--adjust-subtitle-stop msecs)))
+ (if (> msecs 0)
+ ;; Moving subtitles forward may reduce MSECS if there isn't enough
+ ;; room for the full movement. Using the MSECS the stop time was
+ ;; moved to move the start time ensures that subtitle length doesn't
+ ;; change.
+ (let ((msecs (subed--adjust-subtitle-stop msecs)))
+ (when msecs (subed--adjust-subtitle-start msecs)))
+ (let ((msecs (subed--adjust-subtitle-start msecs)))
+ (when msecs (subed--adjust-subtitle-stop msecs))))))
(when (subed-replay-adjusted-subtitle-p)
(save-excursion
(when beg (goto-char beg))
diff --git a/tests/test-subed.el b/tests/test-subed.el
index ba83edc..885bb8f 100644
--- a/tests/test-subed.el
+++ b/tests/test-subed.el
@@ -94,6 +94,58 @@
(subed-move-subtitle-backward 100)
(expect (subed--subtitle-msecs-start) :to-equal
orig-start)
(expect (subed--subtitle-msecs-stop) :to-equal
orig-stop)))))
+ (it "adjusts start and stop time by the same amount when adding
fails."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:01,600\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:02,000 --> 00:00:03,000\n"
+ "Bar.\n"))
+ (subed-jump-to-subtitle-id 1)
+ (subed-move-subtitle-forward 1000)
+ (expect (subed--subtitle-msecs-start) :to-equal 1300)
+ (expect (subed--subtitle-msecs-stop) :to-equal 1900)))
+ (it "adjusts start and stop time by the same amount when subtracting
fails."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:01,600\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:02,000 --> 00:00:03,000\n"
+ "Bar.\n"))
+ (subed-jump-to-subtitle-id 2)
+ (subed-move-subtitle-backward 1000)
+ (expect (subed--subtitle-msecs-start) :to-equal 1700)
+ (expect (subed--subtitle-msecs-stop) :to-equal 2700)))
+ (it "does not adjust start time if adjusting stop time fails."
+ (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-move-subtitle-forward 1) :to-be nil)
+ (expect (subed--subtitle-msecs-start 1) :to-equal 1000)
+ (expect (subed--subtitle-msecs-stop 1) :to-equal 2000)
+ (expect (subed--subtitle-msecs-start 2) :to-equal 2000)
+ (expect (subed--subtitle-msecs-stop 2) :to-equal 3000)))
+ (it "does not adjust stop time if adjusting start time fails."
+ (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-move-subtitle-backward 1) :to-be nil)
+ (expect (subed--subtitle-msecs-start 1) :to-equal 1000)
+ (expect (subed--subtitle-msecs-stop 1) :to-equal 2000)
+ (expect (subed--subtitle-msecs-start 2) :to-equal 2000)
+ (expect (subed--subtitle-msecs-stop 2) :to-equal 3000)))
(describe "adjusts subtitles in the active region,"
(it "excluding the first subtitle."
(with-temp-buffer
- [nongnu] elpa/subed aae6f0c 123/389: Add function: subed-srt--run-subtitle-time-adjusted-hook, (continued)
- [nongnu] elpa/subed aae6f0c 123/389: Add function: subed-srt--run-subtitle-time-adjusted-hook, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b912311 128/389: Do not sync point to player if region is active, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed f95e914 132/389: Remove old junk code, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 205d3c8 135/389: Add subed-shift-subtitle-forward/backward, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2952936 133/389: Reword some docstrings, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 0a20cef 138/389: Run subtitle-time-adjusted-hook only if time was adjusted, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7e5690c 142/389: Reword subtitle shifting description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 84935a7 152/389: Make sure adjusting forward/backward never subtracts/adds, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b34eb47 158/389: Fix docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 19efbb8 161/389: Rename subed--mode-enabled to subed-mode--enabled-p, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a9a6835 154/389: Ensure subtitle length stays the same when moving,
ELPA Syncer <=
- [nongnu] elpa/subed 10e0e28 155/389: Use #' for functions, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed e799392 174/389: subed-move-subtitle: Fix docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 381ed1e 159/389: Add subed-srt--max-subtitle-id, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2b3a1d4 165/389: Regenerate IDs after killing a subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 4d2c26d 163/389: Add subed-srt--regenerate-ids-soon-timer, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a6300b2 164/389: Don't regenerate IDs immediately after inserting subtitle(s), ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 800b7aa 166/389: Move timer variables from subed-config.el to where they are used, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 3792b4b 178/389: subed-move-subtitle: Adjust docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 0e6ba37 180/389: Add option to ignore subtitle spacing when adjusting start/stop time, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a7fa089 202/389: Remove unused variable err when parsing JSON response, ELPA Syncer, 2021/12/03