LINUX.ORG.RU

Новая версия AA патча для Fluxbox.


0

0

Некоторое время назад я выпустил патч для Fluxbox (>= 0.9.8), позволяющий использовать сглаживание шрифтов в не-UTF (т.е. KOI8-R ;) локали. С ним была маленькая, но неприятная проблема - если стиль использовал тени у текста, то тень не перекодировалась (как выяснилось перекодировалась дважды). Наконец у меня дошли руки это профиксить и выпустить вторую версию.

>>> Подробности

★★★★★

Проверено: l-xoid ()

Re: Новая версия AA патча для Fluxbox.

Мегаспасибо !

surg ()

Re: Новая версия AA патча для Fluxbox.

у тебя там мемори лик, кто будет освобождать память после стрдапа? прошлый патч помню правил, а то флукс разрастался как свинья, да забыл исправления отдать. исправь. делов на две строчки

luc ()

Re: Новая версия AA патча для Fluxbox.

Предпочитаю КДЕ, но приятно тусоваться на одном форуме с человеком вносящим вклад в развитие ОпенСоурс (во как сказал!) :)))

veent ★★ ()

Re: Новая версия AA патча для Fluxbox.

Конечно никоим образом не принижая достоинств автора, наоборот мегакланяясь за неоценимый вклад в ОпСо, НО... в любом же учебнике по С написано буквально следующее "Функция strdup возвращает указатель на новую строку, являющуюся копией аргумента. Память для новой строки выделяется с помощью malloc и должна быть освобождена с помощью free." Ну товарищи, ну нельзя же так... потом красноглазики на каждом углу пищат "ОпСо гавно".

anonymous ()
Ответ на: Re: Новая версия AA патча для Fluxbox. от anonymous

Re: Re: Новая версия AA патча для Fluxbox.

Так, ну воперывх я поправил и во втором месте. А вот насчет "любого учебника по С" могу сказать что во время написания тех функций я очень активно программил на яве (в колледже у нас обязаловка), а ко всему хорошему, вроде grabage collector, слишком быстро привеыкаешь, вот и делаешь такие дурацкие ляпы :( Спасибо, что показали на ошибку.

svyatogor ★★★★★ ()
Ответ на: Re: Новая версия AA патча для Fluxbox. от anonymous

Re: Re: Новая версия AA патча для Fluxbox.

>> потом красноглазики на каждом углу пищат "ОпСо гавно".

Опенсорс и есть говно. А красноглазики - это как раз те кто пишет это говно. Данный strdup это подтверждает.

Ron ()
Ответ на: Re: Re: Новая версия AA патча для Fluxbox. от Ron

Re: Re: Re: Новая версия AA патча для Fluxbox.

>> потом красноглазики на каждом углу пищат "ОпСо гавно".

> Опенсорс и есть говно. А красноглазики - это как раз те кто пишет это > говно. Данный strdup это подтверждает.

К сожалению, слишком часто это является правдой.

Взять, к примеру, тот же boost::spirit. На поверности - крутая опенсорсная библиотека, а внутре - красноглазо-кулхацкерхская поделка криворуких пионеров.

Хорошо написал по теме JWZ: http://www.jwz.org/doc/linuxvideo.html.

Да что далеко ходить, G++ - полное багов говно (как и большинство того, к чему приложил руку RMS).

faustus ()
Ответ на: Re: Re: Re: Новая версия AA патча для Fluxbox. от faustus

Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>Хорошо написал по теме JWZ: http://www.jwz.org/doc/linuxvideo.html.

Я сам часто сталкивался с разными проблемами в линуксе. Но все они были решаемы.

Я не хочу сказать, что у человека, написАвшего эту статью руки из... Нет, мне кажется он просто неудачник. Он просто обозленное трепло.

anonymous ()
Ответ на: Re: Re: Re: Новая версия AA патча для Fluxbox. от faustus

Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>Взять, к примеру, тот же boost::spirit. На поверности - крутая опенсорсная библиотека, а внутре - красноглазо-кулхацкерхская поделка криворуких пионеров.

Ну так то, что на поверхности и нужно. Зачем внутрь-то лазить? :)

