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

    Всего: 168

  2. Си / Говнокод #26975

    +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
    static int parse_num(const char *s, size_t *out) {
        if (s == NULL || *s == '\0')
            return -1;
    
        char *end = 0;
        errno = 0;
        uint64_t num = strtoull(s, &end, 0);
        if (errno != 0)
            return -1;
    
        if (*end != '\0')
            return -1;
    
        if (num > SIZE_MAX)
            return -1;
    
        *out = (size_t)num;
        return 0;
    }

    Какие же всё-таки удобные функции в стандартной няшколибе.

    bormand, 24 Сентября 2020

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int main()
    {
        + ! - ! -- -- ! + ! - - - ++ ~ - ! -- -- -- ~ ~ ~ ++ ++ ++ - ~ ++ - * - - -
        * ++ * * ++ * -- -- -- -- - * -- + * ++ ++ ++ ++ ++ * ++ * -- -- * -- - *
        
        BRAINFUCK;
        
        return 0;
    }

    https://ideone.com/EtK1J4

    Ответ на https://govnokod.ru/26910. Теперь с реальной конпеляцией в нативный код.

    bormand, 03 Сентября 2020

    Комментарии (13)
  4. Python / Говнокод #26847

    +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
    def __gc(self, state):
        userdata = self.lib.luaL_testudata(self.state, 1, b'python.object')
        if userdata:
            obj_ptr = (c.cast(userdata, c.POINTER(c.py_object))).contents
            if obj_ptr:
                c.pythonapi.Py_DecRef(obj_ptr)
        return 0
    
    def push_object(self, obj):
        userdata = self.lib.lua_newuserdata(self.state, c.sizeof(c.py_object))
        (c.cast(userdata, c.POINTER(c.py_object)))[0] = c.py_object()
    
        if self.lib.luaL_newmetatable(self.state, b'python.object'):
            self.gc_thunk = c.CFUNCTYPE(c.c_int, c.c_void_p)(self.__gc)
            self.lib.lua_pushcclosure(self.state, self.gc_thunk, 0)
            self.lib.lua_setfield(self.state, -2, b'__gc')
            self.lib.lua_pushstring(self.state, b'protected')
            self.lib.lua_setfield(self.state, -2, b'__metatable')
    
        self.lib.lua_setmetatable(self.state, -2)
    
        obj_ptr = c.py_object(obj)
        c.pythonapi.Py_IncRef(obj_ptr)
        (c.cast(userdata, c.POINTER(c.py_object)))[0] = obj_ptr

    Как скрестить ужа с ежом.

    bormand, 07 Августа 2020

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

    0

    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
    void decode_chunk(const char* s, uint8_t* out)
    {
        __m128i a = _mm_loadu_si128((const __m128i*)s);
    
        __m128i u = _mm_and_si128(a, _mm_set1_epi8(0x74));
        u = _mm_add_epi8(u, _mm_set1_epi8(0x04));
        u = _mm_srli_epi32(u, 0x03);
        u = _mm_and_si128(u, _mm_set1_epi8(0x0F));
        u = _mm_shuffle_epi8(_mm_set_epi32(0xB9B9B9B9, 0xBFBFBFBF, 0x04041013, 0x00000000), u);
        a = _mm_add_epi8(a, u);
    
        __m128i m1 = _mm_set1_epi32(0xFF00FF00);
        __m128i m2 = _mm_set1_epi32(0xFFFF0000);
        a = _mm_shuffle_epi8(a, _mm_set_epi32(0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F));
        a = _mm_or_si128(_mm_srli_epi32(_mm_and_si128(m1, a), 2), _mm_andnot_si128(m1, a));
        a = _mm_or_si128(_mm_srli_epi32(_mm_and_si128(m2, a), 4), _mm_andnot_si128(m2, a));
        a = _mm_shuffle_epi8(a, _mm_set_epi32(0x80808080, 0x00010204, 0x05060809, 0x0A0C0D0E));
    
        _mm_storeu_si128((__m128i*)out, a);
    }

    Байтоёбский парсинг base64 (16 символов → 12 байт).

    По мотивам http://govnokod.ru/12822#comment173404

    bormand, 09 Января 2019

    Комментарии (85)
  6. Python / Говнокод #24902

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class Test(contextlib.ExitStack):
        def __init__(self):
            super().__init__()
            with contextlib.ExitStack() as s:
                self.foo = s.enter_context(Foo())
                self.bar = s.enter_context(Bar())
                self.enter_context(s.pop_all())

    Неужели в питоне нет более адекватного способа описать класс, который держит джва ресурса и корректно их освобождает во всех ситуациях? И эти люди ругают кресты за сложность управления памятью...

    bormand, 11 Октября 2018

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

    +5

    1. 1
    2. 2
    3. 3
    int hcreate(size_t nel);
    ENTRY *hsearch(ENTRY item, ACTION action);
    void hdestroy(void);

    Using these functions, only one hash table can be used at a time.
    The argument nel specifies the maximum number of entries in the table. (This maximum cannot be changed later, so choose it wisely).
    Individual hash table entries can be added, but not deleted.

    Одной хеш таблицы хватит для всех, ресайзить её или удалять элементы - нинужная фича.

    bormand, 15 Октября 2017

    Комментарии (92)
  8. Python / Говнокод #23226

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    bool retval = true;
    
    while (someting) {
        ...
        if (retval) retval = sendDataInternal(data);
        else sendDataInternal(data);
    }
    
    return retval;

    Ничто не остановит бульдозер.

    bormand, 30 Июля 2017

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

    −15

    1. 1
    2. 2
    3. 3
    operator void() {
        std::cout << "Cast to void!" << std::endl;
    }

    Выглядит заманчиво, даже компилится. Но никогда не вызывается, к сожалению.

    bormand, 24 Апреля 2017

    Комментарии (24)
  10. Си / Говнокод #22444

    −101

    1. 1
    2. 2
    puts("Ня. Пока.");
    exit(0);

    bormand, 26 Февраля 2017

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

    +14

    1. 1
    2. 2
    3. 3
    Note: If your <username> starts with the "u" or "x" character, change
    C:\MSys\1.0\home\<username>\config.h and double all backslashes
    in VLC_COMPILED_BY constant.

    Из гайда по сборке VLC.

    bormand, 13 Июня 2016

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