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

    +10

    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
    void ImageArea::saveConf(bool def)
    {
        static bool fp = true;
        static QString filename = QString("default.conf");
        if(!def){
            filename = QFileDialog::getSaveFileName(this, tr("Save config"), "", tr("Config files (*.conf)"));
            if(fp){
                QFile file(filename);
                if(file.open(QFile::WriteOnly)){
                    QTextStream str(&file);
                    str << crop[0].x() << " " << crop[0].y() << "\n";
                    str << crop[1].x() << " " << crop[1].y() << "\n";
                    str << square[0].x() << " " << square[0].y() << "\n";
                    str << square[1].x() << " " << square[1].y() << "\n";
                    str << square[2].x() << " " << square[2].y() << "\n";
                    QMessageBox::information(this, tr("Next step"), tr("Put 3 points then press Save again"));
                }else{
                    QMessageBox::warning(this, tr("Error"), tr("Can not open a file"));
                }
                fp = false;
            }else{
                QFile file(filename);
                if(file.open(QFile::Append)){
                    QTextStream str(&file);
                    str << square[0].x() << " " << square[0].y() << "\n";
                    str << square[1].x() << " " << square[1].y() << "\n";
                    str << square[2].x() << " " << square[2].y() << "\n";
                }else{
                    QMessageBox::warning(this, tr("Error"), tr("Can not open a file"));
                }
                fp = true;
            }
        }else{
            QFile file(filename);
            if(file.open(QFile::WriteOnly)){
                QTextStream str(&file);
                str << conf.crop[0].x() << " " << conf.crop[0].y() << "\n";
                str << conf.crop[1].x() << " " << conf.crop[1].y() << "\n";
                str << conf.square[0].x() << " " << conf.square[0].y() << "\n";
                str << conf.square[1].x() << " " << conf.square[1].y() << "\n";
                str << conf.square[2].x() << " " << conf.square[2].y() << "\n";
                str << conf.square0[0].x() << " " << conf.square0[0].y() << "\n";
                str << conf.square0[1].x() << " " << conf.square0[1].y() << "\n";
                str << conf.square0[2].x() << " " << conf.square0[2].y() << "\n";
            }
        }
    }

    Сохраняем конфиг в джва захода.

    Abbath, 14 Октября 2013

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

    +160

    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
    function casinoGamesParser($body, $infoBoxyLink)
    {
    	// try ruletka
    	$ruletkaReplaceCode = read_file('system/application/views/site/boxy-rul.php');
    	$ruletkaReplaceCode = str_replace('<?php echo $boxylink;?>', $infoBoxyLink, $ruletkaReplaceCode);
    	$ruletkaReplaceCode = str_replace('<?php echo site_url();?>', site_url(), $ruletkaReplaceCode);
    	$delimiterFirst = "<p>фун_рулетка(";
    	$delimiterLast = ")енд</p>";
    	$keyword = between2finer($body, $delimiterFirst, $delimiterLast);
    	if (!empty($keyword)) $ruletkaReplaceCode = str_replace('<?php echo $keyword ?>', $keyword, $ruletkaReplaceCode);
    	if (!empty($keyword)) return str_replace($delimiterFirst.$keyword.$delimiterLast, $ruletkaReplaceCode.$keyword, $body);
    	// try poker
    	$pokerReplaceCode = read_file('system/application/views/site/boxy-poker.php');
    	$pokerReplaceCode = str_replace('<?php echo $boxylink;?>', $infoBoxyLink, $pokerReplaceCode);
    	$pokerReplaceCode = str_replace('<?php echo site_url();?>', site_url(), $pokerReplaceCode);
    	$delimiterFirst = "фун_покер(";
    	$delimiterLast = ")енд";
    	$keyword = between2finer($body, $delimiterFirst, $delimiterLast);
    	if (!empty($keyword)) $pokerReplaceCode = str_replace('<?php echo $keyword ?>', $keyword, $pokerReplaceCode);
    	if (!empty($keyword)) return str_replace($delimiterFirst.$keyword.$delimiterLast, $pokerReplaceCode.$keyword, $body);
    	// if nothing found - return original body
    	return $body;
    }

    Берут РНР файл как текстовый в переменную и заменяют в нем вставки РНР кода <?php echo $keyword ?>. Получается РНР парсит свой код str_replace*ом. Ну вобщем неплохо получилось запутать китайских шпионов!

    increazon, 14 Октября 2013

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

    +13

    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
    if(ortho){
                if( abs(e->x() - line.p1().x() ) * 2 < abs( e->y() - line.p1().y() ) ){
                    y = e->y();
                    x = line.p1().x();
                }else if(abs(e->x() - line.p1().x() ) > 2 * abs( e->y() - line.p1().y() )){
                    x = e->x();
                    y = line.p1().y();
                }else if(abs(e->x() - line.p1().x() ) * 2 > abs( e->y() - line.p1().y() ) &&
                         abs(e->x() - line.p1().x() ) < abs( e->y() - line.p1().y() )){
                    if((e->x() < line.p1().x() && e->y() < line.p1().y()) || (e->x() > line.p1().x() && e->y() < line.p1().y())){
                        x = e->x();
                        y = line.p1().y() - abs(line.p1().x() - e->x());
                    }else if((e->x() > line.p1().x() && e->y() > line.p1().y()) || (e->x() < line.p1().x() && e->y() > line.p1().y())){
                        x = e->x();
                        y = line.p1().y() + abs(line.p1().x() - e->x());
                    }
                }else if(abs(e->x() - line.p1().x() ) < 2 * abs( e->y() - line.p1().y() ) &&
                         abs(e->x() - line.p1().x() ) > abs( e->y() - line.p1().y() )){
                    if((e->x() < line.p1().x() && e->y() < line.p1().y()) || (e->x() < line.p1().x() && e->y() > line.p1().y())){
                        y = e->y();
                        x = line.p1().x() - abs(line.p1().y() - e->y());
                    }else if((e->x() > line.p1().x() && e->y() > line.p1().y()) || (e->x() > line.p1().x() && e->y() < line.p1().y())){
                        y = e->y();
                        x = line.p1().x() + abs(line.p1().y() - e->y());
                    }
                }else{
                    x = e->x();
                    y = e->y();
                }

    Abbath, 14 Октября 2013

    Комментарии (34)
  4. C# / Говнокод #13941

    +129

    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
    #region Work with massive slovo
    
    public string sFileNameMassiveSlovar = "";
    public bool flChangeSlovo = false;
    public int nCountSavedSlovo { get; private set; }
    public int nCountAllSlovo { get; private set; }
    public int nCountAddSlovo { get; private set; }
    public void ClearMassiveSlovo()
    {
      slovo = slovo.Select(n => (byte)0).ToArray();
    }
    
    public int GetCountAllSlovo()
    {
      int npock = nLengthSlovo;
      return slovo.Where((n, index) => index % npock == 0 && n != 0).Count();
    }
    
    public bool WriteMassiveSlovo()
    {
      bool res = false;
      FileStream fs = null;
      try
      {
        fs = File.Open(sFileNameMassiveSlovar, FileMode.Create, FileAccess.Write);
        if (fs != null)
        {
          fs.Write(slovo, 0, nSizeMassiveSlova);
        }
        res = true;
      }
      catch (Exception e1)
      {
        res = false;
        System.Windows.Forms.MessageBox.Show(e1.Message);
      }
      finally
      {
        if (fs != null) fs.Close();
      }
      return res;
    }
    
    #endregion

    just_nameless, 14 Октября 2013

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

    +171

    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
    public abstract class BaseDateTime
            extends AbstractDateTime
            implements ReadableDateTime, Serializable {
    
        /** The millis from 1970-01-01T00:00:00Z */
        private volatile long iMillis;
        /** The chronology to use */
        private volatile Chronology iChronology;
    
    /////////////////////////////////////////////////////////////////	
    /*	
     * DateTime is thread-safe and immutable, provided that the Chronology is as well.
     * All standard Chronology classes supplied are thread-safe and immutable.
     *
     * @see MutableDateTime
     */
    public final class DateTime
            extends BaseDateTime

    Любителям joda-time.
    Cмущает меня этот volatile, который приходит в немутабельный класс от родителя.

    3.14159265, 14 Октября 2013

    Комментарии (73)
  6. PHP / Говнокод #13939

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    public static function getDeferredSubsCardExpirationDate($date) {
        $ts = strtotime($date);
        return mktime(date('H', $ts), date('i', $ts), date('s', $ts), date('m', $ts), date('d', $ts), date('Y', $ts) + Constants::GIFT_CARD_EXPIRATION_PERIOD);
    }

    ОУКЕЙ

    Sc0rp10, 14 Октября 2013

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

    +123

    1. 1
    list($ignore, $ignore, $ignore, $ignore,$ignore, $ignore, $radius, $ignore) = get_location_data($request['location']);

    someone, 14 Октября 2013

    Комментарии (127)
  8. PHP / Говнокод #13934

    +114

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // Validate that numrical values exist for either Children or Adults and that either/or have a value of 1 or more
    if (is_numric($_SESSION['f_adults']) and $_SESSION['f_adults'] >0 or is_numric($_SESSION['f_children']) and $_SESSION['f_children'] >0) {
    $_SESSION['valid_amount'] = true;
    } else {
    $_SESSION['valid_amount'] = false;
    }

    Случайно нашёл. Без комментариев.
    пруфлинк: http://www.dreamincode.net/forums/topic/172078-is-numeric-problem/

    Dg_INC, 13 Октября 2013

    Комментарии (1)
  9. Java / Говнокод #13933

    +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
    public class Encoder {
    	public static void encode(final OutputStream out, Node node) throws IOException {
    		node.accept(new NodeVisitor() {
    			@Override
    			public void string(StringNode node) {
    				byte[] value = node.toByteArray();
    				out.write(Integer.toString(value.length).getBytes(Constants.CHARSET));
    				out.write(':');
    				out.write(value);
    			}
                            // ... другие методы для других типов нод ...
                    }
            }
    }

    Решил поменять в паре-тройке модулей пачки ифов на паттерн visitor... И получил пинка от жабы ;(

    write() кидает IOException, а значит и метод string() в анонимном классе тоже должен кидать, и метод string() в интерфейсе NodeVisitor тоже... Но ведь соседним посетителям этот IOException нахер не сдался...

    Checked exceptions - зло.

    bormand, 12 Октября 2013

    Комментарии (55)
  10. PHP / Говнокод #13932

    +152

    1. 1
    $smarty->assign('main_body_style', 'style="' . (((CONF_SHOPPING_CART_VIEW == 2) || ($cart_view == CARTVIEW_FRAME)) ? '' : 'background:#FFFFFF;') . 'min-width:auto;width:auto;_width:auto;"');

    Из контроллера.
    WebAsyst.

    invision70, 12 Октября 2013

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