1. Список говнокодов пользователя nil

    Всего: 20

  2. C++ / Говнокод #2490

    +67.7

    1. 1
    for(__=_;__<___;__++) C++;

    Недавно увидел такие имена переменных, очарован, теперь срочно переделываю весь проект!

    PS. Тело цикла сами знаете для кого.

    nil, 27 Января 2010

    Комментарии (38)
  3. Куча / Говнокод #2454

    +141.8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    proc redraw_level {level val} {
        global lnames countries towns provinces sublocations positions
    
        set parent [expr $level - 1]
        set pvalue [.f$parent.l get [lindex $positions $parent]]
        set curlist [lindex $lnames $level]($pvalue)
        if {$val!=""} {lappend $curlist $val}
        .f$level.l delete 2 end
        eval set list_vals $$curlist
        eval .f$level.l insert end $list_vals
    }

    Поскольку начал писать на TCL пару дней назад, ну просто не знаю, как изящно сделать. Опять на DCL смахивает...

    nil, 19 Января 2010

    Комментарии (0)
  4. Куча / Говнокод #2288

    +130

    1. 1
    2. 2
    for INPUTFILE in `ls ${_BUILD_DIR}/db/full/migrate[0-9].sql`; do
    	STAGE=`basename $INPUTFILE | awk -F "" '{print $8}'`

    Я видел много, но чтобы ТАК получали символ из строки...
    awk - поистине многофункциональный язык!

    nil, 16 Декабря 2009

    Комментарии (10)
  5. bash / Говнокод #2203

    −121.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    varcmd()
    {
        eval $(echo $*|tr -d "./;")
    }
    
    varcmd test '$'$fn$oldrev
    if [ $? -eq 0 ]; then
        varcmd $fn$rev='$'$fn$oldrev
        varcmd unset $fn$oldrev
    else
        varcmd $fn$rev=$oldrev
    fi

    Хитрокод: ассоциативные массивы. Потом я подумал и переписал через более изящные файлы:)
    Количеству долларов в тексте позавидует DCL!

    nil, 01 Декабря 2009

    Комментарии (0)
  6. Куча / Говнокод #2181

    +124.3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    [ $(echo $a|cut -c$((${#a}-1))-) = "gz" ] && echo "Hello, world!"
    
    [ $(echo $a|sed "s/.*\(..\)/\1/") = "gz" ] && echo "Hello, world!"
    echo $a|sed -e"s/.*gz$/Hello, world\!/" -et -eD
    
    expr $a : .*gz >/dev/null && echo "Hello, world!"
    [ $(expr $a : '.*\(..\)') = "gz" ] && echo "Hello, world!"
    
    echo "ifelse(substr($a,eval(len($a)-2)),gz,\`Hello, world! ')"|m4
    
    case $a in *gz) echo "Hello, world!";; esac
    
    echo $a|emacs -batch -eval '(defun f (arg) "M") (if (string= (substring arg -2) "gz") (princ "Hello, world!\n")) )' -f f

    2168-му посвящается...

    Задача: Если последние два символа переменной "gz", то вывести "Hello, world!".
    Решение проблемы от поклонников разных инструментов. awk, perl и всякие tcl не писал, поскольку там не будет говнокода.
    11 строка, то, как обычно пишу я. ИЧСХ, все примеры, кроме последнего, строго соответствуют POSIX.2:)

    nil, 26 Ноября 2009

    Комментарии (5)
  7. Куча / Говнокод #2168

    +127.8

    1. 1
    _BUILD_FORMAT=`echo ${_FILE_NAME} | awk -F'.' '{ if($5=="gz")printf("%s",1);else printf("%s",2)}'`

    Имя файла имеет вид: xxx.version.src.tar.gz
    Эта проверка на то, какое расширение (и, соответственно, версия того, что внутри. О методе per se не буду, потому что нецензурно). Все бы ничего, пока имя файла не попадает, скажем, ./xxx.version.src.tar.gz

    nil, 23 Ноября 2009

    Комментарии (8)
  8. Куча / Говнокод #2143

    +131.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    np_char=`awk '{
            for(i=1;i<=length($0);i+=1){
                symb=substr($0,i,1);
                if (symb < " ")
                    {
                        print symb;
                        exit 9;
                    }
                    }}' $1`
    
    hex_code=`echo "$np_char" | hexdump -n 1 -e '1/1 "%X" "\n"'`

    Поиск и вывод непечатных символов в файле...
    Это я еще молчу об этической стороне hexdump.

    nil, 16 Ноября 2009

    Комментарии (0)
  9. Си / Говнокод #2105

    +136.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch( 1 ) 
    {
      default :
        TO_STR( 2, "10" );
    }

    Интересно, откуда и зачем такая конструкция. Может, кто-то что-то подобное встречал?

    nil, 06 Ноября 2009

    Комментарии (11)
  10. Куча / Говнокод #2103

    +138.5

    1. 1
    awk '{i=i+1;if(i==2){print($3);}}' 2>/dev/null | awk -F. '{printf $1$2$3}'

    Продолжаю посылать приколы нашего городка.

    Кстати, предложение к разработчикам ресурса: ввести "язык" POSIX.2, или, скажем, "язык командной строки UNIX". Куда пойдут все конвееры с sed, awk, join, cut, группировками, подпроцессами, асинхронностью и прочим. Они порой доставляют!
    Не пихать же это все в bash!

    nil, 06 Ноября 2009

    Комментарии (8)
  11. bash / Говнокод #2080

    −370.1

    1. 1
    id |sed "s/^[^(]*(\([^)]*\)).*/\1/"

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

    nil, 01 Ноября 2009

    Комментарии (22)