OOoFBTools-1.25 сломан фильтр отработки кавычек
Closed this issue · 13 comments
Исходная строка:
test "test".
После применения фильтра "корректор
текста" преобразуетсяк виду:
test»test».
Правильный результатат:
test «test».
Original issue reported on code.google.com by BlackCat...@yandex.ru
on 10 Dec 2011 at 5:46
Спасибо, посмотрю
Original comment by dik...@gmail.com
on 21 Dec 2011 at 4:05
Такой результат. как у вас, получается
потому, что ОБЕ кавычки в вашем тексте -
ЗАКРЫВАЮЩИЕ (из-за шрифта это может не быть
сразу заметно). Корректор не меняет
ошибочно проставленные кавычки, т.к. не
знает, в каком случае нужна открывающая, а
когда - закрывающая кавычка. Он просто, по
заданному алгоритму, встретив Закрывающую
кавычку, убирает перед ней все пробелы и
меняет ее на Закрывающую "ёлочку". Как и
должно быть.
Если вы измените 1-ю кавычку в вашем тексте
на Открывающую, то результат "приятно
удивит вас" :).
Вот пример:
test "test" - 2 Закрывающие кавычки. Результат:
test»test»
test “test” - Открывающая и Закрывающая
кавычки. Результат: test «test».
Original comment by dik...@gmail.com
on 22 Dec 2011 at 5:04
Интересный тезис...
Мне почему-то всегда казалось, что базовые
(ANSI) кавычки на открывающие/закрывающие не
подразделяются.
Также интересен вопрос: почему фильтр в 1.23
отрабатывает их корректно.
Original comment by BlackCat...@yandex.ru
on 22 Dec 2011 at 7:40
Не скажу сейчас, почему. Возможно там не
удаления пробелов перед закрывающей
кавычкой, не помню...
Original comment by dik...@gmail.com
on 22 Dec 2011 at 9:42
Про кавычки:
Я просмотрю код Корректора на предмет
изменения алгоритма обработки кавычек.
Original comment by dik...@gmail.com
on 23 Dec 2011 at 4:41
С кавычками - проблема:
В Корректоре есть две опции, работа одной
"портит" исходные данные для другой и
наоборот. Это 1. "Удалить пробелы внутри
кавычек (« слово » -> «слово»)" и 2. "Замена
кавычек на ёлочку".
Программно, используя регулярные
выражения сложно (если возможно?)
различить: кавычка " является открывающей,
или закрывающей. И поэтому 1-я опция,
встретив кавычку ", не может понять.
открывающая она или закрывающая (это не
относится к кавычкам вида “ и «) и удаляет
перед ней пробелы, как перед закрывающей
кавычкой.
2-я опция - тоже нельзя понять - открывающая
" или закрывающая, и, соответственно,
непонятно, на какую ёлочку ее менять.
При совместной работе этих 2-х опций,
сначала удаляются все пробелы перед и до
кавычек, а потом кавычки перобразуются в
ёлочку. И, в связи с вышеописанным, простая
кавычка ", если перед ней был пробел,
"прилипает" к предыдущему слову, и уже
воспринимается в регулярном выражении, как
закрывающая. и меняется на ». test " test " ->
Получаем: test»test»
Я "ограничил" опцию "Удалить пробелы внутри
кавычек (« слово » -> «слово») обработкой
только кавычек вида “,« и ”,»
соответственно. Т.е. эта опция не будет
убирать пробела в таких ситуациях: test " test ",
а, следовательно, и не будет замены на
елочку для этой ситуации. Ситуации же test
"test" корректно обрабатываются и получаем:
test «test»
Иного пути я пока не вижу при использовании
регулярных выражений...
Original comment by dik...@gmail.com
on 23 Dec 2011 at 6:40
Версия 1.26.
Замена на ёлочку выключена.
Файл: http://flibusta.net/b/150510
После фильтра: 'лозунг 1971–го"давайте'
(потерян пробел в том числе перед кавычкой).
Original comment by BlackCat...@yandex.ru
on 12 Feb 2012 at 8:07
Посмотрю...
Original comment by dik...@gmail.com
on 21 Feb 2012 at 11:56
Прогони у себя, пожалуйста, еще раз. На
версии 1.27 (многое в Корректоре менял) у меня
получилось так: `лозунг 1971–го "давайте
присматривать за полицией"`
Как у тебя?
Original comment by dik...@gmail.com
on 21 Feb 2012 at 12:04
1.24 --- как показала практика фильтр тоже был
сломан.
1.27 --- по тестированному примеру (не
совпадает с ранее приводившимися) фильтр
корректора текста кавычки отработал как
надо.
Так что похоже проблема решена.
Original comment by BlackCat...@yandex.ru
on 6 Mar 2012 at 5:37
Похоже с заключением о решённости проблемы
я погорячился...
Original comment by BlackCat...@yandex.ru
on 12 Mar 2012 at 5:15
Укажи, пожалуйста. что и где не так
обработалось - у меня все нормально.
Возможно мой глаз уже "замылился" :)
Original comment by dik...@gmail.com
on 18 Mar 2012 at 5:33
Original comment by dik...@gmail.com
on 7 Dec 2012 at 2:31
- Changed state: Done