From 80a62cad23bf87dea2eaa3e6f2e644efc6265232 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Sun, 1 Mar 2020 03:14:52 +0100 Subject: [PATCH] Fixes conversion of files containing semicolons --- .../ffmpegconverter/converter/AnimeConverter.java | 2 +- .../knarcraft/ffmpegconverter/converter/Converter.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/knarcraft/ffmpegconverter/converter/AnimeConverter.java b/src/main/java/net/knarcraft/ffmpegconverter/converter/AnimeConverter.java index 3e5ed87..3a1555c 100644 --- a/src/main/java/net/knarcraft/ffmpegconverter/converter/AnimeConverter.java +++ b/src/main/java/net/knarcraft/ffmpegconverter/converter/AnimeConverter.java @@ -113,7 +113,7 @@ public class AnimeConverter extends Converter { command.add("-map"); command.add("0:" + videoStream.getAbsoluteIndex()); command.add("-vf"); - String safeFileName = fileName.replace("'", "\\\\\\'").replace("]", "\\]").replace("[", "\\["); + String safeFileName = escapeSpecialCharactersInFileName(fileName); String subtitleCommand = String.format("subtitles=\"%s\"", safeFileName); command.add(subtitleCommand); } else { diff --git a/src/main/java/net/knarcraft/ffmpegconverter/converter/Converter.java b/src/main/java/net/knarcraft/ffmpegconverter/converter/Converter.java index 16f8fa2..455c126 100644 --- a/src/main/java/net/knarcraft/ffmpegconverter/converter/Converter.java +++ b/src/main/java/net/knarcraft/ffmpegconverter/converter/Converter.java @@ -423,6 +423,14 @@ public abstract class Converter { } return new SubtitleStream(codecName, absoluteIndex, relativeIndex, language, title); } + + static String escapeSpecialCharactersInFileName(String fileName) { + return fileName.replace("'", "\\\\\\'") + .replace(",", "\\\\\\,") + .replace(";", "\\\\\\;") + .replace("]", "\\]") + .replace("[", "\\["); + } static void print(String input) throws IOException { if (!input.equals("")) {