[02:43:00] <_valexey_> Интересно, где у нас info21 дезу усмотрел?
[03:16:03] <vlad2> Я вообще не знаб что это такое.
[03:16:25] <_valexey_> Дезинформация
[03:17:05] <_valexey_> http://ru.wikipedia.org/wiki/Дезинформация
[03:18:48] <_valexey_> Вот на сайте info21 она как раз присутствует. Да и на их форуме тоже
[07:49:54] <geniepro> _valexey_> Интересно, где у нас info21 дезу усмотрел?
о_О а де он такое сказал, интересно? хотя чо с него взять, старого маразматика?
[17:38:31] <vlad2> curl жжет!
[17:38:49] <vlad2> Найди 1 отличие!
[17:38:58] <vlad2>  case CURLOPT_POSTFIELDSIZE:
   /*
    * The size of the POSTFIELD data to prevent libcurl to do strlen() to
    * figure it out. Enables binary posts.
    */
   bigsize = va_arg(param, long);

   if(data->set.postfieldsize < bigsize &&
      data->set.postfields == data->set.str[STRING_COPYPOSTFIELDS]) {
     /* Previous CURLOPT_COPYPOSTFIELDS is no longer valid. */
     (void) setstropt(&data->set.str[STRING_COPYPOSTFIELDS], NULL);
     data->set.postfields = NULL;
   }

   data->set.postfieldsize = bigsize;
   break;

 case CURLOPT_POSTFIELDSIZE_LARGE:
   /*
    * The size of the POSTFIELD data to prevent libcurl to do strlen() to
    * figure it out. Enables binary posts.
    */
   bigsize = va_arg(param, curl_off_t);

   if(data->set.postfieldsize < bigsize &&
      data->set.postfields == data->set.str[STRING_COPYPOSTFIELDS]) {
     /* Previous CURLOPT_COPYPOSTFIELDS is no longer valid. */
     (void) setstropt(&data->set.str[STRING_COPYPOSTFIELDS], NULL);
     data->set.postfields = NULL;
   }

   data->set.postfieldsize = bigsize;
   break;
[17:41:33] <vlad2> С точностью до форматирования.
[17:47:21] <valexey> ctrl+c/ctrl+v
[17:47:29] <valexey> на самом деле такого кода я и в сквиде много видел
[17:48:08] <vlad2> Нет, я реально не понимаю - чего, так трудно выделть в функцию??? Свитч на тыщу строк милее?
[17:48:32] <vlad2> Религия не позволяет? Если свитч - то до упора?
[17:50:45] <valexey> так ведь curl небось на сях писан
[17:50:49] <valexey> там нет инлайн-функций
[17:50:53] <valexey> вызов функции дорог же!
[17:51:17] <vlad2> Пипец. Ну макрос заведи в конце-концов. С камментом.
[17:51:43] <vlad2> Опять же - если функция в этом файле - то заинлайнит, никуда не денется.
[17:52:17] <valexey> ЛЕНИВО!!1
[17:52:49] <valexey> как компилятор должен быть однопроходным - компиляция в один проход. так и программист - написал модуль в один проход и пошел дальше.
[17:52:57] <valexey> однопроходный программист
[17:57:12] <vlad2> Еще чего я не понимаю - это любовь вишников к флажкам.
[17:57:19] <vlad2> сишников
[17:58:25] <vlad2> Заведут тыщу флажков. Потому свитч на тыщу строк по этим флажкам. И одну функцию, куда скармливается флажок и void*.
[17:58:52] <vlad2> Чтоб потом получить тыщу поводов для невалидного каста.
[17:59:12] <vlad2> Как в приведенном выше коде.
[17:59:48] <vlad2> Вместо этой херни должна была быть одна функция - set_post_field_size
[18:00:41] <valexey> экономят на секции экспорта в объектнике :-)
[18:00:43] <vlad2> Тогда в какой-то момент вместо того, чтобы заводить еще один флажок для поддержки больших размеров - достаточно было бы поменять сигнатуру функции.
[18:01:24] <valexey> в смысле?
[18:01:45] <vlad2> long -> curl_off_T
[18:02:00] <valexey> и? иметь две почти одинаковые функции?
[18:02:05] <valexey> ведь нужно иметь и то и это
[18:02:18] <valexey> или вызывать одну из другой? дык это накладные расходы же!11
[18:02:39] <vlad2> Ну хорошо, поменять сигнатуру и оставить редирект. Все. Никакого копипаста.
[18:05:11] <vlad2> А иметь дублированный код - это не накладные расходы?
[18:05:28] <valexey> нет!
[18:05:47] <valexey> тем более что если будет инлайн, то это ничем не будет отличаться от копипаста
[18:07:02] <valexey> Однопроходный программист же писал!
[18:09:58] <vlad2> Кстати оптимизация по "small size" зачастую оказывалась быстрее, чем по "speed".
[18:10:20] <vlad2> В случае small size компилятор инлайнил с умом. А не все подряд.
[18:12:06] <valexey> понятное дело - все ведь к кэш тогда залазит
[18:12:11] <valexey> но тут дело такое
[18:12:18] <valexey> не всегда у процессора есть кэшш
[18:12:33] <valexey> иногда есть только память и оработает она на частоте процессора
[18:14:12] <vlad2> Ага-ага. Курлу присали прежде всего для контроллеров :) z80 - в крафнем случае :)
[18:15:30] <valexey> ну, если взять какой-нибудь 386 - то там считай что нет кэша
[18:19:12] <valexey> даже в армах не во всех есть кэшш
[18:19:47] <valexey> но вообще, думаю что просто писал однопроходный программист.
[18:19:57] <valexey> не задумываясь об абстракциях
[18:23:21] <vlad2> Да, я тоже так думаю :)
[18:27:14] <vlad2> А про секцию экспортв - ты это серьезно?
[18:28:31] <valexey> vlad2: про экономию то? наверно таки нет. ведь она контроллируется в Сях иначе и явным образом
[18:29:14] <vlad2> Тогда откуда этот дурной паттерн с кучей флажков?
[18:29:37] <vlad2> Естати, неа самом деле это message bus ;)
[18:29:47] <valexey> угу
[18:29:54] <valexey> это по сути эмуляция ООП
[18:30:04] <valexey> такая сурово-кондовая сишная эмуляция
[18:30:38] <valexey> посуди сам - перегруженных функций у них нет. то есть там нельзя ведь сделать void foo(int a); void foo(char* a); void foo(int a, int b);
[18:31:03] <valexey> придется для КАЖДОГО наваринта аргументов придумывать собственное название функции
[18:31:09] <valexey> это ж с ума поехать можно
[18:31:18] <valexey> легче ввести параметр-флажог
[18:32:18] <valexey> в оберонах перегрузки нет, но есть "виртуальные" функции.
[18:33:17] <valexey> ну и case по истинным типам переданной полиморфной хрени тоже имеется
[18:34:15] <valexey> что позволяет маскировать флажки :-)
[18:42:50] <valexey> ололо! http://www.opennet.ru/opennews/art.shtml?num=32797
[19:24:54] <vlad2> Не знаю... Название флажков все равно приходится п ридумывать.
[19:29:29] <valexey> но это лучше чем 100500 функций с разными суфиксами
[19:29:32] <valexey> и одинаковые по сути