|
391 | 391 | }).join('');
|
392 | 392 | }
|
393 | 393 |
|
394 |
| - function stringifyEvent(event) { |
395 |
| - var m0 = '0000'; |
396 |
| - return [ |
397 |
| - event.Layer, |
398 |
| - stringifyTime(event.Start), |
399 |
| - stringifyTime(event.End), |
400 |
| - event.Style, |
401 |
| - event.Name, |
402 |
| - event.MarginL || m0, |
403 |
| - event.MarginR || m0, |
404 |
| - event.MarginV || m0, |
405 |
| - stringifyEffect(event.Effect), |
406 |
| - stringifyText(event.Text) ].join(); |
| 394 | + function stringifyEvent(event, format) { |
| 395 | + return format.map(function (fmt) { |
| 396 | + switch (fmt) { |
| 397 | + case 'Start': |
| 398 | + case 'End': |
| 399 | + return stringifyTime(event[fmt]); |
| 400 | + case 'MarginL': |
| 401 | + case 'MarginR': |
| 402 | + case 'MarginV': |
| 403 | + return event[fmt] || '0000'; |
| 404 | + case 'Effect': |
| 405 | + return stringifyEffect(event[fmt]); |
| 406 | + case 'Text': |
| 407 | + return stringifyText(event.Text); |
| 408 | + default: |
| 409 | + return event[fmt]; |
| 410 | + } |
| 411 | + }).join(); |
407 | 412 | }
|
408 | 413 |
|
409 | 414 | function stringify(ref) {
|
|
417 | 422 | stringifyInfo(info),
|
418 | 423 | '',
|
419 | 424 | '[V4+ Styles]',
|
420 |
| - ("Format: " + (stylesFormat.join(', '))) ].concat( styles.style.map(function (style) { return ("Style: " + (stylesFormat.map(function (fmt) { return style[fmt]; }).join())); }), |
| 425 | + ("Format: " + (styles.format.join(', '))) ].concat( styles.style.map(function (style) { return ("Style: " + (styles.format.map(function (fmt) { return style[fmt]; }).join())); }), |
421 | 426 | [''],
|
422 | 427 | ['[Events]'],
|
423 |
| - [("Format: " + (eventsFormat.join(', ')))], |
| 428 | + [("Format: " + (events.format.join(', ')))], |
424 | 429 | (ref$1 = [])
|
425 | 430 | .concat.apply(ref$1, ['Comment', 'Dialogue'].map(function (type) { return (
|
426 | 431 | events[type.toLowerCase()].map(function (dia) { return ({
|
427 | 432 | start: dia.Start,
|
428 | 433 | end: dia.End,
|
429 |
| - string: (type + ": " + (stringifyEvent(dia))), |
| 434 | + string: (type + ": " + (stringifyEvent(dia, events.format))), |
430 | 435 | }); })
|
431 | 436 | ); }))
|
432 | 437 | .sort(function (a, b) { return (a.start - b.start) || (a.end - b.end); })
|
|
907 | 912 | var defaultStyle = ref.defaultStyle;
|
908 | 913 |
|
909 | 914 | var result = {};
|
910 |
| - var styles = [assign({}, DEFAULT_STYLE, defaultStyle, { Name: 'Default' })].concat(style); |
| 915 | + var styles = [assign({}, defaultStyle, { Name: 'Default' })].concat(style); |
911 | 916 | var loop = function ( i ) {
|
912 |
| - var s = styles[i]; |
| 917 | + var s = assign({}, DEFAULT_STYLE, styles[i]); |
913 | 918 | // this behavior is same as Aegisub by black-box testing
|
914 | 919 | if (/^(\*+)Default$/.test(s.Name)) {
|
915 | 920 | s.Name = 'Default';
|
|
0 commit comments