Си диез / Говнокод #19830 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 qwe345asd, (Updated )

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

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8