Mono.Terminal.Entry.WordBackward C# (CSharp) Method

WordBackward() private method

private WordBackward ( int p ) : int
p int
return int
        int WordBackward(int p)
        {
            if (p == 0)
                return -1;

            int i = p-1;
            if (i == 0)
                return 0;

            if (Char.IsPunctuation (text [i]) || Char.IsSymbol (text [i]) || Char.IsWhiteSpace (text[i])){
                for (; i >= 0; i--){
                    if (Char.IsLetterOrDigit (text [i]))
                        break;
                }
                for (; i >= 0; i--){
                    if (!Char.IsLetterOrDigit (text[i]))
                        break;
                }
            } else {
                for (; i >= 0; i--){
                    if (!Char.IsLetterOrDigit (text [i]))
                        break;
                }
            }
            i++;

            if (i != p)
                return i;

            return -1;
        }