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

    Всего: 116

  2. bash / Говнокод #15537

    −133

    1. 1
    2. 2
    shopt -s nullglob
    INSTALLER=$(echo $INSTALLER)

    Вот таким нехитрым движением file glob превращается... превращается в имя файла

    Elvenfighter, 20 Марта 2014

    Комментарии (0)
  3. bash / Говнокод #15381

    −123

    1. 1
    2. 2
    3. 3
    # remove whole directory to avoid bugs like rm -rf ""/*
    rm -rf "$CHROOT_DIR"
    mkdir -p "$CHROOT_DIR"

    Вспомнилось bumblebee

    Elvenfighter, 07 Марта 2014

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

    +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
    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
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    void KateQuickOpen::update () {
      // пропущено
      QModelIndex idxToSelect;
      int linecount = 0;
      QMapIterator<qint64, KTextEditor::View *> i2(sortedViews);
      while (i2.hasNext()) {
            i2.next();
    
            KTextEditor::Document *doc = i2.value()->document();
    
            if (alreadySeenDocs.contains(doc))
              continue;
    
            alreadySeenDocs.insert (doc);
    
            QStandardItem *itemName = new QStandardItem(doc->documentName());
    
            itemName->setData(qVariantFromValue(QPointer<KTextEditor::Document> (doc)), DocumentRole);
            itemName->setData(QString("%1: %2").arg(doc->documentName()).arg(doc->url().pathOrUrl()), SortFilterRole);
            itemName->setEditable(false);
            QFont font = itemName->font();
            font.setBold(true);
            itemName->setFont(font);
    
            QStandardItem *itemUrl = new QStandardItem(doc->url().pathOrUrl());
            itemUrl->setEditable(false);
            base_model->setItem(linecount, 0, itemName);
            base_model->setItem(linecount, 1, itemUrl);
            linecount++;
    
            if (!doc->url().isEmpty() && doc->url().isLocalFile())
              alreadySeenFiles.insert (doc->url().toLocalFile());
    
            // select second document, that is the last used (beside the active one)
            if (linecount == 2)
              idxToSelect = itemName->index();
        }
    
      // get all open documents
      QList<KTextEditor::Document*> docs = Kate::application()->documentManager()->documents();
        foreach(KTextEditor::Document *doc, docs) {
            // skip docs already open
            if (alreadySeenDocs.contains (doc))
              continue;
    
            QStandardItem *itemName = new QStandardItem(doc->documentName());
    
            itemName->setData(qVariantFromValue(QPointer<KTextEditor::Document> (doc)), DocumentRole);
            itemName->setData(QString("%1: %2").arg(doc->documentName()).arg(doc->url().pathOrUrl()), SortFilterRole);
            itemName->setEditable(false);
            QFont font = itemName->font();
            font.setBold(true);
            itemName->setFont(font);
    
            QStandardItem *itemUrl = new QStandardItem(doc->url().pathOrUrl());
            itemUrl->setEditable(false);
            base_model->setItem(linecount, 0, itemName);
            base_model->setItem(linecount, 1, itemUrl);
            linecount++;
    
            if (!doc->url().isEmpty() && doc->url().isLocalFile())
              alreadySeenFiles.insert (doc->url().toLocalFile());
        }
    
        // insert all project files, if any project around
        if (Kate::PluginView *projectView = m_mainWindow->mainWindow()->pluginView ("kateprojectplugin")) {
          QStringList projectFiles = projectView->property ("projectFiles").toStringList();
          foreach (const QString &file, projectFiles) {
            // skip files already open
            if (alreadySeenFiles.contains (file))
              continue;
    
            QFileInfo fi (file);
            QStandardItem *itemName = new QStandardItem(fi.fileName());
    
            itemName->setData(qVariantFromValue(KUrl::fromPath (file)), UrlRole);
            itemName->setData(QString("%1: %2").arg(fi.fileName()).arg(file), SortFilterRole);
            itemName->setEditable(false);
            QFont font = itemName->font();
            font.setBold(true);
            itemName->setFont(font);
    
            QStandardItem *itemUrl = new QStandardItem(file);
            itemUrl->setEditable(false);
            base_model->setItem(linecount, 0, itemName);
            base_model->setItem(linecount, 1, itemUrl);
            linecount++;
          }
        }
    
        // swap models and kill old one
        m_model->setSourceModel (base_model);
        delete m_base_model;
        m_base_model = base_model;
    
        // пропущено
    }

    Адская копипаста. У меня мозг сегфолтится при попытке ее формализировать.

    https://projects.kde.org/projects/kde/applications/kate/repository/revisions/master/entry/kate/app/katequickopen.cpp#L135

    Elvenfighter, 16 Февраля 2014

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

    +123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    @echo off
    
    set PROGPATH="%ProgramFiles%\MyProg"
    
    rem И тут мы захотели проверить, существует ли наша папочка
    
    if not exists "%PROGPATH%" (
        mkdir "%PROGPATH%"
    )
    
    rem виндовый шелл как бы нам говорит "братюнь, погоди, не спеши"
    rem ""C:\Program was unexpected at this time.

    Патч:

    -set PROGPATH="%ProgramFiles%\MyProg"
    +set "PROGPATH=%ProgramFiles%\MyProg"


    http://stackoverflow.com/questions/535975/dealing-with-quotes-in-windows-batch-scripts

    Elvenfighter, 06 Февраля 2014

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

    +128

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <dict>
        <key>author</key>
        <string>Nobody</string>
        <key>name</key>
        <string>my-theme</string>
        <key>settings</key>
        <array>
            <!-- ... -->
            <dict>
                <key>name</key>
                <string>Attribute</string>
                <key>scope</key>
                <string>entity.other.attribute-name</string>
                <key>settings</key>
                <dict>
                    <key>fontStyle</key>
                    <string></string>
                    <key>foreground</key>
                    <string>#006E28</string>
                </dict>
            </dict>
            <!-- ... -->
        </array>
    </dict>
    </plist>

    XML. Такой загадочный и энтерпрайзный.

    // Цветовая схема для Sublime Text (или TextMate)

    Elvenfighter, 17 Января 2014

    Комментарии (56)
  7. JavaScript / Говнокод #14309

    +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
    var allowed = [ 0xfe, 0xfc, 0xf8, 0xf0,
                    0xe0, 0xc0, 0x80, 0x00 ];
    for (var i = 0; i < parts.length; i++) {
        var part = parts[i]; 
       
        // ...
    
        if ($.grep(allowed, function(a) { return part == a; }).length > 0) {
            max = 0x00;
        } else {
            FocusObject(object);
            show_alert( jstextTemplate("<jstext>field_contains_bad_IP_mask</jstext>", {name: name}) );
            return false;
        }
    }

    Кусочек валидации для маски подсети. Мы не ищем лёгких путей.

    Elvenfighter, 02 Января 2014

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

    −165

    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
    #!/bin/bash
    
    # This function can be redefined to use any
    # source of random
    function get_random() {
        echo $RANDOM;
    }
    
    function debug() {
        local str="$*"
    
        printf "\e[s\e[0;0H$str\e[u"
    }
    
    # Set limit for iterations, if given
    if [ $# -ge 1 ] && grep -q '^[[:digit:]]\+$' <<< $1 ; then
        LIMIT=$1
    fi
    
    # Previous random value
    PREV=$(get_random)
    # Current state
    STATE="none"
    
    printf "Analyzing random:"
    # Main loop
    while [ "x$LIMIT" = "x" ] || [ "$LIMIT" -gt "0" ]; do
        RND=$(get_random)
    
        debug random is $RANDOM
    
        if [ $RND -gt $PREV ]; then
            [ $STATE = "inc" ] && printf "|" || printf "\ninc |"
            STATE="inc"
        else
            [ $STATE = "dec" ] && printf "|" || printf "\ndec |"
            STATE="dec"
        fi #> /dev/null
    
        [ -n "$LIMIT" ] && let "LIMIT = $LIMIT - 1"
        sleep 1
    done
    printf '\nExtiting\n'

    Не помню уже зачем я это написал. Искал закладки АНБ в баше?

    // Хотя у меня на тазике прослеживается аддитивно-мультипликативный метод генерации псевдо-рандома.

    Elvenfighter, 01 Января 2014

    Комментарии (13)
  9. JavaScript / Говнокод #14292

    +160

    1. 1
    2. 2
    3. 3
    if ( String(typeof Ext).toLowerCase() === "object") {		
        Ext.BLANK_IMAGE_URL = '/style/ext/resources/images/default/s.gif';		
    }

    Ох. Штабильненько.

    Elvenfighter, 28 Декабря 2013

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

    +154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    {
        xtype: 'splitbutton',
        // ...
    
        handler: function () {
            this.wasMenuShown = this.wasMenuShown ? (this.hideMenu(), false) : (this.showMenu(), true);
        },
        menu: {
            xtype: 'menu',
            items: []
        }
    }

    По мотивам: http://govnokod.ru/12172

    Написал. Задумался (запостил сюда). Переписал.

    Elvenfighter, 27 Ноября 2013

    Комментарии (0)
  11. JavaScript / Говнокод #14130

    +153

    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
    App.ns.SomeClass.prototype = {
        addMessage: function(status, msg, timeDelay) {
            if (status === false || status === this.STATUS_ERROR) {
                status = this.STATUS_ERROR;
                delay = timeDelay || 5; // default delay of msg box for error is 5 seconds. 
            }
            if (!timeDelay) {
                // 1 character - 1/7 sec 
                delay = msg.length / 7;
                if ((delay < 3) && !(timeDelay)) {
                    delay = 3;
                } else if ((delay > 30) && !(timeDelay)) {
                    delay = 30;
                    }
            }
            // показываем messagebox
        }
    };

    Кручу-верчу, запутать хочу.

    Elvenfighter, 24 Ноября 2013

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