[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"
- [nongnu] elpa/subed 189e5aa 088/389: Make more functions available format-agnosticly, (continued)
- [nongnu] elpa/subed 189e5aa 088/389: Make more functions available format-agnosticly, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 14d52d7 089/389: Add subed--for-each-subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7710790 090/389: Add subed-move-subtitle-forward/backward, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 3511026 091/389: Move utilities to the top, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 81aca87 008/389: Be more robust when moving forward/backward to subtitle text, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 8e4bd20 069/389: Fix indentation, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 6e525b9 079/389: Add screenshot, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed bf9ceeb 094/389: Reduce word count by 1, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 42199eb 095/389: Workaround for GitHub's lack of support for ~~/path/in/home~, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 5c51000 101/389: Call time-adjusted-hook functions with start time, not stop time, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 53d1e33 102/389: Fix error when adjusting start/stop time in empty buffer,
ELPA Syncer <=
- [nongnu] elpa/subed a0cb0f1 108/389: Keep region active during subtitle movement, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2c7554a 109/389: Wrap subed--for-each-subtitle in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed e792e0f 122/389: Fix test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 489bbea 130/389: Remove subed-milliseconds-move, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a7dda70 137/389: Add subtitle shifting to features, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a819a93 139/389: Fix test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 06851d8 143/389: Prevent overlapping when adjusting subtitle start/stop time, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 651c6de 031/389: Wrap some function bodies in save-match-data, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 57c902a 068/389: subed-srt-sanitize: Don't change buffer unless it's necessary, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 1571de4 070/389: Use prefix arg to set start/stop time adjustment, ELPA Syncer, 2021/12/03