Ejemplo n.º 1
0
        /// <summary>
        /// Removes the final extension of a path atom, returning a new atom.
        /// </summary>
        /// <remarks>
        /// This function is a nop if the atom has no extension.
        /// </remarks>
        public PathAtom RemoveExtension(PathAtom atom)
        {
            Contract.Requires(atom.IsValid);
            Contract.Ensures(Contract.Result <PathAtom>().IsValid);

            return(atom.RemoveExtension(m_stringTable));
        }
Ejemplo n.º 2
0
        public void RemoveExtension()
        {
            var st = new StringTable(0);

            // remove a single char extension
            PathAtom pa1 = PathAtom.Create(st, @"a.c");
            PathAtom pa2 = pa1.RemoveExtension(st);

            XAssert.AreEqual(@"a", pa2.ToString(st));

            // remove a multi char extension
            pa1 = PathAtom.Create(st, @"a.cpp");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(@"a", pa2.ToString(st));

            // remove nothing
            pa1 = PathAtom.Create(st, @"a");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(pa1, pa2);

            // remove a single char extension
            pa1 = PathAtom.Create(st, @"ab.c");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(@"ab", pa2.ToString(st));

            // remove a multi char extension
            pa1 = PathAtom.Create(st, @"ab.cpp");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(@"ab", pa2.ToString(st));

            // remove nothing
            pa1 = PathAtom.Create(st, @"ab");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(pa1, pa2);

            pa1 = PathAtom.Create(st, @"ab.xyz.c");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(@"ab.xyz", pa2.ToString(st));

            // remove a multi char extension
            pa1 = PathAtom.Create(st, @"ab.xyz.cpp");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(@"ab.xyz", pa2.ToString(st));

            pa1 = PathAtom.Create(st, @".cpp");
            pa2 = pa1.RemoveExtension(st);
            XAssert.AreEqual(pa1, pa2);
        }
        /// <summary>
        /// Indicates whether the given path should be included in the directory membership computation
        /// </summary>
        /// <returns>true if the member should be included. Otherwise, false.</returns>
        public override bool Include(PathAtom fileName, string fileNameStr)
        {
            if (AccessedFileNamesWithoutExtension.Contains(fileName.StringId))
            {
                return(true);
            }

            var fileNameWithoutExtension = fileName.RemoveExtension(m_pathTable.StringTable).StringId;

            return(AccessedFileNamesWithoutExtension.Contains(fileNameWithoutExtension));
        }