А если серьезно, то что там не так? Я писал парсер заголовков HTTP на boost::spirit, вроде полет нормальный (если не считать гигансткое время компиляции).

WFrag ★★★★ ()
Ответ на: Re: Re: Re: Re: Новая версия AA патча для Fluxbox. от WFrag

Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>Взять, к примеру, тот же boost::spirit. На поверности - крутая >опенсорсная библиотека, а внутре - красноглазо-кулхацкерхская >поделка криворуких пионеров.

Хех, слава Богу M$ людей кодом не пугает. Не видишь и спишь спокойно? :)

>Опсос гавно.

>Красноглазик.

Своей подписью ты все сказал. Сходи к окулисту, глядишь глаза прочистят, может и руки вправят.

anonymous ()
Ответ на: Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox. от anonymous

Re: Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

> Своей подписью ты все сказал. Сходи к окулисту, глядишь глаза прочистят, может и руки вправят. Гы. Это ему к костоправу надо :-)

x86 ★★ ()
Ответ на: Re: Новая версия AA патча для Fluxbox. от anonymous

нафига strdup в C++'-ном коде?

Цель этого патча -- более чем сомнительна, и собственно код -- еще тот шедевр. Из серии "физик на любом языке будет писать на FORTRAN'-е"

Dselect ★★★ ()

Re: Новая версия AA патча для Fluxbox.

Я не понял, это типа C++ такой? :)

Возвращать char* в C++ после strdup - за это руки надо отрывать! А если исключение случится? А если забудешь освоболить?

Ведь надежных вариантов уйма!

Можно использовать std::string, правда с ним нельзя работать как с сырой строкой C. В этом случае он скорее всего будет не очень удобен.

Можно использовать std::vector<char> (для него гарантируется, что все элементы занимают непрерывный участок памяти). Наверное, самы простой вариант. Минус - труднее обойтись без копирования при возврате (не все компиляторы сообразят соптимизировать).

Ну или на худой конец std::auto_ptr<char> (хотя у него есть тонкости с владением объекта, но если просто возвращать его из функции проблем не будет). Тут копирование строчки посложнее будет (в два этапа вместо strdup, сначала new, потом std::copy)

И после этого еще говорят, что C++ отстой и тормозит. Просто на нем писать надо уметь!

P.S. В коде специально не разбирался, может какую тонкость не заметил? :) P.P.S. Опен-сурс, блин :(

WFrag ★★★★ ()
Ответ на: нафига strdup в C++'-ном коде? от Dselect

Re: нафига strdup в C++'-ном коде?

Для самых умных: Напиши лучше, подскажи как лучше, поправь, не можешь, не вякай попусту.

Постоянно так, гавно, гавно, а написть лучше не могут.

А автору спасибо, он хоть делает для себя, да еще и вам отдает, а не просто так воздух сотрясает.

anonymous ()
Ответ на: Re: Re: нафига strdup в C++'-ном коде? от Dselect

Re: Re: Re: нафига strdup в C++'-ном коде?

>Зачем? Уже написано до меня: тсндартный ответ.

>Don't comment or patch bad code; rewrite it. (TM) согласен, но срать на работу автора от этого не стоит.

anonymous ()

Re: Новая версия AA патча для Fluxbox.

хе-хе, а чо - сделал бы чтоп буквы русские а тени - аглицкие
прикольно было б :-)

anonymous ()
Ответ на: Re: Re: Новая версия AA патча для Fluxbox. от Ron

Re: Re: Re: Новая версия AA патча для Fluxbox.

>Можно. Если осторожно. :-)

Я имел в виду что нет гарантии того, что элементы строки std::string расположены в непрерывном куске памяти. Т.е может быть, что &str[i+1] != &str[i]+1, поэтому в качестве буфера для функции C она не подойдет. А вот с std::vector<char> таких проблем нет и его можно использовать таким образом:

