[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/IO Directory.cs,1.15,
From: |
Rhys Weatherley <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/IO Directory.cs,1.15,1.16 |
Date: |
Sun, 06 Apr 2003 01:21:11 -0500 |
Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System/IO
In directory subversions:/tmp/cvs-serv26274/runtime/System/IO
Modified Files:
Directory.cs
Log Message:
Implement a better regular expression library.
Index: Directory.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/runtime/System/IO/Directory.cs,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** Directory.cs 3 Apr 2003 16:15:51 -0000 1.15
--- Directory.cs 6 Apr 2003 06:21:09 -0000 1.16
***************
*** 358,367 ****
}
! /* internal class to convert Glob expression to Regexp */
private class GlobMatch : IDisposable
{
! Regexp expr;
String pattern;
- String translated;
bool disposed=false;
--- 358,366 ----
}
! /* internal class to convert Glob expression to Regex */
private class GlobMatch : IDisposable
{
! Regex expr;
String pattern;
bool disposed=false;
***************
*** 370,422 ****
StringBuilder builder=new StringBuilder();
pattern=glob;
! char[] arr=glob.ToCharArray();
! for(int i=0;i<arr.Length;i++)
! {
! switch(arr[i])
! {
! case '.':
! {
! if(i < arr.Length-1)
! {
!
if(arr[i+1]=='?')
! {
!
builder.Append("\\.{0,1}");
! i=i+1;
! }
! else
if(arr[i+1]=='*')
! {
!
builder.Append(".*");
! i=i+1;
! }
! else
! {
!
builder.Append("\\.");
! }
! }
! else
! {
!
builder.Append("\\.");
! }
! }
! break;
! case '*':
! builder.Append(".*");
! break;
! case '?':
! builder.Append(".");
! break;
! case '[':
! case ']':
! case '^':
! case '\\':
! builder.Append("\\"+arr[i]);
! break;
! default:
! builder.Append(arr[i]);
! break;
! }
! }
! translated="^"+builder.ToString()+"$";
//perfect match
! expr=new Regexp(translated);
}
--- 369,373 ----
StringBuilder builder=new StringBuilder();
pattern=glob;
! expr=new Regex(glob, RegexSyntax.Wildcard);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/IO Directory.cs,1.15,1.16,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/Platform RegexpMethods.cs,1.1,1.2
- Next by Date:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Private Regex.cs,NONE,1.1 RegexMatch.cs,NONE,1.1 RegexMatchOptions.cs,NONE,1.1 RegexSyntax.cs,NONE,1.1 Regexp.cs,1.1,NONE
- Previous by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/Platform RegexpMethods.cs,1.1,1.2
- Next by thread:
[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Private Regex.cs,NONE,1.1 RegexMatch.cs,NONE,1.1 RegexMatchOptions.cs,NONE,1.1 RegexSyntax.cs,NONE,1.1 Regexp.cs,1.1,NONE
- Index(es):