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

    Всего: 11

  2. Python / Говнокод #11789

    −105

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    
    import os, sys
    
    ARGV = sys.argv
    ARGC = len( ARGV )
    
    GITLOG = "git log --name-status --no-merges --pretty=format:\"%h|_|%ad|_|%s\""
    
    def osexec( _cmd ):
        es_ = os.system( _cmd )
        print "%d <== '%s'" % ( es_, _cmd )
        #raw_input()
    
    # === body =====================================================================
    
    CFD = os.popen( GITLOG )
    LOG = CFD.read().split( "\n\n" )
    CFD.close()
    
    DLOG = []
    for i in LOG:
        a = i.split( "\n" )
    
        rdm = a[0] # rev|_|date|_|msg
        rdm_ = rdm.split( "|_|" )
    
        files = []
        for j in a[1:]:
            files.append( j ) # A/M/D\tfilename
    
        e = {}
        e["rev"]    = rdm_[0]
        e["dt"]     = rdm_[1]
        e["msg"]    = rdm_[2]
        e["files"]  = files
    
        DLOG.append( e )
    
    DLOG.reverse()
    for i in DLOG:
        print "log:", i
    
        cmd = "git checkout -f %s" % i["rev"]
        osexec( cmd )
    
        files = i["files"]
        if ( 0 == len( files ) ):
            # skip merges
            continue
    
        for j in files:
            if ( "" == j ):
                continue
    
            j_ = j.split( "\t" )
    
            m = j_[0]
            f = j_[1]
    
            cmd = ""
            if ( "A" == m ):
                cmd = "hg add %s" % f
            elif ( "D" == m ):
                cmd = "hg rm %s" % f
    
            if ( not "" == cmd ):
                osexec( cmd )
    
        cmd = "hg ci -m \"%s\" -d \"%s\"" % ( i["msg"], i["dt"] )
    
        osexec( cmd )

    Типа переносим гитовые коммиты в меркуриал... При попутном ветре, ага. Буээ

    ilardm, 17 Сентября 2012

    Комментарии (5)
  3. Си / Говнокод #9364

    +104

    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
    14. 14
    #ifdef _DEBUG
                if ( !
    #endif
                    dt_time_sprintf_current( tbuf, sizeof(tbuf), false )
    #ifdef _RELEASE
                    ;
    #else
                    )
                {
                    fprintf( stderr, "-- unable to get current time\n" );
                }
    #endif
            }
    #ifdef _DEBUG

    ;(

    ilardm, 09 Февраля 2012

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

    +131

    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
    14. 14
    15. 15
    16. 16
    /*здесь заданы значения листов x и y соответственно*/
    x: [...] $
    y: [...] $
    ...
    /*и понеслась*/
    xx: [-10] $
    for i in create_list(i,i, 2,length(h)) do
    	xx: append(xx, [i,i]) $
    xx: append(xx, [10]) $
    
    yy: [ first(x) ] $
    for i in create_list(i,i, 2,length(h)) do
    	yy: append(yy, [x[i-1],x[i]]) $
    yy: append(yy, [last(yy)]) $
    
    plot2d( [discrete, xx,yy] ) $

    maxima. рисуем кусочно-заданную функцию О_о

    ilardm, 31 Мая 2011

    Комментарии (2)
  5. Java / Говнокод #6670

    +74

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    public boolean setBit(byte _position, boolean _state) {
    		if ( !valid ) {
    			LOG.error("value is INVALID");
    			
    			return false;
    		} else if ( _position<0 ) {
    			LOG.error("NEGATIVE _position");
    			
    			return false;
    		} else if ( _position > capacity ) {
    			LOG.warn("_position("+_position+") > cacity("+capacity+") "+
    					"for value "+this);
    			
    			return false;
    		}
    		
    		value|=( (_state ? 1 : 0) << (_position+1) );
    		
    		return true;
    }

    ога, разбежался

    ilardm, 14 Мая 2011

    Комментарии (16)
  6. Си / Говнокод #6543

    +132

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    static int
    find_entry (int store, int entry, int *buffer)
      {
        int
    	i,
    	next;
    
        if ((entry <= 0) || (entry > Headers[store].size))
          {
    	*buffer = EOL;
    	return (ST_NOENTRY);
          }
    
        if (entry < (Headers[store].size/2))
          {
    		/* search forwards through store */
    		next = Headers[store].first;
    		for (i=1; i<entry; i++)
    			next = Buffers[next].next;
    		*buffer = next;
          }
    	  else
          {
    		/* search backwards through store */
    		next = Headers[store].last;
    		for (i=Headers[store].size; i>entry; i--)
    			next = Buffers[next].prev;
    		*buffer = next;
          }
    
        return (SUCCESS);
      }

    древний и заведомо рабочий код. а ищем-то что?

    ilardm, 04 Мая 2011

    Комментарии (12)
  7. Си / Говнокод #6542

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    const bool ejected = (device_type.is_new_protocol() ? device_status.status.stop : (!device_status.status.in_preset && !device_status.status.in_preset)) != 0;
    ...
    if (  (p_ddevice && p_ddevice->preset_state.in_progress ())
       || (p_edevice && p_edevice->preset_state.in_progress ())
       )
       return (CTRL_WAIT);
    ...

    я не повторяюсь никогда никогда

    ilardm, 04 Мая 2011

    Комментарии (57)
  8. SQL / Говнокод #6218

    −858

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    create or replace function t8() returns integer as $$
    declare
        rec record;
    begin
        for rec in select * from purchase loop
          update purchase set amount=(
                  select book.cost*purchase.quantity*(1-customer.discount/100.0)
                  from purchase, book, customer
                  where purchase.id=rec.id and
                      book.id=purchase.book and
                      customer.id=purchase.customer
          )
          where purchase.id=rec.id;
        end loop;
    
        return 1;
    end;
    $$ language plpgsql;
    
    select t8();

    прочно засевшие в голове алгоритмические языки

    ilardm, 04 Апреля 2011

    Комментарии (2)
  9. C++ / Говнокод #3832

    +159

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    void shiftOrder(int* _order, int _count, int _column)
    {
        int i=_count-1;
        while ( _order[i]!=_column )
            i--;
    
        _order[_count]=_order[i];
        memcpy( _order+i, _order+i+1, (_count-i)*sizeof(int) );
    
        return;
    }
    
    void returnOrder(int* _order, int _count, int _column)
    {
        int i=0;
        int j=0;
        int order[MAX_COLS];
    
        for ( i=0; i< _count; i++)
        {
            if ( m_ColInfo[i].visible )
            {
                order[j]=i;
                j++;
            }
        }
    
        i=j;
        while ( j<_count )
        {
            if ( _order[i-1]!=_column )
            {
                order[j]=_order[i-1];
                j++;
            }
            i++;
        }
        memcpy(_order, order, MAX_COLS*sizeof(int));
    
        return;
    }

    я знаю, это всё торфяники!1

    ilardm, 30 Июля 2010

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

    −138

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    #!/bin/sh
    
    net() {
        if ( grep eth0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig eth0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "eth0";
    			ifconfig eth0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig eth0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    
        if ( grep wlan0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig wlan0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "wlan0";
    			ifconfig wlan0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig wlan0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    
        if ( grep usb0 /proc/net/dev > /dev/null );
        then
    		if (ifconfig usb0|grep -e "inet addr:" > /dev/null);
    		then
    			echo "usb0";
    			ifconfig usb0|grep -e "inet addr:" | sed 's/.*r://; s/\ .*//';
    			ifconfig usb0|grep bytes | sed 's/\ //g; s/(/$/; s/.*\$//; s/).*(/ /; s/)//'
    			echo "::"
    		fi;
        fi;
    }
    
    space() {
        df -h|grep -e "/$" | sed 's/^[a-z0-9/]*\ *[0-9,]*[MG]\ *[0-9,]*[MG]//; s/[0-9]*\%//; s/\ *//g; s/\// \//'
        echo "::"
        df -h|grep -e "/home$" | sed 's/^[a-z0-9/]*\ *[0-9,]*[MG]\ *[0-9,]*[MG]//; s/[0-9]*\%//; s/\ *//g; s/\// \//'
    }
    
    battery() {
        if ( grep -e "discharging" /proc/acpi/battery/BAT0/state > /dev/null || \
    		grep -e "charging$" /proc/acpi/battery/BAT0/state > /dev/null);
        then
    		echo -n "::" $(~/.wmii-3.5/battery.py)
        fi;
    }
    
    echo -n $(net)\
        $(space)\
        "::" "LA" $(uptime | sed 's/.*e://; s/,\ .*//')\
        "::" $(uptime | sed 's/.*up//; s/[0-9]\ users.*//; s/,//g')\
        "::" $(cat /proc/acpi/thermal_zone/TZ00/temperature|sed 's/[a-z]*:\ *//; s/\ /°/')\
        $(battery)\
        "::" $(date "+%F %R:%S")\
        "\n"

    можно сказать, первы серьёзный опыт использования bash(скрипт для нижней панельки wmii). Не покидает ощущение, что ооочень много костылей.

    ilardm, 17 Июня 2010

    Комментарии (20)
  11. C++ / Говнокод #3237

    +984

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    string s;
    
    cout << "input words order:" << endl;
    getline(cin, s);
    
    int pos=0;
    while (true)
    {
    	pos=s.find(" ", pos+1);
    	if (pos==string::npos)
    		break;
    	num++;
    }
    num++;
    
    string words[num];
    pos=0;
    for (int i=0; i<num; i++)
    {
    	pos=s.find(" ");
    	if (pos==string::npos)
    	{
    		words[i]=s;
    		break;
    	}
    	words[i]=s.substr(0, pos);
    	pos++;
    	s=s.erase(0, pos);
    }

    очередной ночной опус. что? токенайзеры и вектора? ночь же..

    ilardm, 16 Мая 2010

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