extern "C" void someCFunc(char* buf);

...
std::vector<char> buf(100);
someCFunc(&buf[0]);
...

При этом возложив все заботы по управлению памятью на std::vector.

WFrag ★★★★ ()

Re: Новая версия AA патча для Fluxbox.

Хватит ругать за (немного)кривоватый код. Сходите на улицу отрвитесь: поправьте скамейку, закрасьте плохие надписи на заборах, снимите кошку с дерева, накапайте на самогонщицу. Люди вас спасибо скажут за исправление нашей общей улицы :)

Selecter ★★★★ ()
Ответ на: Re: Новая версия AA патча для Fluxbox. от WFrag

Re: Re: Новая версия AA патча для Fluxbox.

2WFrag: А вот если бы ты внимательно посмотрел бы код, то увидел бы, что он использует для перекодировки либу iconv, котороя написана на C и стоит ей чуть не в том виде строку отдать - фиг че перекодируешь. Конечно я не спорю, что наверняка есть более эллегантные и аккуртные решения, но тут, как говорится, "Флаг в руки". Саидтесь и пишите.

svyatogor ★★★★★ ()
Ответ на: Re: Re: Новая версия AA патча для Fluxbox. от svyatogor

Re: Re: Re: Новая версия AA патча для Fluxbox.

>2WFrag: А вот если бы ты внимательно посмотрел бы код, то увидел бы, что он использует для перекодировки либу iconv, котороя написана на C и стоит ей чуть не в том виде строку отдать - фиг че перекодируешь.

Я это заметил. Опять же, я предложил некоторые решения, с замечаниями относительно плюсов и минусов. И я не зря упоминал про непрерывное расположение элементов вектора (и отсутствие такой гарантии в std::string). Я даже пример с вектором привел, как его можно использовать для хранения C строки.

>Конечно я не спорю, что наверняка есть более эллегантные и аккуртные решения, но тут, как говорится, "Флаг в руки".

Ну так нужно совершенствоваться, становиться профессионалами! Обидно, что большинство наездов на качество опен-сорс обоснованны.

>Саидтесь и пишите.

Ну я же не могу переписать весь софт мира. :)

WFrag ★★★★ ()
Ответ на: Re: Re: Re: Новая версия AA патча для Fluxbox. от WFrag

Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>>Конечно я не спорю, что наверняка есть более эллегантные и аккуртные решения, но тут, как говорится, "Флаг в руки".

> Ну так нужно совершенствоваться, становиться профессионалами! Обидно, что большинство наездов на качество опен-сорс обоснованны.

>>Саидтесь и пишите.

> Ну я же не могу переписать весь софт мира. :)

Поэтому давайте закруглятся :) парень написал полезный патч, мы доправили его досадные ошибки. он небось теперь на всю жизнь запомнит про стрдапы :) научится, программистами не рождаются.

и не важно -- оперсорс это или пропиетарщина какая-либо. Дебильного кода хвататет везде, во втором случае мы его не видим просто, а видим только результаты -- те-же лики, но уже с невозможностью исправить дело.

luc ()
Ответ на: Re: Re: Re: нафига strdup в C++'-ном коде? от anonymous

про UTF-8

> utf8? Автор не чешется, может проживающие в России физики помогут?

Может, кто-то Вам и поможет, но лично я вообще против использования этой идиотской koi8...

Dselect ★★★ ()
Ответ на: про UTF-8 от Dselect

Re: про UTF-8

> Может, кто-то Вам и поможет,

Зачем мне? sawfish-у надо помочь.

> но лично я вообще против использования этой идиотской koi8...

Именно. Но если Вы используете sawfish, то, наверное, прекрасно знаете, что

- librep с юникодом не работает (в смысле строк и регэкспов)

- в самом sawfish имеются места, работающие нормально только со STRING8.

