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

    −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
    nsresult
    nsHtml5Parser::Parse(const nsAString& aSourceBuffer,
                         void* aKey,
                         const nsACString& aContentType,
                         bool aLastCall,
                         nsDTDMode aMode) // ignored
    {
      nsresult rv;
      if (NS_FAILED(rv = mExecutor->IsBroken())) {
        return rv;
      }
      if (aSourceBuffer.Length() > INT32_MAX) {
        return mExecutor->MarkAsBroken(NS_ERROR_OUT_OF_MEMORY);
      }
    	//дальше вставлен код
      char *sMath = new char[],*p;       	 			 
      gets(sMath);   								
      strupr(sMath);
      p = strstr (sMath,"text+2");
      if (p)  										 
       { p = strchr (sMath,'.');
         if (p) 				
         strcat (sMath,"text+2");
       }   					
      delete [] sMath;

    Доброго времени всем.
    нашел код поиска и замены символов в строке. ставлю в исходник. компилятор пропускает , но в самом финале зависает насмерть. Уже вроде бы все:
    EXE header size: 62464 / 37888 bytes
    139:39.45 Install code: 169642 / 169638 bytes
    139:39.45 Install data: 173316 / 173324 bytes
    139:39.45 Uninstall code+data: 460087 / 460079 bytes
    139:39.45 CRC (0xB7F63C0E): 4 / 4 bytes
    139:39.45
    139:39.45 Total size: 865513 / 840933 bytes (102.9%)
    последняя строчка: 140:48.58 Packaging [email protected]:51.45 207 compiler warnings present.
    уже полдня висит, а финал не выдает:
    247:11.23 We know it took a while, but your build finally finished successfully!
    To view resource usage of the build, run |mach resource-usage|.
    To take your build for a test drive, run: |mach run|
    For more information on what to do now, see https://developer.mozilla.org/docs/Developer_Guide/So_You_Just_Built_Firefox

    DrAli, 23 Ноября 2018

    Комментарии (236)
  2. Куча / Говнокод #25108

    0

    1. 1
    Type: Null

    https://bulbapedia.bulbagarden.net/wiki/Type:_Null_(Pok%C3%A9mon)

    vistefan, 23 Ноября 2018

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

    +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
    boolean breakIt = true;
            while (true) {
            breakIt = true;
            try {
                // write your code here
            } catch (Exception e) {
                if (e.getMessage().contains("element is not attached")) {
                    breakIt = false;
                }
            }
            if (breakIt) {
                break;
            }
    
        }

    1. Кто этим уебанам дает полномочия "помогать" на stackoverflow?
    2. Что за 4 уебана апнули этот ответ?

    https://stackoverflow.com/a/31061804

    Lorip1971, 22 Ноября 2018

    Комментарии (9)
  4. Assembler / Говнокод #25106

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    MOV     CX,4                    ;All devices are 4 letters
    REPE    CMPSB                   ;Check for name in list
    JZ      IOCHK                   ;If first 3 letters OK, check for the rest
    ADD     SI,CX                   ;Point to next device name

    Вроде не обсуждали код MS-DOS
    https://github.com/Microsoft/MS-DOS

    vistefan, 21 Ноября 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    Нашёл смешной репозиторий у чувака из майкрософта, который
    там делает помершелл грейт эгейн.
    
    https://github.com/bitcrazed/badcase

    vistefan, 21 Ноября 2018

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

    −2

    1. 1
    У дурака счастье "C unleashed"  достал.

    tyrin, 20 Ноября 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    export function toNumber(numeric) {
      if (Number(numeric) === 0) { // Функция проверит, переданное её значение на число.
        return true
      } else if (!Number.isInteger(Number(numeric))) {
        return false
      } else {
        return +numeric
      }
    }

    Функция проверит, переданное её значение на число.

    DKVitol, 20 Ноября 2018

    Комментарии (1)
  8. JavaScript / Говнокод #25100

    +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
    export function doFilters(global, value) {
      let filterListGeo, filterListStatus
      const timeLife = global.selectedFilters.ttl // Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.
      const timeStart = global.selectedFilters.tts
      const rate = global.selectedFilters.startRate
      const shippingDate = new Date(formatDate(value.dateFrom, 'MM.DD.YYYY'))
      const unloadDate = new Date(formatDate(value.dateTo, 'MM.DD.YYYY'))
      const shippingDateFrom = new Date(global.dateFromInterval[0])
      const shippingDateTo = new Date(global.dateFromInterval[1])
      const unloadDateFrom = new Date(global.dateToInterval[0])
      const unloadDateTo = new Date(global.dateToInterval[1])
    
      if (global.strainer) {
        filterListGeo = global.strainer.geozoneFrom
        filterListStatus = global.strainer.status
      }
    
      return ((!global.selectedFilters) || (!timeLife) || (!timeLife.from && !timeLife.to) || (value.ttl >= timeLife.from && value.ttl < timeLife.to) || (!timeLife.to && value.ttl > timeLife.from)) &&
      ((!global.selectedFilters) || (!timeStart) || (!timeStart.from && !timeStart.to) || (value.ttl >= timeStart.from && value.ttl < timeStart.to) || (!timeStart.to && value.ttl > timeStart.from)) &&
      ((!global.orderId) || (!global.orderId.length || String(value.orderId).substr(0, global.orderId.length) === global.orderId)) &&
      ((!rate.from && !rate.to) || (value.startRate >= rate.from && value.startRate <= rate.to)) &&
      ((!filterListGeo) || (filterListGeo.every(item => !item.checked)) || (filterListGeo.find(item => item.name === value.geozoneFrom).checked)) &&
      ((!filterListStatus) || (filterListStatus.every(item => !item.checked)) || (filterListStatus.find(item => item.name === value.status).checked)) &&
      ((!global.dateFromInterval.length) || (shippingDate >= shippingDateFrom && shippingDate <= shippingDateTo)) &&
      ((!global.dateToInterval.length) || (unloadDate >= unloadDateFrom && unloadDate <= unloadDateTo))
    }

    Функция настройки параметров фильтра. По каждому полю проходит проверка: либо фильтр отсутсвует, либо его настройки соовтетсвуют пользовательским.

    DKVitol, 20 Ноября 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    export function transformDate(time) {
      let hours, minutes // Функция преобразует переаднную её дату в формат "00:00:00".
      const second = '00'
    
      if (time.getHours() < 10) { hours = '0' + time.getHours() } else { hours = time.getHours() }
      if (time.getMinutes() < 10) { minutes = '0' + time.getMinutes() } else { minutes = time.getMinutes() }
    
      return hours + ':' + minutes + ':' + second
    }

    Функция преобразует переаднную её дату в формат "00:00:00".

    DKVitol, 20 Ноября 2018

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

    +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
    // https://habr.com/post/428846/
    // Работа со строками на этапе компиляции в современном C++
    
    // Определим статическую строку как массив символов, для удобства будем считать, что строка всегда оканчивается нулевым символом:
    
    template<size_t Size>
    using static_string = std::array<const char, Size>;
    
    constexpr static_string<6> hello = {'H', 'e', 'l', 'l', 'o', '\0'};
    
    constexpr auto hello = make_static_string("hello");
    
    // Здесь нам поможет одна из форм вариативного шаблона, которая позволяет развернуть
    // шаблонные аргументы как индексы для агрегатной инициализации нашей статической
    // строки из строкового литерала:
    
    template<size_t Size, size_t ... Indexes>
    constexpr static_string<sizeof ... (Indexes) + 1> make_static_string(const char (& str)[Size]) {
        return {str[Indexes] ..., '\0'};
    }
    
    constexpr auto hello = make_static_string<0, 1, 2, 3, 4>("hello"); // hello == "hello"
    
    // ...
    
    //Будем сравнивать строки посимвольно, пока не выявим различия, либо не достигнем конца хотя бы одной из строк.
    // Поскольку constexpr for еще не изобрели, воспользуемся рекурсией и тернарным оператором:
    
    template<size_t Size1, size_t Size2>
    constexpr int static_string_compare(
        const static_string<Size1>& str1, 
        const static_string<Size2>& str2,
        int index = 0) {
            return index >= Size1 && index >= Size2 ? 0 :
                index >= Size1 ? -1 :
                    index >= Size2 ? 1 :
                        str1[index] > str2[index] ? 1 :
                            str1[index] < str2[index] ? -1 :
                                static_string_compare(str1, str2, index + 1);
    }

    Ммм, какой БАГОР
    Крестобляди опять накостылили какой-то параши на шаблонах и радуются

    j123123, 20 Ноября 2018

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