Вход по OpenID временно не работает
Разбираюсь.
Hatred's Log Place
Разбираюсь.
Сам проект - git-хостинг. Там же хостятся проекты Qt ( http://blog.gitorious.org/2009/05/11/welcome-qt/, http://qt.gitorious.org/), Qt Creator ( http://qt.gitorious.org/qt-creator).
1. после в веб-морде: Your dashboard (вверху) -> Manage SSH keys (в главной области окна) -> Add SSH key (в колонке справа), вставить туда содержимое ~/.ssh/id_rsa_gitorious.pub и жмякнуть Save
2. у себя же, создать файл ~/.ssh/config, в котором должно содержаться примерно следующее:```
Host gitorious.org
IdentityFile ~/.ssh/id_rsa_gitorious
``` что бы для сайты автоматом выбирался нужный ключ.
Теперь несколько заметок по работе.
* заходим в нужный проект, выбираем репозиторий, в колонке справа появляется возможность клонировать репу. На ней делать изменения и потом комитить мерж-реквесты.
* создать свой проект: Your dashboard -> Create a new project... (колонка справа) дальше все понятно: задать нужные поля, выбрать лицензию и т.д.
* в проекте можно создавать репозитории, находясь в проекте: Add repository... в колонке справа, после создания проекта, будут даны рекомендации, что нужно сделать, что бы залить его после (подготовительные шаги для ssh мы сделали выше)
Пока не существует возможности создать приватный репозиторий, но работа ведется: http://groups.google.com/group/gitorious/browse_thread/thread/af08be1e6dd70b95/614e96c2f886b7fb?lnk=gst&q=private#614e96c2f886b7fb
Из дополнительных плюшек: можно для проекта вики создавать, по сути нормальный такой сайт-хостер для исходников, при том, что из git по тегу можно выгребать tar.gz пакеты, не плодя лишние сущности.
Но, при создании проекта так же можно указывать и сайт и багтрекер, так что и как удобный вспомогательный механизм Gitourous тоже полезен. Есть удобные средства для ревью кода, при совместной разработке.
Сам код Gitorious хостится здесь же, можно скачать и развернуть подобную систему у себя. Для пользователей ArchLinux доступен через AUR: http://aur.archlinux.org/packages.php?ID=34713
И есть одно больше отличие от того же github.com (ещё я там не нашел вход по OpenID), это то, что место для пользователя нелимитировано, есть только одно ограничение: объем трафика в месяц не больше 500 Мб, но если нужно залить большой проект - все решается, вот ответ от создателя проекта:
>> I'm new one here and I want to ask about the space for repositories.
>> How much disk space is given for account?
>
> As much as you need, with one big disclaimer; that you let us know
> beforehand if plan on pushing any repositories larger than around
> 500MB, it's just nice behavior considering the freedom you have to let
> us know first :)
Взято: http://groups.google.com/group/gitorious/browse_thread/thread/206efb9f1ea5f99b/a656b005f1e0ed80?lnk=gst&q=limit#a656b005f1e0ed80
Агрегация собственного опыта, идей, мыслей.
Итак, по шагам.
Естественно, разработка это ниразу не линейный процесс, по ходу дела могут меняться требования, мысли. Главное не забывайте отражать эти изменения в документации. Что перечислено выше, отнимает достаточно много времени, но потом писать становится значительно проще, количество костылей сводится к минимуму. Да и лишний раз заставит подумать - а нужно ли оно?
Из дополнительных пунктов:
Ссылки в тему:
На правах кросс-постинга: http://serj-nickel.livejournal.com/139844.html
От себя: предлагаю также репостить, и поддержать петицию.
//Уважаемые пользователи!
18 февраля 2010 года компанией “Ру-Центр” (Москва, Ленинградский проспект, д.74, корп.4, тел +7 (495) 994-46-01 +7 (495) 737-06-01,
www.nic.ru ) без предупреждения, и какого либо уведомления было приостановлено делегирование домена TORRENTS.RU. По информации из “Ру-Центра” “Делегирование домена TORRENTS.RU приостановлено на основании Постановления следственного отдела по Чертановскому району Прокуратуры г.Москвы от 16.02.2010г”.
В “Ру-Центр” направлен соответствующий запрос, однако, весьма вероятно, что выяснение обстоятельств займет некоторое время, в течение которого адрес torrents.ru будет недоступен.
В связи с этим мы вынуждены были в срочном порядке сменить доменное имя на rutracker.org.//
Такой вот текст можно сейчас видеть на главной странице крупнейшего русскоязычного трекера. По этому поводу - несколько мыслей.
Самая “частная” мысль: какого чёрта?! Во-первых, что это за “приостановление делегирования”? Я что-то не пойму - там что, есть решение суда?! Я не юрист, но с позиции здравого смысла мне кажется, что в столь экстренном порядке что-то закрывать можно лишь в том случае, когда это реально угрожает чьей-то безопасности. А здесь что происходит? 16 февраля накатали какую-то там бумагу - и через два дня уже всё готово, всё закрыто? Ну допустим, в России плохой суд, нечестный и коррупционный, но здесь-то не было никакого суда! Пиздец, короче. Видимо, в сраной рашке этой стране любой чиновник имеет право закрыть что угодно. В таком случае заявляю о скором издании Постановления о закрытии к ебёной матери следственного отдела по Чертановскому району прокуратуры г.Москвы от 18.02.2010г. Во-вторых, уж кто-то, а Торрентс.ру был максимально лоялен к правообладателям. В правилах там написано, что каждый запрос с документально подтверждёнными правами на материалы, выложенные на трекере, приведёт к удалению соответствующих раздач, и так в самом деле происходило! Я ещё как-то могу понять мотивы суда над Pirate Bay - эти ребята делали то же, но открыто называли себя пиратами, игнорируя все попытки с ними договориться. При этом в их родной Швеции был громкий судебный процесс, длившийся несколько месяцев, имевший огромнейший резонанс (взять хотя бы место Пиратской партии в Европарламенте!). Да и в Рунете большинство трекеров не отличается особым рвением оставаться в правовом поле. Торрентс.ру - исключение. И тем не менее наехали именно на него.
Мысль номер два: все эти т.н. правообладатели (если это они) не ведают, что творят. Ежу понятно, что файлообмен в том или ином виде победил. Нужно пытаться извлекать из этого выгоду, а не устраивать бессмысленные репрессии. Неужели они не знают, что помимо более 9000 копий экранки фильма “Аватар”, который можно найти в любой локальной сети, Торрентс.ру - хранилище ссылок на редчайшие материалы, купить которые легально просто невозможно даже в Москве, не говоря уже о провинции?! Взять хотя бы первый фильм Тарантино, оцифрованный и переведённый, как и сотни других раритетов, энтузиастами! А помните последний фильм братьев Коэн, который в нашей отсталой северной стране даже в прокат не вышел? А что насчёт собственных оцифровок виниловых пластинок? Что, в конце концов, насчёт авторских раздач, которых не так мало, как может показаться? Подскажите, где это взять легально? На Горбушке? Может быть, проведя полдня и пройдя пять километров вдоль прилавков, я таки найду половину того, чего искал. Но это в столице. А как насчёт Тулы и Рязани, не говоря уже о Барнауле и Томске? А что насчёт русскоязычного населения за рубежом? Думаете, православный храм в центре Парижа для эмигрантов полезнее, чем возможность смотреть русское кино и слушать русскую музыку? Не думаю. Пока государство занималось чёрт знает чем, люди сами решили для себя проблему культурного голода. Более объёмной и при этом структурированной коллекции произведений искусства на русском языке в свободном доступе объективно нет. Было бы чертовски несправедливо, если бы такой проект погиб из-за чьей-то банальной жадности. Торренты - дело огромной важности, действительно объединяющее носителей русскоязычной культуры по всему миру. Дадут фору любым хвалёным нацпроектам - факт.
И, наконец, третья мысль. Железным аргументом структур, пытающихся помешать свободному файлообмену, является такой: “Это незаконно!” Ах, вот ведь радетели за законность нашлись! Но даже не в этом суть. Суть в том, что закон для человека, а не человек для закона. Если реалии изменились, общество должно иметь право издать новые законы, этим реалиям соответствующие. Атеизм, гомосексуализм, эвтаназия - все эти вещи ещё совсем (по историческим меркам) недавно были под запретом. А, например, расовая сегрегация была в порядке вещей. Однако общество изменилось, и в процессе своего развития поменяло взгляды на эти вещи и, как следствие, к власти пришли люди, которые привели законодательство в соответствие с ними. Так происходит в идеале; так должно происходить. Грустный же вывод напрашивается сам собой: по видимому, в России проделать подобную корректировку законодательства мы не в силах.
PS Некоторое время назад я открыл статистику ThePirateBay.org и Torrents.ru и увидел, что количественные показатели (число зарегистрированных пользователей, раздач, сидов, личеров) у них очень близки. Принимая во внимание, что Бухту называют трекером номер один в мире, и что информация на его русскоязычном аналоге куда как лучше структурирована, я испытал чувство, которое испытываю довольно редко - гордость за то, что именно люди, которые говорят со мной на одном языке, собрали, по видимому, крупнейшую коллекцию своей культуры. Я увидел, что они испытывают потребность в культурном обмене друг с другом, что многим из них правда интересно и доставляет удовольствие потратить своё время и силы на поиск, оцифровку, перевод материала - и выложить его в свободный доступ, не прося ничего взамен, а лишь ожидая, что с ними так же поделятся чем-нибудь полезным.
Я считаю, что Торрентс.ру - более достойный предмет для гордости, чем олимпийская сборная, потому что торрент-сообщество - это сборная мира по обмену культурным наследием на русском языке, что важнее, чем катание на санях на время. И уж тем более, более достойный, чем самодержавно-православно-народные дядьки в телевизоре, учащие нас патриотизму.
PPS http://www.girus.ru/petition/33/
UPD Желающие сделать перепост - делайте! (с кнопочкой не вышло, но и вручную это не так сложно)
Все знают про man страницы (man чаво?) и удобную программу apropos, все, надеюсь, ими активно пользуются.
Все знают и про info-страницы, рожденные в недрах проекта GNU, но, управление у программы info достаточно… неудобное, just for me.
В Geeqie продолжили традцию предка GQView в части технологии инструментов, что удобно - теперь они редактируются созданием .desktop файла и могут быть расположены в любом пункте меню/подменю (не до конца доделано, но пользоваться уже можно).
Итак, что потребуется
Начнем…
Запускаем Geeqie, идем: Edit -> Preferences -> Configure editors. Откроется окно настройки редакторов, которые могут вызываться из Geeqie.
Нажимаем Create. Появится окно создания нового инструмента, где в основном окне ввода расположен шаблон, который можно подправить под себя. Начинаем с того, что в нижем окне ввода заменяем new.desktop на что-то вроде: ImageShackUpload.desktop. В качестве тела .desktop файла вставляем:
[Desktop Entry]
Version=1.0
Type=Application
Name=Image Shack Upload
# If you have zenity installed use:
#
# cmd="zenity --list --text='$Q' --column='Selector' --column='Size' --radiolist TRUE No FALSE 1024x768 FALSE 800x600 FALSE 640x480 FALSE 400x300 || echo No"
#
# if you have xmessage installed use:
#
# cmd="xmessage -print -buttons 'No,1024x768,800x600,640x480,400x300' '$Q'"
#
# If you use other dialog system, configure it, or use next command for disable resoultion selection:
#
# cmd="echo No"
#
Exec=Q="Resize image before upload?"; cmd="zenity --list --text='$Q' --column='Selector' --column='Size' --radiolist TRUE No FALSE 1024x768 FALSE 800x600 FALSE 640x480 FALSE 400x300 || echo No"; size=`eval $cmd`; (for img in %F; do send_img=$img; if [ x"$size" != x"No" ]; then base=`basename $img`; noext=`echo $base | sed 's/.[A-Za-z0-9]*$*'`; ext=`echo $base | sed "s/^$noext*"`; send_img="/tmp/${noext}_$size$ext"; convert -scale $size $img $send_img > /dev/null 2>&1 || send_img=$img; fi; imageshack-upload $send_img 2>&1 | grep '^http:'; done)
# Desktop files that are usable only in Geeqie should be marked like this:
Categories=X-Geeqie;
OnlyShowIn=X-Geeqie;
# Show in menu "File"
X-Geeqie-Menu-Path=FileMenu/FileOpsSection
# This is a filter - $GEEQIE_DESTINATION is required
X-Geeqie-Filter=false
# It can be made verbose
X-Geeqie-Verbose=true
В зависимости от того, стоит у вас zenity/xmessages - вы должны заменить команду cmd="…" на нужно вам. Кроме того, настройки тут говорят - располагать пункт в меню File. Нажимаем Save, возвращаемся опять в окно настройки инструментов, где наблюдаем и наш новосозданный инструмент. Закрываем.
Теперь выбираем файлы за для закачки и идем File -> Image Shack Upload, появляется диалог, в котором нам предстоит выбрать разрешение, в которое пережмется картинка, или No, если изменение размера не нужно. После закрытия окна начнется процесс закачки (если кстати прервать нельзья, только с соседнего терминала чем-то вроде killall curl), ссылки на закачанные файлы будут выведены в окне, откуда их можно скопировать и вставить в нужное вам место.
Enjoy!
На правах юмора, бояна и кросспостинга
навеяно #536746, почему христианская церковь, не одобряэ Linux (да, это относится так же и к Unix):
что ещё?
Отдельно, то, что не подходит как обощение, частно для конкретного дистрибутива/семейства
тут тоже – что ещё?
./configure для qmake-based проектов
Что бы очень не заморачиваться с формированием ./configure скрипта (и configure.exe программы для windows) при помощи autotools, когда вся их мощь не очень нужна, поможет проект qconf
Для Арчеводов, можно собрать из AUR svn версию: http://aur.archlinux.org/packages.php?ID=18686
Далее, на правах вольного пересказа английского README.
Итак, собираем, устанавливаем. Далее идем в корень вашего проекта, где лежит qmake файл, cоздаем там, для примера, файл myproject.qc примерно следующего содержания (это xml файл):
<qconf>
<name>myproject</name>
<profile>myproject.pro</profile>
</qconf>
дале пускаем: qconf myproject.qc
На выходе получаем скрипт ./confugure с функционалом, в базовой части соответствующей autotools.
Если запустить без аргумента, будет выбран первый найденный .qc файл, если их найдено не будет - автоматически будет выбран первый .pro файл, и на основе его собран минимальный .qc файл (как в примере выше).
На целевой машине qconf не нужен (нужные только его модули конфигурации, но логично распространять их с самим проектом), нужен только разработчику.
Итак, на этот момент мы имеем готовый ./configure скрипт, который запускаем без параметров или смотрим ./configure --help.
После запуска ./configure, будет сформирован файл conf.pri, в котором будут содержаться различные переменные, отвечающие за сборку, основные из которых:
Этот файл вы можете включать в ваш .pro файл: include(conf.pri)
Т.е. обобщая, как это работает: qconf формирует, на основе .qc файла, скрипт ./configure, который, будучи запущенным, выполняет нужные вам проверки, создает conf.pri, запускает qmake для вашего .pro файла, который (как я выше написал) может включать conf.pri файл (соответственно, все что будет записано в conf.pri - будет доступно для qmake).
<name>NAME</name> - имя проекта<profile>FILE.pro</profile> - .pro файл проекта<dep>...</dep> - описываем зависимости, проверка на которые будет проводиться:```xml
* `"type"` - определяет модуль (примеры модулей идут вместе с qconf, правда только два: qt31.qcm и qt41.qcm). Если type задана как **pkg**, проверка происходит при помощи pkg-config (выводы --libs и --cflags будут добавлены при компиляции):
* опрашивается параметры:
* `"name"`
* `"pkgname"`
* `"version"` в которой могут содержаться знаки отношения: ">=", "<=", иначе принимается "="
* `<required />` - определяет обязательность зависимости
* `<disabled />` - зависимость выключена
<arg>DESRIPTION</arg> - дополнительные агрументы для скрипта ./configure, сам аргумент будет доступен через переменную окружения QC_NAME (большими буквами, можно достучаться в модулях проверки через getenv), включают атрибуты:
"name" - имя"arg" - значение<lib /> - включает режима, когда собираемый проект - библиотека
<static /> - в случае, если <lib />, собирать статическую библиотеку<noprefix /> - очищает PREFIX<nobindir /> - очищает BINDIR<prefix>PATH</prefix> - задаем PREFIX (по умолчанию: /usr/local)<bindir>PATH</bindir> - задаем BINDIR (по умолчанию: PREFIX/bin)<incdir>PATH</incdir> - задаем INCDIR (по умолчанию: PREFIX/include)<libdir>PATH</libdir> - задаем LIBDIR (по умолчанию: PREFIX/lib)<datadir>PATH</datadir> - задаем DATADIR (по умолчанию: PREFIX/share)<qtdir>PATH</qtdir> - задаем QTDIR<moddir>PATH</moddir> - добавляет пути поиска модулей для <qt3 /> - конфигурация для qt3 окружения (но сама qconf зависит от qt>=4.1, используйте версию 1.1 для qt3)Да, пример где используется - psi, там же, в директории qcm можно найти очень много приятных модулей проверки.
Ну и да, это всего лишь помощь к qmake, но не замена. Его тоже настраивать нужно. И читать руководства по нему.
PS пока очень сумбурно, потому как, сейчас сам только с ним столкнулся, потом будет дополняться, уточняться.
Т.к. основная ценность данного ресурса - это мои бредни, поэтому они заслуженно переезжают на главную страницу, тут же новости и прочая периодика.
Информация о ресурсе переехала на страницу “О ресурсе”, и приобрела чуть более линейный вид.
За сим - всё.
UPD: Информация больше не актуальна, теперь подобные средства кодогенерации встроены в Qt Creator.
Долгое время пользовался для написание программ, с использованием Qt4 интегрированную среду разработки QDevelop, и хотя она почти всем устраивает, за несколькими исключениями:
Текущая версия замечательного редактора tags:medit?do=showtag&tag=medit|medit
это 0.9.4 и она не обновлялась больше года. Решил собрать и попробовать сборку из mercurial, благо, смотря на даты последних изменений можно заметить, что работа ведется:
http://bitbucket.org/muntyan/moo/
Не все гладко - несколько переработан интерфейс, некоторые ошибки так и не исправлены (типа стоит галочка “переносить текст”, а он не переносится, а если убрать - будет переноситься).
Кроме того, сменили систему сборки на cmake, в результате не все доделали, и пришлось сделать два патча и один work-around для того, что бы пакет собрался вообще и с ctags, в частности. Кроме того, правила cmake пока не докрутили для python-plugin, в результате ни консоли питона, ни питоновских команд для пользовательских утилит. Хотя меня не это больше смущает - на питоне сделан терминал был, удобная, иногда, штука.
По питону, есть бага: http://sourceforge.net/tracker/?func=detail&aid=2929703&group_id=167563&atid=843451 будемс следить.
В общем, в результате изысканий, сделал правило для сборки и поместил в AUR: http://aur.archlinux.org/packages.php?ID=34336 там же необходимые патчи, хотя они тривиальны.
Да, рекомендую ознакомиться со справкой к программе, там вы найдете, в частности, как управлять поведением редактора на разных файлах (типа установить ширину отступа и кодировку, делается в манере, схожей с vim)
Наконец дошли руки оформить и свои устоявшиеся привычки кодирования, разложить по полочкам и свести к единому результату, а то читая свои творения некоторые, потом долго приходится волосы приглаживать.
В общем вот: /C/C++ Coding Style
По ходу будет дополняться.
В общем, сегодня выбрался наконец попробовать свои деревяшки в район бот-сада. Понял что нужно, однако, учиться :laughing:
Первое что понял - крепление полная опа. Нога ходит и болтается как г в проруби. Для этих лыж нужно резиновую подкладку ложить, иначе… ну не знаю, одни мучения. В общем попробую, если не поможет - буду вообще переосмысливать.
Далее, вообще не понял как идти в подъем %-) ну качусь назад и все, или мазь нужно было положить потеплее, и что с собой её не взял, хотя была положена -2 – -8. На одном подъемчике ноги так разъехались, почти шпагат вышел, мышцу потянул :)
На ровной местности идти нормально, отдачи нет, когда накатал лыжню даже легкими толчками катиться получается, вот тут прикольно, нужно немного потренироваться и разобраться.
Спуск… Да, сначала нужно тормозить научиться и лыжи закапываться и все, ну да, спускался по целине, учился не на лыжне. И вообще поворачивать в движении, а то я тормозить только падением освоился, благо снег мягкий.
Подвели мои трекинговы палки, которые хотел подъюзать вместо лыжных, что-то там поломалось уже и теперь они не фиксируются, а ведь даже года не отходили и походов-то было раз два и обчелся. Как лыжную палку пришлось использоваться обычную палку.
Но позитив есть, хоть и не очень много :) Спасли так же бахилы, когда с лыж слезать приходилось - снега по колено, ноги не промокли, хотя подтаивало.
И на заметку: http://www.sportfamily.ru/podrostok/sky
Таска возникла на работе, ничего сложного и по интернетам наверное есть, заметка для себя.
Для Xerox/Samsung МФУ и сканеров рекомендую поставить sane версии не ниже 1.0.20, т.к. там появилась нативная поддержка этих девайсов, в замен глючному Unified Linux Drivers (ULD).
Сервер - тот к кому подключен сканер
xerox_mfp192.168.13.0/24disable = yes заменяем на disable = no. Возможно сдесь же, придется исправить группу и пользователя от которого будет стартовать сервер saned.Или запускаем saned как сервер. Вот кстати полный конфиг для /etc/xinetd.d/saned:
service sane-port
{
disable = no
port = 6566
socket_type = stream
wait = no
groups = yes
user = saned
group = users
server = /usr/sbin/saned
}
Клиенты - те, с которых будет производиться сканирование.
Тут настройка проста, в /etc/sane.d/net.conf прописать адрес или адреса хостов, к которым подключены сканеры, можно задать таймаут опроса.
На некоторых системах потребуется монтирование usbfs, что бы организовать правильный доступ к устройству пользователей, на работе в Мандриве это: none /dev/bus/usb usbfs auto,busgid=100,busmode=0775,devgid=100,devmode=0664 0 0
У меня на ArchLinux: none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0 группа для vbox :wink: ну а так, почти не отличается
ID групп и пользователя и права задаёте те, которые у вам нужны.
далее сканирование происходит как обычно - запускаем scanimage или xsane, если найдено несколько сканеров - будет предложено выбрать, если что-то не работает смотрим логи и права доступа - предварительно настраиваем сканер для локальной печати, благо это, в случае поддержки устройства, делается очень просто.
С давних пор пользуюсь для чтения электронных книг замечательной программкой FBReader. Особо мне нравилось то, что он мог на основе параметров пользователя оформлять книги, которые находятся в простом TXT файле.
Например, люди, которые делают OCR могут использовать следующие способы для выделения абзацев:
Так вот, в программе можно задать, как разбивать на абзацы, в остальных случаях перевод строки будет игнорироваться и строки будут склеиваться, что удобно - при любом удобном шрифте, у нас не будет рваных краем, затрудняющих чтение.
Второй вариант, разделение глав, тут обычный случай: по окончании главы 2 и более пустые строки, после заголовка одна пустая строка - самый частый случай. Программа на основе таких данных может строить оглавление и осуществлять быстрый переход, что является достаточно удобным функционалом.
Конечно, данные критерии не покрывают абсолютно все случаи, но большинство - это точно.
Теперь о проблеме: в какой-то момент поломалось форматирование TXT файлов, с разделением абзацев по отступу первой строки, проявлялось так:
Отступ имела первая строка азбаца, после чего азцаз закрывался и вторая строка абзаца так же печаталась с новой строки с отступом, и это очень сильно резало глаза.
Сегодня дошли руки покопаться в исходниках, благодаря ну очень внятной структуре, разобраться много времени не заняло, да и исправления можно сказать косметические, вот патч:
--- ./fbreader/src/formats/txt/TxtBookReader.cpp.orig 2010-01-26 01:33:14.083167173 +1000
@@ -27,7 +27,8 @@
void TxtBookReader::internalEndParagraph() {
if (!myLastLineIsEmpty) {
1. myLineFeedCounter = 0;
+ myLineFeedCounter = -1; /* Fixed by Hatred: zero value was break LINE INDENT formater -
+ second line print with indent like new paragraf */
}
myLastLineIsEmpty = true;
endParagraph();
@@ -76,7 +77,9 @@
((myFormat.breakType() & PlainTextFormat::BREAK_PARAGRAPH_AT_EMPTY_LINE) && (myLineFeedCounter > 0));
if (myFormat.createContentsTable()) {
1. if (!myInsideContentsParagraph && (myLineFeedCounter == myFormat.emptyLinesBeforeNewSection() + 1)) {
+ /* Fixed by Hatred: remove '+ 1' for emptyLinesBeforeNewSection, it looks like very strange
+ when we should point count of empty string decrised by 1 in settings dialog */
+ if (!myInsideContentsParagraph && (myLineFeedCounter == myFormat.emptyLinesBeforeNewSection())) {
myInsideContentsParagraph = true;
internalEndParagraph();
insertEndOfSectionParagraph();
Или альтернативная ссылка: http://codepad.org/GO5GIN7Y
Сейчас попробуем запостить разработчикам.
UPD: собственно: http://groups.google.com/group/fbreader/browse_thread/thread/a0f77eb79add8571?hl=en