Add support for choosing character encoding in appropiate command.

This commit is contained in:
2017-10-12 23:54:02 +01:00
parent 9cd9285276
commit 90a4a0b37d
72 changed files with 678 additions and 14 deletions

View File

@@ -39,6 +39,7 @@ using DiscImageChef.Filesystems;
using DiscImageChef.Filters;
using DiscImageChef.ImagePlugins;
using DiscImageChef.PartPlugins;
using System.Text;
namespace DiscImageChef.Commands
{
@@ -61,8 +62,26 @@ namespace DiscImageChef.Commands
return;
}
Encoding encoding = null;
if(options.EncodingName != null)
{
try
{
encoding = Claunia.Encoding.Encoding.GetEncoding(options.EncodingName);
if(options.Verbose)
DicConsole.VerboseWriteLine("Using encoding for {0}.", encoding.EncodingName);
}
catch(ArgumentException)
{
DicConsole.ErrorWriteLine("Specified encoding is not supported.");
encoding = null;
return;
}
}
PluginBase plugins = new PluginBase();
plugins.RegisterAllPlugins();
plugins.RegisterAllPlugins(encoding);
List<string> id_plugins;
Filesystem _plugin;

View File

@@ -33,6 +33,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using DiscImageChef.Console;
using DiscImageChef.Core;
using DiscImageChef.Filters;
@@ -53,6 +54,25 @@ namespace DiscImageChef.Commands
Sidecar.EndProgressEvent2 += Progress.EndProgress2;
Sidecar.UpdateStatusEvent += Progress.UpdateStatus;
Encoding encoding = null;
if(options.EncodingName != null)
{
try
{
encoding = Claunia.Encoding.Encoding.GetEncoding(options.EncodingName);
if(options.Verbose)
DicConsole.VerboseWriteLine("Using encoding for {0}.", encoding.EncodingName);
}
catch(ArgumentException)
{
DicConsole.ErrorWriteLine("Specified encoding is not supported.");
encoding = null;
return;
}
}
if(File.Exists(options.InputFile))
{
if(options.Tape)
@@ -110,7 +130,7 @@ namespace DiscImageChef.Commands
Core.Statistics.AddMediaFormat(_imageFormat.GetImageFormat());
Core.Statistics.AddFilter(inputFilter.Name);
CICMMetadataType sidecar = Sidecar.Create(_imageFormat, options.InputFile, inputFilter.UUID);
CICMMetadataType sidecar = Sidecar.Create(_imageFormat, options.InputFile, inputFilter.UUID, encoding);
DicConsole.WriteLine("Writing metadata sidecar");

View File

@@ -40,6 +40,7 @@ using System.IO;
using DiscImageChef.Filters;
using DiscImageChef.Core;
using DiscImageChef.CommonTypes;
using System.Text;
namespace DiscImageChef.Commands
{
@@ -62,8 +63,26 @@ namespace DiscImageChef.Commands
return;
}
Encoding encoding = null;
if(options.EncodingName != null)
{
try
{
encoding = Claunia.Encoding.Encoding.GetEncoding(options.EncodingName);
if(options.Verbose)
DicConsole.VerboseWriteLine("Using encoding for {0}.", encoding.EncodingName);
}
catch(ArgumentException)
{
DicConsole.ErrorWriteLine("Specified encoding is not supported.");
encoding = null;
return;
}
}
PluginBase plugins = new PluginBase();
plugins.RegisterAllPlugins();
plugins.RegisterAllPlugins(encoding);
List<string> id_plugins;
Filesystem _plugin;

View File

@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using DiscImageChef.CommonTypes;
using DiscImageChef.Console;
using DiscImageChef.Core;
@@ -58,9 +59,27 @@ namespace DiscImageChef.Commands
DicConsole.ErrorWriteLine("Cannot open specified file.");
return;
}
Encoding encoding = null;
if(options.EncodingName != null)
{
try
{
encoding = Claunia.Encoding.Encoding.GetEncoding(options.EncodingName);
if(options.Verbose)
DicConsole.VerboseWriteLine("Using encoding for {0}.", encoding.EncodingName);
}
catch(ArgumentException)
{
DicConsole.ErrorWriteLine("Specified encoding is not supported.");
encoding = null;
return;
}
}
PluginBase plugins = new PluginBase();
plugins.RegisterAllPlugins();
plugins.RegisterAllPlugins(encoding);
List<string> id_plugins;
Filesystem _plugin;