Merge lp:~e7appew/ubuntu/wily/bombono-dvd/mux-files-with-spaces-wily into lp:ubuntu/wily/bombono-dvd
- Wily (15.10)
- mux-files-with-spaces-wily
- Merge into wily
Status: | Needs review |
---|---|
Proposed branch: | lp:~e7appew/ubuntu/wily/bombono-dvd/mux-files-with-spaces-wily |
Merge into: | lp:ubuntu/wily/bombono-dvd |
Diff against target: |
346 lines (+292/-2) 6 files modified
.pc/0002-Allow-muxing-of-files-with-spaces.patch/src/mgui/mux.cpp (+242/-0) .pc/applied-patches (+1/-0) debian/changelog (+7/-0) debian/patches/0002-Allow-muxing-of-files-with-spaces.patch (+39/-0) debian/patches/series (+1/-0) src/mgui/mux.cpp (+2/-2) |
To merge this branch: | bzr merge lp:~e7appew/ubuntu/wily/bombono-dvd/mux-files-with-spaces-wily |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Brian Murray | Needs Fixing | ||
Review via email: mp+279986@code.launchpad.net |
Commit message
Description of the change
Carlos Maddela (e7appew) wrote : | # |
It's been a while since I looked at this, but if I remember correctly,
when you quote %2% as well, all the rest of the arguments would be
treated as a single string, and the command fails.
On 08/06/16 04:51, Brian Murray wrote:
> Review: Needs Fixing
>
> The patch's quoting of %2% is inconsistent, in one part it is bordered by \" and in another it isn't.
>
> Diff comments:
>
>> === added file 'debian/
>> --- debian/
>> +++ debian/
>> @@ -0,0 +1,39 @@
>> +From: Carlos Maddela <email address hidden>
>> +Date: Thu, 13 Aug 2015 15:05:04 +1000
>> +Subject: Allow muxing of files whose name or path contains spaces
>> +
>> +Description: Allow muxing of files whose name or path contains spaces.
>> + Arguments to mplex command should be quoted in case the files to be
>> + muxed have names or paths containing spaces.
>> +Author: Carlos Maddela <email address hidden>
>> +Origin: vendor
>> +Bug-Ubuntu: https:/
>> +Last-Update: 2015-12-09
>> +---
>> +This patch header follows DEP-3: http://
>> +---
>> + src/mgui/mux.cpp | 4 ++--
>> + 1 file changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/src/mgui/mux.cpp b/src/mgui/mux.cpp
>> +index 427058e..cc4922b 100644
>> +--- a/src/mgui/mux.cpp
>> ++++ b/src/mgui/mux.cpp
>> +@@ -99,7 +99,7 @@ static bool RunMuxing(const std::string& dest_path, const std::string& args)
>> + ExitData ed;
>> + {
>> + Execution::Pulse pls(prg_bar);
>> +- std::string cmd = boost::
>> ++ std::string cmd = boost::
> Shouldn't %2% be treated the same way as %1% here?
>
>> + AppendCommandTe
>> + ed = ExecuteAsync(0, cmd.c_str(), TextViewAppende
>> + }
>> +@@ -234,7 +234,7 @@ bool MuxStreams(
>> + if( res )
>> + {
>> + dlg.hide();
>> +- res = RunMuxing(
>> ++ res = RunMuxing(
>> + }
>> +
>> + return res;
>
Unmerged revisions
- 27. By Carlos Maddela
-
Merge branch 'mux-files-
with-spaces- vivid' into mux-files- with-spaces- wily
Preview Diff
1 | === added directory '.pc/0002-Allow-muxing-of-files-with-spaces.patch' | |||
2 | === added directory '.pc/0002-Allow-muxing-of-files-with-spaces.patch/src' | |||
3 | === added directory '.pc/0002-Allow-muxing-of-files-with-spaces.patch/src/mgui' | |||
4 | === added file '.pc/0002-Allow-muxing-of-files-with-spaces.patch/src/mgui/mux.cpp' | |||
5 | --- .pc/0002-Allow-muxing-of-files-with-spaces.patch/src/mgui/mux.cpp 1970-01-01 00:00:00 +0000 | |||
6 | +++ .pc/0002-Allow-muxing-of-files-with-spaces.patch/src/mgui/mux.cpp 2015-12-09 09:32:38 +0000 | |||
7 | @@ -0,0 +1,242 @@ | |||
8 | 1 | // | ||
9 | 2 | // mgui/mux.cpp | ||
10 | 3 | // This file is part of Bombono DVD project. | ||
11 | 4 | // | ||
12 | 5 | // Copyright (c) 2010 Ilya Murav'jov | ||
13 | 6 | // | ||
14 | 7 | // This program is free software; you can redistribute it and/or modify | ||
15 | 8 | // it under the terms of the GNU General Public License as published by | ||
16 | 9 | // the Free Software Foundation; either version 2 of the License, or | ||
17 | 10 | // (at your option) any later version. | ||
18 | 11 | // | ||
19 | 12 | // This program is distributed in the hope that it will be useful, | ||
20 | 13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | 14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
22 | 15 | // GNU General Public License for more details. | ||
23 | 16 | // | ||
24 | 17 | // You should have received a copy of the GNU General Public License | ||
25 | 18 | // along with this program; if not, write to the Free Software | ||
26 | 19 | // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
27 | 20 | // | ||
28 | 21 | |||
29 | 22 | #include <mgui/_pc_.h> | ||
30 | 23 | |||
31 | 24 | #include "mux.h" | ||
32 | 25 | #include "execution.h" // ExecuteAsync() | ||
33 | 26 | |||
34 | 27 | #include <mgui/sdk/textview.h> | ||
35 | 28 | #include <mgui/sdk/packing.h> | ||
36 | 29 | #include <mgui/sdk/widget.h> | ||
37 | 30 | |||
38 | 31 | #include <mgui/execution.h> | ||
39 | 32 | #include <mgui/gettext.h> | ||
40 | 33 | #include <mgui/dialog.h> | ||
41 | 34 | |||
42 | 35 | #include <mlib/filesystem.h> | ||
43 | 36 | |||
44 | 37 | #include <gtk/gtkwindow.h> // gtk_window_set_geometry_hints() | ||
45 | 38 | |||
46 | 39 | static void OnNewText(Gtk::TextView& txt_view, const char* dat, int sz, bool is_out, | ||
47 | 40 | const ReadReadyFnr& add_fnr, const std::string& prefix) | ||
48 | 41 | { | ||
49 | 42 | AppendNewText(txt_view, prefix + std::string(dat, sz), is_out); | ||
50 | 43 | if( add_fnr ) | ||
51 | 44 | add_fnr(dat, sz, is_out); | ||
52 | 45 | } | ||
53 | 46 | |||
54 | 47 | ReadReadyFnr TextViewAppender(Gtk::TextView& txt_view, const ReadReadyFnr& add_fnr, | ||
55 | 48 | const std::string& prefix) | ||
56 | 49 | { | ||
57 | 50 | return bb::bind(&OnNewText, boost::ref(txt_view), _1, _2, _3, add_fnr, prefix); | ||
58 | 51 | } | ||
59 | 52 | |||
60 | 53 | static void OnResponse(Execution::Data& edat, int resp) | ||
61 | 54 | { | ||
62 | 55 | if( resp == Gtk::RESPONSE_CANCEL) | ||
63 | 56 | { | ||
64 | 57 | // повтороне нажатие - закрытие диалога | ||
65 | 58 | if( !edat.userAbort ) | ||
66 | 59 | edat.StopExecution(_("muxing")); | ||
67 | 60 | } | ||
68 | 61 | } | ||
69 | 62 | |||
70 | 63 | void SetDialogStrict(Gtk::Dialog& dlg, int min_wdh, int min_hgt, bool set_resizable) | ||
71 | 64 | { | ||
72 | 65 | dlg.set_resizable(set_resizable); // чтоб при закрытии экспандера диалог уменьшался | ||
73 | 66 | // размер окна пошире | ||
74 | 67 | GdkGeometry geom; | ||
75 | 68 | geom.min_width = min_wdh; | ||
76 | 69 | geom.min_height = min_hgt; | ||
77 | 70 | gtk_window_set_geometry_hints(static_cast<Gtk::Window&>(dlg).gobj(), 0, &geom, GDK_HINT_MIN_SIZE); | ||
78 | 71 | } | ||
79 | 72 | |||
80 | 73 | static bool RunMuxing(const std::string& dest_path, const std::string& args) | ||
81 | 74 | { | ||
82 | 75 | Gtk::Dialog dlg(BF_("Muxing \"%1%\"") % fs::name_str(dest_path) % bf::stop); | ||
83 | 76 | SetDialogStrict(dlg, 400, -1); | ||
84 | 77 | |||
85 | 78 | Gtk::TextView& txt_view = NewManaged<Gtk::TextView>(); | ||
86 | 79 | Execution::Data edat; | ||
87 | 80 | Gtk::ProgressBar& prg_bar = NewManaged<Gtk::ProgressBar>(); | ||
88 | 81 | |||
89 | 82 | { | ||
90 | 83 | Gtk::VBox& box = *dlg.get_vbox(); | ||
91 | 84 | PackStart(box, prg_bar); | ||
92 | 85 | |||
93 | 86 | Gtk::Expander& expdr = PackStart(box, NewManaged<Gtk::Expander>(_("Show/_hide Details"), true)); | ||
94 | 87 | txt_view.set_editable(false); | ||
95 | 88 | txt_view.set_size_request(0, 200); | ||
96 | 89 | expdr.add(PackDetails(txt_view)); | ||
97 | 90 | |||
98 | 91 | dlg.get_action_area()->set_layout(Gtk::BUTTONBOX_CENTER); | ||
99 | 92 | dlg.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); | ||
100 | 93 | dlg.signal_response().connect(bb::bind(&OnResponse, boost::ref(edat), _1)); | ||
101 | 94 | |||
102 | 95 | dlg.show_all(); | ||
103 | 96 | } | ||
104 | 97 | |||
105 | 98 | //dlg.run(); | ||
106 | 99 | ExitData ed; | ||
107 | 100 | { | ||
108 | 101 | Execution::Pulse pls(prg_bar); | ||
109 | 102 | std::string cmd = boost::format("mplex -f 8 -o %1% %2%") % dest_path % args % bf::stop; | ||
110 | 103 | AppendCommandText(txt_view, cmd); | ||
111 | 104 | ed = ExecuteAsync(0, cmd.c_str(), TextViewAppender(txt_view), &edat.pid); | ||
112 | 105 | } | ||
113 | 106 | |||
114 | 107 | if( !ed.IsGood() && !edat.userAbort ) | ||
115 | 108 | { | ||
116 | 109 | MessageBox(_("Muxing error"), Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, | ||
117 | 110 | BF_("The reason is \"%1%\" (see Details)") % ExitDescription(ed) % bf::stop); | ||
118 | 111 | dlg.run(); | ||
119 | 112 | } | ||
120 | 113 | return ed.IsGood(); | ||
121 | 114 | } | ||
122 | 115 | |||
123 | 116 | struct SaveChooser: public Gtk::Table | ||
124 | 117 | { | ||
125 | 118 | Gtk::Entry& ent; | ||
126 | 119 | Gtk::FileChooserButton& fcb; | ||
127 | 120 | |||
128 | 121 | SaveChooser(const char* type); | ||
129 | 122 | }; | ||
130 | 123 | |||
131 | 124 | SaveChooser::SaveChooser(const char* type): | ||
132 | 125 | ent(NewManaged<Gtk::Entry>()), | ||
133 | 126 | fcb(NewManaged<Gtk::FileChooserButton>(_("Select a folder"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER)) | ||
134 | 127 | { | ||
135 | 128 | // вариант с виджетом - слишком большой, хоть и более функциональный | ||
136 | 129 | //Gtk::FileChooserWidget& fcw = NewManaged<Gtk::FileChooserWidget>(Gtk::FILE_CHOOSER_ACTION_SAVE); | ||
137 | 130 | //Gtk::Frame& frm = PackStart(vbox, NewManagedFrame(Gtk::SHADOW_ETCHED_IN, " Output: "), Gtk::PACK_EXPAND_WIDGET); | ||
138 | 131 | //Add(Add(frm, NewPaddingAlg(0, 5, 5, 5)), fcw); | ||
139 | 132 | |||
140 | 133 | set_col_spacings(5); | ||
141 | 134 | Gtk::Label& o_lbl = NewManaged<Gtk::Label>(type); | ||
142 | 135 | SetAlign(o_lbl, true); | ||
143 | 136 | attach(o_lbl, 0, 1, 0, 1, Gtk::SHRINK|Gtk::FILL); | ||
144 | 137 | attach(ent, 1, 2, 0, 1); | ||
145 | 138 | Gtk::Label& i_lbl = NewManaged<Gtk::Label>(_("in")); | ||
146 | 139 | SetAlign(i_lbl, false); | ||
147 | 140 | attach(i_lbl, 0, 1, 1, 2, Gtk::SHRINK|Gtk::FILL); | ||
148 | 141 | attach(fcb, 1, 2, 1, 2); | ||
149 | 142 | } | ||
150 | 143 | |||
151 | 144 | fs::path GetFilename(Gtk::FileChooser& fc) | ||
152 | 145 | { | ||
153 | 146 | // fs::path v3 не понимает ustring | ||
154 | 147 | // однако в gtkmm >= будет возвращать std::string, и это не понадобится | ||
155 | 148 | return fs::path(fc.get_filename().raw()); | ||
156 | 149 | } | ||
157 | 150 | |||
158 | 151 | std::string GetFilename(SaveChooser& sc) | ||
159 | 152 | { | ||
160 | 153 | std::string fname = sc.ent.get_text(); | ||
161 | 154 | if( !fname.empty() ) | ||
162 | 155 | fname = (GetFilename(sc.fcb)/fname).string(); | ||
163 | 156 | |||
164 | 157 | return fname; | ||
165 | 158 | } | ||
166 | 159 | |||
167 | 160 | static void OnVideoSelected(Gtk::FileChooserButton& v_btn, Gtk::FileChooserButton& a_btn, SaveChooser& sc) | ||
168 | 161 | { | ||
169 | 162 | fs::path pth = GetFilename(v_btn); | ||
170 | 163 | if( pth.empty() ) | ||
171 | 164 | return; | ||
172 | 165 | std::string folder = pth.branch_path().string(); | ||
173 | 166 | |||
174 | 167 | if( a_btn.get_filename().empty() ) | ||
175 | 168 | a_btn.set_current_folder(folder); | ||
176 | 169 | |||
177 | 170 | if( GetFilename(sc).empty() ) | ||
178 | 171 | { | ||
179 | 172 | sc.fcb.set_current_folder(folder); | ||
180 | 173 | sc.ent.set_text(get_basename(pth) + ".mpg"); | ||
181 | 174 | } | ||
182 | 175 | } | ||
183 | 176 | |||
184 | 177 | bool MuxStreams(std::string& dest_fname, const std::string& src_fname) | ||
185 | 178 | { | ||
186 | 179 | Gtk::Dialog dlg(_("Mux streams")); | ||
187 | 180 | SetDialogStrict(dlg, 400, -1); | ||
188 | 181 | SaveChooser& sc = NewManaged<SaveChooser>(SMCLN_("Output")); | ||
189 | 182 | Gtk::FileChooserButton& v_btn = NewManaged<Gtk::FileChooserButton>(_("Select elementary video"), Gtk::FILE_CHOOSER_ACTION_OPEN); | ||
190 | 183 | Gtk::FileChooserButton& a_btn = NewManaged<Gtk::FileChooserButton>(_("Select audio"), Gtk::FILE_CHOOSER_ACTION_OPEN); | ||
191 | 184 | { | ||
192 | 185 | DialogVBox& vbox = AddHIGedVBox(dlg); | ||
193 | 186 | |||
194 | 187 | AppendWithLabel(vbox, v_btn, SMCLN_("Video")); | ||
195 | 188 | { | ||
196 | 189 | Gtk::FileFilter f; | ||
197 | 190 | f.set_name(_("MPEG2 elementary video (m2v)")); | ||
198 | 191 | f.add_pattern("*.m2v"); | ||
199 | 192 | v_btn.add_filter(f); | ||
200 | 193 | } | ||
201 | 194 | |||
202 | 195 | AppendWithLabel(vbox, a_btn, SMCLN_("Audio")); | ||
203 | 196 | { | ||
204 | 197 | Gtk::FileFilter f; | ||
205 | 198 | f.set_name(_("Audio for DVD") + std::string(" (mp2/mpa, ac3, dts or 16bit lpcm)")); | ||
206 | 199 | FillSoundFilter(f); | ||
207 | 200 | a_btn.add_filter(f); | ||
208 | 201 | } | ||
209 | 202 | |||
210 | 203 | PackStart(vbox, sc); | ||
211 | 204 | |||
212 | 205 | CompleteDialog(dlg); | ||
213 | 206 | } | ||
214 | 207 | |||
215 | 208 | v_btn.signal_selection_changed().connect(bb::bind(&OnVideoSelected, boost::ref(v_btn), boost::ref(a_btn), boost::ref(sc))); | ||
216 | 209 | if( !src_fname.empty() ) | ||
217 | 210 | { | ||
218 | 211 | if( get_extension(src_fname) == "m2v" ) | ||
219 | 212 | v_btn.set_filename(src_fname); | ||
220 | 213 | else | ||
221 | 214 | a_btn.set_filename(src_fname); | ||
222 | 215 | } | ||
223 | 216 | |||
224 | 217 | bool res = false; | ||
225 | 218 | for( ; res = Gtk::RESPONSE_OK == dlg.run(), res; ) | ||
226 | 219 | { | ||
227 | 220 | dest_fname = GetFilename(sc); | ||
228 | 221 | |||
229 | 222 | if( v_btn.get_filename().empty() ) | ||
230 | 223 | ErrorBox(_("Elementary video file is not selected.")); | ||
231 | 224 | else if( a_btn.get_filename().empty() ) | ||
232 | 225 | ErrorBox(_("Audio file is not selected.")); | ||
233 | 226 | else if( dest_fname.empty() ) | ||
234 | 227 | ErrorBox(_("Output file name is empty.")); | ||
235 | 228 | else if( CheckKeepOrigin(dest_fname) ) | ||
236 | 229 | ; | ||
237 | 230 | else | ||
238 | 231 | break; | ||
239 | 232 | } | ||
240 | 233 | |||
241 | 234 | if( res ) | ||
242 | 235 | { | ||
243 | 236 | dlg.hide(); | ||
244 | 237 | res = RunMuxing(dest_fname, boost::format("%1% %2%") % v_btn.get_filename() % a_btn.get_filename() % bf::stop ); | ||
245 | 238 | } | ||
246 | 239 | |||
247 | 240 | return res; | ||
248 | 241 | } | ||
249 | 242 | |||
250 | 0 | 243 | ||
251 | === modified file '.pc/applied-patches' | |||
252 | --- .pc/applied-patches 2015-08-12 12:16:58 +0000 | |||
253 | +++ .pc/applied-patches 2015-12-09 09:32:38 +0000 | |||
254 | @@ -1,2 +1,3 @@ | |||
255 | 1 | 0001-ffmpeg-has-renamed-CodecID-AVCodecID.patch | 1 | 0001-ffmpeg-has-renamed-CodecID-AVCodecID.patch |
256 | 2 | 0002-Allow-muxing-of-files-with-spaces.patch | ||
257 | 2 | 1000-ubuntu-stop-using-ffmpeg-AVFormatContext-data_offset-now-private.patch | 3 | 1000-ubuntu-stop-using-ffmpeg-AVFormatContext-data_offset-now-private.patch |
258 | 3 | 4 | ||
259 | === modified file 'debian/changelog' | |||
260 | --- debian/changelog 2015-09-07 08:27:53 +0000 | |||
261 | +++ debian/changelog 2015-12-09 09:32:38 +0000 | |||
262 | @@ -1,3 +1,10 @@ | |||
263 | 1 | bombono-dvd (1.2.2-0ubuntu9) wily; urgency=medium | ||
264 | 2 | |||
265 | 3 | * Allow muxing of files whose name or path contains spaces | ||
266 | 4 | (LP: #1484397). | ||
267 | 5 | |||
268 | 6 | -- Carlos Maddela <maddela@labyrinth.net.au> Wed, 09 Dec 2015 15:08:55 +1000 | ||
269 | 7 | |||
270 | 1 | bombono-dvd (1.2.2-0ubuntu8) wily; urgency=medium | 8 | bombono-dvd (1.2.2-0ubuntu8) wily; urgency=medium |
271 | 2 | 9 | ||
272 | 3 | * No-change rebuild for libxml++ soname change. | 10 | * No-change rebuild for libxml++ soname change. |
273 | 4 | 11 | ||
274 | === added file 'debian/patches/0002-Allow-muxing-of-files-with-spaces.patch' | |||
275 | --- debian/patches/0002-Allow-muxing-of-files-with-spaces.patch 1970-01-01 00:00:00 +0000 | |||
276 | +++ debian/patches/0002-Allow-muxing-of-files-with-spaces.patch 2015-12-09 09:32:38 +0000 | |||
277 | @@ -0,0 +1,39 @@ | |||
278 | 1 | From: Carlos Maddela <maddela@labyrinth.net.au> | ||
279 | 2 | Date: Thu, 13 Aug 2015 15:05:04 +1000 | ||
280 | 3 | Subject: Allow muxing of files whose name or path contains spaces | ||
281 | 4 | |||
282 | 5 | Description: Allow muxing of files whose name or path contains spaces. | ||
283 | 6 | Arguments to mplex command should be quoted in case the files to be | ||
284 | 7 | muxed have names or paths containing spaces. | ||
285 | 8 | Author: Carlos Maddela <maddela@labyrinth.net.au> | ||
286 | 9 | Origin: vendor | ||
287 | 10 | Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/bombono-dvd/+bug/1484397 | ||
288 | 11 | Last-Update: 2015-12-09 | ||
289 | 12 | --- | ||
290 | 13 | This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ | ||
291 | 14 | --- | ||
292 | 15 | src/mgui/mux.cpp | 4 ++-- | ||
293 | 16 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
294 | 17 | |||
295 | 18 | diff --git a/src/mgui/mux.cpp b/src/mgui/mux.cpp | ||
296 | 19 | index 427058e..cc4922b 100644 | ||
297 | 20 | --- a/src/mgui/mux.cpp | ||
298 | 21 | +++ b/src/mgui/mux.cpp | ||
299 | 22 | @@ -99,7 +99,7 @@ static bool RunMuxing(const std::string& dest_path, const std::string& args) | ||
300 | 23 | ExitData ed; | ||
301 | 24 | { | ||
302 | 25 | Execution::Pulse pls(prg_bar); | ||
303 | 26 | - std::string cmd = boost::format("mplex -f 8 -o %1% %2%") % dest_path % args % bf::stop; | ||
304 | 27 | + std::string cmd = boost::format("mplex -f 8 -o \"%1%\" %2%") % dest_path % args % bf::stop; | ||
305 | 28 | AppendCommandText(txt_view, cmd); | ||
306 | 29 | ed = ExecuteAsync(0, cmd.c_str(), TextViewAppender(txt_view), &edat.pid); | ||
307 | 30 | } | ||
308 | 31 | @@ -234,7 +234,7 @@ bool MuxStreams(std::string& dest_fname, const std::string& src_fname) | ||
309 | 32 | if( res ) | ||
310 | 33 | { | ||
311 | 34 | dlg.hide(); | ||
312 | 35 | - res = RunMuxing(dest_fname, boost::format("%1% %2%") % v_btn.get_filename() % a_btn.get_filename() % bf::stop ); | ||
313 | 36 | + res = RunMuxing(dest_fname, boost::format("\"%1%\" \"%2%\"") % v_btn.get_filename() % a_btn.get_filename() % bf::stop ); | ||
314 | 37 | } | ||
315 | 38 | |||
316 | 39 | return res; | ||
317 | 0 | 40 | ||
318 | === modified file 'debian/patches/series' | |||
319 | --- debian/patches/series 2015-08-12 12:16:58 +0000 | |||
320 | +++ debian/patches/series 2015-12-09 09:32:38 +0000 | |||
321 | @@ -1,2 +1,3 @@ | |||
322 | 1 | 0001-ffmpeg-has-renamed-CodecID-AVCodecID.patch | 1 | 0001-ffmpeg-has-renamed-CodecID-AVCodecID.patch |
323 | 2 | 0002-Allow-muxing-of-files-with-spaces.patch | ||
324 | 2 | 1000-ubuntu-stop-using-ffmpeg-AVFormatContext-data_offset-now-private.patch | 3 | 1000-ubuntu-stop-using-ffmpeg-AVFormatContext-data_offset-now-private.patch |
325 | 3 | 4 | ||
326 | === modified file 'src/mgui/mux.cpp' | |||
327 | --- src/mgui/mux.cpp 2013-11-07 19:03:05 +0000 | |||
328 | +++ src/mgui/mux.cpp 2015-12-09 09:32:38 +0000 | |||
329 | @@ -99,7 +99,7 @@ | |||
330 | 99 | ExitData ed; | 99 | ExitData ed; |
331 | 100 | { | 100 | { |
332 | 101 | Execution::Pulse pls(prg_bar); | 101 | Execution::Pulse pls(prg_bar); |
334 | 102 | std::string cmd = boost::format("mplex -f 8 -o %1% %2%") % dest_path % args % bf::stop; | 102 | std::string cmd = boost::format("mplex -f 8 -o \"%1%\" %2%") % dest_path % args % bf::stop; |
335 | 103 | AppendCommandText(txt_view, cmd); | 103 | AppendCommandText(txt_view, cmd); |
336 | 104 | ed = ExecuteAsync(0, cmd.c_str(), TextViewAppender(txt_view), &edat.pid); | 104 | ed = ExecuteAsync(0, cmd.c_str(), TextViewAppender(txt_view), &edat.pid); |
337 | 105 | } | 105 | } |
338 | @@ -234,7 +234,7 @@ | |||
339 | 234 | if( res ) | 234 | if( res ) |
340 | 235 | { | 235 | { |
341 | 236 | dlg.hide(); | 236 | dlg.hide(); |
343 | 237 | res = RunMuxing(dest_fname, boost::format("%1% %2%") % v_btn.get_filename() % a_btn.get_filename() % bf::stop ); | 237 | res = RunMuxing(dest_fname, boost::format("\"%1%\" \"%2%\"") % v_btn.get_filename() % a_btn.get_filename() % bf::stop ); |
344 | 238 | } | 238 | } |
345 | 239 | 239 | ||
346 | 240 | return res; | 240 | return res; |
The patch's quoting of %2% is inconsistent, in one part it is bordered by \" and in another it isn't.