anonymous ()
Ответ на: Re: про UTF-8 от anonymous

Re: Re: про UTF-8

> - librep с юникодом не работает (в смысле строк и регэкспов)

$ locale

LANG=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME=en_US.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

$ rep
user> (string-match "[а-я]\+" "проверка")
t
user> rep-version 
"0.17"

Dselect ★★★ ()
Ответ на: Re: Re: про UTF-8 от Dselect

Re: Re: Re: про UTF-8

user> (substring "проверка" 1 5)
"\277\321\200\320"
user> 

anonymous ()
Ответ на: Re: Re: Re: Новая версия AA патча для Fluxbox. от Sun-ch

Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>>я очень активно программил на яве
> Вот так вот и совращают малолеток.
> Sun-ch * (*) (15.07.2004 11:12:47)

Давай, спой "когда ласкали вы детей сваааих"... %-)
Мож копейки бросать станут. :)

anonymous ()
Ответ на: Re: Re: Re: Re: Новая версия AA патча для Fluxbox. от anonymous

Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

Ну дык он написал, что его заставлют в колледже писать на яве.

Я так понимаю, что колледж это что то типа бывшего ПТУ, куда шли

доучиватся дети, не закончив среднюю школу.

< 17 лет т.е. малолетки.

Sun-ch ()
Ответ на: Re: Re: Re: Re: Новая версия AA патча для Fluxbox. от anonymous

Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>>Хорошо написал по теме JWZ: http://www.jwz.org/doc/linuxvideo.html.

>Я сам часто сталкивался с разными проблемами в линуксе. Но все они были решаемы.

>Я не хочу сказать, что у человека, написАвшего эту статью руки из... Нет, мне кажется он просто неудачник. Он просто обозленное трепло.

Он бывший участник команды Netscape, участник проекта Mozilla (давший ему это название), автор XEmacs'a.

Это человек, знающий о чем говорит.

faustus ()
Ответ на: Re: Re: Re: Re: Новая версия AA патча для Fluxbox. от WFrag

Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

> А если серьезно, то что там не так? Я писал парсер заголовков HTTP на boost::spirit, вроде полет нормальный (если не считать гигансткое время компиляции).

Да у них даже примеры из мануала не компилируются. http://boost.org/libs/spirit/doc/multi_pass.html

Плюс неконсистентные интерфейсы, плюс баги они фиксить не будут, потому что заняты мечтами о Spirit 2.

Короче - http://www.jwz.org/doc/cadt.html.

faustus ()
Ответ на: про g++ от Dselect

Re: про g++

> Оно-то говно, только остальные -- еще хуже, и за них хотят денег.

Intel Copmpiler - бесплатен для non-commercial, и лучше на порядок.

Тут просто никакой конкуренции:
Configured with: ../gcc-3.3.2/configure --prefix=/usr/local/gcc-3.3.2 --enable-threads
Thread model: posix
gcc version 3.3.2

> cat except.C
#include <iostream>

class Except { };

int main()
{
try {
throw Except();
} catch (const Except &e) {
std::cout << "caught\n";
}
}

> ./except
Abort

faustus ()
Ответ на: Re: про g++ от faustus

Re: Re: про g++

$ ./except 
caught

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.4/specs
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang 
--prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info 
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared 
--with-system-zlib --enable-nls --without-included-gettext 
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug 
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc 
i486-linux
Thread model: posix
gcc version 3.3.4 (Debian 1:3.3.4-2)

anonymous ()

Re: Re: Re: Re: Re: Re: Новая версия AA патча для Fluxbox.

>Я так понимаю, что колледж это что то типа бывшего ПТУ, куда шли доучиватся дети, не закончив среднюю школу.

Неверно, саныч ты понимаешь. Колледж - это тоже что и университет (в некоторых случаях отделение крупного универа), по окончании которого получаешь диплом о высшем образовании (бакалавр).

svyatogor ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.