1. C# / Говнокод #19830

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    private void CaretNormalize()  {
                if (Template.Terminals.Count == 0) { _sTermEnd = _sOffStart = _sOffEnd = _sTermStart = 0; return; }
                if (_sTermStart == _sTermEnd) {
                    if (_sTermStart < 0) _sTermEnd = _sOffStart = _sOffEnd = _sTermStart = 0;
                    else if (_sTermEnd > Template.Terminals.Count - 1) {
                        _sTermEnd = _sTermStart = Template.Terminals.Count - 1;
                        _sOffStart = _sOffEnd = Template.Terminals[Template.Terminals.Count - 1].Text.Length;
                    }
                    else  {
                        if (_sOffStart != _sOffEnd) {
                            var nos = Math.Min(_sOffStart, _sOffEnd);
                            _sOffEnd = Math.Max(_sOffStart, _sOffEnd);
                            _sOffStart = nos;
                            if (_sOffStart < 0)  {
                                _sTermEnd = --_sTermStart;
                                if (_sTermEnd < 0) _sTermStart = _sOffStart = 0; else _sOffStart = Template.Terminals[_sTermEnd].Text.Length - 1;
                            }
                            if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                                _sTermEnd = ++_sTermStart;
                                if (_sTermEnd > Template.Terminals.Count - 1)
                                {
                                    _sTermEnd = Template.Terminals.Count - 1;
                                    _sOffEnd = Template.Terminals[_sTermEnd].Text.Length;
                                }
                                else _sOffEnd = 0;
                            }
                        }
                        else
                        {
                            if (_sOffStart < 0) {
                                _sTermEnd = --_sTermStart;
                                if (_sTermEnd < 0)  _sTermStart = _sOffEnd = _sOffStart = 0; else _sOffEnd = _sOffStart = Template.Terminals[_sTermEnd].Text.Length - 1;
                            }
                            if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                                _sTermEnd = ++_sTermStart;
                                if (_sTermEnd > Template.Terminals.Count - 1) {
                                    _sTermEnd = Template.Terminals.Count - 1;
                                    _sOffEnd = _sOffStart = Template.Terminals[_sTermEnd].Text.Length;
                                } else _sOffEnd = _sOffStart = 0;
                            }
                        }
                    }
                } else {
                    if (_sTermStart > _sTermEnd) {
                        var t = _sTermStart;
                        _sTermStart = _sTermEnd;
                        _sTermEnd = t;
                        t = _sOffStart;
                        _sOffStart = _sOffEnd;
                        _sOffEnd = t;
                    }
                    if (_sTermStart < 0) _sOffStart = _sTermStart = 0;
    
                    if (_sTermEnd > Template.Terminals.Count - 1) {
                        _sTermEnd = Template.Terminals.Count - 1;
                        _sOffEnd = Template.Terminals[Template.Terminals.Count - 1].Text.Length;
                    }
                    if (_sOffStart < 0) {
                        --_sTermStart;
                        if (_sTermStart < 0) _sTermStart = _sOffStart = 0; else _sOffStart = Template.Terminals[_sTermStart].Text.Length - 1;
                    }
                    if (_sOffEnd > Template.Terminals[_sTermEnd].Text.Length - 1) {
                        ++_sTermEnd;
                        if (_sTermEnd > Template.Terminals.Count - 1) {
                            _sTermEnd = Template.Terminals.Count - 1;
                            _sOffEnd = Template.Terminals[_sTermEnd].Text.Length;
                        }
                        else _sOffEnd = 0;
                    }
                }
            }

    Запостил: qwe345asd, 17 Апреля 2016

    Комментарии (1) RSS

    Добавить комментарий