Название: BugReport Отправлено: animalia от 10 января 2016, 17:34:15 Маленький такой баг, который вешает HandyCache намертво.
Преамбула. В регэкспах есть такой эскейп-символ как \xYZ. Что он делает? самую малось - возвращает символ шестнадцатеричного кода YZ. Собственно баг в том что при попытке использовать эскейп \x HandyCache загружает процессор на все 100% (ну если совсем честно, то только на 25% - ибо 4 ядра) и перестает отвечать на запросы, и вообще ни на что не реагирует. Приходится вырубать его из диспетчера задач. (и опять справедливости ради, однажды пока ждал когда HandyCache одумается он ругнулся что то про FastMM и сам закрылся, каюсь - скриншот не сделал :good:) То есть правило Код: #5#~#False#~#\%([0-9A-F]{2})#~#\x\1#~#True#~#True Код: somesite.com/test.php?re=%2F НО! Зависание происходит только в случае если шестнадцатеричный код передается как параметр. Если код символа указать явно, то все ок. Например конструкция \x2F без проблем возвращает / Причем некоторые символы декодируются на автомате и без правила (по крайней мере в мониторе коды буквенных символов отображаются самими символами, хотя возможно это браузер их транслирует). В принципе и без него жить можно просто очень сильно облегчило бы жизнь при обработке редиректов и прочих где среди параметров передаются другие URL. Название: Re: BugReport Отправлено: Михаил от 03 апреля 2016, 23:35:04 Оставляя за скобками необходимость использования в Замене конструкции вида '\x\1', подтверждаю наличие бага.
НС виснет намертво, потребляя все процессорные ресурсы. Название: Re: BugReport Отправлено: animalia от 04 апреля 2016, 19:46:49 Если честно, то я начинаю думать "а баг ли это вообще". Дело в том, что заинтересовавшись данной темой почитал несколько ресурсов и книг, и могу резюмировать \x используют чтоб указать непечатаемый символ (или всякие буквы с диакритическими символами), при этом код символа передают явно. С другой стороны я не разу не встретил указания что конструкцию \x\1 запрещено (или нежелательно) использовать.
То есть налицо ситуация 'никто не разрешал и никто не запрещал'. Лично я решил эту задачу прогоном по каскаду из 5 отдельных правил замены - изврат конечно, но иных вариантов пока не нашел. Название: Re: BugReport Отправлено: animalia от 01 июня 2016, 18:46:18 Нашелся еще один маленький баг (столь мелкий, что отдельной ветки не заслуживает)
В тренажере во всех TMemo не работает комбинация Ctrl+A. В TEdit все ОК, из контекстного меню все тоже работает. Мелочь, но напрягает: приходится или мышь дергать, или с зажатым Del медитировать. Название: Re: BugReport Отправлено: mai62 от 06 июня 2016, 18:21:14 по идее должен вернуть один единственный символ - / Не должен. Строка замены парсится ДО выполнения регулярного выражения. Пара символов \1 рассматривается как эта пара символов, а не результат выполнения регулярного выражения. Поэтому писать в колонку Замена \x\1 не имеет смысла. Можно писать, например, \x2F.Запись \x\1, конечно, не должна приводить к зависанию программы, это я исправлю. Цитировать В тренажере во всех TMemo не работает комбинация Ctrl+A. TMemo - стандартная компонента, вот такой ее сделали. Я применять Ctrl+A не запрещал. Можно выделить строки стрелками с зажатым Shift.Название: Re: BugReport Отправлено: animalia от 06 июня 2016, 19:15:59 Цитировать Строка замены парсится ДО выполнения регулярного выражения. Не знал, учту на будущее.Цитировать TMemo - стандартная компонента А вот это знаю. Уже сколько версий Delphi это наследие с Ctrl+A тянется.Просто такое не дружелюбное поведение "лечится" установкой PopupMenu и ActionList с набором стандартных действий. С другой стороны понимаю, что правило "работает - не трогай" никто не отменял. :) Название: Re: BugReport Отправлено: mai62 от 13 июня 2016, 15:02:44 Просто такое не дружелюбное поведение "лечится" установкой PopupMenu и ActionList с набором стандартных действий. Лечится. Но я же не текстовый редактор пишу, где такая функция была бы одной из самых востребованных. Данная "проблема", наверное даже не второстепенная, а третьестепенная. Можно, конечно, погрузиться в борьбу с такими неидеальностями, но тогда что-то более важное в моем контексте останется без внимания.
Powered by SMF 1.1.3 SMF © 2006, Simple Machines LLC
Joomla Bridge by JoomlaHacks.com |