1. C++ / Говнокод #17497

    +56

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    `        enum SearchFlag
             {
                 IgnoreCase = 0x00000001,    ///< Case differences are ignored
    -            WholeWorlds = 0x00000002    ///< Only whole words are matched
    +            WholeWords = 0x00000002    ///< Only whole words are matched
             };

    очепятка + копи-паста = world domination.

    http://lists.freedesktop.org/archives/poppler/2015-January/011251.html

    http://cgit.freedesktop.org/poppler/poppler/commit/?id=78abf540057181b708c546aee421f81a1dd5 8331

    Dummy00001, 22 Января 2015

    Комментарии (11)
  2. PHP / Говнокод #17496

    +156

    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
    if ($var==0 && $var3==0 && $var4==0) {
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` WHERE prod=0 ORDER BY `house_number` ASC" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var!=0 && $var3!=0 && $var4!=0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` WHERE house_number='$var' AND prod=0 AND section_type='$var3' AND rooms='$var4'" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var!=0 && $var3==0 && $var4==0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` WHERE house_number='$var' AND prod=0 ORDER BY `section_number_real` ASC" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var==0 && $var3!=0 && $var4==0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` WHERE section_type='$var3' AND prod=0 ORDER BY `house_number` ASC" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var==0 && $var3==0 && $var4!=0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` where rooms='$var4' AND prod=0 ORDER BY `house_number` ASC" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var!=0 && $var3==0 && $var4!=0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` where house_number='$var' AND prod=0 AND rooms='$var4' ORDER BY `house_number` ASC" . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var!=0 && $var3!=0 && $var4==0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` where house_number='$var' AND prod=0 AND section_type='$var3' ORDER BY `section_number_real` ASC " . $db_table_to_show)
    or die(mysql_error());	}
    elseif ($var==0 && $var3!=0 && $var4!=0){
    $qr_result = mysql_query("SELECT type_id, image_plan, section_type, house_number, section_number_real, rooms, prod  FROM  `psp_gen_plan_type` where rooms='$var4' AND prod=0 AND section_type='$var3' ORDER BY `house_number` ASC " . $db_table_to_show)
    or die(mysql_error());	}

    Кинули сайт на доработку. Вот с таким вот фильтром.

    tin, 22 Января 2015

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

    +156

    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
    public function fillRow($row, $table)
    {
        static $counter;
        global $app_list_strings, $locale;
    
        $counter++;
        $row['counter'] = $counter;
        $row['status_abc_current'] = $row['status_abc_current'];
        $row['status_abc_1_quarter_ago'] = $row['status_abc_1_quarter_ago'];
        $row['status_abc_2_quarter_ago'] = $row['status_abc_2_quarter_ago'];
        $row['status_abc_3_quarter_ago'] = $row['status_abc_3_quarter_ago'];
        $row['status_abc_4_quarter_ago'] = $row['status_abc_4_quarter_ago'];
    
        return $row;
    }

    что-то тут не так

    mr-lekafe, 22 Января 2015

    Комментарии (4)
  4. Си / Говнокод #17494

    +133

    1. 1
    2. 2
    if (dbg)
    	printf("2\n");

    // This is debug mode

    codemonkey, 22 Января 2015

    Комментарии (42)
  5. JavaScript / Говнокод #17493

    +157

    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
    function run()
    {
      var test = [60, 1, 5, 70, 8];
      var biggest = 100;
      var biggest_index = 0;
      for (var i = 0; i < test.length; i++)
      {
        if (test[i] < test[i + 1])
        {
          biggest = test[i + 1];
          test[biggest - [i + 1]] = [biggest];
        }
      }
      test[test.length] = biggest;
    }
    run();

    таск был найти наибольшего эллемента масива [60, 1, 5, 70, 8]; во что получилось у коллеги новобранца. это был его 20-ты опыт ;)

    apostolovd, 22 Января 2015

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

    +133

    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
    //......................................
    void DlPortWritePortUshort(WORD addr, WORD data) {
      DWORD br;
      (&addr)[1]=data;
      DeviceIoControl(hdriver,IOCTL_WRITE_PORT_USHORT,&addr,4,NULL,0,&br,NULL);
    }
    
    DWORD DlPortReadPortUlong(WORD addr) {
     DWORD br;
     DeviceIoControl(hdriver,IOCTL_READ_PORT_ULONG,&addr,2,&addr,4,&br,NULL);
     return *(DWORD*)&addr;
    }
    
    void DlPortWritePortUlong(WORD addr, DWORD data) {
      DWORD br;
      DeviceIoControl(hdriver,IOCTL_WRITE_PORT_ULONG,&addr,8,NULL,0,&br,NULL);
    }
    //......................................

    Кусок очередного форка dll-ки для работы с очередным, мать его, форком драйвера inpout32.sys.
    Попался в поисках исправленного драйвера и dll-обёртки для него.

    harvestor, 22 Января 2015

    Комментарии (3)
  7. C# / Говнокод #17491

    +95

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static class ColorExtension
    	{
    		public static bool IsDarkColor(this Color color)
    		{
    			return (color.R & 255) + (color.G & 255) + (color.B & 255) < 3*256/2;
    		}
    	}

    x & 255 = ?, где x типа byte

    schecterXA, 22 Января 2015

    Комментарии (10)
  8. Java / Говнокод #17490

    +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
    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
    private static File getTmpOutputFile(VirtualFile file) {
            String origPath = file.getRealFile().getAbsolutePath();
            File tmp = new File(origPath + ".tmp");
    
            // If the temp file already exists
            if (tmp.exists()) {
                long tmpLastModified = tmp.lastModified();
                long now = System.currentTimeMillis();
    
                // If the temp file is older than the destination file, or if it is
                // older than the allowed compression time, it must be a remnant of
                // a previous server crash so we can overwrite it
                if (tmpLastModified < file.lastModified()) {
                    return tmp;
                }
                if (now - tmpLastModified > PluginConfig.maxCompressionTimeMillis) {
                    return tmp;
                }
    
                // Otherwise it must be currently being written by another thread,
                // so wait for it to finish
                while (tmp.exists()) {
                    if (System.currentTimeMillis() - now > PluginConfig.maxCompressionTimeMillis) {
                        throw new PressException("Timeout waiting for compressed file to be generated");
                    }
    
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                }
    
                // Return null to indicate that the file was already generated by
                // another thread
                return null;
            }
    
            return tmp;
        }

    Самый вредный говнокод, который я встречал за последний год.
    При определённых условиях может так случиться, что он ждёт (до 60 секунд!), пока предыдущий временный файл не исчезнет. Он не пытается его удалить, не пытается создать новый файл, ничего не логирует - он просто ждёт, пока файл сам исчезнет.

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

    И весь этот геморрой можно было бы благополучно заменить всего-навсего одной сточкой:
    return File.createTempFile(origPath, "tmp");

    Исходник - плагин play-press:
    https://github.com/dirkmc/press/blob/master/app/press/io/OnDiskCompressedFile.java

    asolntsev, 21 Января 2015

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

    +95

    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
    double[,] ThreadMatrixMult(int size, double[,] m1, double[,] m2)
            {
                double[,] result = new double[size, size];
                var threads = new List<Thread>(size);
                for (int i = 0; i < size; i++)
                {
                    var t = new Thread( ti =>
                    {
                        int ii = (int)ti;
                        for (int j = 0; j < size; j++)
                        {
                            result[ii, j] = 0;
                            for (int k = 0; k < size; k++)
                            {
                                result[ii, j] += m1[ii, k] * m2[k, j];
                            }
                        }
                    });
                    threads.Add(t);
                    t.Start(i);
                }
                
                foreach (Thread thread in threads)
                    thread.Join();
    
                return result;
            }

    LispGovno, 21 Января 2015

    Комментарии (49)
  10. C++ / Говнокод #17488

    +59

    1. 1
    2. 2
    3. 3
    if ( number % 10 == 0 ) {
        number %= 10;
    }

    мне кажется, или...

    artembegood, 21 Января 2015

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