mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Refactor regexes as verbatim strings.
This commit is contained in:
@@ -65,43 +65,43 @@ namespace DiscImageChef.DiscImages
|
||||
/// <summary>Mode 2 track, raw, 2352 bytes/sector</summary>
|
||||
const string CDRDAO_TRACK_TYPE_MODE2_RAW = "MODE2_RAW";
|
||||
|
||||
const string REGEX_COMMENT = "^\\s*\\/{2}(?<comment>.+)$";
|
||||
const string REGEX_COPY = "^\\s*(?<no>NO)?\\s*COPY";
|
||||
const string REGEX_DISCTYPE = "^\\s*(?<type>(CD_DA|CD_ROM_XA|CD_ROM|CD_I))";
|
||||
const string REGEX_EMPHASIS = "^\\s*(?<no>NO)?\\s*PRE_EMPHASIS";
|
||||
const string REGEX_COMMENT = @"^\s*\/{2}(?<comment>.+)$";
|
||||
const string REGEX_COPY = @"^\s*(?<no>NO)?\s*COPY";
|
||||
const string REGEX_DISCTYPE = @"^\s*(?<type>(CD_DA|CD_ROM_XA|CD_ROM|CD_I))";
|
||||
const string REGEX_EMPHASIS = @"^\s*(?<no>NO)?\s*PRE_EMPHASIS";
|
||||
const string REGEX_FILE_AUDIO =
|
||||
"^\\s*(AUDIO)?FILE\\s*\"(?<filename>.+)\"\\s*(#(?<base_offset>\\d+))?\\s*((?<start>[\\d]+:[\\d]+:[\\d]+)|(?<start_num>\\d+))\\s*(?<length>[\\d]+:[\\d]+:[\\d]+)?"
|
||||
@"^\s*(AUDIO)?FILE\s*""(?<filename>.+)""\s*(#(?<base_offset>\d+))?\s*((?<start>[\d]+:[\d]+:[\d]+)|(?<start_num>\d+))\s*(?<length>[\d]+:[\d]+:[\d]+)?"
|
||||
;
|
||||
const string REGEX_FILE_DATA =
|
||||
"^\\s*DATAFILE\\s*\"(?<filename>.+)\"\\s*(#(?<base_offset>\\d+))?\\s*(?<length>[\\d]+:[\\d]+:[\\d]+)?";
|
||||
const string REGEX_INDEX = "^\\s*INDEX\\s*(?<address>\\d+:\\d+:\\d+)";
|
||||
const string REGEX_ISRC = "^\\s*ISRC\\s*\"(?<isrc>[A-Z0-9]{5,5}[0-9]{7,7})\"";
|
||||
const string REGEX_MCN = "^\\s*CATALOG\\s*\"(?<catalog>[\\d]{13,13})\"";
|
||||
const string REGEX_PREGAP = "^\\s*START\\s*(?<address>\\d+:\\d+:\\d+)?";
|
||||
const string REGEX_STEREO = "^\\s*(?<num>(TWO|FOUR))_CHANNEL_AUDIO";
|
||||
@"^\s*DATAFILE\s*""(?<filename>.+)""\s*(#(?<base_offset>\d+))?\s*(?<length>[\d]+:[\d]+:[\d]+)?";
|
||||
const string REGEX_INDEX = @"^\s*INDEX\s*(?<address>\d+:\d+:\d+)";
|
||||
const string REGEX_ISRC = @"^\s*ISRC\s*""(?<isrc>[A-Z0-9]{5,5}[0-9]{7,7})""";
|
||||
const string REGEX_MCN = @"^\s*CATALOG\s*""(?<catalog>[\d]{13,13})""";
|
||||
const string REGEX_PREGAP = @"^\s*START\s*(?<address>\d+:\d+:\d+)?";
|
||||
const string REGEX_STEREO = @"^\s*(?<num>(TWO|FOUR))_CHANNEL_AUDIO";
|
||||
const string REGEX_TRACK =
|
||||
"^\\s*TRACK\\s*(?<type>(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\\s*(?<subchan>(RW_RAW|RW))?"
|
||||
@"^\s*TRACK\s*(?<type>(AUDIO|MODE1_RAW|MODE1|MODE2_FORM1|MODE2_FORM2|MODE2_FORM_MIX|MODE2_RAW|MODE2))\s*(?<subchan>(RW_RAW|RW))?"
|
||||
;
|
||||
const string REGEX_ZERO_AUDIO = "^\\s*SILENCE\\s*(?<length>\\d+:\\d+:\\d+)";
|
||||
const string REGEX_ZERO_DATA = "^\\s*ZERO\\s*(?<length>\\d+:\\d+:\\d+)";
|
||||
const string REGEX_ZERO_PREGAP = "^\\s*PREGAP\\s*(?<length>\\d+:\\d+:\\d+)";
|
||||
const string REGEX_ZERO_AUDIO = @"^\s*SILENCE\s*(?<length>\d+:\d+:\d+)";
|
||||
const string REGEX_ZERO_DATA = @"^\s*ZERO\s*(?<length>\d+:\d+:\d+)";
|
||||
const string REGEX_ZERO_PREGAP = @"^\s*PREGAP\s*(?<length>\d+:\d+:\d+)";
|
||||
|
||||
// CD-Text
|
||||
const string REGEX_ARRANGER = "^\\s*ARRANGER\\s*\"(?<arranger>.+)\"";
|
||||
const string REGEX_COMPOSER = "^\\s*COMPOSER\\s*\"(?<composer>.+)\"";
|
||||
const string REGEX_DISC_ID = "^\\s*DISC_ID\\s*\"(?<discid>.+)\"";
|
||||
const string REGEX_MESSAGE = "^\\s*MESSAGE\\s*\"(?<message>.+)\"";
|
||||
const string REGEX_PERFORMER = "^\\s*PERFORMER\\s*\"(?<performer>.+)\"";
|
||||
const string REGEX_SONGWRITER = "^\\s*SONGWRITER\\s*\"(?<songwriter>.+)\"";
|
||||
const string REGEX_TITLE = "^\\s*TITLE\\s*\"(?<title>.+)\"";
|
||||
const string REGEX_UPC = "^\\s*UPC_EAN\\s*\"(?<catalog>[\\d]{13,13})\"";
|
||||
const string REGEX_ARRANGER = @"^\s*ARRANGER\s*""(?<arranger>.+)""";
|
||||
const string REGEX_COMPOSER = @"^\s*COMPOSER\s*""(?<composer>.+)""";
|
||||
const string REGEX_DISC_ID = @"^\s*DISC_ID\s*""(?<discid>.+)""";
|
||||
const string REGEX_MESSAGE = @"^\s*MESSAGE\s*""(?<message>.+)""";
|
||||
const string REGEX_PERFORMER = @"^\s*PERFORMER\s*""(?<performer>.+)""";
|
||||
const string REGEX_SONGWRITER = @"^\s*SONGWRITER\s*""(?<songwriter>.+)""";
|
||||
const string REGEX_TITLE = @"^\s*TITLE\s*""(?<title>.+)""";
|
||||
const string REGEX_UPC = @"^\s*UPC_EAN\s*""(?<catalog>[\d]{13,13})""";
|
||||
|
||||
// Unused
|
||||
const string REGEX_CD_TEXT = "^\\s*CD_TEXT\\s*\\{";
|
||||
const string REGEX_CLOSURE = "^\\s*\\}";
|
||||
const string REGEX_LANGUAGE = "^\\s*LANGUAGE\\s*(?<code>\\d+)\\s*\\{";
|
||||
const string REGEX_LANGUAGE_MAP = "^\\s*LANGUAGE_MAP\\s*\\{";
|
||||
const string REGEX_LANGUAGE_MAPPING = "^\\s*(?<code>\\d+)\\s?\\:\\s?(?<language>\\d+|\\w+)";
|
||||
const string REGEX_CD_TEXT = @"^\s*CD_TEXT\s*\{";
|
||||
const string REGEX_CLOSURE = @"^\s*\}";
|
||||
const string REGEX_LANGUAGE = @"^\s*LANGUAGE\s*(?<code>\d+)\s*\{";
|
||||
const string REGEX_LANGUAGE_MAP = @"^\s*LANGUAGE_MAP\s*\{";
|
||||
const string REGEX_LANGUAGE_MAPPING = @"^\s*(?<code>\d+)\s?\:\s?(?<language>\d+|\w+)";
|
||||
|
||||
Filter cdrdaoFilter;
|
||||
CdrdaoDisc discimage;
|
||||
|
||||
@@ -146,29 +146,29 @@ namespace DiscImageChef.DiscImages
|
||||
/// <summary>DiskType.BDRE</summary>
|
||||
const string CDRWIN_DISK_TYPE_BDREDL = "BD-RE DL";
|
||||
|
||||
const string REGEX_SESSION = "\\bREM\\s+SESSION\\s+(?<number>\\d+).*$";
|
||||
const string REGEX_MEDIA_TYPE = "\\bREM\\s+ORIGINAL MEDIA-TYPE:\\s+(?<mediatype>.+)$";
|
||||
const string REGEX_LEAD_OUT = "\\bREM\\s+LEAD-OUT\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$";
|
||||
const string REGEX_SESSION = @"\bREM\s+SESSION\s+(?<number>\d+).*$";
|
||||
const string REGEX_MEDIA_TYPE = @"\bREM\s+ORIGINAL MEDIA-TYPE:\s+(?<mediatype>.+)$";
|
||||
const string REGEX_LEAD_OUT = @"\bREM\s+LEAD-OUT\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
|
||||
// Not checked
|
||||
const string REGEX_LBA = "\\bREM MSF:\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)\\s+=\\s+LBA:\\s+(?<lba>[\\d]+)$";
|
||||
const string REGEX_DISC_ID = "\\bDISC_ID\\s+(?<diskid>[\\da-f]{8})$";
|
||||
const string REGEX_BARCODE = "\\bUPC_EAN\\s+(?<barcode>[\\d]{12,13})$";
|
||||
const string REGEX_COMMENT = "\\bREM\\s+(?<comment>.+)$";
|
||||
const string REGEX_CDTEXT = "\\bCDTEXTFILE\\s+(?<filename>.+)$";
|
||||
const string REGEX_MCN = "\\bCATALOG\\s+(?<catalog>\\d{13})$";
|
||||
const string REGEX_TITLE = "\\bTITLE\\s+(?<title>.+)$";
|
||||
const string REGEX_GENRE = "\\bGENRE\\s+(?<genre>.+)$";
|
||||
const string REGEX_ARRANGER = "\\bARRANGER\\s+(?<arranger>.+)$";
|
||||
const string REGEX_COMPOSER = "\\bCOMPOSER\\s+(?<composer>.+)$";
|
||||
const string REGEX_PERFORMER = "\\bPERFORMER\\s+(?<performer>.+)$";
|
||||
const string REGEX_SONGWRITER = "\\bSONGWRITER\\s+(?<songwriter>.+)$";
|
||||
const string REGEX_FILE = "\\bFILE\\s+(?<filename>.+)\\s+(?<type>\\S+)$";
|
||||
const string REGEX_TRACK = "\\bTRACK\\s+(?<number>\\d+)\\s+(?<type>\\S+)$";
|
||||
const string REGEX_ISRC = "\\bISRC\\s+(?<isrc>\\w{12})$";
|
||||
const string REGEX_INDEX = "\\bINDEX\\s+(?<index>\\d+)\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$";
|
||||
const string REGEX_PREGAP = "\\bPREGAP\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$";
|
||||
const string REGEX_POSTGAP = "\\bPOSTGAP\\s+(?<msf>[\\d]+:[\\d]+:[\\d]+)$";
|
||||
const string REGEX_FLAGS = "\\bFLAGS\\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\\s*)+$";
|
||||
const string REGEX_LBA = @"\bREM MSF:\s+(?<msf>[\d]+:[\d]+:[\d]+)\s+=\s+LBA:\s+(?<lba>[\d]+)$";
|
||||
const string REGEX_DISC_ID = @"\bDISC_ID\s+(?<diskid>[\da-f]{8})$";
|
||||
const string REGEX_BARCODE = @"\bUPC_EAN\s+(?<barcode>[\d]{12,13})$";
|
||||
const string REGEX_COMMENT = @"\bREM\s+(?<comment>.+)$";
|
||||
const string REGEX_CDTEXT = @"\bCDTEXTFILE\s+(?<filename>.+)$";
|
||||
const string REGEX_MCN = @"\bCATALOG\s+(?<catalog>\d{13})$";
|
||||
const string REGEX_TITLE = @"\bTITLE\s+(?<title>.+)$";
|
||||
const string REGEX_GENRE = @"\bGENRE\s+(?<genre>.+)$";
|
||||
const string REGEX_ARRANGER = @"\bARRANGER\s+(?<arranger>.+)$";
|
||||
const string REGEX_COMPOSER = @"\bCOMPOSER\s+(?<composer>.+)$";
|
||||
const string REGEX_PERFORMER = @"\bPERFORMER\s+(?<performer>.+)$";
|
||||
const string REGEX_SONGWRITER = @"\bSONGWRITER\s+(?<songwriter>.+)$";
|
||||
const string REGEX_FILE = @"\bFILE\s+(?<filename>.+)\s+(?<type>\S+)$";
|
||||
const string REGEX_TRACK = @"\bTRACK\s+(?<number>\d+)\s+(?<type>\S+)$";
|
||||
const string REGEX_ISRC = @"\bISRC\s+(?<isrc>\w{12})$";
|
||||
const string REGEX_INDEX = @"\bINDEX\s+(?<index>\d+)\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
|
||||
const string REGEX_PREGAP = @"\bPREGAP\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
|
||||
const string REGEX_POSTGAP = @"\bPOSTGAP\s+(?<msf>[\d]+:[\d]+:[\d]+)$";
|
||||
const string REGEX_FLAGS = @"\bFLAGS\s+(((?<dcp>DCP)|(?<quad>4CH)|(?<pre>PRE)|(?<scms>SCMS))\s*)+$";
|
||||
|
||||
Filter cdrwinFilter;
|
||||
StreamReader cueStream;
|
||||
|
||||
@@ -74,14 +74,14 @@ namespace DiscImageChef.DiscImages
|
||||
const uint AV_LASER_DISC_METADATA = 0x41564C44;
|
||||
|
||||
const string REGEX_METADATA_HDD =
|
||||
"CYLS:(?<cylinders>\\d+),HEADS:(?<heads>\\d+),SECS:(?<sectors>\\d+),BPS:(?<bps>\\d+)";
|
||||
@"CYLS:(?<cylinders>\d+),HEADS:(?<heads>\d+),SECS:(?<sectors>\d+),BPS:(?<bps>\d+)";
|
||||
const string REGEX_METADATA_CDROM =
|
||||
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+)";
|
||||
@"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+)";
|
||||
const string REGEX_METADATA_CDROM2 =
|
||||
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+) PREGAP:(?<pregap>\\d+) PGTYPE:(?<pgtype>\\S+) PGSUB:(?<pgsub>\\S+) POSTGAP:(?<postgap>\\d+)"
|
||||
@"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+) PREGAP:(?<pregap>\d+) PGTYPE:(?<pgtype>\S+) PGSUB:(?<pgsub>\S+) POSTGAP:(?<postgap>\d+)"
|
||||
;
|
||||
const string REGEX_METADATA_GDROM =
|
||||
"TRACK:(?<track>\\d+) TYPE:(?<track_type>\\S+) SUBTYPE:(?<sub_type>\\S+) FRAMES:(?<frames>\\d+) PAD:(?<pad>\\d+) PREGAP:(?<pregap>\\d+) PGTYPE:(?<pgtype>\\S+) PGSUB:(?<pgsub>\\S+) POSTGAP:(?<postgap>\\d+)"
|
||||
@"TRACK:(?<track>\d+) TYPE:(?<track_type>\S+) SUBTYPE:(?<sub_type>\S+) FRAMES:(?<frames>\d+) PAD:(?<pad>\d+) PREGAP:(?<pregap>\d+) PGTYPE:(?<pgtype>\S+) PGSUB:(?<pgsub>\S+) POSTGAP:(?<postgap>\d+)"
|
||||
;
|
||||
|
||||
const string TRACK_TYPE_MODE1 = "MODE1";
|
||||
|
||||
@@ -45,36 +45,36 @@ namespace DiscImageChef.DiscImages
|
||||
{
|
||||
public class CloneCd : ImagePlugin
|
||||
{
|
||||
const string CCD_IDENTIFIER = "^\\s*\\[CloneCD\\]";
|
||||
const string DISC_IDENTIFIER = "^\\s*\\[Disc\\]";
|
||||
const string SESSION_IDENTIFIER = "^\\s*\\[Session\\s*(?<number>\\d+)\\]";
|
||||
const string ENTRY_IDENTIFIER = "^\\s*\\[Entry\\s*(?<number>\\d+)\\]";
|
||||
const string TRACK_IDENTIFIER = "^\\s*\\[TRACK\\s*(?<number>\\d+)\\]";
|
||||
const string CDTEXT_IDENTIFIER = "^\\s*\\[CDText\\]";
|
||||
const string CCD_VERSION = "^\\s*Version\\s*=\\s*(?<value>\\d+)";
|
||||
const string DISC_ENTRIES = "^\\s*TocEntries\\s*=\\s*(?<value>\\d+)";
|
||||
const string DISC_SESSIONS = "^\\s*Sessions\\s*=\\s*(?<value>\\d+)";
|
||||
const string DISC_SCRAMBLED = "^\\s*DataTracksScrambled\\s*=\\s*(?<value>\\d+)";
|
||||
const string CDTEXT_LENGTH = "^\\s*CDTextLength\\s*=\\s*(?<value>\\d+)";
|
||||
const string DISC_CATALOG = "^\\s*CATALOG\\s*=\\s*(?<value>\\w+)";
|
||||
const string SESSION_PREGAP = "^\\s*PreGapMode\\s*=\\s*(?<value>\\d+)";
|
||||
const string SESSION_SUBCHANNEL = "^\\s*PreGapSubC\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_SESSION = "^\\s*Session\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_POINT = "^\\s*Point\\s*=\\s*(?<value>[\\w+]+)";
|
||||
const string ENTRY_ADR = "^\\s*ADR\\s*=\\s*(?<value>\\w+)";
|
||||
const string ENTRY_CONTROL = "^\\s*Control\\s*=\\s*(?<value>\\w+)";
|
||||
const string ENTRY_TRACKNO = "^\\s*TrackNo\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_AMIN = "^\\s*AMin\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_ASEC = "^\\s*ASec\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_AFRAME = "^\\s*AFrame\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_ALBA = "^\\s*ALBA\\s*=\\s*(?<value>-?\\d+)";
|
||||
const string ENTRY_ZERO = "^\\s*Zero\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_PMIN = "^\\s*PMin\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_PSEC = "^\\s*PSec\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_PFRAME = "^\\s*PFrame\\s*=\\s*(?<value>\\d+)";
|
||||
const string ENTRY_PLBA = "^\\s*PLBA\\s*=\\s*(?<value>\\d+)";
|
||||
const string CDTEXT_ENTRIES = "^\\s*Entries\\s*=\\s*(?<value>\\d+)";
|
||||
const string CDTEXT_ENTRY = "^\\s*Entry\\s*(?<number>\\d+)\\s*=\\s*(?<value>([0-9a-fA-F]+\\s*)+)";
|
||||
const string CCD_IDENTIFIER = @"^\s*\[CloneCD\]";
|
||||
const string DISC_IDENTIFIER = @"^\s*\[Disc\]";
|
||||
const string SESSION_IDENTIFIER = @"^\s*\[Session\s*(?<number>\d+)\]";
|
||||
const string ENTRY_IDENTIFIER = @"^\s*\[Entry\s*(?<number>\d+)\]";
|
||||
const string TRACK_IDENTIFIER = @"^\s*\[TRACK\s*(?<number>\d+)\]";
|
||||
const string CDTEXT_IDENTIFIER = @"^\s*\[CDText\]";
|
||||
const string CCD_VERSION = @"^\s*Version\s*=\s*(?<value>\d+)";
|
||||
const string DISC_ENTRIES = @"^\s*TocEntries\s*=\s*(?<value>\d+)";
|
||||
const string DISC_SESSIONS = @"^\s*Sessions\s*=\s*(?<value>\d+)";
|
||||
const string DISC_SCRAMBLED = @"^\s*DataTracksScrambled\s*=\s*(?<value>\d+)";
|
||||
const string CDTEXT_LENGTH = @"^\s*CDTextLength\s*=\s*(?<value>\d+)";
|
||||
const string DISC_CATALOG = @"^\s*CATALOG\s*=\s*(?<value>\w+)";
|
||||
const string SESSION_PREGAP = @"^\s*PreGapMode\s*=\s*(?<value>\d+)";
|
||||
const string SESSION_SUBCHANNEL = @"^\s*PreGapSubC\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_SESSION = @"^\s*Session\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_POINT = @"^\s*Point\s*=\s*(?<value>[\w+]+)";
|
||||
const string ENTRY_ADR = @"^\s*ADR\s*=\s*(?<value>\w+)";
|
||||
const string ENTRY_CONTROL = @"^\s*Control\s*=\s*(?<value>\w+)";
|
||||
const string ENTRY_TRACKNO = @"^\s*TrackNo\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_AMIN = @"^\s*AMin\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_ASEC = @"^\s*ASec\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_AFRAME = @"^\s*AFrame\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_ALBA = @"^\s*ALBA\s*=\s*(?<value>-?\d+)";
|
||||
const string ENTRY_ZERO = @"^\s*Zero\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_PMIN = @"^\s*PMin\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_PSEC = @"^\s*PSec\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_PFRAME = @"^\s*PFrame\s*=\s*(?<value>\d+)";
|
||||
const string ENTRY_PLBA = @"^\s*PLBA\s*=\s*(?<value>\d+)";
|
||||
const string CDTEXT_ENTRIES = @"^\s*Entries\s*=\s*(?<value>\d+)";
|
||||
const string CDTEXT_ENTRY = @"^\s*Entry\s*(?<number>\d+)\s*=\s*(?<value>([0-9a-fA-F]+\s*)+)";
|
||||
string catalog; // TODO: Use it
|
||||
|
||||
Filter ccdFilter;
|
||||
|
||||
@@ -322,7 +322,7 @@ namespace DiscImageChef.DiscImages
|
||||
string dArt = StringHandlers.PascalToString(dartRsrc.GetResource(dartRsrc.GetIds()[0]),
|
||||
Encoding.GetEncoding("macintosh"));
|
||||
const string DART_REGEX =
|
||||
"(?<version>\\S+), tag checksum=\\$(?<tagchk>[0123456789ABCDEF]{8}), data checksum=\\$(?<datachk>[0123456789ABCDEF]{8})$";
|
||||
@"(?<version>\S+), tag checksum=\$(?<tagchk>[0123456789ABCDEF]{8}), data checksum=\$(?<datachk>[0123456789ABCDEF]{8})$";
|
||||
Regex dArtEx = new Regex(DART_REGEX);
|
||||
Match dArtMatch = dArtEx.Match(dArt);
|
||||
|
||||
|
||||
@@ -479,7 +479,7 @@ namespace DiscImageChef.DiscImages
|
||||
string dCpy = StringHandlers.PascalToString(dCpyRsrc.GetResource(dCpyRsrc.GetIds()[0]),
|
||||
Encoding.GetEncoding("macintosh"));
|
||||
string dCpyRegEx =
|
||||
"(?<application>\\S+)\\s(?<version>\\S+)\\rData checksum=\\$(?<checksum>\\S+)$";
|
||||
@"(?<application>\S+)\s(?<version>\S+)\rData checksum=\$(?<checksum>\S+)$";
|
||||
Regex dCpyEx = new Regex(dCpyRegEx);
|
||||
Match dCpyMatch = dCpyEx.Match(dCpy);
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace DiscImageChef.DiscImages
|
||||
{
|
||||
public class DriDiskCopy : ImagePlugin
|
||||
{
|
||||
const string REGEX_DRI = "DiskImage\\s(?<version>\\d+.\\d+)\\s\\(C\\)\\s\\d+\\,*\\d*\\s+Digital Research Inc";
|
||||
const string REGEX_DRI = @"DiskImage\s(?<version>\d+.\d+)\s\(C\)\s\d+\,*\d*\s+Digital Research Inc";
|
||||
|
||||
/// <summary>Disk image file</summary>
|
||||
Filter driImageFilter;
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages
|
||||
public class Gdi : ImagePlugin
|
||||
{
|
||||
const string REGEX_TRACK =
|
||||
"\\s?(?<track>\\d+)\\s+(?<start>\\d+)\\s(?<flags>\\d)\\s(?<type>2352|2048)\\s(?<filename>.+)\\s(?<offset>\\d+)$"
|
||||
@"\s?(?<track>\d+)\s+(?<start>\d+)\s(?<flags>\d)\s(?<type>2352|2048)\s(?<filename>.+)\s(?<offset>\d+)$"
|
||||
;
|
||||
|
||||
ulong densitySeparationSectors;
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace DiscImageChef.DiscImages
|
||||
const byte SECTOR_HEAD_MAP_MASK = 0x40;
|
||||
const byte COMMENT_END = 0x1A;
|
||||
const string REGEX_HEADER =
|
||||
"IMD (?<version>\\d.\\d+):\\s+(?<day>\\d+)\\/\\s*(?<month>\\d+)\\/(?<year>\\d+)\\s+(?<hour>\\d+):(?<minute>\\d+):(?<second>\\d+)\\r\\n"
|
||||
@"IMD (?<version>\d.\d+):\s+(?<day>\d+)\/\s*(?<month>\d+)\/(?<year>\d+)\s+(?<hour>\d+):(?<minute>\d+):(?<second>\d+)\r\n"
|
||||
;
|
||||
|
||||
List<byte[]> sectorsData;
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace DiscImageChef.DiscImages
|
||||
public class RayDim : ImagePlugin
|
||||
{
|
||||
const string REGEX_SIGNATURE =
|
||||
"Disk IMage VER (?<major>\\d).(?<minor>\\d) Copyright \\(C\\) (?<year>\\d{4}) Ray Arachelian, All Rights Reserved\\."
|
||||
@"Disk IMage VER (?<major>\d).(?<minor>\d) Copyright \(C\) (?<year>\d{4}) Ray Arachelian, All Rights Reserved\."
|
||||
;
|
||||
|
||||
MemoryStream disk;
|
||||
|
||||
@@ -68,21 +68,21 @@ namespace DiscImageChef.DiscImages
|
||||
|
||||
const string DDF_MAGIC = "# Disk DescriptorFile";
|
||||
|
||||
const string REGEX_VERSION = "^\\s*version\\s*=\\s*(?<version>\\d+)$";
|
||||
const string REGEX_CID = "^\\s*CID\\s*=\\s*(?<cid>[0123456789abcdef]{8})$";
|
||||
const string REGEX_CID_PARENT = "^\\s*parentCID\\s*=\\s*(?<cid>[0123456789abcdef]{8})$";
|
||||
const string REGEX_VERSION = @"^\s*version\s*=\s*(?<version>\d+)$";
|
||||
const string REGEX_CID = @"^\s*CID\s*=\s*(?<cid>[0123456789abcdef]{8})$";
|
||||
const string REGEX_CID_PARENT = @"^\s*parentCID\s*=\s*(?<cid>[0123456789abcdef]{8})$";
|
||||
const string REGEX_TYPE =
|
||||
"^\\s*createType\\s*=\\s*\\\"(?<type>custom|monolithicSparse|monolithicFlat|twoGbMaxExtentSparse|twoGbMaxExtentFlat|fullDevice|partitionedDevice|vmfs|vmfsPreallocated|vmfsEagerZeroedThick|vmfsThin|vmfsSparse|vmfsRDM|vmfsRawDeviceMap|vmfsRDMP|vmfsPassthroughRawDeviceMap|vmfsRaw|streamOptimized)\\\"$"
|
||||
@"^\s*createType\s*=\s*\""(?<type>custom|monolithicSparse|monolithicFlat|twoGbMaxExtentSparse|twoGbMaxExtentFlat|fullDevice|partitionedDevice|vmfs|vmfsPreallocated|vmfsEagerZeroedThick|vmfsThin|vmfsSparse|vmfsRDM|vmfsRawDeviceMap|vmfsRDMP|vmfsPassthroughRawDeviceMap|vmfsRaw|streamOptimized)\""$"
|
||||
;
|
||||
const string REGEX_EXTENT =
|
||||
"^\\s*(?<access>(RW|RDONLY|NOACCESS))\\s+(?<sectors>\\d+)\\s+(?<type>(FLAT|SPARSE|ZERO|VMFS|VMFSSPARSE|VMFSRDM|VMFSRAW))\\s+\\\"(?<filename>.+)\\\"(\\s*(?<offset>\\d+))?$"
|
||||
@"^\s*(?<access>(RW|RDONLY|NOACCESS))\s+(?<sectors>\d+)\s+(?<type>(FLAT|SPARSE|ZERO|VMFS|VMFSSPARSE|VMFSRDM|VMFSRAW))\s+\""(?<filename>.+)\""(\s*(?<offset>\d+))?$"
|
||||
;
|
||||
const string REGEX_DDB_TYPE =
|
||||
"^\\s*ddb\\.adapterType\\s*=\\s*\\\"(?<type>ide|buslogic|lsilogic|legacyESX)\\\"$";
|
||||
const string REGEX_DDB_SECTORS = "^\\s*ddb\\.geometry\\.sectors\\s*=\\s*\\\"(?<sectors>\\d+)\\\"$";
|
||||
const string REGEX_DDB_HEADS = "^\\s*ddb\\.geometry\\.heads\\s*=\\s*\\\"(?<heads>\\d+)\\\"$";
|
||||
const string REGEX_DDB_CYLINDERS = "^\\s*ddb\\.geometry\\.cylinders\\s*=\\s*\\\"(?<cylinders>\\d+)\\\"$";
|
||||
const string PARENT_REGEX = "^\\s*parentFileNameHint\\s*=\\s*\\\"(?<filename>.+)\\\"$";
|
||||
@"^\s*ddb\.adapterType\s*=\s*\""(?<type>ide|buslogic|lsilogic|legacyESX)\""$";
|
||||
const string REGEX_DDB_SECTORS = @"^\s*ddb\.geometry\.sectors\s*=\s*\""(?<sectors>\d+)\""$";
|
||||
const string REGEX_DDB_HEADS = @"^\s*ddb\.geometry\.heads\s*=\s*\""(?<heads>\d+)\""$";
|
||||
const string REGEX_DDB_CYLINDERS = @"^\s*ddb\.geometry\.cylinders\s*=\s*\""(?<cylinders>\d+)\""$";
|
||||
const string PARENT_REGEX = @"^\s*parentFileNameHint\s*=\s*\""(?<filename>.+)\""$";
|
||||
|
||||
const uint FLAGS_VALID_NEW_LINE = 0x01;
|
||||
const uint FLAGS_USE_REDUNDANT_TABLE = 0x02;
|
||||
|
||||
Reference in New Issue
Block a user