Re[7]: [Bug] Цвет lineQuote переходит на основное сообщение
От: AlexNek  
Дата: 18.10.11 22:08
Оценка:
Здравствуйте, ixor, Вы писали:

I>Здравствуйте, AlexNek, Вы писали:


AN>>Здравствуйте, ixor, Вы писали:


I>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>в 1537 с исходников сайта все нормально.


I>>>Баг в основной ветке присутствует.

AN>>Покажи плиз где?
AN>>
AN>>нифига не вижу.

I>Текст : "а что с памятью?? В линковской реализации ..." должен быть черным. Это не цитата.

Вроде нашел где. Как и ожидалось тег cut "виноват".
А конкретно, что эта строка вызывается два раза, при этом второй раз и дает неправильны спан тег. Видимо нужно проверить регех. (Код несколько отличается от оригинала)
               // Цитирование.
                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

            // temporary remove [cut] tags
            Matcher cutMatcher;
            do
            {
                cutMatcher = ReplaceTag("cut", _rxPrep13, ref sb);

                // Цитирование.
                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

                // restore & transform [cut] tags
                for (var i = 0; i < cutMatcher.Count; i++)
                {
                    Match match = cutMatcher[i];
                    string capt = string.IsNullOrEmpty(match.Groups[3].Value)
                                          ? "Скрытый текст"
                                          : match.Groups[3].Value;
                    string replace1 = _hiddenTextSnippet.Replace("%CAPT%", capt);
                    string replace2 = replace1.Replace("%TEXT%", match.Groups[4].Value);
                    string replace3 = replace2.Replace("%URL%", this.GetImagePrefix());
                    string pattern = string.Format(cutMatcher.Pattern, i);
                    sb = sb.Replace(pattern, replace3);
                }
            } while (cutMatcher.Count > 0);
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Re[8]: [Bug] Цвет lineQuote переходит на основное сообщение
От: AlexNek  
Дата: 18.10.11 22:36
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Здравствуйте, ixor, Вы писали:


I>>Здравствуйте, AlexNek, Вы писали:


AN>>>Здравствуйте, ixor, Вы писали:


I>>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>>в 1537 с исходников сайта все нормально.


I>>>>Баг в основной ветке присутствует.

AN>>>Покажи плиз где?
AN>>>
AN>>>нифига не вижу.

I>>Текст : "а что с памятью?? В линковской реализации ..." должен быть черным. Это не цитата.

AN>Вроде нашел где. Как и ожидалось тег cut "виноват".
Народ что делает этот регех? конкретно "{0}" — что то по быстрому не нашел.
(?mn)({0}.*?$)+
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Re: [Bug] Цвет lineQuote переходит на основное сообщение
От: AlexNek  
Дата: 19.10.11 16:42
Оценка:
Здравствуйте, _Raz_, Вы писали:

_R_>Вот в этом сообщении
Автор: Jack128
Дата: 19.09.11
янус раскрашивает основной текст цветом цитаты, а на сайте нормально.

Нашел причину: нужно не разрешать перенос строк внутри таблицы тега cut. Иначе lineQuote попадает между тегами.
            Matcher cutMatcher;
            do
            {
                cutMatcher = ReplaceTag("cut", _rxPrep13, ref sb);

                // Цитирование.
                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

                // restore & transform [cut] tags
                for (var i = 0; i < cutMatcher.Count; i++)
                {
                    Match match = cutMatcher[i];
                    string capt = string.IsNullOrEmpty(match.Groups[3].Value)
                                          ? "Скрытый текст"
                                          : match.Groups[3].Value;
                    string replace1 = _hiddenTextSnippet.Replace("%CAPT%", capt);
                    string text = match.Groups[4].Value;

                    // no new line in text because of second line quotation
                    text = text.Replace("\n\r", "<br/>");
                    text = text.Replace("\n", "<br/>");
                    string replace2 = replace1.Replace("%TEXT%", text);
                    string replace3 = replace2.Replace("%URL%", this.GetImagePrefix());
                    string pattern = string.Format(cutMatcher.Pattern, i);
                    sb = sb.Replace(pattern, replace3);
                }
            } while (cutMatcher.Count > 0);
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Re[9]: [Bug] Цвет lineQuote переходит на основное сообщение
От: ixor Россия  
Дата: 20.10.11 08:06
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Здравствуйте, AlexNek, Вы писали:


AN>>Здравствуйте, ixor, Вы писали:


I>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>Здравствуйте, ixor, Вы писали:


I>>>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>>>в 1537 с исходников сайта все нормально.


I>>>>>Баг в основной ветке присутствует.

AN>>>>Покажи плиз где?
AN>>>>
AN>>>>нифига не вижу.

I>>>Текст : "а что с памятью?? В линковской реализации ..." должен быть черным. Это не цитата.

AN>>Вроде нашел где. Как и ожидалось тег cut "виноват".
AN>Народ что делает этот регех? конкретно "{0}" — что то по быстрому не нашел.
AN>
AN>(?mn)({0}.*?$)+
AN>


Похоже, ищет ноль совпадений
а еще точнее "ноль совпадений для ничего"
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Re[8]: [Bug] Цвет lineQuote переходит на основное сообщение
От: ixor Россия  
Дата: 20.10.11 08:12
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Здравствуйте, ixor, Вы писали:


I>>Здравствуйте, AlexNek, Вы писали:


AN>>>Здравствуйте, ixor, Вы писали:


