Subversion Repositories DevTools

Rev

Rev 2354 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2354 Rev 2449
Line 639... Line 639...
639
 
639
 
640
    for ( ii = 3; ii < argc ; ii++)
640
    for ( ii = 3; ii < argc ; ii++)
641
    {
641
    {
642
 
642
 
643
        if ( verbose > 2)
643
        if ( verbose > 2)
644
            fprintf(stderr, "RmItem: %s\n", argv[ii]);
644
            fprintf(stderr, "RmItem: %ls\n", argv[ii]);
645
 
645
 
646
        target = makePath( argv[ii],NULL);
646
        target = makePath( argv[ii],NULL);
647
        rv = GetFileAttributesW( target );
647
        rv = GetFileAttributesW( target );
648
        if ( rv != INVALID_FILE_ATTIBUTES )
648
        if ( rv != INVALID_FILE_ATTIBUTES )
649
        {
649
        {
Line 760... Line 760...
760
{
760
{
761
    int lenp = 0;
761
    int lenp = 0;
762
    int lencwd = 0;
762
    int lencwd = 0;
763
    int len1 = _tcslen(base);
763
    int len1 = _tcslen(base);
764
    int len2 = 0;
764
    int len2 = 0;
-
 
765
    int dlen = _tcslen(TEXT("\\\\?\\"));
765
    _TCHAR *data;
766
    _TCHAR *data;
766
    _TCHAR *cdata;
767
    _TCHAR *cdata;
767
    _TCHAR *udst;
768
    _TCHAR *udst;
768
 
769
 
769
    /*
770
    /*
770
    **  If the base contains a \\?\ then we don't need to add it
771
    **  If the base contains a \\?\ then we don't need to add it
771
    */
772
    */
772
    if ( !( len1 > 3 && base[2] == '?' ) )
773
    if ( !( len1 > 3 && base[2] == '?' ) )
773
    {
774
    {
774
        lenp = _tcslen(TEXT("\\\\?\\"));
775
        lenp = dlen;
775
    }
776
    }
776
 
777
 
777
    /*
778
    /*
778
    **  Unless an absolute path we need to insert CWD too
779
    **  Unless an absolute path we need to insert CWD too
779
    **  Just determine the length of the entry for now
780
    **  Just determine the length of the entry for now
Line 834... Line 835...
834
            *udst = '\\';
835
            *udst = '\\';
835
    }
836
    }
836
 
837
 
837
    /*
838
    /*
838
    **  Now remove silly relative path bits
839
    **  Now remove silly relative path bits
-
 
840
    **  Also duplicate '\\'
839
    */
841
    */
840
    udst = data;
842
    udst = data + dlen;
841
    while ( *udst )
843
    while ( *udst )
842
    {
844
    {
-
 
845
        if ( udst[0] == '\\' && udst[1] == '\\' )
-
 
846
        {
-
 
847
            TCHAR* ptr1 = udst;
-
 
848
            TCHAR* ptr2 = udst + 1;
-
 
849
            while ( *ptr1++ = *ptr2++ ) {}
-
 
850
            continue;
-
 
851
        }
-
 
852
 
843
        if ( udst[0] == '\\' && udst[1] == '.' && (udst[2] == '\\' || udst[2] == 0) )
853
        if ( udst[0] == '\\' && udst[1] == '.' && (udst[2] == '\\' || udst[2] == 0) )
844
        {
854
        {
845
            TCHAR* ptr1 = udst;
855
            TCHAR* ptr1 = udst;
846
            TCHAR* ptr2 = udst + 2;
856
            TCHAR* ptr2 = udst + 2;
847
            while ( *ptr1++ = *ptr2++ ) {}
857
            while ( *ptr1++ = *ptr2++ ) {}