|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ramazan Jah-Far 2:5020/400 10 Jul 2004 18:06:45 To : Edward Yudanov Subject : Re: slrn fido-style dquoting level -------------------------------------------------------------------------------- Hi! In fido7.ru.linux, Edward Yudanov wrote: RJF>> Я накладывал Шевченковский slrn-initial.asp.patch от версии RJF>> 0.9.7.4 со своими собственными модификациями для версии RJF>> 0.9.8.0. EY> Hу у меня где-то тоже лежали патчи на 0.9.8.0 Да, я видел, но у меня тот модифицированный для 0.9.8.0 Шевченковский патч уже очень давно, почти с момента выхода 0.9.8.0... Я на твоём сайте действительно видел патч для 0.9.8.0, но мне просто лень было разбираться, что в нём и откуда. EY> Пиши патчи, заворачивай в тарбол и присылай мне. Заворачивать там нечего. Я пока приложу ту версию, что уже работает в моём slrn (0.9.8.0-14f4), для тех, кто хочет поскорее опробовать её в действии. Описание я составлю, но не прямо сейчас, у меня пока мало свободного времени. :( Патч сделан с сохранением Шевченковского стиля, за исключением декларации slrn_undquoted в начале файла art.c Позже я, вероятно, это сделаю. Смысл slrn_undquoted -- "underquoted" -- т.е. эта функция возвращает уровень "недоцитированности". При текущей архитектуре Шевченковского патча, этот уровень в точности равен уровню внешнего цитирования (при двойном цитировании). Эти комментарии я мог бы включить в исходный код, как я обычно и поступаю, но у Шевченко комментариев нет, а я решил не нарушать стиль (хоча менi дуже кортило :). Из интересных особенностей следует также отметить смесь tabs и eightspaces (парадокс!). Кстати, использованная там индентация для меня вообще -- загадка. Я фанат java-like indents и python. ################### begin slrn-0.9.8.0-FQLfix.patch ################### - --- slrn-0.9.8.0/src/art.c.FQLfix 2004-07-07 22:42:27.000000000 +0300 +++ slrn-0.9.8.0/src/art.c 2004-07-07 22:50:07.000000000 +0300 @@ -2866,12 +2866,51 @@ /*}}}*/ +static int slrn_undquoted (char *s) +{ + register char ch; + unsigned int fl = 0, undquoted = 0; + + if (s == NULL) return 0; + while (((ch = *s) != 0) && (fl < 127)) + { + switch (ch) + { + case '>': + if ((fl > 3) && (fl != 127)) fl = 256; + if (fl < 3) + { + if (Slrn_Kill_Double_Quote == 0) fl = 255; + else fl = 3; + } + if (fl == 3) undquoted++; + break; + case '\t': + case ' ': + if ((fl == 1) || (fl == 3) || (fl == 5)) fl += 1; + break; + default: + if (fl == 6) fl = 255; + if ((fl == 3) || (fl == 4)) fl = 5; + if (fl == 2) fl = 127; + if (fl == 0) fl = 1; + break; + } + s++; + } + if (fl == 256) return undquoted; + else return 0; +} + static void slrn_put_old_quote (FILE *fp, char *make_initial, char *quote_str, int smart_space, char *l_buf, int size) { char *add_slrn_initial_string, *add_slrn_quote_string; + int undquoted; add_slrn_initial_string = slrn_cut_initial (l_buf); fprintf (fp, "%s%s%s", " ", add_slrn_initial_string, quote_str); + undquoted = slrn_undquoted (l_buf); + while (--undquoted >= 0) fprintf (fp, "%s", quote_str); if (Slrn_Make_Golded_Initial) fprintf (fp, "%s", quote_str); else #################### end slrn-0.9.8.0-FQLfix.patch #################### -- Bye! Ramazan --- ifmail v.2.15dev5.3 * Origin: UkrNet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/9140d39a664e.html, оценка из 5, голосов 10
|