I>>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>>в 1537 с исходников сайта все нормально.


I>>>>Баг в основной ветке присутствует.

AN>>>Покажи плиз где?
AN>>>
AN>>>нифига не вижу.

I>>Текст : "а что с памятью?? В линковской реализации ..." должен быть черным. Это не цитата.

AN>Вроде нашел где. Как и ожидалось тег cut "виноват".
AN>А конкретно, что эта строка вызывается два раза, при этом второй раз и дает неправильны спан тег. Видимо нужно проверить регех. (Код несколько отличается от оригинала)
AN>
AN>               // Цитирование.
AN>                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

AN>

AN>
AN>            // temporary remove [cut] tags
AN>            Matcher cutMatcher;
AN>            do
AN>            {
AN>                cutMatcher = ReplaceTag("cut", _rxPrep13, ref sb);

AN>                // Цитирование.
AN>                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

AN>                // restore & transform [cut] tags
AN>                for (var i = 0; i < cutMatcher.Count; i++)
AN>                {
AN>                    Match match = cutMatcher[i];
AN>                    string capt = string.IsNullOrEmpty(match.Groups[3].Value)
AN>                                          ? "Скрытый текст"
AN>                                          : match.Groups[3].Value;
AN>                    string replace1 = _hiddenTextSnippet.Replace("%CAPT%", capt);
AN>                    string replace2 = replace1.Replace("%TEXT%", match.Groups[4].Value);
AN>                    string replace3 = replace2.Replace("%URL%", this.GetImagePrefix());
AN>                    string pattern = string.Format(cutMatcher.Pattern, i);
AN>                    sb = sb.Replace(pattern, replace3);
AN>                }
AN>            } while (cutMatcher.Count > 0);

AN>


Ты этот кусок из ТекстФорматера выдернул?
... << RSDN@Home 1.2.0 alpha 5 rev. 1536>>
Re[10]: [Bug] Цвет lineQuote переходит на основное сообщение
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.10.11 14:43
Оценка:
Здравствуйте, ixor, Вы писали:

I>Похоже, ищет ноль совпадений

I>а еще точнее "ноль совпадений для ничего"

{0} это плейсхолдер для string.Format
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[9]: [Bug] Цвет lineQuote переходит на основное сообщение
От: AlexNek  
Дата: 20.10.11 18:37
Оценка:
Здравствуйте, ixor, Вы писали:

I>Здравствуйте, AlexNek, Вы писали:


AN>>Здравствуйте, ixor, Вы писали:


I>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>Здравствуйте, ixor, Вы писали:


I>>>>>Здравствуйте, AlexNek, Вы писали:


AN>>>>>>в 1537 с исходников сайта все нормально.


I>>>>>Баг в основной ветке присутствует.

AN>>>>Покажи плиз где?
AN>>>>
AN>>>>нифига не вижу.

I>>>Текст : "а что с памятью?? В линковской реализации ..." должен быть черным. Это не цитата.

AN>>Вроде нашел где. Как и ожидалось тег cut "виноват".
AN>>А конкретно, что эта строка вызывается два раза, при этом второй раз и дает неправильны спан тег. Видимо нужно проверить регех. (Код несколько отличается от оригинала)
AN>>
AN>>               // Цитирование.
AN>>                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

AN>>

AN>>
AN>>            // temporary remove [cut] tags
AN>>            Matcher cutMatcher;
AN>>            do
AN>>            {
AN>>                cutMatcher = ReplaceTag("cut", _rxPrep13, ref sb);

AN>>                // Цитирование.
AN>>                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

AN>>                // restore & transform [cut] tags
AN>>                for (var i = 0; i < cutMatcher.Count; i++)
AN>>                {
AN>>                    Match match = cutMatcher[i];
AN>>                    string capt = string.IsNullOrEmpty(match.Groups[3].Value)
AN>>                                          ? "Скрытый текст"
AN>>                                          : match.Groups[3].Value;
AN>>                    string replace1 = _hiddenTextSnippet.Replace("%CAPT%", capt);
AN>>                    string replace2 = replace1.Replace("%TEXT%", match.Groups[4].Value);
AN>>                    string replace3 = replace2.Replace("%URL%", this.GetImagePrefix());
AN>>                    string pattern = string.Format(cutMatcher.Pattern, i);
AN>>                    sb = sb.Replace(pattern, replace3);
AN>>                }
AN>>            } while (cutMatcher.Count > 0);

AN>>


I>Ты этот кусок из ТекстФорматера выдернул?

Оригинальный код немного другой
TextFormatter.cs
            Matcher cutMatcher;
            do
            {
                cutMatcher = new Matcher(cutExpression);
                sb = _rxPrep13.Replace(sb, cutMatcher.Match);

                // Öèòèðîâàíèå.
                sb = _rxTextUrl09.Replace(sb, "<span class='lineQuote'>$&</span>");

                // restore & transform [cut] tags
                for (var i = 0; i < cutMatcher.Count; i++)
                {
                    var m = cutMatcher[i];
                    var capt = String.IsNullOrEmpty(m.Groups[3].Value) ? "Ñêðûòûé òåêñò" : m.Groups[3].Value;
                    sb = sb.Replace(String.Format(cutExpression, i),
                        _hiddenTextSnippet.Replace("%CAPT%", capt).Replace("%TEXT%", m.Groups[4].Value).
                        Replace("%URL%", GetImagePrefix()));
                }
            } while (cutMatcher.Count > 0);
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.