Exemple #1
0
        public void ReadRevision(out string revision)
        {
            revision = default(string);
            var offset = 0;

            offset += VersionParserUtility.AssertChar(Contents, _index + offset, ' ');
            offset += VersionParserUtility.AssertChar(Contents, _index + offset, 'r');

            var offsetParenthesis = VersionParserUtility.TryAssertChar(Contents, _index + offset, '(');

            if (offsetParenthesis > 0)
            {
                offset += offsetParenthesis;

                string revisionFlag;
                offset += VersionParserUtility.ReadWord(Contents, _index + offset, out revisionFlag);

                if (revisionFlag != "Unknown")
                {
                    throw new VersionFormatException("Expected flag for unknown revision but found '" + revisionFlag + "'");
                }

                offset += VersionParserUtility.AssertChar(Contents, _index + offset, ')');
            }
            else
            {
                int revisionNumber;
                offset  += VersionParserUtility.ReadPositiveInteger(Contents, _index + offset, out revisionNumber);
                revision = "r" + revisionNumber;
                //string revisionData;
                //offset += VersionParserUtility.ReadWord(Contents, _index + offset, out revisionData);
                //revision = "r" + revisionData;
            }
            _index += offset;
        }
Exemple #2
0
        public void ReadFancyName(out string fancyName, char separator)
        {
            fancyName = default(string);
            var offset = 0;

            while (VersionParserUtility.TryAssertChar(Contents, _index + offset, separator) > 0)
            {
                var    partOffset = 1;
                string fancyNameWord;

                partOffset += VersionParserUtility.TryReadWord(Contents, _index + offset + partOffset, out fancyNameWord);

                if (partOffset == 1)
                {
                    _index += offset;
                    return;
                }
                offset += partOffset;
                if (fancyName != null)
                {
                    fancyName += ' ';
                }
                fancyName += fancyNameWord;
            }
            _index += offset;
        }