1. Pascal / Говнокод #25044

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    procedure SelfDelete;
    var
      S,SS:string;
    begin
      SS:=ParamStr(0);
      S:='/c for /L %f in (1,1,100000) do if exist("'+SS+'") del /q /f^"+SS+" else exit';
      ShellExecute(0, nil, 'CMD', @S[1],nil, SW_HIDE);
      FatalAppExit(0,"Админ, забань борманда")
    end;

    Великий конспиратор продакшн.

    blackray, 01 Ноября 2018

    Комментарии (69)
  2. Си / Говнокод #25043

    +1

    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
    #include <stdio.h>
    //#include <ynopoTocTb.h>
    
    #define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
    #define CAT(...) PRIMITIVE_CAT(__VA_ARGS__)
    
    #define EAT(...)
    #define EXPAND(...) __VA_ARGS__
    #define IIF(c) PRIMITIVE_CAT(IIF_, c)
    #define IIF_1(...) __VA_ARGS__ EAT
    #define IIF_0(...) EXPAND
    
    #define COMPL(x) PRIMITIVE_CAT(COMPL_, x)
    #define COMPL_1 0
    #define COMPL_0 1
    
    #define CHECK_N(x, n, ...) n
    #define CHECK(...) CHECK_N(__VA_ARGS__, 0)
    #define PROBE(x) x, 1
    
    #define NOT(x) CHECK(PRIMITIVE_CAT(NOT_, x))
    #define NOT_0 PROBE(~)
    #define BOOL(x) COMPL(NOT(x))
    
    #define IF(c) IIF(BOOL(c))
    
    #define EMPTY()
    #define DEFER(id) id EMPTY()
    #define OBSTRUCT(id) id DEFER(EMPTY)()
    
    #define  EVAL(...) EVAL1(EVAL1(EVAL1(EVAL1(__VA_ARGS__))))
    #define EVAL1(...) EVAL2(EVAL2(EVAL2(EVAL2(__VA_ARGS__))))
    #define EVAL2(...) EVAL3(EVAL3(EVAL3(EVAL3(__VA_ARGS__))))
    #define EVAL3(...) EVAL4(EVAL4(EVAL4(EVAL4(__VA_ARGS__))))
    #define EVAL4(...) EVAL5(EVAL5(EVAL5(EVAL5(__VA_ARGS__))))
    #define EVAL5(...) __VA_ARGS__
    
    #define DEC(x) PRIMITIVE_CAT(DEC_, x)
    #define DEC_0 0
    #define DEC_1 0
    #define DEC_2 1
    #define DEC_3 2
    #define DEC_4 3
    #define DEC_5 4
    #define DEC_6 5
    #define DEC_7 6
    #define DEC_8 7
    #define DEC_9 8
    
    #define FACTORIAL(x) \
      IF(NOT(x)) (1) \
      ( \
        OBSTRUCT(FACTORIAL_INDIRECT)()(DEC(x)) * x \
      )
    
    #define FACTORIAL_INDIRECT() FACTORIAL
    
    #define PRIMITIVE_TO_STR(...) # __VA_ARGS__
    #define TO_STR(...) PRIMITIVE_TO_STR(__VA_ARGS__)
    
    int main() {
        printf("7! = " TO_STR(EVAL(FACTORIAL(7))) " = %d", EVAL(FACTORIAL(7)));
        return 0;
    }

    Продолжаю макроёбить.
    https://ideone.com/WcG7i2

    Использованы материалы из стотьи
    https://github.com/pfultz2/Cloak/wiki/C-Preprocessor-tricks,-tips,-and-idioms

    adrnin, 01 Ноября 2018

    Комментарии (53)
  3. JavaScript / Говнокод #25042

    +1

    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
    var btn_checkAll = document.getElementById('checkAll');
    if (btn_checkAll) {
        btn_checkAll.addEventListener('click', checkAll);
    }
    
    var inputTagsArray = [];
    function getInputTags() {
        inputTagsArray = document.getElementsByTagName('input');
        inputTagsArray = Array.prototype.slice.call(inputTagsArray);
    }
    
    
    function getArray(action) {
        getInputTags();
        var checkedInputTagsArray = [];
        inputTagsArray.forEach(function(element) {
            if (element.getAttribute('id')) {
                if (element.checked) {
                    checkedInputTagsArray.push(element.getAttribute('id'));
                }
            }
        });
        if (!checkedInputTagsArray[0]) {
            alert("Не было выбрано ни одного изображения");
            return false;
        }
        else {
            if (confirm("Вы уверены что хотите совершить данное действие?")) {
                //в пхп есть гет-метод, который удаляет картиночки по ид.
                //надо передавать ид, но я неосилятор и не осили аякс, поэтому
                //вместо нормального метода, принимающего массивом ид картиночек постом
                //я делаю это:
                location.href = "/products/" + action + "/?id=" + checkedInputTagsArray.join("_");
            }
            else {
                return false;
            }
        }
    }
    
    function checkAll() {
        getInputTags();
        inputTagsArray.forEach(function(element){
            if (element.getAttribute('id')) {
                 if (element.checked) {
                    element.checked = false;
                 }
                 else {
                    element.checked = true;
                 }
            }
        });
    }
    
    function deleteChecked() {
        getArray("imagedelete");
    }
    
    function showHideChecked() {
        getArray("show-hide");
    }

    в пхп есть гет-метод, который удаляет картиночки по ид.
    надо передавать ид, но я неосилятор и не осили аякс, поэтому
    вместо нормального метода, принимающего массивом ид картиночек постом
    я делаю это:

    wowwtfisthatworking, 31 Октября 2018

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

    +1

    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
    А напишите кто-нибудь мобильное приложение для видеосвязи в десять строчек, 
    которое не требует аккаунта, серверов и вообще ничего, кроме самого смартфона.
    Просто по СМС скидывает адресату свой текущий IP, который ему на нынешнюю 
    секунду выдал опсос, и потом они тупо по UDP друг другу кидают поток пожатого 
    любым популярным кодеком видео. Если датаграмма не дойдёт, ну заикнётся видео, 
    хер с ним. Можно одноразовый ключ кидать той же СМС, ну просто на всякий случай 
    (допустим, IP прямо посреди разговора поменяется, чтобы не улетело неведомо кому).
    
    Такая вещь сама по себе не появится, потому что её нельзя пафосно запатентовать, 
    закопирастить протоколы и алгоритмы и потом монетизировать. 
    В ней нет вообще ничего. Софт-пустое-место. Возьми данные из A и положи в B. 
    Камера→netcat→экран. Поэтому её надо самим писать, никто больше не сделает.
    Оно, конечно, будет СМС поджирать, но их в пакетах с нормальным траффиком всё 
    равно хренова тонна.

    Идея стырена из бездны. Выжпрограммисты, чо.
    Только не понял, все равно хотя бы у одного должен быть белый IP с открытыми портами (а в сотовой сети такое вообще бывает?).

    Steve_Brown, 30 Октября 2018

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

    +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
    98. 98
    99. 99
    //macrolib.h
    
    #ifndef MACRO_LIB
    #define MACRO_LIB
    
    #include <stdio.h>
    
    typedef void proc(void);
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #ifdef TRACE_CALLS
      #define ON_ENTER_TRACE(name) char __CUR_FUNC_NAME__[] = #name; TRACE("<entering %s>", __CUR_FUNC_NAME__);
      #define ON_EXIT_TRACE(...) TRACE(__VA_ARGS__)
    #else
      #define ON_ENTER_TRACE(name) ;
      #define ON_EXIT_TRACE(...)
    #endif
    
    #define def(type, name, ...) type name __VA_ARGS__ { ON_ENTER_TRACE(name)
    #define ret(ret_val) {ON_EXIT_TRACE("<leaving %s>", __CUR_FUNC_NAME__); return ret_val;}
    #define end(ret_val) ret(ret_val);}
    
    #define with(type, x, on_exit) { type __CUR_WITH_VAR__ = x; int (*__ON_EXIT__)() = (int(*)())on_exit;
    #define endwith __ON_EXIT__(__CUR_WITH_VAR__);}
    
    #define dup(d, ...) __VA_ARGS__ d __VA_ARGS__
    #define dupwithcomma(...) __VA_ARGS__, __VA_ARGS__
    
    #endif
    
    
    
    
    //chain.h
    
    #ifdef I0
      #undef I0
      #if defined(I1) || defined(I2) || defined(I3)
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        ELEMENT
        #undef ELEMENT
        #undef DELIMETER
      #endif
    #else
      #ifdef I1
        #undef I1
        #define I0
        ELEMENT DELIMETER
        #include "chain.h"
      #else
        #ifdef I2
          #undef I2
          #define I1
          #define I0
          ELEMENT DELIMETER
          #include "chain.h"
        #else
          #ifdef I3
            #undef I3
            #define I2
            #define I1
            #define I0
            ELEMENT DELIMETER
            #include "chain.h"
          #endif
        #endif
      #endif
    #endif
    
    //test.c
    
    #define DEBUG
    #define TRACE_CALLS
    
    #include "macrolib.h"
    
    def(int, main, ())
      printf(dup(" ", "%s"), dupwithcomma("Чот мне понравилось макроёбить..."));
      FILE *f = fopen("file", "w");
      with(FILE*, f, fclose)
        fputs(
          #define ELEMENT "o"
          #define DELIMETER "l"
          #define I3
          #define I2
          #define I1
          #define I0
          #include "chain.h"
          , f
        );
      endwith
    end(0)

    Мне понравилось. то ещё можно намакроёбить? ;D

    adrnin, 30 Октября 2018

    Комментарии (26)
  6. Pascal / Говнокод #25038

    +4

    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
    unit ZwDeleteFileSample;
    
    interface
    
    uses Windows, nt_status, native, hal, fcall, macros, ntoskrnl;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    
    implementation
    
    procedure DriverUnload(pDriverObject: PDriverObject); stdcall;
    begin
      DbgPrint('Test Driver :: Unloaded');
    end;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    var UNICODESTRING: UNICODE_STRING;
      obj: OBJECT_ATTRIBUTES;
    
    begin
    
      DbgPrint('Test Driver :: Loaded');
      DriverObject^.DriverUnload := @DriverUnload;
    
      RtlInitUnicodeString(UNICODESTRING, '\??\C:\test.exe');
      InitializeObjectAttributes(obj, @UNICODESTRING, OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, 0, nil);
      Result := ZwDeleteFile(@obj);
    
      if Result = STATUS_SUCCESS then
      begin
        DbgPrint('File deleted sucessfully - Result:0x%.8X', Result); // Result to get Error Code
      end else
      begin
        DbgPrint('Fail to delete file - Result:0x%.8X', Result); // Result to get Error Code
        DbgPrint('Object name :%wZ',  obj.ObjectName); // Result to get Error Code
      end;
      Result := STATUS_SUCCESS;
    
    end;
    
    end.

    Драйвер на дэлфи. Ничего необычного, листайте дальше.

    blackray, 29 Октября 2018

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

    0

    1. 1
    Не нужно было меня банить. Я ничего не нарушал.

    BUTTHURT, 29 Октября 2018

    Комментарии (145)
  8. Си / Говнокод #25036

    +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
    #include <stdio.h>
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #define DEF(type, name, ...) type name __VA_ARGS__ { TRACE("<вызвали " #name ">");
    #define RET(name, ret_val) {TRACE("<" #name " не упала>"); return (ret_val);}
    #define END(name, ret_val) RET(name, ret_val);}
    
    DEF(int, main, (int argc, char **argv))
        puts("Моя супер-мего отладка ;D");
    END(main, 0)

    Моя супир-мего отладка ;D

    adrnin, 29 Октября 2018

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

    +1

    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
    Никогда так не расстраиваюсь как слитая партия после нескольких дней усладной игры.
    
    НАпример в Crusader kings 2 постоянно так - сидишь играешь развиваешься, стал убер персонажом каралем всея мира от индии до британских островов. Ты старик и детей нет но есть шанс - ты выбрал путь соблазна. 
    Однажды выпал эвент на великую оргию где был шанс умиреть 1% от перетраха? хз, там просто процент показывают. Зато у тебя был бы сто процентный наследник бастард хотяб. Но нет ссаный рандом решил 1%
    само то. Умер - династия просрана, игре конец.
    
    Сидишь играешь за мусульман. Ты крутой шиит всех режишь горло во славу алаха. Но твой какой-то родственник в 10 покалении решил по декаденствовать и решил еще стать авантюристом где-то у племен ебанных викингов
    Ну значит он приходит, ты в ахуе - твоя династия из-за этого хуя в упадке, так еще и войска хуесос привел больше тебя. Даже если он захватил власть - смотришь на его трейти он весь по нулям, тупой гомик, и бешенство
    из-за бешенства он умирает через 3 дня, содиться какой-то его сын, ему 5, и тут война династического упадка, его свергает еще какой-то хуй и пиздец. В итоге твоя страна стала 1 маленькая правинция. А ты был виликим Аббасидом.
    А из-за того что ты шиита еще просрал силу у религии, суниты стали сильнее тебе жахают священку и тибе пизда.
      
    Сидишь играешь за викингов - ты такой гопник грабишь Константинополь и пиздец, ты умираешь от стресса. Страна в развале - так как племя ебанное не централизованное и разваливаеться на куски между сыновьями и Рагнар тупой хуй
    Сидишь такой Русь делаешь не Рюриковичами. Ты обосаный язычник и выкалываешь глаз Перуну, потом руки, потом ноги. Но ты все равно пиздато мечем махаешь, лучше вас нет командира, хоть ты и обрубок.
    
    Сижу играю в Cities Skylines. Сижу строю строю, пастроил красивый город 100к жителесь с бледжеком и небоскребами. Но я забыл убрать случайные катострофы.
    В один момент прошло пришла цунами и слила все 100к жителей в море. Сука блядь обидно.

    :'(

    3oJIoTou_xyu, 29 Октября 2018

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

    +1

    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
    // my __enable_if
    template < typename T >
    struct __Conflict {};
    
    template <bool B, class T = void>
    struct __enable_if { typedef __Conflict<T> type; };
    
    template <class T>
    struct __enable_if<true, T> { typedef T type; };
    
    // Example of usage:
    template <typename T>
    class Lazy
    {
    public:
        void _ctor(bool b);
        void _ctor(typename __enable_if<!std::is_same<T, bool>::value, T>::type);
    };
    
    template <typename T>
    void Lazy<T>::_ctor(bool b)
    {
        std::cout << "bool " << b << std::endl;
    };
    
    template <typename T>
    void Lazy<T>::_ctor(typename __enable_if<!std::is_same<T, bool>::value, T>::type t)
    {
        std::cout << "T " << t << std::endl;
    };
    
    int main(int argc, char **argv)
    {
        Lazy<int> i;
        i._ctor(10);
        i._ctor(true);
    
        Lazy<bool> b;
        b._ctor(true);
    
        return 0;
    }

    Наговнокодил свой собственный "enable_if" который круче стандартного и дает возможность писать класный говнокод

    ASD_77, 29 Октября 2018

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